পিছনে ট্র্যাকিং
পিছনে ট্রেসিং বৈশিষ্ট্যের সাথে সম্পর্কিত একটি ইভেন্টের একটি শেষ পয়েন্টটি চিহ্নিত করছে (নীচে দেখুন)। একবার সেখানে গেলে, ডিবাগারটিতে একটি ব্রেকপয়েন্ট স্থাপন করা হয়। বৈশিষ্ট্যটি ট্রিগার করা হয় এবং যখন ডিবাগারটি বন্ধ হয়। কলিং স্ট্যাকটি কলিংয়ের পথটি অনুসরণ করতে পর্যালোচনা করা হয়। কল স্ট্যাক চলার সময় আপনি পরিবর্তনশীল রাজ্যে নোট নিতে পারেন, বা ইভেন্টটি আবার পরীক্ষা করতে নতুন ব্রেকপয়েন্ট রাখতে পারেন।
বৈশিষ্ট্যটি আবার ট্রিগার হয় এবং ডিবাগারটি নতুন ব্রেকপয়েন্টগুলিতে থামে। তারপরে আপনি লক্ষ্যটি না পাওয়া পর্যন্ত ব্যাক ট্রেসিং পুনরায় বা ফরোয়ার্ড ট্রেসিং সম্পাদন করতে পারেন ।
পেশাদাররা ও কনস
- কল স্ট্যাকটি চালিয়ে যাওয়া এবং আপনি কোথা থেকে কীভাবে এসেছেন তা দেখতে সর্বদা সহজ।
- লক্ষ লক্ষ শর্ত থাকতে পারে যা শেষ পয়েন্টে পৌঁছানোর আগে সত্য হওয়া দরকার। আপনি যদি ইতিমধ্যে শেষ পয়েন্টটি জানেন তবে আপনি নিজেকে প্রচুর কাজ বাঁচিয়েছেন।
- ফিচারটি যদি ভেঙে যায়। আপনি কখনই শেষ পয়েন্টে পৌঁছাতে পারবেন না এবং এর কারণটি বের করার চেষ্টা করে সময় নষ্ট হতে পারে।
শেষ পয়েন্ট আবিষ্কার
কোনও বৈশিষ্ট্য ডিবাগ করার জন্য আপনাকে সোর্স কোডে চূড়ান্ত লক্ষ্যটি কোথায় অর্জন করা উচিত তা জানতে হবে। কেবলমাত্র এই বিন্দু থেকে আপনি কোডটি কীভাবে পেয়েছেন তা দেখতে ব্যাকট্রেস করতে পারেন। একটি উদাহরণ; কীভাবে পূর্বাবস্থায় সঞ্চালিত হয় তা বুঝতে। কোডগুলিতে জিনিসগুলি কোথায় পূর্বাবস্থায় ফেলা হয়েছে তা আপনি জানেন তবে কীভাবে জিনিসগুলি সেখানে আসে তা আপনি জানেন না । বৈশিষ্ট্যটি কীভাবে কাজ করে তা নির্ধারণ করতে এটি ব্যাকট্র্যাকিংয়ের প্রার্থী হবে ।
ফরোয়ার্ড ট্র্যাকিং
ফরোয়ার্ড ট্রেসিং কোনও বৈশিষ্ট্যের সাথে সম্পর্কিত একটি ইভেন্টের জন্য একটি সূচনা পয়েন্টটি চিহ্নিত করছে (নীচে দেখুন)। একবার সেখানে গেলে, লগিং বার্তাগুলি উত্স কোডের মধ্যে areোকানো হয় বা ব্রেকপয়েন্ট সেট করা হয়। আপনি বৈশিষ্ট্যের জন্য লক্ষ্যটি আবিষ্কার না করা পর্যন্ত আপনি সূচনা পয়েন্ট থেকে আরও দূরে অগ্রসর হওয়ার সাথে সাথে এই প্রক্রিয়াটি পুনরাবৃত্তি হয় ।
পেশাদাররা ও কনস
- এটি কোনও বৈশিষ্ট্য সন্ধানের জন্য সহজতম সূচনার পয়েন্ট।
- কোড জটিলতা ফরোয়ার্ড ট্রেসিংয়ের কার্যকারিতা হ্রাস করে। কোডে যত বেশি শর্ত রয়েছে তত বেশি সুযোগ আপনি ভুল পথে নিয়ে যাবেন।
- ফরোয়ার্ড ট্রেসিং এর ফলে প্রায়শই ব্রেকপয়েন্টগুলি সেট করার ফলাফল হয় যা সম্পর্কহীন ইভেন্টগুলির দ্বারা ট্রিগার করা হবে। ডিবাগিং প্রক্রিয়াটি বাধাগ্রস্থ করছে এবং আপনার অনুসন্ধানে হস্তক্ষেপ করছে।
স্টার্ট পয়েন্ট আবিষ্কার
আপনি কীওয়ার্ড, ব্যবহারকারীর ইন্টারফেস শনাক্তকারী (বোতামের আইডি, উইন্ডোর নাম) বা বৈশিষ্ট্যের সাথে সম্পর্কিত ইভেন্ট শ্রোতাদের সন্ধান করা সহজ ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি পূর্বাবস্থা ফিরিয়ে আনতে ব্যবহৃত বোতামটি দিয়ে শুরু করতে পারেন ।
নির্মূল প্রক্রিয়া
আপনি এটিকে স্টার্ট পয়েন্ট এবং শেষ পয়েন্ট অবস্থানের তুলনায় মধ্যম পয়েন্ট হিসাবে ভাবতে পারেন । আপনি যখনই ইতিমধ্যে জানেন যে কোনও বৈশিষ্ট্যে কোডের একটি অংশ ব্যবহৃত হয় আপনি নির্মূলকরণের প্রক্রিয়া সম্পাদন করেন তবে এটি বৈশিষ্ট্যের শুরু বা শেষ নয়।
মধ্যম বিন্দু থেকে আপনি যে দিকটি নিচ্ছেন তা প্রবেশ এবং প্রস্থানের সংখ্যার উপর নির্ভর করে। কোড শঙ্কটি যদি অনেক জায়গায় ব্যবহার করা হয়, তবে এই অবস্থানটি থেকে পিছনে ট্রেস করা খুব সময়সাপেক্ষ হতে পারে কারণ তাদের সকলকে পরিদর্শন করতে হবে। এরপরে আপনি এই তালিকাটি হ্রাস করতে নির্মূলকরণের একটি প্রক্রিয়া নিয়োগ করেন। বিকল্প, আপনি এই বিন্দু থেকে একটি ফরোয়ার্ড ট্রেস সঞ্চালন করতে পারেন , কিন্তু আবার যদি কোড খণ্ডটি অনেক জায়গায় ছড়িয়ে যায় তবে এটিও সমস্যা হতে পারে।
বৈশিষ্ট্যের জন্য পরিষ্কারভাবে কার্যকর করা হবে না এমন পাথ অনুসরণ না করে আপনাকে অবস্থানের দিকনির্দেশগুলি হ্রাস করতে হবে। এই কোডটি অতীতে নিয়ে যাওয়া এবং কেবল ব্রেকপয়েন্টগুলি স্থাপন করা যেখানে এটি সম্ভবত বৈশিষ্ট্যের সাথে সম্পর্কিত।
মিডল পয়েন্ট ডিবাগিংয়ের জন্য প্রায়শই আরও অগ্রিম আইডিই বৈশিষ্ট্য প্রয়োজন। কোড শ্রেণিবদ্ধতা এবং নির্ভরতা দেখার ক্ষমতা। এই সরঞ্জামগুলি ছাড়া এটি করা কঠিন।
পেশাদাররা ও কনস
- মাঝারি পয়েন্টগুলি প্রায়শই কোডের প্রথম পিস হয় যা আপনি যখন বৈশিষ্ট্যটির কথা ভাবেন তখন আপনার মাথায় headুকে যায়। আপনি নিজেকে বলে "আহা, এটি কাজ করতে XXXX ব্যবহার করতে হবে।"
- মধ্যম পয়েন্টগুলি সূচনা পয়েন্টগুলি সহজতম প্রকাশ করতে পারে ।
- মধ্যম পয়েন্টগুলি সিঙ্ক্রোনাইজেশন বা থ্রেডিং পরিবর্তনের দ্বারা হারিয়ে যাওয়ার পরে কোনও বৈশিষ্ট্যে ট্রেলটি ধরার সহজ উপায় হতে পারে।
- মধ্য পয়েন্টগুলি আপনাকে এমন কোডে নিয়ে যেতে পারে যেগুলির সাথে আপনি পরিচিত নন। কী চলছে তা শিখতে আপনার জন্য সময় ব্যয় করা।