كيف تحصل على القيمة المهيئة للمتغير العالمي من ملف كائن؟
-
23-09-2019 - |
سؤال
إذا كان لديك ملف كائن ، كيف يمكنك الحصول على القيمة المهيئة للمتغير العالمي في قطاع بيانات ملف الكائن هذا؟ على سبيل المثال ، قل أنني فعلت ما يلي:
# 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
الخيار جديد بالنسبة لي.
لا تنتمي إلى StackOverflow