zoukankan      html  css  js  c++  java
  • VS2010中dumpbin工具的使用

    用VS2010生成的.obj文件、.lib库、.dll库、.exe执行文件,如果想查看其中这些文件或库包含了哪些函数以及相关的信息(符号清单),可以通过VS2010自带的dumpbin工具来完成。

             dumpbin.exe为Microsoft  COFF二进制文件转换器,它显示有关通用对象文件格式(COFF)二进制文件的信息。可用使用dumpbin检查COFF对象文件、标准COFF对象库、可执行文件和动态链接库等。

             dumpbin工具只能在命令行下使用。

             双击C:Program Files (x86)Microsoft Visual Studio10.0VCinamd64 目录下的dumpbin.exe即可查看相关信息,如图1:

    图 1

    在C:Program Files(x86)Microsoft Visual Studio 10.0VCin目录下也存在dumpbin.exe,打开方法:先启动cmd,然后定位到C:ProgramFiles (x86)Microsoft Visual Studio 10.0VCin,运行vcvars32.bat(或者直接将vcvars32.bat拖到cmd中),最后再运行dumpbin.exe即可。

             dumpbin使用方式:dumpbin  选项  文件名

    其中多个选项间用空格分开,多个文件名间也用空格分开,文件名可以为后缀为.obj、.lib、.dll、.exe,如 dumpbin  /ALL/RAWDATA:NONE  /OUT:1.txt  text.obj (dmpbin /ALL /RAWDATA:NONE  test.obj >1.txt)。如果没有给dumpbin指定任何选项,它将等同于使用了/SUMMARY参数。如果没有指定任何输入文件,它将列出所有的选项。

             选项说明:参数的使用可以用”-”或者”/”(如-ALL等于/ALL)后面跟选项名。有些选项可以在选项名后接”:”。使用空格或制表符(Tab)分割命令选项。选项名,关键字和文件名是不区分大小写的。大多数的参数可以应用于所有的二进制文件,有少部分参数只能用于特定的文件。

    (1)、/ALL :此选项显示除代码反汇编外的所有可用信息。使用/DISASM显示反汇编。可以与/ALL一起使用/RAWDATA:NONE来省略文件的原始二进制详细资料。

    (2)、/ARCHIVEMEMBERS:此选项显示有关库成员对象的最少信息。 (3)、/CLRHEADER  file:其中file为用/clr生成的图像文件。CLRHEADER显示有关在任何托管程序中使用的.net头的信息。输出显示.net头及其中各节的位置和大小(以字节计算)。

    (3)、/DIRECTIVES:此选项转储图像中由编译器生成的.directive节。

    (4)、/DEPENDENTS:转储图像从中导入函数的DLL的名称。不要转储导入函数名。

    (5)、/DISASM:此选项显示代码段的反汇编,如果出现在文件中则使用符号。

    (6)、/EXPORTS:此选项显示从可执行文件或DLL导出的所有定义。

    (7)、/FPO:此选项显示框架指针优化(FPO)记录。

    (8)、/HEADERS:此选项显示文件头和每节的头。当用于库时,显示每个成员对象的头。

    (9)、/IMPORTS[:file]:此选项显示导入到可执行文件或DLL的DLL列表(静态链接的和延迟加载)和上述每个DLL的各个导入。可选file规范允许指定仅显示某个DLL的导入。

    (10)、/LINENUMBERS:此选项显示COFF行号。如果对象文件是用程序数据库(/Zi)、C7兼容(/Z7)或仅限行号(/Zd)编译的,则它包含行号。如果可执行文件或DLL是与生成调试信息(/DEBUG)链接的,则它包含COFF行号。

    (11)、/LINKERMEMBER[:{1|2}]:此选项显示库中定义的公共符号。指定参数1将按对象顺序显示符号及其偏移量。指定参数2将显示对象的偏移量和索引号,然后按字母顺序列车这些符号及每个符号的对象索引。若要两个输出都获得,指定不带数字参数的/LINKERMEMBER。

    (12)、/LOADCOMFIG:此选项转储IMAGE_LOAD_CONFIG_DIRECTORY结构,此结构是由WindowsNT加载程序使用并在WIINNT.H中定义的可选结构。

    (13)、/OUT:filename:此选项指定输出的filename。默认情况下,DUMPBIN将信息显示到标准输出。

    (14)、/PDBPATH[:VERBOSE]filename:filename为要为其查找匹配.pdb文件的.dll或.exe文件名。VERBOSE(可选)为报告曾尝试在其中定位.pdb文件的所有目录。/PDBPATH将沿调试器搜索.pdb文件的同一路径搜索计算机,并将报告那些.pdb文件(若有)和filename中指定的文件相对应。

    (15)、/RAWDATA[:{1|2|4|8|NONE}[,number]]:此选项显示文件中每节的原始内容。参数说明:1,默认值,内容以十六进制字节显示,如果内容具有打印的表示形式,则还显示为ASCII字符;2,内容显示为十六进制的2字节值;4,内容显示为十六进制的恶4字节值;8,内容显示为十六进制的8字节值;NONE,取消显示原始数据,此参数对控制/ALL输出很有用;number,显示的行被设置为每行具有number个值的宽度。

    (16)、/RELOCATIONS:此选项显示对象或图像中的任何重定位。

    (17)、/SECTION:section:此选项限制与指定的section有关的信息的输出。

    (18)、/SUMMARY:此选项显示有关节的最少信息(包括总大小)。如果未指定其它选项,则此选项为默认值。

    (19)、/SYMBOLS:此选项显示COFF符号表。符号表存在于所有对象文件中。而对于图像文件,只有当它是与/DEBUG链接时,它才包含COFF符号表。

    (20)、/UNWINDINFO:在程序图像(例如exe和dll)中转储结构化异常处理(SHE)表的展开描述符。/UNWINDINFO仅适用于IA64图像。

    以上所有只有/HEADERS  DUMPBIN选项可用于由/GL编译器选项产生的文件。

    如果查看a.dll库中包含哪些函数,可以使用:dumpbin /exports a.dll >1.txt

    如果查看b.exe中加载了哪些动态库,可以使用:dumpbin /imports b.exe >2.txt

    如果查看c.lib中包含哪些函数,可以使用:dumpbin /all /rawdata:none c.lib >3.txt

    如果查看d.obj中包含哪些函数,可以使用:dumpbin /all /rawdata:none d.obj >4.txt

    参考文献:http://www.cnblogs.com/lidabo/p/3482862.html

  • 相关阅读:
    python Database Poll for SQL SERVER
    SQLAlchemy表操作和增删改查
    flask动态url规则
    flask配置管理
    一个Flask运行分析
    Function Set in OPEN CASCADE
    Happy New Year 2016
    Apply Newton Method to Find Extrema in OPEN CASCADE
    OPEN CASCADE Multiple Variable Function
    OPEN CASCADE Gauss Least Square
  • 原文地址:https://www.cnblogs.com/gune/p/6219768.html
Copyright © 2011-2022 走看看