Eclipse এ ডিবাগ করার সময় আমি ফিরে আসার আগে ফেরতের মানটি জানতে পারি?


99

লাইনটি চালুর পরে এবং নির্দেশিকা পয়েন্টারটি কলিং ফাংশনে ফিরে আসার আগে কোনও পদ্ধতির রিটার্ন মানটি পাওয়া সম্ভব?

আমি কোডটি ডিবাগ করছি যা আমি সংশোধন করতে পারি না (পড়ুন: তৃতীয় পক্ষের লাইব্রেরিটি পুনরায় সংকলন করতে চাই না) এবং কখনও কখনও এটি কোডে যায় তবে আমার কাছে উত্স নেই বা প্রত্যাবর্তনের এক্সপ্রেশনগুলির পার্শ্ব প্রতিক্রিয়া রয়েছে যা আমাকে থামিয়ে দেয় শুধু অভিব্যক্তি চালাতে পারবেন প্রদর্শন ট্যাবে ।

প্রায়শই রিটার্ন মানটি যৌগিক বিবৃতিতে ব্যবহৃত হয় এবং ভেরিয়েবল ভিউ কখনই আমাকে মানটি দেখায় না (সুতরাং কলিং ফাংশনে নিয়ন্ত্রণ ফিরে আসার আগে ফলাফলটি দেখতে চাই)।

আপডেট: বিবৃতিতে পার্শ্ব প্রতিক্রিয়া রয়েছে বলে আমি এক্সপ্রেশন ভিউয়ারটি ব্যবহার করতে পারি না।


7
এজন্য আমি ইন্টেলিজের কমিউনিটি সংস্করণে স্যুইচ করেছি - গ্রহগ্রহের লোকেরা এটি কতটা গুরুত্বপূর্ণ তা বুঝতে পারে না। (যদি তারা কখনও এটি ঠিক করে দেয় তবে আমি

@ জেমস মিচেল এটিকে একটি প্লাগইনের জন্য দুর্দান্ত ধারণা বলে মনে হচ্ছে। আমি এটি আমার টুড তালিকায় যুক্ত করব এবং সময়
পেলে

@ user672348 তবে কীভাবে এটি ইন্টেলিজ আইডিইএতে করবেন?
আলেক্সি তিগারেভ

@ অ্যালেক্সাটিগ্রেভ: আইআইআরসি, আপনি "স্টেপ রিটার্ন" (বা সমতুল্য) করার সময় এটি প্রদর্শিত হয়।
ব্লেজারব্লেড

4
একিপ্লিজ অক্সিজেনের (2017 সালের মধ্যবর্তী তারিখের মাঝামাঝি) জন্য নিজেকে বন্ধনীয় করুন। এম 2 মাইলস্টোনটিতে এই বৈশিষ্ট্যটি অন্তর্ভুক্ত রয়েছে
আব্দুল

উত্তর:


36

এই বৈশিষ্ট্যটি Eclipse বাগ 40912 এর অধীনে Eclipse সংস্করণ 4.7 M2 এ যুক্ত করা হয়েছিল ।

এটি ব্যবহার করতে:

  • returnবিবৃতিতে পদক্ষেপ ("স্টেপ ওভার" বা "স্টেপ রিটার্ন" ব্যবহার করে)
  • ভেরিয়েবল ভিউতে প্রথম লাইনটি "[বিবৃতি এক্সএক্সএক্সএক্স] ফিরে আসার সাথে সাথে রিটার্ন স্টেটমেন্টের ফলাফল প্রদর্শন করবে:"

দেখুন অন্ধকার প্রকল্প অক্সিজেন (4.7), M2 - নতুন এবং উল্লেখযোগ্য বিস্তারিত জানার জন্য।


আমিও. Eclipse ব্যবহার করার সময় আমি এই বৈশিষ্ট্যটি মিস করি।
m24p

4
এই Eclipse বাগটি পরে ২০০৯ এর শেষদিকে আবার খোলা হয় । এখনও নির্দিষ্ট করার অপেক্ষায় রয়েছেন, যদিও কোনও বরাদ্দ নেই, এবং কোনও লক্ষ্য মাইলস্টোন নেই। :)
মার্ক এ। ফিটজগার্ল্ড


4
এই ফিক্সটি কীভাবে ব্যবহার করবেন সে সম্পর্কে কিছু তথ্য 4.7 এম 2 এর জন্য নতুন এবং লক্ষণীয় in এখানে "পদক্ষেপের ক্রিয়াকলাপের পরে পদ্ধতির ফলাফল" সন্ধান করুন: eclipse.org/eclipse/news/4.7/M2
জোশুয়া গোল্ডবার্গ

@ জোশুয়া গোল্ডবার্গ: এটি দেখানোর জন্য ধন্যবাদ - আমি উত্তরে এটি সম্পাদনা করেছি।
স্লেসকে

34

এর জন্য একটি দুর্দান্ত শর্টকাট পেয়েছে। এক্সপ্রেশনটি নির্বাচন করুন যা মানটি দেয় এবং টিপায়

Ctrl + Shift + D

এটি রিটার্ন স্টেটমেন্টের মান প্রদর্শন করবে। এটি কেবলমাত্র ডিবাগিংয়ের উদ্দেশ্যে আপনি পরিবর্তন করতে বা করতে চান না এমন ক্ষেত্রে এটি সত্যিই সহায়ক।

আশাকরি এটা সাহায্য করবে.

দ্রষ্টব্য: এটি তৃতীয় পক্ষের লাইব্রেরি দিয়ে পরীক্ষা করা হয়নি, তবে এটি আমার কোডের জন্য দুর্দান্ত কাজ করছে। এটি ওয়েব বিকাশকারীদের জন্য Eclipse Java EE IDE তে পরীক্ষা করেছেন । সংস্করণ: জুনো পরিষেবা রিলিজ 1


4
+1 কারণ এটি কেবল ফেরতের মানগুলির জন্যই নয়, সাধারণভাবে প্রকাশের জন্যও কাজ করে। এক্সপ্রেশন ট্যাব ব্যবহার করার চেয়ে অনেক বেশি সুবিধাজনক। এটি কোডটি কার্যকর করে তা লক্ষ করা উচিত, সুতরাং এর যদি পার্শ্ব প্রতিক্রিয়া থাকে তবে সাবধান হন। help.eclipse.org/indigo/…
ছাগল

4
Ctrl + Shift + Iআমার জন্য সহায়ক ছিল।
সিরো সান্তিলি :5 冠状 病 六四 事件

4
@ বোট যেমন উল্লেখ করেছে, এটি কোডটি একাধিকবার কার্যকর করে, সুতরাং উদাহরণস্বরূপ যদি ফাংশনটি এটি করে থাকে return System.currentTimeMillis();তবে আপনি কার্যটি ফিরে আসার চেয়ে আলাদা ফলাফল পাবেন!
ব্র্যাড পার্ক

সমান Apple machine?
এড্রিয়েন

এটি সমস্যাযুক্ত পরামর্শ - এটি এক্সপ্রেশনটিকে পুনরায় মূল্যায়ন করবে, এর পার্শ্ব প্রতিক্রিয়া থাকলে তা বিপর্যয়কর হতে পারে।
sleske


5

এজন্য আমি সবসময় পদ্ধতির জন্য নিম্নলিখিত প্যাটার্নটির সাথে আছি:

MyReturnedType foo() {
     MyReturnedType   result = null;

     // do your stuff, modify the result or not

     return result;
}

আমার নিয়ম:

  1. কেবলমাত্র পদ্ধতিটির শেষে কেবলমাত্র একটি রিটার্নের বিবৃতি (অবশেষে এটির পরে অনুমোদিত)
  2. সর্বদা একটি স্থানীয় বলা ফলাফল থাকে যা একটি ডিফল্ট থেকে শুরু করে, ফেরত মান ধরে রাখে।

স্বাভাবিকভাবেই, সবচেয়ে তুচ্ছ প্রাপ্তরা অব্যাহতিপ্রাপ্ত।


4
আরে জভিকিকো - যখন আমি নিজের কোডটিতে কাজ করি তখন আমি সাধারণত একই ধরণের ব্যবহার করি। দুর্ভাগ্যক্রমে, আমার সমস্যাটি যখন আমি এমন কোড ব্যবহার করি যা আমার দ্বারা লিখিত বা পরিবর্তনযোগ্য হয় না। : এস
রোডিও ক্লাউন

: আমি খুব এই না, কিন্তু SonarLint অভিযোগ করা হয় .... এখন আমি equivocating করছি stackoverflow.com/questions/31733811/...
HDave

@ উইটল্ডক্যাজুরবা এটি আপনার মতামত, এবং ভাল অন্যান্য মতামত রয়েছে তা কেবল গ্রহণ করুন এবং যারা করেন তাদের প্রতি কিছু শ্রদ্ধা প্রদর্শন করুন।
zvikico

হাই জিভিক্কো বার্তার জন্য ধন্যবাদ। আমি স্বীকার করি যে এখানে বিভিন্ন পদ্ধতির রয়েছে তবে আমি pmd.sourceforge.io/pmd-4.3.3/rules/… উল্লেখ করেছি । চিয়ার্স
উইটল্ড কাকজুরবা

2

আমি এই প্রশ্নের উত্তর জানতে আগ্রহী।

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


4
এই সমাধানটির সমস্যা (অতিরিক্ত কাজ সম্পর্কে আপনি যেটি উল্লেখ করেছেন সেগুলি বাদে) এটি কেবল তখনই কাজ করে যদি আপনি বহিরাগত গ্রন্থাগারের অভ্যন্তরে একাধিক শ্রেণি / পদ্ধতি না হন। আপনি যখন পদ্ধতিগুলির বাইরের স্তরটি নিয়ে কাজ করছেন তখন এটি কার্যকর।
রোডিও ক্লাউন 3


0

কঠিন এক. এক্সিলিপসের বাইরে আমার অভিজ্ঞতাটি হ'ল যদি আপনাকে রিটার্ন মানটি দেখতে return varname;পারা প্রয়োজন হয় তবে ফাংশনের স্থানীয় ভেরিয়েবলের কাছে এটি নির্ধারণ করা ভাল যাতে রিটার্নের বিবৃতিটি সহজ এবং না হয় return(some * expression || other);। তবে, এটি আপনার পক্ষে ভয়ঙ্করভাবে কার্যকর নয় যেহেতু আপনি বলেন যে আপনি কোডটি সংশোধন করতে বা এমনকি পুনরায় সংকলন করতে পারবেন না। সুতরাং, আপনার কাছে আমার কাছে ভাল উত্তর নেই - সম্ভবত আপনার প্রয়োজনের বিষয়ে আপনাকে পুনর্বিবেচনা করতে হবে।


আমার কোডে আমার সাধারণত অন্তর্বর্তী পদক্ষেপ থাকে তাই আমি ফলাফলটি যাচাই করতে পারি, তবে আমি যে কোডটি ব্যবহার করছি তার কয়েকটিতে সংশোধন করার জন্য অনেক বেশি সাংগঠনিক ওভারহেড রয়েছে (উদাহরণস্বরূপ, যদি গ্রন্থাগারটি আপডেট হয়ে যায় তবে সত্যিই একটি কাঁটা সংস্করণ বজায় রাখতে চান না কেবল ডিবাগিংয়ের জন্য)।
রোডিও ক্লাউন

0

রিটার্নের স্টেটমেন্টের উপর নির্ভর করে, আপনি যে এক্সপ্রেশনটি ফিরে আসছেন তা হাইলাইট করতে পারবেন এবং ডান-ক্লিক মেনু থেকে, "এক্সপ্রেশন মূল্যায়ন করুন" এর মতো কিছু হওয়া উচিত (এখন আমার সামনে গ্রহন নেই, তবে এটি এমনই কিছু) )। এটি আপনাকে দেখিয়ে দেবে যে কী ফিরিয়ে দেওয়া হচ্ছে।


4
রিটার্ন বৈশিষ্ট্যটি মূল্যায়নের পার্শ্ব-প্রতিক্রিয়াগুলি যেমন রয়েছে (উদাহরণস্বরূপ ডাটাবেস এন্ট্রিগুলি তৈরি করা হচ্ছে), রিটার্ন এক্সপ্রেশনটি মূল্যায়নের ফলে সিস্টেমের স্থিতিটি পরিবর্তিত হবে। যদিও পরামর্শ জন্য ধন্যবাদ।
রোডিও ক্লাউন

0

এটি কিছুটা সুদূরপ্রসারী, তবে এটি কোনও সহজ উপায় বলে মনে হচ্ছে না:

আপনি আগ্রহী পদ্ধতিগুলির রিটার্ন মান ধরে এমন দিকগুলি নিয়ে জারকে উপকরণের জন্য আপনি AspectJ ব্যবহার করতে পারেন Eএলপেসের ডকুমেন্টেশন অনুসারে, AspectJ প্রোগ্রামগুলি ডিবাগ করা যেতে পারে অন্যান্য প্রোগ্রামের মতোই ।

লাইব্রেরিটি পুনরায় সংশোধন না করে আপনার ক্লাস বুনানোর জন্য দুটি বিকল্প রয়েছে:

  • বাইনারি জেআর প্রক্রিয়াকরণটি গ্রহণযোগ্য হলে পোস্ট-কম্পাইল বোনা;

  • লোড-টাইম বয়ন, যার জন্য ভিএম-এ একটি বুনন এজেন্ট সক্রিয় করা প্রয়োজন।

গ্রহণের ডকুমেন্টেশন (উপরের লিঙ্ক) এবং অ্যাসপেক্টজে উন্নয়ন পরিবেশ গাইডও দেখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.