【发布时间】:2021-09-20 18:34:21
【问题描述】:
我在命令行上使用 msvc (visual studio cl.exe) 来编译我的一个 c++ 项目。
为此,我使用 Visual Studio Community 2019 开发者控制台 在cmd中,我通过调用来初始化我的环境:
call "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat"
call "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat"
然后我编译我的代码:
cl /DEBUG main.cpp SDL2-2.0.14\lib\x86\SDL2.lib portaudio_x86.lib /IPortAudio\include /ISDL2-2.0.14\include
一般来说,我可以通过调用来运行我的程序
main.exe
但如果我想在 Visual Studio 中调试它,我会使用
devenv /DebugExe main.exe
在visual studio中,点击顶部工具栏中的“▶️start”后,程序运行正常,但是当我遇到异常时,符号不会加载。例如:
如何让 Visual Studio 正确加载符号文件并向我显示错误的LINE NUMBER?
谢谢,
迈克
【问题讨论】:
-
通常,MSVC 使用所谓的程序数据库来存储调试信息,它是一个带有
.pdb后缀的单独文件,通常与可执行。你的命令会生成这样的文件吗?如果没有,那么也许在 Visual Studio 中启动一个标准项目,并查看它在构建时使用的标志。 -
尝试将
/Z添加到您的编译命令以生成pdb。 -
@RetiredNinja /Zi 似乎成功了。谢谢!
-
@Someprogrammerdude /Zi 似乎成功了。我曾在一个单独的 Visual Studio 项目中看到 /ZW 标志,但我从未尝试过。谢谢!
-
为什么不直接从 Visual Studio 编译和调试呢?更简单、更快捷,因为您无需离开 IDE,
标签: c++ visual-studio debugging debug-symbols pdb-files