我是在linux下工作的,在我看来“-g”和“-ggdb”的效果没有太大的区别,我只是发现使用“-ggdb”会产生大几个字节的二进制。那么,gdb应该有一个“-g”选项和另一个“-ggdb”选项的核心区别是什么呢?
6ovsh4lw1#
编译后的程序应该存储在某个地方,以便调试器(这里是GDB)查看并执行。这在技术上称为**“调试数据格式”**。以下是一些普遍接受的调试数据格式(还有更多格式):COFF -通用对象文件格式-在类似UNIX的系统上。PE/COFF -可移植可执行文件-在Windows上非常有名,通常dotnet使用它。DWARF -常见于UNIX类系统。等等。您在问题中询问的GDB选项与生成这些调试数据格式有关。基于文档,基本差异为:选项“g”以特定系统的本机格式提供调试数据。选项“-ggdb”的功能较强且开销较大。以最具表现力的可用格式提供调试数据。
tjjdgumg2#
我建议您阅读此文档和此topic。
2条答案
按热度按时间6ovsh4lw1#
编译后的程序应该存储在某个地方,以便调试器(这里是GDB)查看并执行。
这在技术上称为**“调试数据格式”**。
以下是一些普遍接受的调试数据格式(还有更多格式):
COFF -通用对象文件格式-在类似UNIX的系统上。
PE/COFF -可移植可执行文件-在Windows上非常有名,通常dotnet使用它。
DWARF -常见于UNIX类系统。
等等。
您在问题中询问的GDB选项与生成这些调试数据格式有关。
基于文档,基本差异为:选项“g”以特定系统的本机格式提供调试数据。选项“-ggdb”的功能较强且开销较大。以最具表现力的可用格式提供调试数据。
tjjdgumg2#
我建议您阅读此文档和此topic。