【发布时间】:2012-11-13 13:59:40
【问题描述】:
操作系统是 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 开启绝对路径生成的开关?
【问题讨论】:
-
另一种解决方案是在将
../inc添加到包含路径(例如,使用-I)之后将您的构建修复为#include "header.h"。 -
确实如此,但我不能更改源代码,只能更改编译器标志。
-
许多编码标准禁止以
./或../开头的相对路径是有充分理由的。
标签: gcc gdb debug-symbols