linux用gdb调试遇到函数调用怎么办?
3个回答
展开全部
例如你出现函数调用的那一行为N行,那你可以这样做:
break (N-1)
run
然后程序就会执行到N-1行停下来,接下来你可以选择底下的2个命令中的一个:
next //执行下一行源代码,但并不进入调用函数内部
step //执行下一行源代码,进入函数内部,当然,这个时候,你可以在调用函数里面加断点
break (N-1)
run
然后程序就会执行到N-1行停下来,接下来你可以选择底下的2个命令中的一个:
next //执行下一行源代码,但并不进入调用函数内部
step //执行下一行源代码,进入函数内部,当然,这个时候,你可以在调用函数里面加断点
追问
那遇到getchar()怎么办呢?
追答
你想进入getchar去看执行情况?
GDB应该只能调试应用层吧,进入系统调用去看执行情况,我也没这样做过。
我觉得你还不如直接看getchar的源代码呢。
展开全部
直接调用就行了啊
如果你想观察每次函数调用情况 以及个变量的值
你可以在调用函数那里用break 设一个breakpoint
如果你想观察每次函数调用情况 以及个变量的值
你可以在调用函数那里用break 设一个breakpoint
追问
调试过程中遇到getchar(),那怎么办呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
运用以下2个命令即可:
next //执行下一行源代码,但并不进入调用函数内部
step //执行下一行源代码,进入函数内部,这个时候,可以在调用函数里面加断点。
gdb中的函数调用:
call name 调用和执行一个函数(gdb) call gen_and_sork(1234,1,0)(gdb) call printf(“abcd”)=4finish 结束执行当前函数,显示其返回值(如果有的话)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询