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