リモートデバッグ時のcore dumpファイルの読ませ方を教えてください。


ターゲット:ARM CPU 組み込みLinux NFS gdbserver
PC側:Linux arm-linux-gdb

ターゲット側で不正命令(NULLポインタへの書き込み)を実行してcore dumpファイルを作成しました。
通常のLinuxPC上のプログラムであれば「gdb プログラム coreファイル」で起動すれば良いのですが、


現在はターゲット上で
gdbserver HOST:5678 プログラム名
PC上で
arm-linux-gdb プログラム名 で起動し
target remote IPアドレス:5678


この後、どうやってcore dumpファイルを読み込ませれば良いか教えてください。


target remote IPアドレス:5678 core-file NFS上のcore dumpファイル名
を読み込ませて
where
を実行してもうまくスタックトレースが表示されませんでした。


参考
ターゲット上で
gdbserver HOST:5678 プログラム名


PC上で
arm-linux-gdb プログラム名 で起動し
target remote IPアドレス:5678
b main
c
でとまった後のデバッグは問題なくできています。


また、同じプログラムをPC用にコンパイルし
gdb プログラム名 core dumpファイル名
where
を行うと問題なく不正命令を実行した関数が表示されます。

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:
  • 終了:2008/11/26 15:25:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答0件)

回答はまだありません

  • id:garyo

    PC上で
    arm-linux-gdb プログラム名 で起動し
    target remote IPアドレス:5678
    とした後
    core-file コアファイル名
    としても

    GDB can't read core files on this machine.

    と表示されます。
    どうやればgdbserverを使用した状態でcore dumpファイルを読み込ますことができるのでしょうか?
  • id:zzz_1980
    gdbserver は残念ながら core file の読み込みに対応しておりません。
  • id:garyo
    zzz_1980さん、色々試してそんな気がしてきました。
    もしソースがあれば紹介して下さい。

    やはりarm上で動くarmのgdbで読み込ませないとだめでしょうか。

    せめてcore dump内のアドレス情報が読めれば何とかなりそうなのですが。

    ※arm上で動くarmのgdbは上手く作れませんでした。

  • id:zzz_1980
    どうして?と問われれば、実装されていないから、としかいいようがありません。
    http://sourceware.org/gdb/download/onlinedocs/gdb_18.html#SEC162
    から 17.5 Implementing a Remote Stub。arm だったら arm-stub.c あたりかな?
  • id:garyo
    ありがとうございます。ポイント送信させていただきます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません