1

OSは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
...

しかし、set breakpoint コマンドを発行するときに絶対パスを使用すると、gdb で BP を設定できないため、C:/project/inc/header.h にしたいと考えています。

この状況は人為的なものですが、環境条件により、私の問題に対する唯一の解決策は、デバッグ シンボルで絶対パスを生成するか、相対パスを解決するように GDB に教えるかのいずれかです。

GCC がデバッグ シンボルで絶対パスの生成をオンにするスイッチはありますか?

4

1 に答える 1

2

解決策は GCC ではなく GDB にあります。

最も簡単な方法は、ヘッダーを含むディレクトリを検索パスに追加することです。

(gdb) directory /path/to/include/

必要になるかもしれないより複雑なものは、パス名の置換規則です。

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