openjdk-7 gdb リスト エラー: "main.c: そのようなファイルまたはディレクトリはありません"

openjdk-7 gdb リスト エラー: "main.c: そのようなファイルまたはディレクトリはありません"

現在、Trusty Tahr で openjdk のデバッグに苦労しています。 と はすでにインストールされていますopejdk-7-jdkopenjdk-7-dbg発行すると、gdb javaシンボルは適切に読み込まれますが、コードを一覧表示するように要求すると、main.c が見つからないというエラーが表示されます。 CentOS でデバッグを機能させることに成功し、main.c ファイルを一覧表示できましたが、メインのディストリビューションである Ubuntu でも機能するようにしたいと考えています。

生の出力:

GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from java...Reading symbols from /usr/lib/debug//usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java...done.
done.
(gdb) l
85  ../../../../src/share/bin/main.c: No such file or directory.
(gdb) 

main.c を見つけられる場所に配置するには、何か特別な操作が必要ですか?

答え1

source pathソース ファイルを見つけるには、gdb によって使用されるものを変更する必要があります。

によるとgdb マニュアル:

実行可能プログラムでは、コンパイル元のソース ファイルのディレクトリが記録されず、名前だけが記録されることがあります。記録される場合でも、コンパイルとデバッグ セッションの間でディレクトリが移動される可能性があります。GDB には、ソース ファイルを検索するためのディレクトリのリストがあります。これはソース パスと呼ばれます。

まず、システム上のソース ファイルの保存場所を確認する必要があります。

 locate main.c

そしてdir dirnameコマンドを使用して次の操作を行います。

ソース パスの先頭にディレクトリ dirname を追加します。このコマンドには、':' (MS-DOS および MS-Windows では ';'。':' は通常絶対ファイル名の一部として表示されます) または空白で区切られた複数のディレクトリ名を指定できます。ソース パスに既に存在するディレクトリを指定することもできます。これにより、ディレクトリが前方に移動され、GDB はより早くそのディレクトリを検索します。

これがどのように使用されるかを知るには、上記の gdb マニュアルのリンクを注意深く読んでくださいsource path

関連情報