هل هناك أي طريقة لمعرفة الرموز التي يتم تصديرها في ملف كائن؟

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

سؤال

مرحبا، أنا أعمل في بيئة Linux، وعلي الارتباط بملف كائن تم تجميعها بالفعل والتي تقدم لي بعض الخدمات (Services.o) وأنا أعلم بعضهم، لكن أود أن أعرف ما هي جميعها تصديرها رموز ذلك.

هل هناك أي طريقة لإنجاز هذا عدم وجود المصادر؟ إذا كان الأمر كذلك، كيف؟

شكرا جزيلا.

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

المحلول

يحاول nm - هذه الأداة موجودة لهذا الغرض فقط.

نصائح أخرى

خيار آخر هو objdump والتي يمكن أن تظهر لك مجموعة من الأشياء الأخرى

أو يمكنك استخدام readelf -s, هذا يوفر معلومات تفصيلية أكثر.

Symbol table '.symtab' contains 19 entries:
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS a.c
     2: 0000000000000000     0 SECTION LOCAL  DEFAULT    1 
     3: 0000000000000000     0 SECTION LOCAL  DEFAULT    3 
     4: 0000000000000000     0 SECTION LOCAL  DEFAULT    4 
     5: 0000000000000000     0 SECTION LOCAL  DEFAULT    5 
     6: 0000000000000000     0 SECTION LOCAL  DEFAULT    7 
     7: 0000000000000000     0 SECTION LOCAL  DEFAULT    8 
     8: 0000000000000000     0 SECTION LOCAL  DEFAULT    9 
     9: 0000000000000000     0 SECTION LOCAL  DEFAULT   11 
    10: 0000000000000000     0 SECTION LOCAL  DEFAULT   12 
    11: 0000000000000000     0 SECTION LOCAL  DEFAULT   14 
    12: 0000000000000000     0 SECTION LOCAL  DEFAULT   16 
    13: 0000000000000000     0 SECTION LOCAL  DEFAULT   17 
    14: 0000000000000000     0 SECTION LOCAL  DEFAULT   15 
    15: 0000000000000000    71 FUNC    GLOBAL DEFAULT    1 fa_global
    16: 0000000000000000     4 OBJECT  GLOBAL DEFAULT    4 a
    17: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND fb_ex
    18: 0000000000000050    17 FUNC    GLOBAL DEFAULT    1 test
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top