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.0\VC\bin\amd64 目录下的dumpbin.exe即可查看相关信息,如图1:

图 1

在C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\bin目录下也存在dumpbin.exe,打开方法:先启动cmd,然后定位到C:\ProgramFiles (x86)\Microsoft Visual Studio 10.0\VC\bin,运行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

时间: 2024-11-08 20:13:58

VS2010中dumpbin工具的使用的相关文章

VS2010中如何查看DLL的导出接口

看<VC++动态链接库(DLL)编程深入浅出>时,里面提到使用Visual C++的Depends工具可以查看动态链接库中的导出接口.对于VC6.0,VC所带的Depends软件,在VC6安装目录下的tools文件夹里面,可以直接运行.但是VS2010中没有了Depends工具,如何查看DLL文件的导出接口呢? 解决方法: 1. 打开命令行窗口 2. 运行vcvarsall.bat VS2010里vcvarsall.bat是在D:\Program Files (x86)\Microsoft V

VS2010中配置OpenGL

下面将对VS2010中配置OpenGL进行简单介绍. 学习OpenGL前的准备工作第一步,选择一个编译环境现在Windows系统的主流编译环境有Visual?Studio,Broland?C++?Builder,Dev-C++等,它们都是支持OpenGL的. 我选择Visual?Studio?2010和VC6++作为学习OpenGL的环境.第二步,安装GLUT工具包GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装.Windows环境下的GLUT下载地址:(大小约为15

VS2010中的自动化测试(5)——Web性能测试

原文地址:http://www.cnblogs.com/heqichang/archive/2011/11/20/2256478.html 类目见这里:http://www.cnblogs.com/heqichang/category/315226.html 接着上次那篇文章,这次我来详细说一下性能测试编辑窗口中的各个功能及操作. 上次说到我们编辑窗口中的树结构,每一层都会有不同的属性设置. Root Level:可以说是一条Web性能测试的入口点,比如:可以在此设置用户验证.代理或者为这条测试

vs2010中配置OpenGL以及针对64位系统所遇问题的解决办法

一.下面将对VS2010中配置OpenGL进行简单介绍. 学习OpenGL前的准备工作 第一步,选择一个编译环境 现在Windows系统的主流编译环境有Visual Studio,Broland C++ Builder,Dev-C++等,它们都是支持OpenGL的. 我选择Visual Studio 2010和VC6++作为学习OpenGL的环境. 第二步,安装GLUT工具包 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装. Windows环境下的GLUT下载地址:

C#.NET vs2010中使用IrisSkin4.dll轻松实现WinForm窗体换肤功能

IrisSkin2.dll是一款很不错的免费皮肤控件,利用它可以轻松的实现WinForm窗体换肤 然而IrisSkin2.dll只能在.NET Faremwork 4.0以及之前的版本使用,所以要在VS2010中使用它需要将自己的项目框架设置为.NET Framework 4.0,还有另一种方法就是使用IrisSkin4.dll,他的使用方法和IrisSkin2.dll基本是完全一样的 一.首先在网上下载IrisSkin4.dll(已与皮肤一起打包),将IrisSkin4.dll与Skins(皮

【性能分析】初探VS2010中的Profile(性能剖析)功能

VS2010中的Profile(性能剖析)功能十分实用,它可以协助程序员迅速锁定当前程序的性能瓶颈,为程序的优化做准备. 点击VS2010的Analyze菜单,选择Launch Performance Wizard,依照提示可以很方便地完成Profile的必需配置.可能你会碰到"Injection of runtime library failed"错误,这时就不要使用Wizard,而要选择Analyze下拉菜单中的Profiler->Attach/Detach...,将Prof

[整理]VS2010中如何添加“依赖&quot;,&quot;库目录&quot;,&quot;包含目录&quot;

VS2010中如何添加“依赖","库目录","包含目录" 1. 添加编译所需要(依赖)的 lib 文件[解决方案资源管理器]“项目->属性->配置属性->连接器->输入->附加依赖项”里填写“winsock.lib”,多个 lib 以空格隔开.(等同于“#pragma comment(lib, "winsock.lib") ”语句)2. 添加库(Libs)文件目录    方法 1:[解决方案资源管理器]“项

VS2010 中修改项目名称

C#工程: 在VS2010中新建一个像项目,开发工作都接近尾声了,客户要求更换项目的名称,差不多要变更整个解决方案中项目名称,引用等等,这个工作量还是很大的.上网搜索解决方法,还实验了专门的修改项目名称工具,但是最后都是一堆的错误,看着头疼.其实项目名称个人感觉没那么重要,客户要的是程序能够正常的运行起来,在运行的过程中也是不出现项目名称的,不知道为何要该,但是客户要求改我们还能拒绝?客户是上帝,这个上帝有点烦…… 不废话了,修改项目名称,主要是通过以下几个步骤就能完成: 修改解决方案的名称.

vs2010中使用Nunit测试c#代码结果的正确性

http://www.nunit.org/index.php?p=download 上面地址下载,有安装版的,有直接解压版的,只有里面的nunit.framewor.dll就可以做简单的测试了. 安装版的路径默认为:C:\Program Files \NUnit 2.6\bin\framework\nunit.framewor.dll 从vs2010中直接下载安装插件: 安装完后提示重启vs,然后就可以打开用了,在视图中可以打开: 然后写好测试代码之后,就能够看到结果,不对的话会有相应的错误..