Мы можем взглянуть на документацию MSDN для dumpbin /SYMBOLS
:
Эта опция отображает таблицу символов COFF. Таблицы символов существуют во всех
объектные файлы. Таблица символов COFF появляется в файле изображения, только если она
связан с /DEBUG.
Ниже приведено описание вывода для / SYMBOLS. дополнительный
информацию о значении вывода / SYMBOLS можно найти, посмотрев
в winnt.h (IMAGE_SYMBOL и IMAGE_AUX_SYMBOL) или в документации COFF.
Учитывая следующий пример дампа:
Dump of file main.obj
File Type: COFF OBJECT
COFF SYMBOL TABLE
000 00000000 DEBUG notype Filename | .file
main.cpp
002 000B1FDB ABS notype Static | @comp.id
003 00000000 SECT1 notype Static | .drectve
Section length 26, #relocs 0, #linenums 0, checksum 722C964F
005 00000000 SECT2 notype Static | .text
Section length 23, #relocs 1, #linenums 0, checksum 459FF65F, selection 1 (pick no duplicates)
007 00000000 SECT2 notype () External | _main
008 00000000 UNDEF notype () External | ?MyDump@@YAXXZ (void __cdecl MyDump(void))
String Table Size = 0x10 bytes
Summary
26 .drectve
23 .text
Следующее описание для строк, начинающихся с номера символа,
описывает столбцы с информацией, относящейся к пользователям:
Первым трехзначным числом является индекс / номер символа.
Если третий столбец содержит SECTx, символ определяется в этом
раздел объектного файла. Но , если появляется UNDEF, он не определен в
этот объект и должен быть разрешен в другом месте.
Пятый столбец (статический, внешний) указывает, является ли символ
видимый только внутри этого объекта, или является ли он публичным (видимым
внешне). Статический символ _sym не будет связан с публичным
символ _sym; это будут два разных экземпляра функций с именем
_sym.
Последний столбец в пронумерованной строке является именем символа, оба
украшены и не украшены.
А notype()
означает именно то, что написано на банке: у него нет типа.