كيف تحصل على القيمة المهيئة للمتغير العالمي من ملف كائن؟

StackOverflow https://stackoverflow.com/questions/2343828

سؤال

إذا كان لديك ملف كائن ، كيف يمكنك الحصول على القيمة المهيئة للمتغير العالمي في قطاع بيانات ملف الكائن هذا؟ على سبيل المثال ، قل أنني فعلت ما يلي:

# I'm interested in the variable foo inside bar.o in libbar.a:
$ ar -x libbar.a bar.o
$ nm --print-size bar.o | grep foo
00000048 00000004 D foo

هذا يخبرني ذلك foo هل في الإزاحة 0x48 في قطاع البيانات بحجم 4 ، ولكن كيف يمكنني الحصول على القيمة المهيمنة الفعلية التي تحصل عليها عند التحميل؟

هل كانت مفيدة؟

المحلول

اكتشفه:

objdump -j.data -s bar.o

هذا يعطي Hexdump لقطاع البيانات ، مما يجعل من السهل البحث عن القيم. لقد استخدمت objdump -d قبل تفكيك الرمز ، ولكن -s الخيار جديد بالنسبة لي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top