আমি কীভাবে কোরডাম্প ফাইলটি দেখতে পারি?


13

ক্র্যাশ থেকে একটি বাগ রিপোর্ট করার সময়, বাগটি ব্যক্তিগত করা হয় এবং একটি ফাইল CoreDump.gz নামে পরিচিত। বাগ ট্রেজ ডকুমেন্টেশন নিম্নলিখিত বলে:

যদি ক্র্যাশটিতে এখনও একটি কোরডম্প.gz সংযুক্তি থাকে, তবে স্বয়ংক্রিয়ভাবে সম্পূর্ণ প্রতীকী স্ট্যাক ট্রেস এবং নকলগুলির জন্য পরীক্ষা করা সম্ভব ছিল না।

Stacktrace.txt একটি মানুষের দ্বারা পঠনযোগ্য বলে মনে হচ্ছে। আমি কীভাবে স্ট্যাক ট্রেসটির অর্থ বুঝতে পারি। CoreDump.gz সহ কোরডাম্প মানব পাঠযোগ্য বলে মনে হয় না। একটি "সম্পূর্ণ প্রতীকী স্ট্যাক ট্রেস" কী? একটি "সম্পূর্ণ প্রতীকী স্ট্যাক ট্রেস" এর মধ্যে পার্থক্য কীভাবে আমি কোনও কোরডাম্প ফাইলের বিষয়বস্তু দেখতে পারি? (চেষ্টা করেছেন 'বিড়াল', তবে এটি পরিষ্কার নয়)

উত্তর:


15

Coredump.gz ক্র্যাশ হওয়া প্রোগ্রামটির দ্বারা অ্যাক্সেসযোগ্য (সংকুচিত) মেমরি। এটি একটি বাইনারি ফাইল। কর্ডার্পসগুলি হ'ল একটি ধনসম্পদ, যার সাথে বিভিন্ন ধরণের ব্যক্তিগত ডেটা মাইন করা হয়।

করডাম্পগুলি 'জিডিবি' চালিয়ে দেখা যায়:

gdb --core=mycoredump

অবশ্যই, আপনার এখনও এই কোরটির সাথে যুক্ত ডিবাগ প্যাকেজগুলির প্রয়োজন হবে।

তারপরে আপনি একটি স্ট্যাকট্রেস তৈরি করতে পারেন:

(gdb) bt

প্যারামিটার রেজোলিউশন ছাড়াই - বর্তমান থ্রেডের স্ট্যাকট্রেস তৈরি করতে - বা or

(gdb) thread apply all bt full

প্যারামিটার রেজোলিউশন সহ করডাম্পের সমস্ত থ্রেডের স্ট্যাকট্রেস তৈরি করতে।

স্ট্যাকট্রেস এবং সম্পূর্ণ স্ট্যাকট্রেসগুলি একটি প্রোগ্রামের মধ্যে নিয়ন্ত্রণ প্রবাহ দেখায়। পাইথনের জন্য, স্ট্যাকট্রেসের শীর্ষটি নীচে সবচেয়ে সাম্প্রতিক সহ সবচেয়ে পুরানো কলটি দেখায়; প্রায় সব কিছুর জন্য, শীর্ষটি হ'ল সাম্প্রতিক কল এবং নীচে সবচেয়ে পুরানো।

একটি পূর্ণ স্ট্যাকট্রেস কেবল প্রবাহকেই দেখায় না, তবে প্যারামিটারের মানগুলিও দেখায়। এখানে আমরা সাধারণত ব্যক্তিগত ডেটা সন্ধান করি - উদাহরণস্বরূপ, বলুন যে আপনি "পাসওয়ার্ড" নামক একটি প্যারামিটার সহ "ভ্যালিডপ্যাসওয়ার্ড" নামে একটি ফাংশন এবং "মাইক্রিটপ্যাসওয়ার্ড" এর একটি মান দেখতে পেয়েছেন ...

ডিবাগ প্যাকেজগুলি ইনস্টল করা থাকলে স্ট্যাকট্রেসগুলি কেবলমাত্র সহায়ক হয় (যাতে স্ট্যাক ফ্রেমগুলি এমন কিছুতে সমাধান করা যায় যা আমরা সহজেই পড়তে পারি)। স্ট্যাকট্রেস বিশ্লেষণের জন্য এমন একটি উত্স প্রয়োজন যা এই নির্দিষ্ট প্রোগ্রামের উদাহরণটি তৈরি করতে ব্যবহৃত হয়েছিল।


কোরডাম্প একটি বাইনারি ফাইল, তবে আপনি এটি কীভাবে দেখবেন? স্ট্যাকট্রেসগুলি কেবল তখনই সহায়ক যখন ডিবাগ প্যাকেজগুলি ইনস্টল করা থাকে, তবে কেন অ্যাপোর্ট অন্যথায় এটি রিপোর্ট করে?
komputes

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

2
এটি এখন কেন অ্যাপের জন্য প্রাসঙ্গিক, এফোর্টটিতে এমন একটি "রিট্রেসারস" রয়েছে যা আপনার সিডরম্পকে ধরে ফেলবে, ডিসির একটি বাক্সে ডিবাগ প্যাকেজগুলি ইনস্টল করুন এবং তারপরে বাগের রিপোর্টে পুরো স্ট্যাকট্র্যাক্ট সংযুক্ত করুন।
19:30

অতিরিক্ত ডকুমেন্টেশন: gnu.org/software/gdb/docamentation
komputes

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