使用dumpbin查看C库信息时,UNDEF和notype()是什么意思?
作者:互联网
我使用dumpbin / symbols来查看我创建的库.某些函数在输出中具有UNDEF notype.这意味着什么?是否有任何链接来研究dumpbin输出的结构?
解决方法:
我们可以看一下the MSDN documentation for dumpbin /SYMBOLS
:
This option displays the COFF symbol table. Symbol tables exist in all
object files. A COFF symbol table appears in an image file only if it
is linked with /DEBUG.The following is a description of the output for /SYMBOLS. Additional
information on the meaning of /SYMBOLS output can be found by looking
in winnt.h (IMAGE_SYMBOL and IMAGE_AUX_SYMBOL), or COFF documentation.Given the following sample dump:
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
The following description, for lines that begin with a symbol number,
describes columns that have information relevant to users:The first three-digit number is the symbol index/number.
If the third column contains SECTx, the symbol is defined in that
section of the object file. But if UNDEF appears, it is not defined in
that object and must be resolved elsewhere.The fifth column (Static, External) tells whether the symbol is
visible only within that object, or whether it is public (visible
externally). A Static symbol, _sym, wouldn’t be linked to a Public
symbol _sym; these would be two different instances of functions named
_sym.The last column in a numbered line is the symbol name, both
decorated and undecorated.
notype()的含义恰如其分:它没有类型.
标签:c,dumpbin 来源: https://codeday.me/bug/20191013/1911252.html