【发布时间】: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