কীভাবে Eclipse debugger এ ফিরে যেতে হবে?


129

Eclipse debugger এ রিভার্স এক্সিকিউশন করা কি সম্ভব? আমি যে বর্তমান প্রকল্পে কাজ করছি তাতে কিছু করার আগে কোনও ফাইল থেকে ডেটা পড়তে এবং আরম্ভ করার জন্য সর্বনিম্ন 5 সেকেন্ডের প্রয়োজন। আমি যদি ডিবাগারে ওভারস্টেপ করি তবে আমাকে প্রোগ্রামটি শেষ করে পুনরায় আরম্ভ করতে হবে এবং এতে যথেষ্ট সময় লাগে।

উত্তর:


136

উপরে থেকে বর্তমান পদ্ধতিটি পুনরায় প্রবেশের জন্য ফ্রেম কমান্ডের জন্য আপনি Elpipse এর ড্রপ ব্যবহার করতে পারেন । তবে এটি ঘটেছে এমন কোনও রাজ্যের পরিবর্তনগুলি তালিকাভুক্ত করবে না, সুতরাং আপনার পদ্ধতি অনুসারে এটি কাজ করতে পারে না।

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

আপডেট : ক্রোনন একটি বাণিজ্যিক পণ্য সরবরাহ করে যা এটি "জাভার জন্য ডিভিআর" হিসাবে বর্ণনা করে যা ODB এর মতো একই জিনিসগুলি অনেকগুলি করে বলে মনে হয়।


@ ম্যাট ম্যাকহেনরি আমি ODB1.5 ব্যবহার করার চেষ্টা করছিলাম; একটি স্বতন্ত্র জাভা প্রোগ্রামের সাথে তবে আমি কীভাবে এটি কাজ করব তা নিশ্চিত নই? আপনার কাছে ওডিবি সাইট ব্যতীত অন্য কোনও সংস্থান আছে যা এটিকে এককভাবে এবং একটিগ্রাহীকরণের সাথে কাজ করার পদক্ষেপগুলি ব্যাখ্যা করে?
আয়ুষমান

@ আয়ুষমান: না, আমি দুঃখিত, ওডিবি সাইটে যা আছে তার বাইরে আমার কিছু ভাগ করার নেই। এটি অন্যান্য জিনিসগুলির মধ্যে নতুন। ক্লাস ফাইল ফর্ম্যাটগুলির সাথে কাজ না করে আমি অবাক হব না। :(
ম্যাট ম্যাকহেনরি

আকর্ষণীয় উত্তর!
কৃষপ্রকাশ

সর্বজ্ঞানী ডিবাগার ওয়েবসাইটটি ডোমেনস্ক্যাটেড হয়েছে been
থরবজর্ন রাভন অ্যান্ডারসন

45

পূর্ববর্তী উত্তরে যা উল্লেখ করা হয়েছে তার বাইরে - যেমন ডিগ্রো ভিউতে এক্সিলিপসের ড্রপ টু ফ্রেম বৈশিষ্ট্য , যা স্ট্যাক ফ্রেমে পূর্বে ডিবাগিং পুনরায় আরম্ভ করে (তবে বৈশ্বিক / স্ট্যাটিক ডেটা রিভার্ট করে না) এবং সর্বজ্ঞানী ডিবাগার যা কিছুটা কাঁচা এবং এতটা নয় বিকশিত হচ্ছে - কয়েকটি গ্রহন-ভিত্তিক সরঞ্জাম রয়েছে যা (রান) সময়ে "ফিরে যেতে" ব্যবহৃত হতে পারে:

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

ডুবুরিরা কেবল পদ্ধতি কলগুলি রেকর্ড করে এবং সত্যিই JIVE এর মতো প্রোগ্রামের রাজ্যগুলি রেকর্ড করে না। প্রতিটি পদ্ধতি কল ইভেন্ট পরবর্তী পুনরুদ্ধার এবং বিশ্লেষণের জন্য সঞ্চিত হয়। এটি জাভা রান এবং ডিবাগ কনফিগারেশনগুলি মূলত ফিল্টারগুলি নির্দিষ্ট করতে প্রসারিত করে। ট্রেস বিরতি দেওয়া / পুনরায় শুরু / ফিল্টার সময়ে ফিল্টার করা যায়। একবার রেকর্ড হয়ে গেলে ডুবুরির দৃষ্টিভঙ্গি এটিকে একটি ইন্টারেক্টিভ সিকোয়েন্স ডায়াগ্রামে প্রদর্শন করতে পারে।

জীব এবং ডুবুরি একাডেমিক গবেষণা থেকে জারি করা ওপেন সোর্স প্রকল্প। নভেম্বর ২০১২ পর্যন্ত উভয় প্রকল্পই সক্রিয় রয়েছে।

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

এই সমস্ত প্লাগইন সংস্থানগুলিতে বেশ লোভী তাই একটি ভাল স্পেক মেশিন থাকা এবং তাদের ফিল্টার বৈশিষ্ট্যটি ব্যবহার করা ভাল। এগুলি সফলভাবে চালানোর জন্য একটি নির্দিষ্ট প্রয়োজনীয়তা হ'ল eclipse.ini এ গাদা স্থানটি প্রসারিত করা

আমার ক্ষেত্রে আমি এক্সএমএল পার্সিং প্রোগ্রামটি ডিবাগ করতে JIVE এবং ডুবুরি ব্যবহার করার চেষ্টা করেছি কিন্তু উত্সের অভাবে হিমশীতল সবসময়ই শেষ হয়েছিল। ডুবুরি লিনাক্স bit৪ বিবিটে চালানো কঠিন হতে পারে , এটি এই টিপসটি ব্যবহার করে উবুন্টু 32 বিবিট এবং সম্ভবত অন্যান্য 32 বিট ডিস্ট্রোজে কাজ করে । ডুবুরি উইন্ডোজে আরও ভাল কাজ করে তবে একটি উইন্ডোজ bit৪ বিবিট + bit৪ বিবিটি জেভিএম-এ আরও ভাল হয় অন্যথায় আপনি 32 বিট উইন্ডোতে সর্বাধিক 1.3-1.6 জিবি সীমাতে সীমাবদ্ধ থাকবেন । জীব আমার লিনাক্স bit৪ বিটতে দুর্দান্ত কাজ করে এবং অন্য প্ল্যাটফর্মগুলিতে দুর্দান্ত কাজ করে বলে মনে হচ্ছে।


ডুবুরি বন্ধ করা হয়েছে
20'16

12

হ্যাঁ , Eclipse CDT এর historicalতিহাসিক ডিবাগার বৈশিষ্ট্যটির সমর্থন রয়েছে।

ওপেন ডিবাগ কনফিগারেশন -> ডিবাগার -> সূচনার সময় বিপরীত ডিবাগ করা সক্ষম

আপনি টিপতে shift+F5বা shift+F6স্টেপ ব্যাকের মতো F5বা F6পদক্ষেপের জন্য এগিয়ে যেতে পারেন।


1
এই বিকল্পটি কি গ্রহনের সমস্ত সংস্করণে বিদ্যমান? আমি কোথাও এটি খুঁজে পেতে পারে যদি আমি ঝুঁকিপূর্ণ হয়।
ইঞ্জিনিয়ারবাটার_ডিজে

1
এর জিডিবি বৈশিষ্ট্য সোর্স.আর.আরগ / জিডিবি / উইকি / রিভার্সডিবগ যা এই বাগস.স্লিপস.আর / বুগস / শো_বগ । ওয়েল আমি অনুমান উত্তর 2009. হবে হ্যাঁ
সের্গেই

এটি সিডিটিতে অ্যাক্সেসযোগ্য।
সের্গেই

আমি একটি জাভা বিকাশকারী, তাই আমি অনুমান করছি যে সিডিটি আমার বেশি ব্যবহার হবে না?
ইঞ্জিনিয়ারবাটার_ডিজে

@ সের্গেই আমি উইন্ডোজ 7 এসপি 1 এর অধীনে একটি পুরানো স্প্রিংসোর্স সংস্করণ সহ এটি করছি। বিপরীত ডিবাগিং সক্ষম করতে আপনাকে প্রথমে-> ডিবাগ কনফিগারেশন-> মূল হিসাবে ডিবাগ করতে হবে। পৃষ্ঠার নীচে প্রক্রিয়া প্রবর্তক রয়েছে। এটি "স্ট্যান্ডার্ড ক্রিয়েট প্রসেস লঞ্চার ব্যবহার করে" বলবে এবং "অন্য নির্বাচন করুন ..." তে একটি হাইপার লিঙ্ক থাকবে। এটিতে ক্লিক করুন এবং "কনফিগারেশন সুনির্দিষ্ট সেটিংস ব্যবহার করুন" যাচাই করা হয়েছে কিনা তা নিশ্চিত করুন এবং "জিডিবি (জিএসএফ) তৈরি করুন প্রক্রিয়া প্রবর্তক" নির্বাচন করুন এবং ঠিক আছে ক্লিক করুন। "জিডিবি (জিএসএফ) ব্যবহারের প্রক্রিয়া প্রবর্তক তৈরি করুন" এখন মূল ট্যাবের নীচে প্রদর্শিত হবে।
স্যামি

5

আমি পক্ষপাতদুষ্ট, তবে ক্রোনন ঠিক আপনি যা খুঁজছেন তা করেন।

ফ্রেমে ড্রপ হু হু হু করে ফিরে যেতে পারে না, যেহেতু পদ্ধতিটি গাদাতে কিছু পরিবর্তন করেছে তবে তা আবার ফিরে যাবে না।


1
ক্রোনন কি আপনাকে রিয়েল টাইমে এটি করার অনুমতি দেয়? আমার বোঝাটি হ'ল আপনাকে প্রথমে ক্রোনন ব্যবহার করে একটি সেশন রেকর্ড করতে হবে এবং তারপরে আপনি সম্ভবত এই সেশনে ফিরে যেতে পারেন। অ্যাপ্লিকেশনটি পুনরায় চালু করার মতো ভাল না? অথবা হতে পারে আমি কিছু মিস করছি ..
রাম

2
হ্যাঁ আপনাকে প্রথমে আপনার অ্যাপ্লিকেশনটি রেকর্ড করতে হবে এবং এরপরে রেকর্ডিংয়ের পরে যেকোন সময় এটি ডিবাগ করতে পারেন। অ্যাপ্লিকেশনটি পুনরায় আরম্ভ করার থেকে এটি পৃথক, যেহেতু ত্রুটিটি পুনরুত্পাদন করার জন্য আপনাকে সমস্ত পদক্ষেপ নিতে হবে না। আপনি যা করেন তা হ'ল একবার বাগটি রেকর্ড করা হয় এবং তারপরে আপনি কেবল রেকর্ডিং ব্যবহার করে ডিবাগ করতে যে কোনও সময় আপনি এটি দেখতে পারেন। রেকর্ডিং প্লেব্যাক করতে আপনার মূল পরিবেশের কোনও অংশের প্রয়োজন নেই।
pdeva

ক্রোনন কি ডকার পরিবেশে কাজ করে? আমার eclise স্থানীয় নেই ..
চোই

3

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


1

প্রশ্নটি কোনও একলিপস ভাষা নির্দিষ্ট করে না এবং উত্তরগুলির অনেকগুলি জাভা ধরে নেয়।

যদি জিডিবি ডিবাগারের সাথে সি ++ এবং জিসিসি ব্যবহার করা হয় তবে এক্সিলিপসের রয়েছে Run->Move to Lineযা কাজ করে এবং ভিজ্যুয়াল স্টুডিও সেট নেক্সট স্টেটমেন্টের মতো কাজ করে । এক্ষেত্রে, গ্রিপস জিডিবিতে থাকা সক্ষমতা ব্যবহার করছে।

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

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