linux用gdb调试遇到函数调用怎么办?

如题所述

例如你出现函数调用的那一行为N行,那你可以这样做:
break (N-1)
run
然后程序就会执行到N-1行停下来,接下来你可以选择底下的2个命令中的一个:
next //执行下一行源代码,但并不进入调用函数内部
step //执行下一行源代码,进入函数内部,当然,这个时候,你可以在调用函数里面加断点追问

那遇到getchar()怎么办呢?

追答

你想进入getchar去看执行情况?
GDB应该只能调试应用层吧,进入系统调用去看执行情况,我也没这样做过。
我觉得你还不如直接看getchar的源代码呢。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-17
直接调用就行了啊

如果你想观察每次函数调用情况 以及个变量的值
你可以在调用函数那里用break 设一个breakpoint追问

调试过程中遇到getchar(),那怎么办呢?

第2个回答  推荐于2017-09-16

  运用以下2个命令即可:

    next     //执行下一行源代码,但并不进入调用函数内部

    step     //执行下一行源代码,进入函数内部,这个时候,可以在调用函数里面加断点。

    gdb中的函数调用:

    call name 调用和执行一个函数(gdb) call gen_and_sork(1234,1,0)(gdb) call printf(“abcd”)=4finish 结束执行当前函数,显示其返回值(如果有的话)