VS自带工具:dumpbin的参数详解

参考链接:
1、微软技术文档

2、微软官方文档描述](https://docs.microsoft.com/zh-cn/cpp/build/reference/dumpbin-command-line?view=msvc-170)

3、常见用法

一般情况下,我们需要查看一个DLLEXE中的包含的函数或是依赖的函数之类的信息,可以使用VS自带的工具dumpbin

可以直接在命令行下输入dumpbin就可以查看他的使用说明,如果未显示,可以先运行VS安装目录下的vcvarsall.bat设置一下环境变量就可以了

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:/Documents and Settings/Administrator>"D:/Program Files/Microsoft Visual Studi
o 9.0/VC/vcvarsall.bat"
Setting environment for using Microsoft Visual Studio 2008 x86 tools.
C:/Documents and Settings/Administrator>dumpbin
Microsoft (R) COFF/PE Dumper Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.
用法: DUMPBIN [选项] [文件] 选项: /ALL/ARCHIVEMEMBERS/CLRHEADER/DEPENDENTS/DIRECTIVES/DISASM[:{BYTES|NOBYTES}]/ERRORREPORT:{NONE|PROMPT|QUEUE|SEND}/EXPORTS/FPO/HEADERS/IMPORTS[:文件名]/LINENUMBERS/LINKERMEMBER[:{1|2}]/LOADCONFIG/OUT:文件名/PDATA/PDBPATH[:VERBOSE]/RANGE:vaMin[,vaMax]/RAWDATA[:{NONE|1|2|4|8}[,#]]/RELOCATIONS/SECTION:名称/SUMMARY/SYMBOLS/TLS/UNWINDINFO
C:/Documents and Settings/Administrator>

DUMPBIN 选项

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

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

  • /ARCHIVEMEMBERS
    显示有关库成员对象的最少信息。

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

/CLRHEADER file

此处: file 用 /clr 生成的图像文件。

备注:
CLRHEADER 显示有关在任何托管程序中使用的 .NET 头的信息。输出显示 .NET 头及其中各节的位置和大小(以字节计)。
File Format Spec.doc 描述 .NET 头中的信息。NET SDK 将 File Format Spec.doc 安装在 Tools Developers Guide 目录中。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。

  • /DIRECTIVES
    转储图像中由编译器生成的 .directive 节。
    只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。

  • /DEPENDENTS
    转储图像从中导入函数的 DLL 的名称。不要转储导入函数名。
    只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。

  • /DISASM
    显示代码段的反汇编,如果出现在文件中则使用符号。
    只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。

  • /EXPORTS
    显示从可执行文件或 DLL 导出的所有定义。
    只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。

  • /FPO
    显示框架指针优化 (FPO) 记录。
    只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。

  • /HEADERS
    显示文件头和每节的头。当用于库时,显示每个成员对象的头。
    只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。

  • /IMPORTS[:file ]
    显示导入到可执行文件或 DLL 的 DLL 列表(静态链接的和延迟加载 )和上述每个 DLL 的各个导入。

可选 file 规范允许指定仅显示某个 DLL 的导入。例如:

dumpbin /IMPORTS:msvcrt.dll

显示的输出与 /EXPORTS 输出相似。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。

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

  • /LINKERMEMBER[:{1|2}]
    显示库中定义的公共符号。指定参数 1 将按对象顺序显示符号及其偏移量。指定参数 2 将显示对象的偏移量和索引号,然后按字母顺序列出这些符号及每个符号的对象索引。若要两个输出都获得,指定不带数字参数的 /LINKERMEMBER。
    只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。

  • /LOADCONFIG
    转储 IMAGE_LOAD_CONFIG_DIRECTORY 结构,此结构是由 Windows NT 加载程序使用并在 WINNT.H 中定义的可选结构。
    只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。

  • /OUT:filename
    指定输出的 filename 。默认情 况下,DUMPBIN 将信息显示到标准输出。
    只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。

  • /PDBPATH[:VERBOSE] filename
    此处: filename 要为其查找匹配 .pdb 文件的 .dll 或 .exe 文件名。

  • VERBOSE(可选)

报告曾尝试在其中定位 .pdb 文件的所有目录。

补充:

/PDBPATH 将沿调试器搜索 .pdb 文件的同一路径搜索计算机,并将报告哪些 .pdb 文件(若有)和 filename 中指定的文件相对应。

使用 Visual Studio 调试器时可能会遇到问题,这是因为调试器对调试文件的不同版本使用 .pdb 文件。、

PDBPATH 将沿下列路径搜索 .pdb 文件:

  1. 检查可执行文件驻留的位置。
  2. 检查写入可执行文件的 PDB 的位置。这通常是图像被链接时的位置。
  3. 沿 Visual Studio IDE 中配置的搜索路径检查。‘
  4. 沿 _NT_SYMBOL_PATH 和 _NT_ALT_SYMBOL_PATH 环境变量中的路径检查。
  5. 在 Windows 目录中检查。
  • /PDATA
    仅用于 RISC 处理器。
    此选项从图像或对象转储异常表 (.pdata)。
    只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。

  • /RAWDATA[:{1|2|4|8|NONE[, number ]]
    此选项显示文件中每节的原始内容。参数控制显示格式,如下所示:

参数 参数
1 默认值。内容以十六进制字节显 示,如果内容具有打印的表示形式,则还显示为 ASCII 字符。
2 内容显示为十六进制的 2 字节值。
4 内容显示为十六进制的 4 字节值。
8 内容显示为十六进制的 8 字节值。
NONE 取消显示原始数据。此参数对控制 /ALL 输出很有用。
Number 显示的行被设置为每行具有 number 个值的宽度。

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

  • /RELOCATIONS
    此选项显示对象或图像中的任何重定位。
    只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。

  • /SECTION:section
    此选项限制与指定的 section 有关的信息的输出。
    只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。

  • /SUMMARY
    此选项显示有关节的最少信息(包括总大小)。如果未指定其他选项,则此选项为默认值。
    只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。

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

可以通过查阅 winnt.hIMAGE_SYMBOLIMAGE_AUX_SYMBOL)或 COFF 文档,可找到有关 /SYMBOLS 输出含义的附加信息。

示例:

查看导出:

C:/Documents and Settings/Administrator>dumpbin -exports E:/WorkStation/CPD项目/程序/UpdataModule/UpdataLibSrv/Results/UpdataLibSrv.dll
Microsoft (R) COFF/PE Dumper Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.Dump of file E:/WorkStation/CPD项目/程序/UpdataModule/UpdataLibSrv/Results/UpdataLibSrv.dllFile Type: DLLSection contains the following exports for UpdataLibSrv.dll00000000 characteristics4C2C0DC3 time date stamp Thu Jul 01 11:38:43 20100.00 version1 ordinal base1 number of functions1 number of namesordinal hint RVA      name1    0 00011005 Add = @ILT+0(?Add@@YGHHH@Z)Summary1000 .data1000 .idata2000 .rdata1000 .reloc1000 .rsrc4000 .text10000 .textbssC:/Documents and Settings/Administrator>

其中,这一部分为我们重点需要的部分:

ordinal hint RVA      name1    0 00011005 Add = @ILT+0(?Add@@YGHHH@Z)

这个Add就是我们的DLL中导出的函数名,而且可以看出,我的DLL是使用标准调用的方式导出的.’

查看导入:

C:/Documents and Settings/Administrator>dumpbin -imports E:/WorkStation/CPD项目/
程序/UpdataModule/UpdataLibSrv/Results/UpdataLibSr
v.dll
Microsoft (R) COFF/PE Dumper Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.Dump of file E:/WorkStation/CPD项目/程序/UpdataModule/UpdataLibSrv/Results/UpdataLibSrv.dll
File Type: DLLSection contains the following imports:MSVCR90D.dll10018218 Import Address Table100180E8 Import Name Table0 time date stamp0 Index of first forwarder reference17F _crt_debugger_hook1A8 _except_handler4_common358 _onexit2B0 _lockBA __dllonexit424 _unlockB0 __clean_type_info_names_internal8E __CppXcptFilter132 _adjust_fdiv144 _amsg_exit240 _initterm_e23F _initterm72 _CrtSetCheckCount194 _decode_pointer1A0 _encoded_null1DB _free_dbg2C2 _malloc_dbg19F _encode_pointer5C _CRT_RTC_INITWKERNEL32.dll1001816C Import Address Table1001803C Import Name Table0 time date stamp0 Index of first forwarder reference266 GetTickCount415 SetUnhandledExceptionFilter43E UnhandledExceptionFilter1A9 GetCurrentProcess42D TerminateProcess14C FreeLibrary45C VirtualQuery1F5 GetModuleFileNameW223 GetProcessHeap29D HeapAlloc2A1 HeapFree2F1 LoadLibraryA220 GetProcAddress4B5 lstrlenA31A MultiByteToWideChar47A WideCharToMultiByteB4 DebugBreak35A RaiseException2D1 IsDebuggerPresentCB DisableThreadLibraryCalls2BD InterlockedExchange421 Sleep2BA InterlockedCompareExchange354 QueryPerformanceCounter1AD GetCurrentThreadId1AA GetCurrentProcessId24F GetSystemTimeAsFileTimeSummary1000 .data1000 .idata2000 .rdata1000 .reloc1000 .rsrc4000 .text10000 .textbss

可以看到我们的DLL中依赖的其他资源或是DLL中包含的函数,资源信息.

VS自带工具:dumpbin的参数详解相关推荐

  1. linux stress 工具,Linux压力测试工具stress的参数详解

    为了测试根据服务器的负载情况,给大家推荐下stress这个压力测试工具,具体安装方式就不说了,本文主要介绍下stress的命令参数,大家可以在环境上验证测试下. 参数说明: -? 显示帮助信息 -v ...

  2. linux命令查看iotop,Linux系统IO分析工具之iotop参数详解(查看IO占用)

    简介: iotop – simple top-like I/O monitor iotop是一个用来监视磁盘I/O使用状况的 top 类工具,可监测到哪一个程序使用的磁盘IO的信息(requires ...

  3. php加速配置,php 提速工具eAccelerator 配置参数详解

    eaccelerator.shm_size="32" eAccelerator 可以使用的共享内存的数量 (以兆为单位) . "0" 是指操作系统的默认值. 默 ...

  4. Dumpbin工具参数详解

    Dumpbin工具参数详解 Dumpbin简介 DUMPBIN是在Windows平台下用于显示COFF格式文件信息的一个命令行工具.你可以使用DUMPBIN去显示COFF格式的文件信息,比如像vc编译 ...

  5. Windows 运行chkdsk磁盘修复工具命令参数详解

    Windows 运行chkdsk磁盘修复工具命令参数详解 chkdsk是Windows系统自带的磁盘修复工具,通常在电脑非正常关机之后再开机,系统就会自动调用chkdsk工具进行磁盘扫描和修复.同时, ...

  6. 带你玩转Logview: MaxCompute Logview参数详解和问题排查

    Logview是MaxCompute Job提交后查看和Debug任务的工具.通过Logview可看到一个Job的运行状态.运行结果以及运行细节和每个步骤的进度.当Job提交到MaxCompute后, ...

  7. ag 搜索工具参数详解

    ag 搜索工具参数详解 Ag 是类似ack, grep的工具,它来在文件中搜索相应关键字. 官方列出了几点选择它的理由: 它比ack还要快 (和grep不在一个数量级上) 它会忽略.gitignore ...

  8. Linux系统上hdparm工具参数详解,硬盘检查、测速、设定和优化

    Linux系统上hdparm工具参数详解,硬盘检查.测速.设定和优化 2012/07/25 hdparm, 硬盘 Linux命令相关 1 6,757 hdparm的功能:显示与设定硬盘的参数.hdpa ...

  9. python传入参数加星号_Python 带星号(* 或 **)的函数参数详解

    1. 带默认值的参数 在了解带星号(*)的参数之前,先看下带有默认值的参数,函数定义如下: >> def defaultValueArgs(common, defaultStr = &qu ...

最新文章

  1. 11.24杭州沙龙预告:数据化经营,智能化决策
  2. java短_Java中的最短代码和最低延迟
  3. VS2013下使用cjson
  4. Meta:绝对没有威胁要离开欧洲市场
  5. a人工智能b大数据c云计算_你清楚5G物联网、大数据、云计算、人工智能之间的关联吗?...
  6. python创意编程是什么_Python趣味创意编程
  7. 最小二乘法和极大似然估计
  8. Linux yum安装unrar、rar
  9. SQL中between过滤数据
  10. smartpdf双击无法返回latex如何解决
  11. YDOOK:Maxwell 电磁场仿真 最新版的 Maxwell 软件 使用什么软件进行电磁场仿真
  12. crmeb v4.4.2 修复前端小程序物流查询有部分查询不出来的问题
  13. easyui treegrid php,Easyui 之 Treegrid 笔记
  14. nvme分区选mbr还是guid_硬盘分区不求人:秒懂MBR和GPT分区表
  15. 2018年用户体验设计的10个趋势
  16. KNIME的学习使用心得
  17. 读周启迪之《古代印度波斯文明》
  18. 动态SQL之choose、when、otherwise标签
  19. GPU计算能力和性能指标
  20. day 1 学习MySQL数据库作业 - 创建员工表思考与表之间的关系

热门文章

  1. 特斯拉美国召回近1.2万辆汽车,软件Bug或导致自动刹车
  2. 虚拟机vmware部署ios开发环境
  3. 双亲表示法 如何找到孩子结点_《被嫌弃的松子的一生》:童年缺爱的孩子,该如何找到自我存在感...
  4. PLIC简介cva6之PLIC模块阅读笔记
  5. QLU 新生赛 折纸达人(double与longlong区别)
  6. java中的几种锁(很详细)-小白收藏
  7. 3d打印的方向及成本问题
  8. 哈佛人告诉你怎样学习 怎样培养人高贵的气质
  9. 从远程仓库拉取到本地仓库
  10. 想要学习区块链编程,该掌握哪些计算机语言?