@ বেনভয়েগ্টের দুর্দান্ত তথ্যের পাশাপাশি আমাকে কিছু সংযোজন করার অনুমতি দিন:
প্রক্রিয়াটিতে একটি মেশিন কোড মান (কোনও নির্দেশ বা কোনও নির্দেশের অংশ) প্রতিস্থাপন করে একটি ব্রেকপয়েন্টটি সেট করা হয় যাতে কোডে অবস্থিত একটি নির্দিষ্ট ফাঁদ নির্দেশের সাথে ডিবাগ করা যায় যা বিরতিতে কাঙ্ক্ষিত (উত্স) লাইনের সাথে মিলে যায়। এই নির্দিষ্ট ফাঁদ নির্দেশটি ব্রেকপয়েন্ট হিসাবে ব্যবহারের জন্য বোঝানো হয়েছে - ডিবাগার এটি জানেন এবং অপারেটিং সিস্টেমটিও এটি জানেন।
প্রক্রিয়া / থ্রেডটি ডিবাগ হওয়া ট্র্যাপ নির্দেশকে আঘাত করে, যা প্রক্রিয়াটি ট্রিগার করে # জেন বর্ণনা করছেন, যার মধ্যে একটি প্রসঙ্গের স্ব্যাপের অর্ধেকটি অন্তর্ভুক্ত রয়েছে যা বর্তমানে চলমান থ্রেডকে স্থগিত করে (যার মধ্যে তার সিপিইউ রাষ্ট্রকে মেমরিতে সংরক্ষণ করা অন্তর্ভুক্ত রয়েছে) সম্ভাব্য পরবর্তী পুনরারম্ভের জন্য। যেহেতু এই ট্র্যাপটি একটি ব্রেকপয়েন্ট ট্র্যাপ, তাই অপারেটিং সিস্টেমটি সম্ভবত সম্ভবত @Ben বর্ণিত একটি প্রক্রিয়া ব্যবহার করে প্রক্রিয়াটিকে ডিবাগ হয়ে যায় এবং অবশেষে ডিবাগারটি পুনরায় সূচনা করে।
ডিবাগকারী তখন ডিগ্রিগ করা প্রসেস / থ্রেডের সংরক্ষিত অবস্থায় অ্যাক্সেস করার জন্য সিস্টেম কলগুলি ব্যবহার করে calls
কোডটি লঙ্ঘনকারী (পুনরায় চালু) কার্যকর করতে (যা বর্তমানে নির্দিষ্ট ফাঁদ নির্দেশ রয়েছে), ডিবাগার মূল মেশিন কোডের মানটি পুনরুদ্ধার করবে ব্রেক ব্রেকপয়েন্ট ট্র্যাপ নির্দেশের মাধ্যমে ওভাররোট করে, সম্ভবত অন্য কোনও ট্র্যাপ সেট করে (যেমন যদি একক পদক্ষেপ, অথবা ব্যবহারকারী নতুন ব্রেকপয়েন্টগুলি তৈরি করে) এবং প্রক্রিয়া / থ্রেডকে রান্নেবল হিসাবে চিহ্নিত করুন, সম্ভবত @Ben বর্ণিত একটি প্রক্রিয়া ব্যবহার করে।
আসল বিবরণগুলি আরও জটিল হতে পারে, এতে দীর্ঘক্ষণ চলমান ব্রেকপয়েন্টটি ধরে রাখার অর্থ হ'ল রিয়েল কোডের জন্য ব্রেকপয়েন্ট ট্র্যাপটি অদলবদলের মতো এমন কিছু করা যাতে লাইনটি চলতে পারে এবং তারপরে আবার ব্রেকপয়েন্টটি আবার অদলবদল করে ...
যারা নিবন্ধগুলি অন্য ওএস প্রক্রিয়া দ্বারা নিয়মিত ব্যবহৃত হচ্ছে না? তারা কীভাবে ওভাররাইট করা যায় না?
যেমন @ বেন বর্ণনা করেছেন, ইতিমধ্যে বিদ্যমান থ্রেড স্থগিত / পুনরায় শুরু বৈশিষ্ট্য ( মাল্টিটাস্কিংয়ের প্রসঙ্গ স্যুইচিং / অদলবদল ) ব্যবহার করে যা প্রসেসরকে সময় কাটা ব্যবহার করে একাধিক প্রক্রিয়া / থ্রেড দ্বারা ভাগ করে নিতে দেয়।
এটি কি কেবল সামগ্রীর স্ন্যাপশট এবং লাইভ ডেটা নয়?
এটি উভয়ই। যেহেতু থ্রেড যে ব্রেকপয়েন্ট আঘাত স্থগিত করা হয়, এটা সাসপেনশন সময় লাইভ ডেটার একটি স্ন্যাপশট (CPU- র রেজিস্টার, ইত্যাদি ..), এবং CPU- র রেজিস্টার মূল্যবোধের প্রামাণিক মাস্টার প্রসেসর থ্রেড হতে পুনরায় শুরু করা উচিত মধ্যে পুনঃস্থাপন । আপনি যদি সিবিইউ রেজিস্টারগুলি পড়ার এবং / অথবা পরিবর্তন করার জন্য ডিবাগারের ইউজার ইন্টারফেস ব্যবহার করেন (প্রক্রিয়াটি ডিবাগ হচ্ছে) এটি পড়বে এবং / অথবা সিস্টেম কলগুলি ব্যবহার করে এই স্ন্যাপশট / মাস্টার পরিবর্তন করবে।