Есть ли способ узнать, какие символы экспортируются в объектном файле? - PullRequest
2 голосов
/ 06 февраля 2010

Привет, я работаю в среде Linux, и мне нужно сослаться на уже скомпилированный объектный файл, который предлагает мне некоторые сервисы (services.o), и я знаю некоторые из них, но я хотел бы знать, какие из них все из экспортированных символов этого.

Есть ли способ сделать это, не имея источников? Если да, то как?

Большое спасибо.

Ответы [ 3 ]

5 голосов
/ 06 февраля 2010

Попробуйте nm - этот инструмент предназначен именно для этой цели.

1 голос
/ 11 сентября 2017

или вы можете использовать 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
1 голос
/ 06 февраля 2010

Другой вариант - objdump, который также может показать вам кучу других вещей

...