OS是Windows,GCC是4.7.2,GDB是7.3。GCC - 在调试符号中为#includes生成绝对路径
我在C .c文件:与/项目/ src目录/文件夹中的包括:
#include "../inc/header.h"
汇编我在调试符号的相对路径后:
> objdump -WL obj.o | grep header.h
C:/project/src/../inc/header.h
...
但我希望它是C:/project/inc/header.h,因为如果我在发出set断点命令时使用绝对路径,那么在gdb中设置BP会失败。
这种情况是人为的,但由于环境条件,我的问题的唯一解决方案是在调试符号中生成绝对路径或者教GDB解析相对路径。
是否有一个开关让GCC打开调试符号中的绝对路径生成?
另一个解决方案是在将'../ inc'添加到包含路径(例如使用'-I')之后,将您的构建修复为'#include“header.h”'。 –
确实如此,但我无法更改源代码,只有编译器标志。 –
很多编码标准都禁止以'。/'或'../'开头的相对路径。 –