使用dumpbin查看C ++库信息时,UNDEF和notype()是什么意思? [英] What does UNDEF and notype() mean when seeing the C++ library information using dumpbin?

查看:265
本文介绍了使用dumpbin查看C ++库信息时,UNDEF和notype()是什么意思?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆