0
有没有办法将step
转换成printf()或atof()等标准函数,然后执行finish
返回主程序以获取返回值?LLDB“进入”和“完成”以获得标准函数的返回值
随着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它的步骤“过度”的所有标准功能。它适用于程序内部的功能,我可以介入这些功能,但不适用于标准功能。我想这是一个功能,但有没有办法解决它?我也用LLDB使用step
。
是否有其他方法可以从LLDB中的标准函数获取返回值?
谢谢,我试着GDB和LLDB在同一台机器上,然后我得到了一致的行为。我知道在不同的机器上运行时,我在LLDB和GDB之间只有不同的行为。所以你是正确的,差别可能是我运行LLDB的机器上缺少调试信息。 – jackbenny