1. ホーム
  2. debugging

[解決済み] GDBで前の行に移動するには?

2023-04-15 13:21:41

質問

gdbで、現在実行中の行の前の行に移動することは可能でしょうか。 例


void my_fun( somePtrType** arr,int start,int end)
{
 // arr is an array of pointers to somePtrType
  //line a
 ... some assignments
 swap(&arr[ind1] , &arr[ind2] ) ;
 //line b (current line )
}

現在、b行目にいるので arr の値を調べることができますが、a行に戻り arr の内容を調べたい。

デバッガはコードをスローモーションで動かすことはできても、逆行させることはできないので、無理なのかもしれませんね。

その他の洞察は...

どのように解決するのですか?

そうです! 新しいバージョン7.0のgdbでは、まさにそれが可能です!

コマンドは " となります。 reverse-step または、" reverse-next "です。

gdb-7.0 は ftp.gnu.org:/pub/gnu/gdb から入手可能です。

もし、エラーに遭遇したら Target child does not support this command. というエラーが発生したら target record を実行の最初に加えてみてください。 run .

編集: GDB 7.6以降では target record は非推奨です。 target record-full を使ってください。