関数が呼び出されてその関数内で一時停止するまでgdbで実行を続行する方法はありますか?私が作業しているコードにn
とs
を使用するのは苦痛です。 nextFrame
とfin
が好きで、nextFrame
が存在すると仮定すると、新しい機能が追加されました。 nextFrame
は、現在のスコープからスタックを巻き戻すときのみ、つまり別の関数呼び出しを行わずに現在のスコープの最後の行で一時停止するときにわかります。gdb呼び出しスタック上の新しいフレームまで実行を続行します
基本的には、コードベースをコールスタックの観点から見て、ラインごとの視点からは見たくなりません。
P.S.そのような施設が存在すると仮定すると、私はそれがboost
と一緒に使うのは問題があると思います。例えば。 boost::shared_ptr<MyType> a = foo();
のような行がある場合は、最初にboost
コード内で停止してから、foo()
の内部で一時停止します。これはブーストコードには興味がなく、foo
の内部だけを見たいので、問題です。
P.S.私はまた、clangを持っています。これがclangで可能かどうか疑問です。
デバッグ情報がある場合は、すべての機能(シンボル)にブレークポイントを設定するか、自動的にあなたのためにステップアップし、 'call'と' ret'命令と等価物をブレークするようにGDBをスクリプトできます。これらのアプローチの複数の実装がそこに存在します.. –
@MichaelFoukarakisありがとう、これは面白いと思うよ –