তবে, অন্যদের থেকে ভিন্ন, LMDBG * পূর্ণ * stacktracesand প্রতি মডিউল ভিত্তিতে একটি অ্যাপ্লিকেশন বিশ্লেষণ বিশ্লেষণ thusallowing থেকে লগ-ইন আলাদা উত্পন্ন;.
LMDBG মেমরি leaksand ডবল মুক্ত & nbsp সনাক্ত করতে পারবেন যে একটি অ্যাপ্লিকেশন.
-, lmdbg রান প্রধান lmdbg ইউটিলিটি. এটি একটি অ্যাপ্লিকেশন সঞ্চালিত হয় এবং একটি লগ ফাইল তৈরি (বা FIFO) যেখানে সব বলা না malloc / calloc / realloc / মুক্ত / memalign / posix_memalign আমন্ত্রণ তাদের ইনপুট সঙ্গে নিবন্ধিত (বাইট গণনা, পয়েন্টার), আউটপুট (পয়েন্টার) এবং (!!! অনন্য বৈশিষ্ট্য !!!) পূর্ণ স্টেকট্র্যাস (পয়েন্টার).
উদাহরণ:
& Nbsp; & nbsp; & nbsp; & nbsp; $ বিড়াল পরীক্ষা / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; # অন্তর্ভুক্ত
& Nbsp; & nbsp; & nbsp; & nbsp; ) (প্রধান int
& Nbsp; & nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; অকার্যকর * P1 = শূন্য;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; অকার্যকর * P2 = শূন্য;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; P1 = malloc (555);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; P2 = realloc (P2, 666);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; P2 = realloc (P2, 777);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; P2 = realloc (P2, 888);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; return 0;
& Nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; & nbsp; $ জিসিসি -O0 -G -o _test2 পরীক্ষা / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg রান -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; $ বিড়াল _log
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc জন্য (নাল, 666) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804874e
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc জন্য (0xbb901800, 777) -> 0xbb901c00
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048764
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc জন্য (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
উল্লেখ্য: সম্পূর্ণ স্টেকট্র্যাস, আপনি আপনার আবেদন বিশ্লেষণ করতে পারবেন আপনি ব্লক / উপাদান অন্যদের এবং কেন আরো বেশী মেমরি প্রয়োজন কি সনাক্ত করতে পারেন, অর্থাত্. lmdbg-Sym এই জন্য খুব গুরুত্বপূর্ণ হাতিয়ার, নীচে দেখুন.
-, lmdbg-ডিস্ক্রিপ্টরের লিক সম্বন্ধে সূচিত lmdbg রান এবং আউটপুট সব পাওয়া মেমরি তথ্য ফাঁসের দ্বারা সৃষ্ট একটি লগ ফাইল বিশ্লেষণ
উদাহরণ:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-ডিস্ক্রিপ্টরের লিক সম্বন্ধে সূচিত _log & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; realloc জন্য (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
-, lmdbg-Sym source.c করতে ঠিকানা পরিবর্তিত: 999 এটা সম্ভব যদি
উদাহরণ (GDB (1) কর্ম হয়):
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-Sym ./_test2 _log
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; পরীক্ষা / test2.c: 8 প্রধান
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc জন্য (নাল, 666) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804874e & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; পরীক্ষা / test2.c: 9 প্রধান
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc জন্য (0xbb901800, 777) -> 0xbb901c00
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048764 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; পরীক্ষা / test2.c: 10 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; প্রধান
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc জন্য (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; পরীক্ষা / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; প্রধান
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
উদাহরণ (addr2line (1) এখানে কাজ করে):
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-Sym একটি ./_test2 _log
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; পরীক্ষা / test2.c: 8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc জন্য (নাল, 666) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804874e & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; পরীক্ষা / test2.c: 9
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc জন্য (0xbb901800, 777) -> 0xbb901c00
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048764 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; পরীক্ষা / test2.c: 10
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc জন্য (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; পরীক্ষা / test2.c: 11
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
-, lmdbg-sysleaks - greps বা অগ্রাহ্য সিস্টেম মেমরি ডিস্ক্রিপ্টরের লিক সম্বন্ধে সূচিত পরীক্ষা / lmdbg * .conf ফাইল দেখুন, libdl, সি ++ STL ইত্যাদি libc পাওয়া যায়. ডিফল্ট কনফিগ ফাইল আছে: ~ / .lmdbg.conf এবং /etc/lmdbg.conf
-, lmdbg = lmdbg রান + + lmdbg-ডিস্ক্রিপ্টরের লিক সম্বন্ধে সূচিত + + lmdbg-Sym + + lmdbg-sysleaks
যে lmdbg সব কিছু এক উচ্চ স্তরের টুল.
উদাহরণ:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg -v -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; মেমরি তথ্য ফাঁসের দায়ের সনাক্ত করা এবং সংরক্ষণ করা হয়েছে '_log'
& Nbsp; & nbsp; & nbsp; & nbsp; $ বিড়াল _log
& Nbsp; & nbsp; & nbsp; & nbsp; realloc জন্য (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; পরীক্ষা / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; প্রধান
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; পরীক্ষা / test2.c: 8 প্রধান
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
নতুন এই রিলিজে কি:
- lmdbg-Sym আর segfaults কারণে স্টেকট্র্যাস সঙ্গে সমস্যা (3).
- অনেক সহজ এবং সঠিক ঠিকানা রূপান্তর পদ্ধতি যোগ করা হয়েছিল.
- কারণে GDB জন্য অপ্টিমাইজেশন উল্লেখযোগ্য speedups ছিল.
- lmdbg-রান, glibc malloc আঙ্গুলসমূহ আর ব্যবহার হয়.
- lmdbg নিজস্ব কোড stacktraces মধ্যে অন্তর্ভুক্ত করা হয় না.
- নতুন -n বিকল্প যোগ করা হয়েছে, এবং -v বিকল্প একটি গৌণ ফিক্স পেয়েছি.
- lmdbg-stat একটি বিনামূল্যে (3) বা realloc জন্য (3) স্টেকট্র্যাস একটি উপযুক্ত malloc / realloc জন্য (3) স্টেকট্র্যাস ছাড়া ছিল উপস্থিত একটি শূন্য ডি-রেফারেন্স জন্য সংশোধন করা হয়েছে পেয়েছি.
- অন্যান্য ছোটখাট সংশোধন করা হয়েছে ও উন্নত বৈশিষ্ট্য, রিগ্রেশন পরীক্ষা উন্নতি, এবং (3). স্টেকট্র্যাস উন্নতি ছিল
সংস্করণ 1.1.0 নতুন কি:.
- রিগ্রেশন পরীক্ষা একটি ফিক্স করুন
- lmdbg রান. শূন্য ঠিকানা, glibc এর ব্যাক-ট্রেস (3) দ্বারা উত্পন্ন stacktraces থেকে সরিয়ে ফেলা হয়
- এই সমাধান করা হয়েছে lmdbg-stat (1) দাবি করে.
- ডবল, & quot; 0x, & quot; তথ্য বিভাগে, & quot; & quot বিষয়; সংশোধন করা হয়েছে (NetBSD বা দেখা).
- ব্যাক-ট্রেস (3) (যদি পাওয়া যায়) পরিবর্তে বিল্ট ইন বাস্তবায়ন. ব্যবহার করা হয়
- lmdbg-Sym. কয়েক বাগ চিহ্ন ঠিকানার রূপান্তর মধ্যে সংশোধন করা হয়েছে
- lmdbg-stat: অর্ধ পড়া লাইন এখন উপেক্ষিত হয়, তাই আছে কোন প্রমাণ (3) debugged হচ্ছে একটি অ্যাপ্লিকেশন হত্যা করা হয় যখন এর .
- awk লেখা একটি বিকল্প বাস্তবায়ন অপসারণ করা হয়েছে.
Libexecinfo থেকে
কি সংস্করণ 0.17.0 নতুন:
- এই সংস্করণ উন্নতি করা হয়েছে অনেক যোগ ম্যানুয়াল পেজ, lmdbg, lmdbg রান, এবং lmdbg-Sym মধ্যে নতুন বৈশিষ্ট্য, এবং ছোটখাট সংশোধন করা হয়েছে lmdbg-আপনি stat.
- lmdbg এখন শুধু মেমরি তথ্য ফাঁসের খুঁজে না, আরো অনেক কিছু করতে পারবেন, যা একটি মেটা হাতিয়ার.
কি সংস্করণ 0.15.1 নতুন:
- calloc লগিং (3) আমন্ত্রণ নিষ্ক্রিয় করা glibc-ভিত্তিক সিস্টেমের (লিনাক্স, গনুহ / kFreeBSD, এবং হয়ত অন্যদের) কারণ lmdbg রান তাদের কর্ম ব্যর্থ হবে.
- ক্ষুদ্র পরিষ্কার আপ, সংশোধন করা হয়েছে, এবং উন্নতি. Mk-কনফিগার করুন & gt;. = 0.20 বিল্ডিং জন্য প্রয়োজন বোধ করা হয়
কি সংস্করণ 0.14.0 নতুন:
- নতুন সরঞ্জাম: lmdbg-স্ট্যান্ড, lmdbg-, grep সংগ্রহ করা এবং মেমরি বরাদ্দ সম্পর্কে পরিসংখ্যানগত তথ্য বিশ্লেষণের জন্য lmdbg-বাছাই করা হয়.
- lmdbg রান: lmdbg রান জন্য নতুন বিকল্প:. সংক্ষিপ্ত stacktraces জেনারেট করার জন্য -S এবং -এম
- lmdbg-Sym. Lmdbg রান এর আউটপুট থেকে প্রোগ্রামের নাম প্রাপ্তির জন্য নতুন বিকল্প -p
- ফিক্স: 'mkcmake পরীক্ষা' তার অস্থায়ী ফাইল মুছে ফেলা হয় .
পাওয়া মন্তব্যসমূহ না