1

C /C++で記述されたMySQLソースコードでgdbを使用しようとしています。でmysql-test/t、たとえばカスタムテストケースファイルを作成example.testし、次のコード行を使用してデバッグします。

/mysql-test-run --gdb example

ここで、ファイル内のある関数から別のファイル内の別の関数に変更される実行のフローを確認したいと思います。実行がどのように変化するかわからないため、ブレークポイントを事前に定義することはできません。ソースコードの複数のファイルでフローを確認する方法はありますか?

4

1 に答える 1

0

ディレクティブを使用しnextて、ソースを1行ずつステップ実行できます。必要に応じて、ディレクティブを使用しstepて、現在の行で呼び出されている関数に「入る」手順を実行できます。

合理的な方法はnext、探している外部から見える動作を渡すだけだと思う​​まで行うことです。次に、最初からやり直して、前回の動作を確認する直前の行で停止します。それではstep今回。探しているコードが見つかるまで、必要に応じて繰り返します。ある種のデッドロックが発生していると思われる場合は、非常に簡単Ctrl-Cです。プログラムがスタックしていると思ったら、プログラムを中断()するだけで、興味深い場所で停止するはずです。

一般に、ソースをたどると、興味深いと思う場所がいくつか構築されます。必要に応じてソースファイルと行番号および/または関数名をメモし、面倒な//ビジネスを回避するために、将来これらのブレークポイントを直接設定できnextます。nextnext

于 2012-07-21T15:09:16.293 に答える