如何理解Visual Studio的.pdb文件?

问题描述 投票:0回答:4

我用编辑器打开了它,完全乱了。

顺便说一句,在“反汇编”视图中,是否可以转储所有汇编代码?我尝试过,但只能抓取屏幕上的线条。

visual-studio pdb-files disassembly
4个回答
6
投票

我一直在跟踪您的问题。 您应该在问题中添加上下文,我认为您正在尝试调试没有源代码的 DirectShow 插件。 某种相机小发明。

不,在文本编辑器中打开 .pdb 文件不会向您显示任何有用的内容。 它是二进制数据。 我知道您有一个与您正在使用的插件相关的 .pdb,您可以通过命名函数获得不错的堆栈跟踪。 您可能从 Microsoft Symbol 服务器获得了 .pdb。 读取 .pdb 文件是调试器的工作。 有几个 API 可以自己阅读,dbghelp API 是核心 API。

但是它不会向您显示调试器中不知道的任何内容。 .pdb 文件只是一个函数数据库。 你得到的是被剥离的,它永远不会显示比你在调用堆栈窗口中看到的更多的内容。

最终,这是一系列 XY 问题。 你一直在问 Y 的问题,但从未透露真正的 X 问题是什么。 在您告诉我们有关 X 的信息之前,您只会得到无用的答案,就像这个。


4
投票

CodeProject:如何检查程序数据库 (PDB) 文件的内容

但请记住,这些文件是供调试器使用的,而不是直接供您使用的。至少我没有迫切希望能够在文本或十六进制编辑器中读取所有可能的文件格式。


3
投票
考虑到@Hans Passant 的言论 - 我认为这个问题值得一个答案,如果没有别的,那么为了那些通过搜索到达这里的人。

随附的 PDB 检查工具是

DBH。它与 Windows 调试工具捆绑在一起。虽然无可否认,它是一个命令行工具(我个人来自 GUI 一代),但它的功能非常丰富,你很难找到半行它不能完成的任何事情。


0
投票
听起来你想要的是

dumpbin

 命令。请注意,这需要 VC 工具位于您的 PATH 中;您可以使用开始菜单中的相应快捷方式或运行 
%VSxxCOMNTOOLS%\vsvars32.bat
,其中 
xx
 是您正在使用的 VC 实际版本的助记符:确定要使用的环境变量的最简单方法可能是运行
set
 并查看您的环境中实际设置了哪些具有此类名称的变量。例如,在安装了 MSVC 2005 Express 和 MSVC 2008 Express 的系统上,我得到以下信息:

C
© www.soinside.com 2019 - 2024. All rights reserved.