使用cmake为gdb创建符号表

js81xvg6  于 2022-11-11  发布在  其他
关注(0)|答案(5)|浏览(321)

有没有办法使用cmake for gdb只创建符号表?

l5tcr1uw

l5tcr1uw1#

将此行添加到文件***CMakeLists.txt***中:

set(CMAKE_BUILD_TYPE Debug)
idv4meu8

idv4meu82#

在发行模式下编译,但添加调试符号,这对分析很有用:

cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ...

或者编译时不进行优化并添加调试符号:

cmake -DCMAKE_BUILD_TYPE=Debug ...
kkbh8khc

kkbh8khc3#

如果您使用的是QtCreator,请移除(或注解掉)任何包含CMAKE_BUILD_TYPE的行:


# set(CMAKE_BUILD_TYPE Debug)

# set(CMAKE_BUILD_TYPE Release) <- comment out such lines

原因:如果您在CmakeLists.txt中显式设置了CMAKE_BUILD_TYPE,QtCreator将 * 不 * 允许您设置任何其他目标。

z9smfwbn

z9smfwbn4#

如果您需要调试符号来进行性能分析,请将以下代码粘贴到CMakeLists.txt中:

set(CMAKE_BUILD_TYPE RelWithDebInfo)
uxh89sit

uxh89sit5#

生成gdb调试信息的常用方法是将-g传递给gccg++编译器(也可以在链接时传递)。
查看Cmake FAQ,了解如何获取可调试的可执行文件。

相关问题