VS2010中dumpbin工具的使用

article/2025/10/22 1:13:52

用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:

在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


http://chatgpt.dhexx.cn/article/1jokxMV0.shtml

相关文章

VS自带工具:dumpbin的使用

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

DUMPBIN工具的使用

dumpbin.exe是微软二进制文件转储器。显示有关通用对象文件格式 (COFF) 的二进制文件的信息。 可以使用 DUMPBIN 检查 COFF 对象文件、 COFF 对象、 可执行文件和动态链接库 (Dll) 的标准库。 dumpbin.exe所在路径是 vs安装目录\VC\bin\dumpbin.exe。 我的电脑VS安装路径是E:…

Java中常见异常及异常处理方式

Java异常的继承体系结构 java.lang.Throwable是Java语言中所有错误或异常的超类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型Error类是指Java运行…

23、Java——常见异常的原因和解决办法

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:乐趣国学的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:Java案例分…

java各种异常总结

一、java异常汇总 1.Throwable 是所有异常的祖先,Throwable有两个子类,Error和Exception; 2.Error是错误,表示运行应用程序中出现了严重错误,都是通过Error抛出的,一般程序无法处理; Exception是异常&am…

Java中常见的异常类型

异常类型 在 Java 中所有异常类型都是内置类 java.lang.Throwable 类的子类,即 Throwable 位于异常类层次结构的顶层。Throwable 类下有两个异常分支 Exception 和 Error,如图 1 所示。 Throwable 类是所有异常和错误的超类,下面有 Error 和…

Java常见的10个异常

1、NullPointerException: 空指针异常,当操作一个 null 对象的方法或属性时会抛出这个异常。是一个很头疼的异常,因为它是运行时异常,不需要手动捕获,但运行时碰到这个异常会中断程序。 2、OutOfMemoryError&#xff1…

MFC程序

第一个MFC 界面程序 创建C 空项目 #include <afxwin.h> #include <atlimage.h> #include "resource.h"//继承一个模态框 每一个窗口 对应一个 类 class Login :public CDialog {private:HICON h_icon;//图标类public://构造函数 并且 调用 父类的构造函…

最全的基于MFC的ActiveX控件开发教程

转自&#xff1a;http://www.cnblogs.com/qguohog/archive/2013/01/22/2871805.html 浏览器插件之ActiveX开发&#xff08;一&#xff09; 一般的Web应用对于浏览器插件能不使用的建议尽量不使用&#xff0c;因为其涉及到安全问题以及影响用户安装&#xff08;或自动下载注册安…

MFC经验

MFC框架各部分指针获取方式: 记住&#xff0c;是获取指针 MFC消息流程图: string CString char* 的互相转换: string 转 CString   CString.Format("%s", string.c_str()); //用c_str()比data()好    char 转 CString   CString.Format("%s",…

C++ MFC程序入门

1. 选择“MFC应用程序”,命名后选下一步 2. 点“下一步” 3. 选择“基于对话框” 4. 仅勾选“主框架”

MFC系列 - 第一个MFC入门程序

MFC&#xff0c;多年开发和教学&#xff0c;这门课程&#xff0c;新课改决定将它砍掉&#xff0c;Qt也是我们的趋势&#xff0c;同时在我的Qt系列中详细讲解了Qt的系列教学。MFC虽然很古老&#xff0c;但是还是得佩服微软搞得这套框架&#xff0c;让一代又一代Windows程序员无不…

MFC ActiveX (ocx)控件的开发

前言 ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼&#xff0c;其中主要的技术是组件对象模型&#xff08;COM&#xff09;。 ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个控件的COM组件。ActiveX控件这种技术涉及到了几乎所有的CO…

开发基于MFC的应用程序

开发基于MFC的应用程序 本篇将介绍如何开发基于MFC的应用程序。 具体步骤如下&#xff1a; 一&#xff1a;启用VS2019编辑器。 二&#xff1a;点击文件—>新建—>项目 三&#xff1a;MFC应用—>下一步 四&#xff1a;添加项目名称—>创建 五&#xff1a;选择基于对…

MFC简介

1.API Wndows操作系统为我们编写Windows应用程序提供的接口函数----API&#xff0c; //Windows中播放声音的API函数 //PlaySound需要的头文件和库文件 #include <mmsystem.h> #pragma comment(lib, "WINMM.LIB")BOOL PlaySound(LPCSTR pszSound, HMODULE hmo…

C++ mfc

以下是我从其他网站中学的内容&#xff0c;后有相应的网站学习链接地址&#xff0c;可供学习 1.选择菜单项File->New->Project&#xff0c;弹出“New Project”对话框。 2.左侧面板中Installed Templated的Visual C下选择MFC&#xff0c;中间窗口中选择MFC Application&a…

MFC教程

以下是我从其他网站中学的内容&#xff0c;后有相应的网站学习链接地址&#xff0c;可供学习 1.选择菜单项File->New->Project&#xff0c;弹出“New Project”对话框。 2.左侧面板中Installed Templated的Visual C下选择MFC&#xff0c;中间窗口中选择MFC Application&…

MFC简要介绍

一、概念 MFC(MicrosoftFoundationClasses)是微软基础类库的简称&#xff0c;是微软公司实现的一个c类库&#xff0c;主要封装了大部分的windows API函数&#xff0c;vc是 微软公司开发的c/c的集成开发环境&#xff0c;所谓集成开发环境&#xff0c;就是说利用它可以编辑&#…

MFC入门小项目

之前学习MFC的时候就是三天打鱼两天晒网&#xff0c;什么都不记&#xff0c;脑子也不转&#xff0c;完全是代码的搬运工。这次又要从头开始&#xff0c;索性写个博客了。截至目前断断续续更了三十篇blog&#xff0c;文笔依然如此拙劣&#xff0c;实属羞愧。技术尚且肤浅&#x…