Dmitry Polyanitsa
Dmitry Polyanitsa

Reputation: 1093

GCC - generate absolute paths for #includes in debug symbols

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?

Upvotes: 1

Views: 2066

Answers (1)

ams
ams

Reputation: 25559

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

Upvotes: 2

Related Questions