有没有办法使用cmake for gdb只创建符号表?
l5tcr1uw1#
将此行添加到文件***CMakeLists.txt***中:
set(CMAKE_BUILD_TYPE Debug)
idv4meu82#
在发行模式下编译,但添加调试符号,这对分析很有用:
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ...
或者编译时不进行优化并添加调试符号:
cmake -DCMAKE_BUILD_TYPE=Debug ...
kkbh8khc3#
如果您使用的是QtCreator,请移除(或注解掉)任何包含CMAKE_BUILD_TYPE的行:
CMAKE_BUILD_TYPE
# set(CMAKE_BUILD_TYPE Debug) # set(CMAKE_BUILD_TYPE Release) <- comment out such lines
原因:如果您在CmakeLists.txt中显式设置了CMAKE_BUILD_TYPE,QtCreator将 * 不 * 允许您设置任何其他目标。
z9smfwbn4#
如果您需要调试符号来进行性能分析,请将以下代码粘贴到CMakeLists.txt中:
CMakeLists.txt
set(CMAKE_BUILD_TYPE RelWithDebInfo)
uxh89sit5#
生成gdb调试信息的常用方法是将-g传递给gcc或g++编译器(也可以在链接时传递)。查看Cmake FAQ,了解如何获取可调试的可执行文件。
gdb
-g
gcc
g++
5条答案
按热度按时间l5tcr1uw1#
将此行添加到文件***CMakeLists.txt***中:
idv4meu82#
在发行模式下编译,但添加调试符号,这对分析很有用:
或者编译时不进行优化并添加调试符号:
kkbh8khc3#
如果您使用的是QtCreator,请移除(或注解掉)任何包含
CMAKE_BUILD_TYPE
的行:原因:如果您在CmakeLists.txt中显式设置了CMAKE_BUILD_TYPE,QtCreator将 * 不 * 允许您设置任何其他目标。
z9smfwbn4#
如果您需要调试符号来进行性能分析,请将以下代码粘贴到
CMakeLists.txt
中:uxh89sit5#
生成
gdb
调试信息的常用方法是将-g
传递给gcc
或g++
编译器(也可以在链接时传递)。查看Cmake FAQ,了解如何获取可调试的可执行文件。