GCC - generate absolute paths for #includes in debug symbols

百般思念 提交于 2020-01-03 04:43:06

问题


OS is Windows, GCC is 4.7.2, GDB is 7.3.

I have a .c file in the C:/project/src/ folder with an include:

#include "../inc/header.h"

After the compilation I have a relative path in the debug symbols:

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

Yet I want it to be C:/project/inc/header.h, because setting BPs in gdb fail for me if I use absolute paths when issuing the set breakpoint command.

This situation is artificial, but due to the environmental conditions the only solution to my issue will be either absolute paths generation in the debug symbols or teaching GDB to resolve relative paths.

Is there a switch for GCC to turn on the absolute path generation in the debug symbols?


回答1:


The solution is in GDB, not GCC.

The easiest way is to add the directory containing the header to the search path:

(gdb) directory /path/to/include/

A more complicated one that you might need is pathname substitution rules:

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


来源:https://stackoverflow.com/questions/13362060/gcc-generate-absolute-paths-for-includes-in-debug-symbols

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!