関数呼び出しと渡されたものをログに記録できる C++ 用のツールはありますか?
元:
Display::Resize(1024,768)
Player::Jump()
...
または、すべてのクラスのすべてのメソッドでログを呼び出すことなく、実行の流れを直線的に見るために、このようなものはありますか?
私は Visual Studio を IDE として使用していますが、これを行うことができる外部ツールまたはプラグインは素晴らしいものです。いずれかがあります?
ありがとう
よりエキゾチックな解決策は、Aspect-Oriented Programmingを見てみることです。基本的な例の 1 つは、関数呼び出しをログに記録することです。
C++ の例については、こちらを参照してください。
編集:メンバー関数からの呼び出しをトレースする AspectC++ の小さな例 (その場合は Iter::Reset)
aspect Tracer
{
advice call("% %Iter::Reset(...)") : before()
{
cerr << "about to call Iter::Reset for " << JoinPoint::signature() << endl;
}
};
関心のある関数がデバッガーで呼び出されたときにバックトレースを自動的に出力するブレークポイントを設定するか、xtraceなどの専用ツールを使用できます。