我想在Linux下跟蹤C程序,並記錄所有函數調用並以樹的格式返回。 例如,源代碼:如何跟蹤所有本地函數調用並退出,並將其記錄到文件中以供查看
void a()
{
printf("a\n");
}
void b()
{
printf("b\n");
}
void c()
{
a();
b();
}
int main()
{
a();
b();
c();
}
而且我想類似以下的輸出:
call main
call a
exit a
call b
exit b
call c
call a
exit a
call b
exit b
exit c
exit main
這是一個理想主義的輸出。我只想獲得所有本地函數調用和返回的過程,因此類似的輸出也是受歡迎的。
那麼使用'printf'跟蹤出入境出的功能(的構造函數/析構函數的概念C++)。要打印文件使用'fprintf' –
請檢查此鏈接..它可能會有所幫助。 http://stackoverflow.com/questions/10374005/how-to-trace-function-call-in-c –
這是一個大項目,所以很難注入fprintf中陳述所有功能手動。有什麼工具可以幫助我嗎? – river