1

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

我在 C:/project/src/ 文件夹中有一个 .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 是否有一个开关可以在调试符号中打开绝对路径生成?

4

1 回答 1

2

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

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

(gdb) directory /path/to/include/

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

(gdb) set substitute-path ../inc /path/to/inc
于 2012-11-13T15:54:16.770 回答