【问题标题】:How to integrate msvc CL /DEBUG with visual studio devenv /DebugExe如何将 msvc CL /DEBUG 与 Visual Studio devenv /DebugExe 集成
【发布时间】: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


【解决方案1】:

总结 cmets 中提供的问题答案:

编译和链接必须一步完成,因为可执行文件是在 Visual Studio 项目之外编译的:

编译和链接:

cl /Zi /EHsc <compiler options> <source files> /link <linker options> <library and resource files>

调试:

devenv /DebugExe <executable>

【讨论】:

  • 如果我想在远程计算机上启动可执行文件怎么办?有没有办法从命令行启动远程调试器?
  • @Bemipefe 请为您的问题创建一个新帖子。它没有直接关系。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-07
  • 1970-01-01
  • 2014-07-01
  • 2013-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多