Недавно я использовал dumpbin
, чтобы увидеть символы в некоторых статических библиотеках, используя dumpbin foo.lib /symbols
. Я хотел посмотреть, как его можно использовать для исполняемых файлов и библиотек DLL.
Мое первое наблюдение состоит в том, что dumpbin foo.{exe|dll} /symbols
ничего не возвращает.
Для DLL я заметил, что опция экспорта была необходима для получения данных символа: dumpbin foo.dll /exports
. Зачем нужна эта опция в данном случае? Если доступен соответствующий файл *.iobj, я могу использовать dumpbin foo.iobj /symbols
для дампа ВСЕХ символов, тогда как /exports в DLL, как я предполагаю, показывает только те символы, которые выставлены DLL.
Для исполняемых файлов dumpbin bar.exe /symbols
ничего не производит, тогда как dumpbin bar.exe /exports
, кажется, сбрасывает некоторые символы.
Кто-нибудь может объяснить, что здесь происходит под капотом?