よく考えたら、デバッグ情報に入っているファイル名って、ほんとにフルパスなの?
と思い至りました。
もしかして、パスはなかったりして?gccで指定したら変わるとか?
gccでコンパイルしたときに指定したソースのパスが入るとか?
ようわからんなぁ。
ディレクトリ構造を持つサンプルソースを書いて、再検証せなあかんね。
前のときも結局gdb使わない仕事になって、放置したし。
フルパスからの解放
http://d.hatena.ne.jp/syasuda/20071208/1197116413
→最悪、この記事がうそ書いていることになるやんけ。
(追記)
あ~思い出した。
gdbのマニュアルに書いたぁる。
9.5 Specifying Source Directories
http://sourceware.org/gdb/onlinedocs/gdb/Source-Path.html
Executable programs sometimes do not record the directories of the source files from which they were compiled, just the names. Even when they do, the directories could be moved between the compilation and your debugging session. gdb has a list of directories to search for source files; this is called the source path. Each time gdb wants a source file, it tries all the directories in the list, in the order they are present in the list, until it finds a file with the desired name.
「実行プログラムにはディレクトリが書いてなかったり、書いてあっても、コンパイル時のもの・・・」と書いたぁる。
あとはどういうときにファイル名のみで、どういうときにフルパスになるのかを調べればよいわけよ。
コメント