QtCreator调试构建,但PC却在跳跃 在QtCube中,在Ubuntu机器中,我想调试C++应用程序。 我通过将-DCMAKE\u build\u TYPE=debug参数添加到生成设置的CMAKE部分来生成调试生成。我设置了一个断点并开始调试。断点被命中,但程序计数器(PC)并没有线性地遍历代码,而是像我试图调试优化代码一样不断地跳来跳去,但这是一个调试构建。该程序是多线程的,但我已经验证了,在调试时,我处于同一线程中,但PC一直跳转到与代码无关的行
为什么会发生这种情况?如何避免呢QtCreator调试构建,但PC却在跳跃 在QtCube中,在Ubuntu机器中,我想调试C++应用程序。 我通过将-DCMAKE\u build\u TYPE=debug参数添加到生成设置的CMAKE部分来生成调试生成。我设置了一个断点并开始调试。断点被命中,但程序计数器(PC)并没有线性地遍历代码,而是像我试图调试优化代码一样不断地跳来跳去,但这是一个调试构建。该程序是多线程的,但我已经验证了,在调试时,我处于同一线程中,但PC一直跳转到与代码无关的行,c++,debugging,cmake,gdb,qt-creator,C++,Debugging,Cmake,Gdb,Qt Creator,为什么会发生这种情况?如何避免呢 我怀疑这种行为是否与我不久前使用gdb进行调试有关。不幸的是,这个问题没有得到回答,我不知道为什么会发生这种情况 也许您的CMakeList.txt文件添加了优化,而不考虑CMAKE\u BUILD\u类型?你在给CMake打电话之前清理过CMake缓存了吗?你是对的!在设置为-O3的CMakeList.txt中设置了(CMAKE_CXX_标志,…)。我改用了-Og,我可以像预期的那样迈步。我曾尝试使用CMAKE_CXX_FLAGS_DEBUG和CMAKE_CX
我怀疑这种行为是否与我不久前使用gdb进行调试有关。不幸的是,这个问题没有得到回答,我不知道为什么会发生这种情况 也许您的
CMakeList.txt
文件添加了优化,而不考虑CMAKE\u BUILD\u类型
?你在给CMake打电话之前清理过CMake缓存了吗?你是对的!在设置为-O3的CMakeList.txt中设置了(CMAKE_CXX_标志,…)。我改用了-Og,我可以像预期的那样迈步。我曾尝试使用CMAKE_CXX_FLAGS_DEBUG和CMAKE_CXX_FLAGS_RELEASE来处理构建选项,但这是一系列问题,可能是另一个SO问题。如果您的评论是一个问题,我将接受。