LLDB"进入"并且"完成"获得标准函数的返回值

时间:2017-09-02 00:42:07

标签: c gdb lldb

有没有办法将step转换为标准函数,如printf()或atof(),然后执行finish以返回主程序以获取返回值?

使用GDB,我可以这样做:

(gdb) step
14          float di = atof(argv[1]);
(gdb) step
atof (nptr=0x7fffffffe0c6 "5.8") at atof.c:27
27      atof.c: No such file or directory.
(gdb) finish
Run till exit from #0  atof (nptr=0x7fffffffe0c6 "5.8") at 
atof.c:27
0x00005555555547d1 in main (argc=2, argv=0x7fffffffdd18) at 
circumf.c:14
14          float di = atof(argv[1]);
Value returned is $1 = 5.7999999999999998

但是,当我尝试使用LLDB时,它会步骤" over"所有标准功能。它适用于程序内部的功能,我可以介入的功能,但不适用于标准功能。我想这是一个功能,但它有办法吗?我也将step与LLDB一起使用。

是否有其他方法可以从LLDB中的标准函数中获取返回值?

1 个答案:

答案 0 :(得分:0)

与gdb一样,lldb会进入任何有调试信息的函数。它将跳过任何没有调试信息的函数。您描述的行为差异听起来更像lldb,并没有找到标准库独立的调试信息。