GCC - 为调试符号中的#includes生成绝对路径

时间:2012-11-13 13:59:40

标签: gcc gdb debug-symbols

操作系统是Windows,GCC是4.7.2,GDB是7.3。

我在C:/ project / src /文件夹中有一个带有include:

的.c文件
#include "../inc/header.h"

编译后,我在调试符号中有一个相对路径:

> objdump -WL obj.o | grep header.h
C:/project/src/../inc/header.h
...

但我希望它是C:/project/inc/header.h,因为如果我在发出set breakpoint命令时使用绝对路径,那么在gdb中设置BP会失败。

这种情况是人为的,但由于环境条件,我问题的唯一解决方案是在调试符号中生成绝对路径,或者教GDB来解析相对路径。

GCC是否有开关来打开调试符号中的绝对路径生成?

1 个答案:

答案 0 :(得分:2)

解决方案是在GDB中,而不是GCC。

最简单的方法是将包含标题的目录添加到搜索路径中:

(gdb) directory /path/to/include/

您可能需要的更复杂的是路径名替换规则:

(gdb) set substitute-path ../inc /path/to/inc