当使用dumpbin查看c++库信息时,UNDEF和notype()意味着什么?

What does UNDEF and notype() mean when seeing the C++ library information using dumpbin?

本文关键字:notype UNDEF 什么 意味着 dumpbin 查看 c++ 信息      更新时间:2023-10-16

我使用dumpbin/symbols来查看我创建的库。有些函数的输出中有UNDEFnotype。这是什么意思?是否有链接来研究dumpbin输出的结构?

我们可以查看dumpbin /SYMBOLS的MSDN文档:

该选项显示COFF符号表。符号表存在于所有对象文件。COFF符号表只有在下列情况下才会出现在图像文件中与/DEBUG链接。

下面是/SYMBOLS的输出描述。额外的关于/SYMBOLS输出的含义的信息可以通过查看在winnt.h (IMAGE_SYMBOL和IMAGE_AUX_SYMBOL),或COFF文档中。

给定以下示例转储:

<>之前Dump文件main.obj文件类型:COFF对象科夫符号表000 00000000 DEBUG notype文件名| .filemain.cpp002 000B1FDB ABS notype Static | @comp.id003 00000000 SECT1 notype Static | . directSection长度26,#relocs 0, #linenums 0,校验和722C964F005 00000000 SECT2 notype Static | .textSection长度23,#relocs 1, #linenums 0,校验和459FF65F,选择1(不重复)007 00000000 SECT2 notype () External | _main008 00000000 UNDEF notype () External | ?MyDump@@ yaxxz (void __cdecl MyDump(void))字符串表大小= 0x10字节总结26 .drectve23。之前

对于以符号号开头的行,描述包含与用户相关信息的列:

前三位数字为符号索引/编号。

  • 如果第三列包含SECTx,则在其中定义符号对象文件的部分。但是如果出现UNDEF,则没有在

  • 第五列(Static, External)表示符号是否为仅在该对象内可见,或者它是否为公共(可见)外部)。静态符号_sym不会被链接到Public_sym象征;函数的两个不同实例_sym .

  • 编号行的最后一列是符号名,两者都是

notype()的意思完全一样:它没有类型