如何使用GDB查看函数的返回值?

smannue 2010-08-03 11:35:02
1
2 #include <stdio.h>
3 #include <string.h>
4
5 int main()
6 {
7 char str1[] = "hello";
8 char str2[] = "hello world";
9
10 if (strlen(str1) || strlen(str2))
11 return 1;
12
13 return 0;
14 }

如何在单步调试中查看那两个strlen的返回值?
...全文
572 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
smannue 2010-08-04
  • 打赏
  • 举报
回复
看来GDB也有相当不足的地方啊……要是判断语句里多几个函数条件不就完蛋了,只能用鼠标了,想用纯键盘操作看来是不可行了……可惜啊
zhongxiutao123 2010-08-04
  • 打赏
  • 举报
回复
下断点的位置有限制
这的确是一个可以改进的地方
brookmill 2010-08-04
  • 打赏
  • 举报
回复
可以考虑用stepi命令进入strlen函数,然后用finish命令停在strlen结束的地方,然后用info registers eax看他的返回值。
不过这样太累了,还不如直接 print strlen(str1)
帅得不敢出门 2010-08-04
  • 打赏
  • 举报
回复
下断点的位置有限制
这的确是一个可以改进的地方
louyong0571 2010-08-04
  • 打赏
  • 举报
回复
print strlen(str1)直接看
断点到到strlen函数里面去看
可以转换成汇编单步跟

方法多着呢
brookmill 2010-08-03
  • 打赏
  • 举报
回复
x86的整数返回值保存在eax,所以可以考虑 info registers eax
但是像这样一行两个函数,就不好办了……

23,127

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧