Eclipse এ ডিবাগ করার সময় সম্পূর্ণ স্ট্রিংগুলি দেখছে


166

জাভা কোডটি ডিবাগ করার সময়, "ভেরিয়েবলস" এবং "এক্সপ্রেশন" দর্শনগুলির স্ট্রিংগুলি নির্দিষ্ট দৈর্ঘ্য পর্যন্ত কেবল প্রদর্শিত হয়, যার পরে গ্রহনটি "..." দেখায়

পুরো স্ট্রিং পরিদর্শন করার কোনও উপায় আছে কি? (এটি সর্বত্র ডিবাগিংয়ের জন্য লগিং স্টেটমেন্ট যুক্ত করার ব্যথা সহজ করে)


আপনি কোথায় এই আচরণ দেখতে পাচ্ছেন? ডিবাগার কোন অংশ?
স্কাফম্যান

সাইড নোটে, এটি একটি মিসনোমার হতে পারে, কারণ এটি আপনার পক্ষে কাজ নাও করতে পারে, তবে আপনি java.util.logging বা log4j এর মতো কোনও ডিবাগিং লাইব্রেরি ব্যবহার করলে আপনি সহজেই আপনার ডিবাগ স্টেটমেন্টগুলিকে (ডিবাগিংয়ের বিভিন্ন স্তরের সাথে) রূপান্তর করতে পারেন প্রিন্টআউট বা লগফাইলে এবং এটি আপনাকে এমন প্রান্ত দিতে পারে যা ডিবাগ উইন্ডোতে স্ট্রিংগুলির মধ্য দিয়ে পাল্টাতে পারে না। কেবল একটি চিন্তা =)
কর্সিকা

উত্তর:


225

ভেরিয়েবল ভিউতে আপনি বিশদ ফলকে (বিভাগটি স্ট্রিংয়ের সামগ্রী প্রদর্শিত হয়) তে ডান ক্লিক করতে পারেন এবং "সর্বোচ্চ দৈর্ঘ্য ..." পপআপ মেনু নির্বাচন করতে পারেন। একই দৈর্ঘ্য এক্সপ্রেশন ইন্সপেক্টর পপআপ এবং অন্যান্য কয়েকটি জায়গায় প্রযোজ্য।

এখানে চিত্র বর্ণনা লিখুন


17
নির্বাচিতটির চেয়ে আরও ভাল সমাধান। ধন্যবাদ!
কলিন

13
উল্লেখ করা ভাল যে বিশদ ফলকটি সেই অংশ যেখানে স্ট্রিংয়ের সামগ্রী প্রদর্শিত হয়।
Bnrdo

1
কীভাবে গ্রহগ্রাহ কেপলারে এটি করবেন? Pls সহায়তা
বোকা

1
সুসংবাদটি হ'ল এই পরিবর্তনটি কোনও পরিবর্তনশীল উপর ঘোরাফেরা করার সময় "পরিদর্শন" উইন্ডো বা "এক্সপ্রেশন" ভিউতে পরিদর্শন এবং "প্রদর্শন" দৃশ্যে মানগুলি প্রদর্শন করার সময় প্রদর্শিত দৈর্ঘ্যের উপরও প্রভাব ফেলবে বলে মনে হয়।
স্টিভ চেম্বারস

1
আমি সঠিক সমাধানটি আপডেট করেছি (এর আগে গ্রহণ করা একমাত্র সত্যিকারের পুরানো গ্রহের সংস্করণগুলির একমাত্র সমাধান)।
ragebiswas

134

ইন ভেরিয়েবল আপনি দেখতে পরিবর্তনশীল ডান-ক্লিক করুন এবং নির্বাচন মান পরিবর্তন । যদি আপনার ভেরিয়েবলটি বিশাল হয় তবে আপনাকে কয়েক মিনিট অপেক্ষা করতে হবে (এক্ষেত্রে Eclipse কমান্ডের প্রতিক্রিয়া জানায় না) তবে শেষ পর্যন্ত Eclipse আপনার ভেরিয়েবল পুরোপুরি প্রদর্শন করবে।


2
আমি কেবল দেখতে পাচ্ছি "data:image/bitmap;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQE... (length: 22869)"। "সর্বোচ্চ দৈর্ঘ্য" বিকল্পটি কাজ করে না এবং "মান পরিবর্তন করুন" সেট করুন।
ফলক

@ ফ্যালকো "সর্বোচ্চ দৈর্ঘ্য" আমার পক্ষে কাজ করেনি, "পরিবর্তন মান" ঠিক আছে (কিছু সেকেন্ড অপেক্ষা করার পরে, পরিবর্তনশীল দৈর্ঘ্যের উপর নির্ভর করে)।
উম্বের্তো

কমপক্ষে আমার সিস্টেমে এটি "সর্বোচ্চ দৈর্ঘ্য" (অন্যান্য উত্তর দেখুন) বাড়ানোর চেয়ে যথেষ্ট ধীর।
sleske

গ্রহণ আপনার ধারণা সম্পর্কে খুব খুশি নয় .. আমি এটি চেষ্টা করেছিলাম এবং আমি এখন 30 মিনিটের পরে অপেক্ষা করছি, গ্রহের কোনও প্রতিক্রিয়ার জন্য .. বুয়ুত: এটি কাজ করছে বলে মনে হয়;)
জোশিত

22

আপনার যদি সত্যিই দীর্ঘ স্ট্রিং থাকে তবে আমি একটি আলাদা কৌশল ব্যবহার করি: এটি একটি ফাইলে ফেলে দিন। আমার কাছে ডিসপ্লে ভিউতে আমি ব্যবহার করি এমন কোডের একটি স্নিপেট রয়েছে, যা কোনও ফাইলের মধ্যে ডেটা ফেলে দেওয়ার জন্য মূল্যায়ন করা হয়। আমি কমন্স আইও ব্যবহার করি তবে আপনি এটি কেবল জেডিকে পদ্ধতিতে করতে পারেন।

org.apache.commons.io.FileUtils.writeStringToFile(new java.io.File("<filename>"), <expression to evaluate>);

স্বাভাবিকভাবেই, এটির জন্য আপনার ক্লাসপথে কমন্স আইও জেআর প্রয়োজন need আপনি যদি না করেন তবে জেডিকে কাজের অবলম্বন করুন।


5
শান্ত কাজ। আমি ব্যক্তিগতভাবে এটিকে সেরা উত্তর হিসাবে গ্রহণ করব। কেভেট: <ফাইল ফাইল> JVM চলছে এমন সিস্টেমের জন্য সংজ্ঞায়িত করতে হবে, যা আপনি দূরবর্তী ডিবাগিংয়ের ক্ষেত্রে একটি পার্থক্য তৈরি করে, সেই ক্ষেত্রে যেখানে ফাইলটি গ্রহপোষ চলছে সেখানে ওয়ার্কস্টেশনে নয়, দূরবর্তী সিস্টেমে ফাইলটি লেখা হবে will ।
রেক্সফোর্ড

18

গ্রহন ডিব্যাগ ভিউ থেকে স্ট্রিংয়ের মানটি দেখার সর্বোত্তম উপায় নীচের মত।

1) Eclipse এ ডিবাগ ভিউতে স্যুইচ করুন

2) পরিবর্তনশীল ফলকে পছন্দসই পরিবর্তনশীল নির্বাচন করুন।

3) ভ্যারিয়েবল ফলকের প্রদর্শন ক্ষেত্রটিতে ডান ক্লিক করুন যেখানে মানটি প্রদর্শিত হবে এবং সর্বোচ্চ দৈর্ঘ্যে ক্লিক করুন। বিশদ ফলকে কনফিগার করুন সর্বাধিক মান মান লিখুন।

4) চিয়ার্স

এখানে চিত্র বর্ণনা লিখুন


1
এই গ্রাফিকাল ব্যাখ্যাটি সত্যই সহায়ক। +1
ভাভিন শাহ

3

যখন ডিবাগার আপনি যে স্ট্রিংয়ের মানটি চান সেখানে পৌঁছায়, কেবল একটি সিসআউট স্টেটমেন্ট টাইপ করুন

System.out.println("The value is : \n " + query);

উপরের বিবৃতিটি নির্বাচন করুন, ডান ক্লিক করুন-> সম্পাদন করুন Exec

এটি কনসোলে মানটি প্রিন্ট করবে


0

গ্রহনটিতে জাভাস্ক্রিপ্ট ভিত্তিক ডিবাগিংয়ের জন্য, "মান পরিবর্তন করুন" পদ্ধতি এবং "সর্বোচ্চ দৈর্ঘ্য" পদ্ধতি উভয়ই আমার জন্য ব্যর্থ হয়েছিল, দেখার প্রয়োজনীয় অবজেক্টটি যুক্ত করুন ( এক্সপ্রেশন ) এবং তারপরে "লোড পূর্ণ মান" নির্বাচন করতে ওয়াচ করা এক্সপ্রেশনটি ক্লিক করা একমাত্র সমাধান is এটি আমার পক্ষে কাজ করে, তবে এটি আউটপুটে অযাচিত "\ n" সন্নিবেশ করে

দ্রষ্টব্য - সর্বাধিক দৈর্ঘ্য পর্যন্ত অবধি মানগুলি লোড হওয়ার সাথে সাথে "সর্বোচ্চ দৈর্ঘ্য" লোডের জন্য পূর্ণ মান নির্ধারণ করতে হবে (গ্রহের ক্ষেত্রে ডিফল্ট 10000)। সর্বোচ্চ দৈর্ঘ্য কীভাবে সেট করবেন তা দেখতে উপরের উত্তরটি দেখুন।


0

ইক্লিপস মঙ্গলে কোনও "ম্যাক্সেলেন্থ" নেই। এবং, "পরিবর্তন মান" কেবল "ভেরিয়েবল" দিয়ে কাজ করে, "এক্সপ্রেশন" নয়, সুতরাং উপরের কোনওটিই আমার পক্ষে কাজ করে না।

এখানে চিত্র বর্ণনা লিখুন

এবং, প্রকাশটি মাঝখানে কাটা হয়, শেষে নয় not আমার ধারণা তারা ডিফল্ট আচরণ পরিবর্তন করেছে।

আমার পক্ষে কাজ করা হ'ল এক্সপ্রেশন নাম কলামের প্রস্থকে প্রসারিত করা এবং পূর্ণ দৈর্ঘ্যের সামগ্রী দেখতে এটি নির্বাচন করতে এক্সপ্রেশনকে ক্লিক করুন।


0

উপরের থেকে কিছুই আমার পক্ষে কাজ করেনি, তদুপরি, আমার Eclipse- তে কিছু ব্যবহারকারীর ইন্টারফেস উপাদান বর্ণিত হিসাবে পাওয়া যায় না। আমি এসটিএস ৪.৩.১ ব্যবহার করছি।

আমার যে মানটি দরকার ছিল তা সত্যিই বড় ছিল, এটি একটি বিশাল জেএসএন অনুরোধের অংশ। ওয়ার্কআরাউন্ড হ'ল এক্সিলিপস ডিবাগ শেল কনসোলে একটি এক্সপ্রেশন ব্যবহার করা এবং সম্পূর্ণ মানের স্ট্রিং আউটপুট to যেহেতু আপনি আংশিক মান দেখতে পাচ্ছেন, এটি পরীক্ষা করুন এবং স্ট্রিংয়ের পরবর্তী অংশটি আউটপুট করার অবস্থান হিসাবে শেষ কয়েকটি আক্ষরিক ব্যবহার করুন। আপনার যা প্রয়োজন তা না পাওয়া পর্যন্ত এই পদ্ধতির পুনরাবৃত্তি করুন:

String result = new String(reallyBigByteArrayValue, "UTF-8");
result.substring(result.indexOf("some-unique-text"));
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.