Libc এবং libstdc ++ চিহ্নের জন্য কীভাবে লিনাক্স 'পারফ রেকর্ড' কাজ করা যায়?


12

আমি perf record -gকোনও প্রোগ্রামের প্রোফাইলের জন্য x86-64 লিনাক্স ব্যবহার করছি । Libc বা libstdc ++ এর বেশ কয়েকটি চিহ্নের 0পিতামাতা হিসাবে রয়েছে: __GI___strcmp_ssse3(libc) এবং strcmp@plt(libstdc ++) উদাহরণস্বরূপ। (আমি প্রকৃতপক্ষে ডিবাগারের মধ্যে এই চিহ্নগুলি ভাঙ্গতে পারি এবং একটি ব্যাকট্র্যাস পেতে পারি))

আমি এই ফাংশনগুলির প্রধান কলকারীগুলি কী এবং সেগুলি কেন রেকর্ড করা হয় তা জানতে আগ্রহী। এটি কি কারণ libc এবং libstdc ++ এর x86_64-তে ফ্রেম পয়েন্টার নেই? এবং, আরও ব্যবহারিকভাবে, এই কাছাকাছি কিছু উপায় আছে?

উত্তর:


5

এটি একটি পুরানো প্রশ্ন, তবে এটি এখনই সম্ভব --call-graph dwarf। ম্যান পৃষ্ঠা থেকে:

 -g
       Enables call-graph (stack chain/backtrace) recording.

   --call-graph
       Setup and enable call-graph (stack chain/backtrace) recording, implies -g.

           Allows specifying "fp" (frame pointer) or "dwarf"
           (DWARF's CFI - Call Frame Information) as the method to collect
           the information used to show the call graphs.

           In some systems, where binaries are build with gcc
           --fomit-frame-pointer, using the "fp" method will produce bogus
           call graphs, using "dwarf", if available (perf tools linked to
           the libunwind library) should be used instead.

আমি বিশ্বাস করি এর জন্য কিছুটা সাম্প্রতিক লিনাক্স কার্নেল (> = 3.9? আমি সম্পূর্ণ নিশ্চিত নই)) আপনার ডিস্ট্রোর পারফেক্ট প্যাকেজটি libdw বা libunwind এর সাথে লিঙ্কযুক্ত কিনা তা আপনি পরীক্ষা করতে পারেন readelf -d $(which perf) | grep -e libdw -e libunwind। ফেডোরা ২০-এ পারফকে লিবিডডব্লিউয়ের সাথে সংযুক্ত করা হয়েছে।


perf record --call-graph dwarfআমার জন্য এই সমস্যা সমাধান করে। দুর্ভাগ্যক্রমে, মনে হচ্ছে বামনের তথ্য ব্যবহারের সময় পারফের কলার-ভিত্তিক (অর্থাত্ "উল্টানো") কল-গ্রাফগুলি দেখাতে সমস্যা রয়েছে। এজন্য আমি ভিজ্যুয়ালাইজেশনের জন্য ফ্লেমগ্রাফ ব্যবহার শুরু করেছি।
নীল

নোট করুন যে বামন
আনওয়াইন্ডিং

-2

perfএকটি কার্নেল সরঞ্জাম যা সিস্টেম কলের জন্য সময় কাটায়। আপনি GNU gprof খুঁজছেন। "জিআরপি - প্রদর্শন কল গ্রাফ প্রোফাইল ডেটা"। জিআরপিফ ব্যবহার করতে আপনাকে আপনার উত্সগুলি -pgস্যুইচ দিয়ে সংকলন করতে হবে।

এর পাশাপাশি রয়েছে প্রচুর পরিশীলিত প্রোফাইলিং সরঞ্জাম eclipse-cdt-profiling-framework

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