pdb 不匹配或未找到 - 在窗口中调试
pdb mismatched or not found - Debugging in windows
我是Windows编程环境的新手。因此,如果您能帮助我,将不胜感激:
我有一个名为Controller.exe
的应用程序,我正在构建服务器上TeamCity
该应用程序。应用程序的生成生成exe
文件和pdb
文件。
当我在部署计算机上运行Controller.exe
时,它会崩溃并生成转储。
在应用程序中,我启用了以下转储崩溃:
unsigned long stackSize = 16384;
SetThreadStackGuarantee(&stackSize);
SetUnhandledExceptionFilter(WriteLargeMiniDump);
该函数WriteLargeMiniDump()
成功写入转储。我知道这一点,因为当我在开发机器上运行Controller.exe
时,它会生成转储,我可以成功打开它并查看源代码中的崩溃线。
但是,对于 TeamCity 服务器生成的exe
和pdb
,我无法调试转储。当我在visual studio 2015
中打开转储文件并尝试Debug with Native Only
它说pdb
未加载时。
我四处搜索以检查pdb
文件是否正确。所以我下载了Debugging Tools for windows
作为symchk.exe
.
当我运行symchk.exe
时,它给出以下错误:
SYMCHK: Controller.exe FAILED - Controller.pdb mismatched or not found
SYMCHK: FAILED files = 1
SYMCHK: PASSED + IGNORED files = 0
Controller.pdb
位于我复制从服务器生成的exe
TeamCity
目录中。
我在这里错过了什么吗?
我能够解决这个问题。问题在于该项目的原始作者已将pdb
签入TeamCity
正在构建的SVN存储库中。因此,生成的exe
与pdb
不匹配。根据MSDN文档,我们必须使用在构建期间生成的pdb
exe
。
使用在构建exe
期间生成的pdb
,我能够调试dump
文件。
帮助我理解pdb
文件的一个重要链接是: https://www.wintellect.com/pdb-files-what-every-developer-must-know
- 为什么调试时没有显示控制台窗口
- pdb 不匹配或未找到 - 在窗口中调试
- C++,弹出调试断言失败窗口,我得到矢量迭代器不兼容的错误运行时
- gdborig.exe 在调试 QT 5.8 并在窗口中打开 QFileDialog 时随机崩溃
- 使用GCC,G 和GDB在窗口7上设置C/C 调试的VSCODE
- C++ 显示字符串变量"<不完整类型>的调试窗口
- 调试"crashed"最上面的窗口
- 我可以控制调试器窗口中显示的浮点数和双精度变量的位数吗?
- 是否可以在visualstudio调试窗口中定义用户定义的变量
- 我遇到此问题,运行程序时出现一个弹出窗口,指出调试断言失败
- 本地窗口调试器已替换为附加,无法运行和调试我的程序
- 如何在 wndproc 消息处理程序中在窗口下触发 jit 调试器
- 我的窗口未在调试器中运行时无法正确绘制
- windBG源代码调试,在局部变量窗口中看不到局部变量
- 不要在发布时显示控制台窗口,而是在调试时显示
- 调试后,CMD窗口没有显示任何内容
- 创建一个简单的窗口来输出用于调试的信息(日志样式)- wxWidgets
- VS2010调试器无法在监视窗口中正确跟踪变量,VS2013是否仍然存在此错误?
- Visual Studio-如何将调试信息输出到调试窗口
- CFileDialog 在调试器窗口中发布"First-chance exception"