বর্তমানে শুধুমাত্র Linux- র জন্য কাজ করে. DBGMEM গনুহ সাধারণ পাবলিক লাইসেন্সের অধীনে উন্মুক্ত করা হয়েছে
টুল যেমন সমস্যা খুঁজে পেতে আপনাকে সাহায্য করে
& Nbsp; 1. মেমরি ডিস্ক্রিপ্টরের লিক সম্বন্ধে সূচিত
& Nbsp; 2. গাদা মেমরি দুর্নীতি
& Nbsp; 3. অপব্যবহার, নির্বাচিত স্ট্যান্ডার্ড লাইব্রেরি ফাংশন অবৈধ যুক্তি.
& Nbsp; 4. দুর্নীতি গাদা
& Nbsp; 5. মুক্ত বা অ-সক্রিয়া গাদা মেমরি ব্যবহার করুন.
& Nbsp; 6. আপনি টুল প্রসারিত করতে পারবেন, অতিরিক্ত API- এর আর্গুমেন্ট পরীক্ষা
টুল তার বৈশিষ্ট্য যোগ করার জন্য glibc মেমরি বরাদ্দ ফাংশন, মেমরি এবং স্ট্রিং ম্যানিপুলেশন ফাংশন প্রাধান্য পেয়ে থাকে.
আপনি কিছু উন্নত বৈশিষ্ট্য ব্যবহার করার জন্য আপনার প্রোগ্রাম পরিবর্তন করতে ইচ্ছুক হতে পারে যদিও DBGMEM, আপনার প্রোগ্রাম কোন পরিবর্তন করার প্রয়োজন হয় না.
DBGMEM সি এবং সি ++ প্রোগ্রাম জন্য একটি ওপেন সোর্স মেমরি ডিবাগার এবং লিনাক্স অপারেটিং সিস্টেম অধীন সঞ্চালিত হয়, এবং গনুহ সাধারণ পাবলিক লাইসেন্স এর অধীনে উন্মুক্ত. DBGMEM glibc স্ট্যান্ডার্ড গ্রন্থাগারের অংশ ডিবাগ চেক যোগ করা হয়েছে; এটা debugged প্রক্রিয়ার অ্যাড্রেস স্পেস মধ্যে লোড করা হয় যে শেয়ার করা লাইব্রেরির হিসাবে প্রয়োগ করা হয়.
সরঞ্জাম
DBGMEM, প্রতিটি debugged প্রোগ্রাম লোড করা যাবে বিভিন্ন মেমরি ডিবাগ সামগ্রী আছে; সহজ টুল সব বরাদ্দ মেমরির ব্লক ট্র্যাক রাখে, এবং যেমন ব্লক বরাদ্দ মেমরির ব্লক পূর্বে যে একটি রঙ্গভূমি হেডারের মধ্যে, বরাদ্দ ছিল যখন সময়ে স্ট্যাক বই পালন তথ্য, যোগ করা হয়েছে; এটি আগে এবং বরাদ্দ ব্লক পরে গার্ড শব্দ যোগ করা হয়েছে; সহজ টুল সেরা মেমরি লিক সমস্যার সনাক্তকরণের জন্য ব্যবহার করা হয়; এরিনা হেডার debugged হচ্ছে যে প্রোগ্রাম দ্বারা ক্ষতিগ্রস্ত পেতে পারেন. গ্রহণ চেক একটি বেনামী স্মৃতি-ম্যাপ করা ফাইল স্ট্যাক বন্ধ সব বই-পালন তথ্য রাখে; এই মেমরি মুছে বাগ প্রতিরোধ টুল আরো জোরালো করে তোলে. পরীক্ষণ টুল দ্রুত যে গাদা ব্লক মধ্যে অন্তর্ভুক্ত একটি পয়েন্টার মান জন্য কোন গাদা ব্লক তথ্য সন্ধান করার ক্ষমতা যোগ করা হয়েছে; পরীক্ষণ টুল এই ফাংশন দ্বারা মর্মান্তিক সম্ভব স্ট্যাক জন্য সাধারণ স্ট্রিং পরামিতি এবং মেমরি ম্যানিপুলেশন ফাংশন, এবং চেক বৈধতা যোগ করা হয়েছে.
অপারেশন মোড
হিসাবে আপনি ডিবাগার সঙ্গে সবচেয়ে প্রোগ্রাম চালাতে পারেন; debugged প্রোগ্রাম প্রয়োজন হয় না টুল কোন নির্দিষ্ট লাইব্রেরি সঙ্গে লিঙ্ক করা; টুল ডিএলএল ইনজেকশন টেকনিক মাধ্যমে পরীক্ষা করা হয় যে একটি প্রক্রিয়ার অ্যাড্রেস স্পেস মধ্যে লোড করা হয় যে একটি শেয়ার্ড লাইব্রেরি হয়. ডায়নামিক Linker এর LD_PRELOAD বৈশিষ্ট্য অন্য কোন লাইব্রেরি লোড করার পূর্বে, প্রথম লাইব্রেরি ভাগ সরঞ্জাম লোড করতে ব্যবহৃত হয়; মেমরি বরাদ্দ এবং স্ট্রিং ম্যানিপুলেশন ফাংশন বাধাপ্রাপ্ত প্রথম হাতিয়ার লাইব্রেরি থেকে বলা হয়; এই তার পরীক্ষা যোগ করার টুল সক্ষম. আরও debugged প্রক্রিয়ার পরিসমাপ্তি পর প্রক্রিয়াকৃত হয়, যা একটি কাঁচা রিপোর্ট লেখা আছে debugged প্রক্রিয়ার রানটাইম সময়; উদ্দীপ্ত রিপোর্ট কাঁচা প্রতিবেদনে অন্তর্ভুক্ত ট্রেস গাদা সিম্বলিক ফাংশন নাম যোগ করা হয়েছে. GDB ডিবাগার কাঁচা রিপোর্টের আরও প্রক্রিয়াকরণের সময় সিম্বলিক ঠিকানা মধ্যে সাংখ্যিক ঠিকানা চালু করার জন্য ব্যবহার করা হয়
বৈশিষ্ট্যগুলি :.
- মেমরি তথ্য ফাঁসের ; এই পরীক্ষণ হাতিয়ার এবং সহজ সরঞ্জাম উভয় ক্ষেত্রে প্রযোজ্য. টুল ব্লক বরাদ্দ ছিল যখন সময়ে গৃহীত স্ট্যাক ট্রেস সঙ্গে একসঙ্গে প্রতিটি বরাদ্দ গাদা ব্লক ট্র্যাক করে; উপরন্তু একটি পূর্ণসংখ্যা ট্যাগ ব্যবহার করে এই নির্দেশটি ব্লক বরাদ্দ ছিল যখন সময় চরিত্রকে যে একটি লজিক্যাল সময়ের / `প্রজন্মের 'ট্র্যাক, প্রতিটি বরাদ্দের রাখা হয়. ব্যবহারকারী দ্বারা অনুরোধ করা হলে এই তথ্য একটি রিপোর্ট সবসময় প্রক্রিয়া প্রস্থানের উত্পাদিত, বা হয়. এই তথ্য মেমরি তথ্য ফাঁসের ইনস্ট্যান্সের এবং কারণ খুঁজে পেতে সাহায্য করে.
- এই শুধুমাত্র '' 'চেক টুল' '' ক্ষেত্রে প্রযোজ্য হয়; Glibc স্ট্রিং ম্যানিপুলেশন ফাংশন এবং মেমরি কপি / glibc পদক্ষেপ ফাংশন অপব্যবহার; টুল সাধারণ মান লাইব্রেরি ফাংশন উপর একটি প্রথম পাস পায় যারা চেক ফাংশন দ্বারা দুর্নীতি গাদা, এটা ফাংশন একটি বিদ্যমান যুক্তি গাদা ব্লক মুছে ফেলা হবে যে পরীক্ষা করা হয়; এটি কলিং থ্রেড স্ট্যাক ক্ষতিগ্রস্ত হতে না করবে পরীক্ষা করা হয়.
- এখন পায় না CFLAGS এনভায়রনমেন্ট ভেরিয়েবল
- স্ক্রিপ্ট আপডেট করা, এটা এখন প্রয়োজন সনাক্ত করার চেষ্টা করে সেটিংস অন্তর্গঠিত; এখনও এখন automake করি না কিভাবে যদিও
- মত (কাঁটাচামচ এবং Exec কল অনুসরণ -f বিকল্প যোগ করা হয়েছে কাঁটাচামচ / Exec)
<লি> না সক্রিয়া গাদা মেমরি বা মুক্ত গাদা মেমরি ব্যবহার; এই পরীক্ষণ হাতিয়ার এবং সহজ সরঞ্জাম উভয় ক্ষেত্রে প্রযোজ্য. টুল বাইট মান 0xDD এবং বাইট মান 0xEE সব মুক্ত মেমরি সব সদ্য বরাদ্দ মেমরির নির্ধারণ করে দিচ্ছে; এই মান ব্যবহার সাধারণত এই মেমরি এলাকায় একটি পয়েন্টার উপস্থিত থাকে, তাহলে, তারপর একটি ক্র্যাশ হতে হবে মান 0xDDDDDDDD সঙ্গে একটি পয়েন্টার dereferencing, ত্রুটি প্রোগ্রাম বাড়ে.
<লি> গাদা মেমরি দুর্নীতি; এই পরীক্ষণ হাতিয়ার এবং সহজ সরঞ্জাম উভয় ক্ষেত্রে প্রযোজ্য. মুছে ফেলা হয় এবং প্রতিটি গাদা ব্লক একটি মেমরি উপসর্গ এবং প্রত্যয় স্থাপন দ্বারা underwrites মেমরি জন্য টুল চেক; প্রত্যয় এর মান তারপর পরিবর্তিত হয় যদি / অর্থলগ্নী এক গাদা মুছে ফেলা সনাক্ত করা হয়.
এই রিলিজে নতুন কি:
<লি> -ldl বিকল্প dbgmem লাইব্রেরি নির্মাণ
র মধ্যে উপস্থিত glibc- কার্নেল সংস্করণ বিয়ে হয় <লি> শেয়ার্ড লাইব্রেরি এখন, (uname -r) ডিরেক্টরির lib / $ মধ্যে স্থাপন করা হয়.
<লি> কিছু সিস্টেমে ফিক্স সংকলন (কনফিগার ধাপ)
<লি> স্ক্রিপ্ট চালাতে সমস্যা বিকল্প যোগ (-m - স্ট্যাক কিছু প্রজন্মের জন্য শুধুমাত্র ট্রেস উৎপন্ন)
কি সংস্করণ 1.9.1 নতুন:
<লি> জিসিসি 2.9.6 জন্য সি মোডে সংকলন ত্রুটি সংশোধন করা হয়েছে; জিসিসি এখনও C ++ উপর অভ্যন্তরীণ ত্রুটি সঙ্গে বিপর্যস্ত মোড নির্মিত
<লি> বিকল্প -g (malloc এর পেয়ারিং জন্য চেক নিষ্ক্রিয় / নতুন / নতুন [] এবং বিনামূল্যে / মুছে দিন / মুছে দিন [] সি ++ মোড) যোগ
সংস্করণ 1.7 নতুন কি:
<লি> এখন প্রতিবেদন ফাইলটি হেডারের মধ্যে debugged প্রক্রিয়া কমান্ড লাইন আউট ছাপে.
<লি> মানচিত্র ফাইলের নাম এখন PID অন্তর্ভুক্ত করা হয়েছে.
<লি> Default দ্বারা কাঁচা রিপোর্টের ফাইল মুছে দিন; তাদের অনেক আছে;
<লি> sprintf সব ব্যবহার snprintf পরিবর্তন
পাওয়া মন্তব্যসমূহ না