2017-12-03 23:59:16
参考 如何快速地在每个函数入口处加入相同的语句?
https://www.zhihu.com/question/56132218
做个存档
1 scj@scjComputer:~/THpro/func_trace$ tree . 2 . 3 ├── func_trace.c 4 ├── func_trace.sh 5 ├── imple 6 │ ├── bar.c 7 │ └── bar.h 8 ├── main.c 9 └── 步骤
func_trace.c
1 #include <stdio.h> 2 3 static FILE *fp_trace; 4 5 void __attribute__((constructor)) traceBegin(void) { 6 fp_trace = fopen("func_trace.out", "w"); 7 } 8 9 void __attribute__((destructor)) traceEnd(void) { 10 if (fp_trace != NULL) { 11 fclose(fp_trace); 12 } 13 } 14 15 void __cyg_profile_func_enter(void *func, void *caller) { 16 if (fp_trace != NULL) { 17 fprintf(fp_trace, "entry %p %p\n", func, caller); 18 } 19 } 20 21 void __cyg_profile_func_exit(void *func, void *caller) { 22 if (fp_trace != NULL) { 23 fprintf(fp_trace, "exit %p %p\n", func, caller); 24 } 25 }