GDB 高级应用
有没有人知道,怎么才能使用gdb 在进入一个函数时,吐出一条log。
要自动吐出。
例:
fun_1()
{
fun_2();
fun_3();
fun_2();
}
fun_2()
{
fun_3();
}
在程序运行时,自动吐出
call fun_1
call fun_2
call fun_3
call fun_3
call fun_2
------解决方案--------------------好像要用calls
------解决方案--------------------break fun_1
commands
printf "call fun_1\n"
continue
end
没试过
------解决方案--------------------只知道怎么跟踪系统调用
strace
------解决方案--------------------关注ing。。。。。。
------解决方案--------------------在每个函数入口处输出这样的log就可以了。。。
------解决方案--------------------GDB不是万能的
------解决方案--------------------
------解决方案--------------------gdb的backtrace命令可以查看函数调用的关系
------解决方案--------------------建议使用
#ifdef _DEBUG_
ptinf("进入函数");
#endif
在编译调试版本时,
在Makefile中添加编译选项中添加 -D_DEBUG_
------解决方案--------------------写一个脚本将所有的printf改为
#ifdef _DEBUG_
printf("进入函数");
#endif
不就行了吗