私はfunc_treeを使用していますが、マクロの関数呼び出しと関数を表示していないopensourceツールを誰かに提案できますか? ?Cコードの関数呼び出しツリーをファイルにダンプする方法は?
0
A
答えて
0
コードをコンパイルする直前に、Cプリプロセッサがすべてのマクロを展開します。これは、コンパイラでさえマクロ定義を見ることができないことを意味します。残念なことに、関数呼び出しのトレースにマクロを含めることはできません。
ランタイム環境がどの程度よく分かっているかによって、スタックトレースフレームがスタック内の現在の位置からどこにあるかをバック計算することができます。残念なことに、厳密な詳細は1つの環境でのみ有効です。各環境のスタックセマンティクスの発見を再実行する必要があります。 Here is project that performs such a techniqueですが、それがあなたにとって非常に有用かどうかを知ることはできません。
コンパイラが同等の機能コードを呼び出しブロックに配置するときに、関数呼び出しが存在しないように変更されるため、このような手法ではコンパイラのインライン展開も表示されない可能性があります。
特定の環境でGoogleと同様のプロジェクトが見つからない場合は、自分で作成する必要があります。それがあなたを超えている場合は、環境の低レベルの詳細を学習する価値があるかどうか、またはより強力なロギングを実行するほうがよいかどうかを調べる必要があります。
関連する問題
- 1. C++:関数呼び出しツリーを生成する
- 2. .csファイルからJavaScript/jQuery関数を呼び出す方法C#
- 3. 目的関数CでJavaScript関数を呼び出す方法
- 4. C関数呼び出し
- 5. linuxのPythonコードからC++関数を呼び出す方法は?
- 6. LinuxでJavaコードからC関数を呼び出すには
- 7. このDLL関数をC++/Cから呼び出す方法
- 8. data.tableを呼び出す関数を呼び出す関数の記述方法?
- 9. このC++関数を呼び出す方法は?
- 10. 別のファイルから関数を呼び出す方法は?
- 11. .jsファイルのコードビハインドで関数/メソッドを呼び出す方法は?
- 12. Qtクイックプロジェクト - qmlファイルのcpp関数を呼び出す方法は?
- 13. メイン関数の呼び出し方法
- 14. javascript関数の呼び出し方法
- 15. C++コードから目的のC関数を呼び出す
- 16. RegisterStartupScript w/jsファイルを使用してC#コードのJavascript関数を呼び出す
- 17. 他のcファイルから静的関数を呼び出す方法は?
- 18. 変数をダンプするために非同期関数呼び出しをインターラプトする方法
- 19. CからC++関数を呼び出す方法#
- 20. C#からAllocateAndInitializeSid関数を呼び出す方法は?
- 21. javascriptからC#関数を呼び出す方法は?
- 22. C#アプリケーションからjquery関数を呼び出す方法は?
- 23. ADO/C++からMSSQLシステム関数を呼び出す方法は?
- 24. JavaScriptからObjective-c関数を呼び出す方法は?
- 25. MVVMを関数呼び出しに実装する方法は?
- 26. kernel32.dll関数を呼び出す方法C++でLoadLibrary(..)を使用してGetTickCount()を呼び出す方法
- 27. 別の関数で関数を呼び出す方法は?
- 28. VisualVMで呼び出しツリーを表示する方法は?
- 29. クラスの配列の関数を呼び出す方法C++
- 30. 純粋な関数呼び出しのツリーを単独でテストするには?
なぜC言語であればこのC++にタグを付けましたか? –
コールツリーを構築するとどういう意味ですか? – AJG85
マクロは機能ではありません。マクロはコピー&ペーストされています。どんな種類のデバッガやスタックトレースにも表示されることはありません。 –