আপনি কীভাবে আইডিই ছাড়াই ডিবাগ করবেন? [বন্ধ]


61

প্রতিবার আমি যখন আইডিই খুঁজছি (বর্তমানে আমি গোয়ের সাথে ঝাঁকুনি দিচ্ছি) আমি ভি, ইমাস, নোটপ্যাড ++ ইত্যাদির জন্য লোকেদের পরিপূর্ণ একটি থ্রেড পাই

আমি কোনও আইডিই এর বাইরে কখনও উন্নয়ন করিনি; আমার ধারণা আমি নষ্ট হয়ে গেছি আপনি কীভাবে আইডিই ছাড়াই ডিবাগ করবেন? আপনি কি কেবল লগিংয়ের মধ্যে সীমাবদ্ধ?


53
ওল্ডস্কুলের প্রিন্টফুল স্টাইলটি যতক্ষণ না আমি জানি :-)
অ্যান্ড্রু ওয়াল্টার্স

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

7
কমান্ড লাইন ডিবাগার, (বেশ কয়েকটি আইডিই ডিবাগার তাদের উপর ভিত্তি করে)
রাচেট ফ্রিক

14
আস্তে আস্তে এবং সাবধানে।
হতাশ

3
প্রিন্টগুলি বেশ সাধারণ হলেও এর ব্যবহারগুলি এমন কিছু বাগ লুকিয়ে রাখতে পারে যা জাতিগত অবস্থার মতো আরও সূক্ষ্ম।
জেমস

উত্তর:


86

একটি ডিবাগার ব্যবহার করে। বেশিরভাগ ক্ষেত্রে, কোনও আইডিই পর্দার আড়ালে কী করে - এটি কেবল একটি জিইউআই-তে অভিজ্ঞতা আবৃত করে।

ইউনিক্স-এ, সর্বাধিক ব্যবহৃত ডিবাগারগুলির মধ্যে একটি হ'ল জিএনইউ gdb, যা পূর্ববর্তী ইউনিক্স ডিবাগারগুলিকে বড় আকারে পরিবাহিত করেছিল dbx

কমান্ড লাইন থেকে ডিবাগিং দেখতে কেমন লাগে / অনুভূত হয় তার ধারণা পেতে আপনি জিডিবি ম্যানুয়ালটি দেখতে পারেন ।

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


18
"একটি ডিবাগার ব্যবহার করে" +1 এর জন্য। আইডিই
আইটি

1
আপনি যদি পাইথনে লিখেন তবে pdbআমি খুঁজে পাওয়া আইডিই ডিবাগারের চেয়ে আসলে ভাল better
অ্যাথাস্টার

1
@ সাইরিয়ন এবং এর ipdbচেয়ে ভাল;)
ইজকাটা

দুর্দান্ত - আমি জানতাম না যে বিদ্যমান, ইজকাটা ata ধন্যবাদ।
অ্যাথ্যাসার

@ joshin4colours ইন্টিগ্রেটেড! = সংগ্রহ, না?
কোল জনসন

35

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

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

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

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


7
এই. একেবারে এই। আমি খুঁজে পেয়েছি, কমপক্ষে আমার জন্য সমস্যাগুলি লজিক ত্রুটি বা মিথস্ক্রিয়া হতে থাকে যা কোনও ডিবাগার আরও স্পষ্ট করে না। আপনাকে বুঝতে হবে কেন কিছু ভুল হচ্ছে, ঠিক কী নয়
ভুয়া নাম

2
সম্পূর্ণরূপে জন্য +1 going backwards। আমি প্রায়ই অভিজ্ঞতা থাকতে: "আরে - waittaminute, এই না করার অধিকার মান কিভাবে হয়নি এই পরিণত এই ?", এবং কোড পড়ার সময়ের আউটপুটে আগে পিছে যেতে হবে। ডিবাগারগুলি পিছনের দিকে খারাপ।
ইজকাটা

হ্যাঁ, জিডিবি ডাম্পড কোর পরীক্ষা করার জন্য ভাল তবে এইরকম পরিস্থিতিতে আমি দেখতে পেলাম যে মুদ্রণ বিবৃতিগুলির অকৃত্রিম ব্যবহার সত্যিই সহায়তা করেছিল।
ব্রায়ান

ডিবাগারগুলি ব্যবহারযোগ্য তবে সংক্ষিপ্ত আকারের। একটি ভাল লগিং ফ্রেমওয়ার্ক সহ আমি আমার ডিবাগিং সেশনটি বিল্ড আপ করতে পারি build পরিস্থিতি বুঝতে সাহায্য করতে ডিবাগারটি ব্যবহার করুন, ডিবাগিং সেশন স্থায়ী করতে মুদ্রণ বিবৃতিগুলির সাথে পরিপূরক। আমি দেখতে পেয়েছি যে সময়ের সাথে সাথে আমি ডিবাগারের কম-বেশি মামলা করি এবং আরও বেশি উত্পাদনশীল হয়ে উঠি
নিউটোপিয়ান

হ্যাঁ, কাগজের টুকরো বা হোয়াইটবোর্ডের সাথে চিন্তা করা বা আপনার মনে কেবল ডিবাগ করার সর্বোত্তম উপায়। এটি প্রায়শই আপনার চিন্তা প্রক্রিয়া সংশোধন করে। কখনও কখনও ডিবাগার একটি সহজ উপায় যা আপনার প্রোগ্রামে বাগগুলি কেন ঘটে তার মূল সমস্যাটি সমাধান করতে পারে না :)
নিশান্ত

11

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

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


1
+1 অবশ্যই অন্য অপশনটি হ'ল আইডিই'র সম্পাদকের উপর রঙিন স্কিম এবং কীবাইন্ড সেট করা এবং ভান করুন :)
darvids0n

1
@ ডারভিডস0 এন, আমি কুড়ি বছর ধরে কোনও কিছুর জন্য আইডিই ব্যবহার করে আসছি এবং আমার কাছে এমন একটি সম্পাদকের সন্ধান করতে পেলাম যেটা সম্ভবত কোনও একদিন ইঙ্গিত করে যে এটি পরবর্তী শতাব্দীর একসময় চেষ্টা করার চেষ্টা করার কথা ভাবতে শুরু করে GNU Emacs এ একটি মোমবাতি রাখুন।
জন আর স্ট্রোহম

6

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


2

আমি বুঝতে পারছি না যে মুদ্রণ-বিবৃতি ব্যবহারের সাথে ডিবাগ করার জন্য কেন বিদ্বেষ রয়েছে। একটি সময় ছিল যখন একটি প্রোগ্রাম পুনরায় সংকলন করতে এবং লিঙ্ক করতে খুব বেশি সময় লেগেছিল, তবে আজ এটি মাত্র কয়েক সেকেন্ড সময় নেয়। আমি cout, প্রিন্টফ, কিউ ডেগুগ (), ইত্যাদির আউটপুট ব্যবহার করে খুব সহজেই ডিবাগ করতে পারি। প্রিন্টফ স্টেটমেন্টগুলি আপনাকে প্রোগ্রামের সমস্ত কিছুর ইতিহাসের চলমান ইতিহাস দেয় যা আপনি সত্যের পরে বিশ্লেষণ করতে পারবেন, ডিবাগারে দৌড়ানোর ফলে প্রোগ্রামটির চলমান চলমান প্রবাহটি আপনাকে ম্যানুয়ালি মনে করতে হবে। প্রিন্টফেসের সাহায্যে আপনি ভেরিয়েবলের মান নির্দিষ্ট ইউনিটে রূপান্তর করতে পারেন, এটিকে হেক্স, দশমিক, যা কিছুতেই প্রদর্শন করুন। প্রিন্টফ স্টেটমেন্টগুলি রুটিন এবং ভেরিয়েবলের নাম এবং লাইন নম্বরগুলিও তালিকাভুক্ত করতে পারে। অন্যান্য ভেরিয়েবলের উপর নির্ভর করে আপনি কেবলমাত্র কিছু অ্যারে উপাদান তালিকাবদ্ধ করতে পারেন। আপনি indireferences অনুসরণ করতে পারেন। আপনি আউটপুটটি খুব সহজেই নিয়ন্ত্রণ করতে পারেন, কাউন্টারে রাখুন, কেবল একটি লুপের মাধ্যমে নির্দিষ্ট সময় মুদ্রণ করুন, আপনি ডিবাগ করার সাথে সাথে মুদ্রণ বিবরণী যুক্ত এবং মুছে ফেলুন, ডিবাগিং আউটপুটের বিভিন্ন স্তর রয়েছে, ফাইলগুলিতে লিখুন ইত্যাদি your আপনার প্রোগ্রামের ইতিহাস কোনও ফাইলের লিখিত চেয়ে দেখতে আরও সহজ আপনি ম্যানুয়ালি যে পদক্ষেপগুলি দিয়েছিলেন সেগুলি মনে রাখার চেষ্টা করুন এবং প্রোগ্রামটি কী করেছে তা আবিষ্কার করার জন্য, সময়ের সাথে সাথে চলকগুলির বিষয়বস্তু লিখতে হবে। এবং পরিশেষে, মুদ্রণ-বিবৃতি দিয়ে আপনি এগুলি স্থায়ীভাবে রেখে দিতে পারেন, চালু এবং বন্ধ করতে, ভবিষ্যতের ডিবাগিংয়ের জন্য। আপনার প্রোগ্রামটির ইতিহাস কোনও ফাইলটিতে লিখিতভাবে দেখার চেয়ে সহজেই আপনি নিজে নিজে যা করেছেন তার সব জায়গাগুলি মনে রাখার চেষ্টা করার চেয়ে, এবং প্রোগ্রামটি কী তা আবিষ্কার করার জন্য সময়ক্রমে পরিবর্তনের সাথে সাথে ভেরিয়েবলের বিষয়বস্তু লিখতে হবে maybe করেছে এবং পরিশেষে, মুদ্রণ-বিবৃতি দিয়ে আপনি এগুলি স্থায়ীভাবে রেখে দিতে পারেন, চালু এবং বন্ধ করতে, ভবিষ্যতের ডিবাগিংয়ের জন্য। আপনার প্রোগ্রামটির ইতিহাস কোনও ফাইলটিতে লিখিতভাবে দেখার চেয়ে সহজেই আপনি নিজে নিজে যা করেছেন তার সব জায়গাগুলি মনে রাখার চেষ্টা করার চেয়ে, এবং প্রোগ্রামটি কী তা আবিষ্কার করার জন্য সময়ক্রমে পরিবর্তনের সাথে সাথে ভেরিয়েবলের বিষয়বস্তু লিখতে হবে maybe করেছে এবং পরিশেষে, মুদ্রণ-বিবৃতি দিয়ে আপনি এগুলি স্থায়ীভাবে রেখে দিতে পারেন, চালু এবং বন্ধ করতে, ভবিষ্যতের ডিবাগিংয়ের জন্য।


3
"এমন একটি সময় ছিল যখন একটি প্রোগ্রাম পুনরায় সংকলন করতে এবং লিঙ্ক করতে খুব বেশি সময় লেগেছিল, তবে আজ এটি কেবল কয়েক সেকেন্ড সময় নেয়"। আপনার ভাষা এবং প্রকল্পের আকারের উপর নির্ভর করে। আমি যদি আমার বর্তমান প্রকল্পে একটি শিরোনাম ফাইল পরিবর্তন করি তবে 256 জিবি র‌্যাম সহ 32-সিপিইউ মেশিনটি পুনঃনির্মাণ করতে প্রায় 65 মিনিট সময় লাগবে (আমি মজা করছি না)
নেমানজা ত্রিফুনোভিচ

লোকেদের মুদ্রণ বিবৃতি দিয়ে ডিবাগ করার জন্য "বিরক্তি" নেই, তারা কেবল একটি ডিবাগার পছন্দ করে। আমি আরও অনেক "প্রিন্টফ লোক" জানি যারা কখনও "ডিবাগার লোক" এর চেয়ে কখনও ডিবাগার ব্যবহার করেন না যারা প্রিন্টফেস ব্যবহার করে কখনও ডিবাগ করেন না।
কার্ল বিলেফেল্ট

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

2

জিমওয়াইজে প্রশ্নের উত্তরটি বেশ ভালভাবেই দিয়েছিল, তবে আমি ভেবেছিলাম আমার এটিকে যুক্ত করা উচিত, আপনি যদি একটি সম্পূর্ণ আইডিই ছাড়াই কাজ করা বেছে নেন, উইন্ডোজের জন্য মাইক্রোসফ্ট প্রদত্ত কমান্ড লাইন ডিবাগারকে সিডিবি বলে । আপনি উইন্ডোজ এসডিকে ডাউনলোড করার সময় উইনডিবিজি সহ জিডিআই সমতুল্য সহ আরও বেশ কয়েকটি সরঞ্জাম সিডিবি নিয়ে আসে ।


4
আপনি দয়া করে আরও বিশদে ব্যাখ্যা করতে পারেন যে প্রশ্নের উত্তরটি কীভাবে উত্তর দেয়?
gnat

আপনি ঠিক বলেছেন, নিজেই এটি প্রশ্নের উত্তর দেয় না। আমি অনুভব করেছি যে @ জিমওয়াইজের উত্তরটি প্রশ্নের উত্তরের উত্তর, তবে উইন্ডোজের জন্য কমান্ড লাইন ডিবাগারটি কোথায় পাওয়া যাবে সে সম্পর্কে কোনও তথ্য অন্তর্ভুক্ত করেনি। সুতরাং আমি বুঝতে পেরেছিলাম যে আমি তাদের জন্য একটি অতিরিক্ত উত্তর নিয়ে যাব এবং এটি কীভাবে উইন্ডোজ এ করব তা ভাবছি। আমি আমার উত্তর যতটা বলব আপডেট করব।
ড্রু মার্শ

2

আমি সাধারণত কোনও ডিবাগার ব্যবহার করি না, সম্ভবত প্রতি দু'সপ্তাহে একবার হলেও এটি আমি প্রথমে যাচ্ছি না।

আমার কাজের সর্বাধিক গুরুত্বপূর্ণ হাতিয়ারটি সর্বব্যাপী যা আমি প্রায় এটি উল্লেখ করতে ভুলে গিয়েছিলাম - স্ট্যাক ট্রেসস। আমার সম্মুখীন 90% এরও বেশি সমস্যার একটি স্ট্যাক ট্রেস পরীক্ষা করে সমাধান করা যেতে পারে। আপনার সরঞ্জামের উপর নির্ভর করে এই সরঞ্জামটি সর্বদা খুব সহায়ক হয় না তবে কোনও ভাষার দ্বারা সেগুলি ভালভাবে প্রয়োগ করা হলে তারা আপনাকে একটি আশ্চর্যজনক সময় সাশ্রয় করতে পারে।

আমার ধারণা, আমি সাধারণ সমস্যাগুলি সনাক্ত করার দ্বিতীয় সাধারণ উপায়টি হ'ল এটি সম্ভবত আমার সবেমাত্র পরিবর্তিত কোড। আমি প্রায়শই ইউনিট পরীক্ষা চালায় তাই আমি সাধারণত জানি যে আমি কী ভেঙেছি।

আরও জটিল বিকাশ এবং ডিবাগিংয়ের জন্য আমি কিছু ডিবাগ বা ট্রেস স্তরের লগ স্টেটমেন্ট যুক্ত করতে পারি। আমি উন্নয়নের সমস্যাগুলিকে আমার উত্পাদন ট্রেস / ডিবাগ লগিংয়ের তথ্য রাখতে সহায়তা করার জন্য একটি ভাল গাইড হিসাবে বিবেচনা করি, যা আমাকে নিয়ে যায়:

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

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

যদিও আমি মনে করি ডিবাগারগুলি একটি শক্তিশালী সরঞ্জাম, তবে তাদের আপনার সরঞ্জামবাক্সে একমাত্র সরঞ্জাম হতে দেবেন না!


1

কোনও স্বতন্ত্র পাঠ্য সম্পাদকের পাশাপাশি আপনি কোনও আইডিইতে ডিবাগারটি ব্যবহার করতে পারবেন না তার কোনও কারণ নেই। আমি সম্পাদনা করতে জ্যাপ, অন্য মেশিনে ডিবাগ করতে জেবিল্ডার এবং বেসমেন্টে একটি ফাইলসভার ব্যবহার করতাম। Ditionতিহ্যগতভাবে ডিবাগারগুলি কোনও আইডিই বরাবর টেনে না নিয়ে স্বতন্ত্র প্রোগ্রাম ছিল এবং এটিও কার্যকর।

এটি বিবেচনা করার মতো বিষয় যে বিস্তৃত পরীক্ষাগুলি ডিবাগগুলি স্থানচ্যুত করে। আপনার কোডের পরিবর্তে কোনও পরীক্ষিত বাগটিকে আপনার পরীক্ষায় একটি বাগ হিসাবে বিবেচনা করা সার্থক।

এছাড়াও আছে printf। এটি প্রতিটি লাইন থামার পরিবর্তে বিপুল পরিমাণে "লগিং" তৈরি করতে এবং এটির মাধ্যমে অনুসন্ধান করতে দরকারী। আমি বিশেষভাবে দরকারী মনে করি যদি আপনি লাইব্রেরি ক্লাসগুলি সংশোধন করতে পারেন যা আপনি উত্পাদনতে পরিবর্তন করতে পারবেন না, উদাহরণস্বরূপ -Xbootclasspath/p:জাভা লাইব্রেরি ক্লাস হ্যাক করে ।


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

1

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

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

আরও উপলব্ধ সরঞ্জামাদি সংগ্রহের জন্য দয়া করে পাইথনডেবাগিংটুলস উইকি পরীক্ষা করুন ।


মূল প্রশ্নটি পাই সম্পর্কে নয়, গো সম্পর্কে ছিল।
টিএমএন

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