debugging gcc:“-g”和“-ggdb”之间有什么区别?

n6lpvg4x  于 2022-11-14  发布在  其他
关注(0)|答案(2)|浏览(430)

我是在linux下工作的,在我看来“-g”和“-ggdb”的效果没有太大的区别,我只是发现使用“-ggdb”会产生大几个字节的二进制。
那么,gdb应该有一个“-g”选项和另一个“-ggdb”选项的核心区别是什么呢?

6ovsh4lw

6ovsh4lw1#

编译后的程序应该存储在某个地方,以便调试器(这里是GDB)查看并执行。
这在技术上称为**“调试数据格式”**。
以下是一些普遍接受的调试数据格式(还有更多格式):
COFF -通用对象文件格式-在类似UNIX的系统上。
PE/COFF -可移植可执行文件-在Windows上非常有名,通常dotnet使用它。
DWARF -常见于UNIX类系统。
等等。
您在问题中询问的GDB选项与生成这些调试数据格式有关。
基于文档,基本差异为:选项“g”以特定系统的本机格式提供调试数据。选项“-ggdb”的功能较强且开销较大。以最具表现力的可用格式提供调试数据。

tjjdgumg

tjjdgumg2#

我建议您阅读此文档和此topic

相关问题