39

gdb にfinishは、関数フレームの実行を簡単に終了するコマンドがあります。多くの場合、デバッガーでコードをウォークスルーするときに、ループの反復を数回見た後、ループを終了し、ループを続行したいと思います。現在、ループの後の最初の行にブレークポイントを設定することcontinueでこれを行っていますが、これと同じ効果を持つがブレークポイントを設定する必要のない単純な gdb コマンドがあれば、非常に便利です。後にクリア。

実行中の現在のループの実行を終了するために gdb にとにかくありますか?

4

2 に答える 2

46

ループ構成を終了する gdb コマンドはありますか?

untilループの最後の行で実行するかuntil NNNNNNはループの最後の行です。

(gdb) help until
Execute until the program reaches a source line greater than the current
or a specified location (same args as break command) within the current frame.

ブレークポイントを設定して後でクリアする必要はありません。

一時的なブレークポイントは自動的にクリアされます:

(gdb) help tbreak
Set a temporary breakpoint.
Like "break" except the breakpoint is only temporary,
so it will be deleted when hit.  Equivalent to "break" followed
by using "enable delete" on the breakpoint number.
于 2013-02-01T20:54:02.650 に答える
5

gdbループがどこで終了するかわからないため、それを行うことはできません。あなたができる最善のことはadvance、ループの後に場所を指定してコマンドを使用することだと思います。

于 2013-02-01T16:51:42.290 に答える