使用dumpbin查看C ++库信息时,UNDEF和notype()是什么意思? [英] What does UNDEF and notype() mean when seeing the C++ library information using dumpbin?
问题描述
我使用dumpbin/symbols来查看我创建的库.某些函数在输出中具有 UNDEF notype .那是什么意思?是否有任何 link 来研究dumpbin输出的结构?
I used dumpbin /symbols to see the library I created. Some functions have UNDEF notype in the output. What does that mean? Is there any link to study the structure of dumpbin output?
推荐答案
我们可以看看 dumpbin /SYMBOLS
的MSDN文档:
We can take a look at the MSDN documentation for dumpbin /SYMBOLS
:
此选项显示COFF符号表.符号表存在于所有 目标文件. COFF符号表仅在图像文件中出现 与/DEBUG链接.
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.
以下是/SYMBOLS的输出的描述.额外的 有关/SYMBOLS输出含义的信息,可以通过以下方式找到 在winnt.h(IMAGE_SYMBOL和IMAGE_AUX_SYMBOL)或COFF文档中.
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.
给出以下示例转储:
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.
-
如果第三列包含SECTx,则在其中定义符号 目标文件的部分.但是如果出现UNDEF,则不会在其中定义 该对象,必须在其他位置解决.
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.
第五列(静态,外部)表明符号是否为 仅在该对象内可见,或者它是否是公共的(可见 外部).静态符号_sym不会链接到Public 符号_sym;这将是命名函数的两个不同实例 _sym.
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()
的确切含义是在锡纸上说的:它没有类型.
And notype()
means exactly what it says on the tin: it has no type.
这篇关于使用dumpbin查看C ++库信息时,UNDEF和notype()是什么意思?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!