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

 我来答
zhenimei100
推荐于2017-09-21 · TA获得超过921个赞
知道小有建树答主
回答量:586
采纳率:0%
帮助的人:362万
展开全部
例如你出现函数调用的那一行为N行,那你可以这样做:
break (N-1)
run
然后程序就会执行到N-1行停下来,接下来你可以选择底下的2个命令中的一个:
next //执行下一行源代码,但并不进入调用函数内部
step //执行下一行源代码,进入函数内部,当然,这个时候,你可以在调用函数里面加断点
追问
那遇到getchar()怎么办呢?
追答
你想进入getchar去看执行情况?
GDB应该只能调试应用层吧,进入系统调用去看执行情况,我也没这样做过。
我觉得你还不如直接看getchar的源代码呢。
剑气冲潇
2014-03-17 · 超过17用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:33.9万
展开全部
直接调用就行了啊

如果你想观察每次函数调用情况 以及个变量的值
你可以在调用函数那里用break 设一个breakpoint
追问
调试过程中遇到getchar(),那怎么办呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Hui翙
推荐于2017-09-16 · TA获得超过1.2万个赞
知道小有建树答主
回答量:2350
采纳率:93%
帮助的人:151万
展开全部

  运用以下2个命令即可:

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

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

    gdb中的函数调用:

    call name 调用和执行一个函数(gdb) call gen_and_sork(1234,1,0)(gdb) call printf(“abcd”)=4finish 结束执行当前函数,显示其返回值(如果有的话)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式