【问题标题】:QtCreator and CMake: debug a release buildQtCreator 和 CMake:调试发布版本
【发布时间】:2018-11-13 13:33:57
【问题描述】:

我想调试一个 CMake 项目构建以使用 QtCreator 发布。我只需要通常能够单步执行代码并在断点处停止(我知道如果有优化,我将无法浏览变量并且单步执行可能会不稳定)。

我尝试使用 -DCMAKE_BUILD_TYPE=Release 重建项目,并将 -Og、-O1、-O2 中的任何一个添加到 CMakeLists.txt 中的 add_compile_options() 中(使用 gcc 在 linux 中构建)。但是,当我在 QtCreator 中按调试时,我收到消息“这似乎不是“调试”构建。通过文件名和行号设置断点可能会失败。”事实上,代码不会在任何断点处停止。

我认为这应该可行,但我想知道 QtCreator 是否知道我使用 -DCMAKE_BUILD_TYPE=Release 运行 CMake,即使我在代码中添加了 -Og,它也不会让我调试。是这样吗?我该如何解决这个问题?

【问题讨论】:

  • 将构建类型设置为RelWithDebInfo 有帮助吗?
  • 成功了!如果你把它作为一个答案,我会接受它。
  • 是否可以使用 RelWithDebInfo 构建检查变量?
  • 是的,您可以检查变量,它的运行速度与 Release 设置一样快
  • @TheunsHeydenrych 您可以尝试在 add_compile_options() 中添加 -g 和 -Og 或 -O0 并查看是否显示所有变量。

标签: c++ debugging cmake gdb qt-creator


【解决方案1】:

要获得优化和可调试的构建,您可以将CMAKE_BUILD_TYPE 设置为RelWithDebInfo

【讨论】:

  • 能否在调试模式下使用 RelWithDebInfo 构建检查变量值。
猜你喜欢
  • 2023-03-12
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 2010-10-27
  • 2020-08-02
  • 1970-01-01
相关资源
最近更新 更多