我想從一個腳本運行類似下面的命令運行命令後:我怎樣才能退出LLDB使用-o
有什麼辦法退出執行後LLDB而不進入交互模式?傳遞-o退出或-o退出失敗,並顯示「正在中止after_file命令執行,命令:'quit'失敗。」使用或不使用退出/退出運行上述命令會使終端處於lldb提示符下,這會阻止我僅運行此命令並將輸出重定向到磁盤上的某處。
這樣做的最終目標是在發生某些事情時按需獲得命令的輸出。這個平臺上沒有Python解釋器,所以這不是一個選項。有什麼建議麼?
我想從一個腳本運行類似下面的命令運行命令後:我怎樣才能退出LLDB使用-o
有什麼辦法退出執行後LLDB而不進入交互模式?傳遞-o退出或-o退出失敗,並顯示「正在中止after_file命令執行,命令:'quit'失敗。」使用或不使用退出/退出運行上述命令會使終端處於lldb提示符下,這會阻止我僅運行此命令並將輸出重定向到磁盤上的某處。
這樣做的最終目標是在發生某些事情時按需獲得命令的輸出。這個平臺上沒有Python解釋器,所以這不是一個選項。有什麼建議麼?
是的,這只是一個錯誤。在啓動交互式解釋器之前,「-o」命令全部收集起來並提供給子解釋器執行。不幸的是,「退出」只是放棄了分譯員。這在TOT lldb中得到了解決,應該在太久之前將其發佈爲官方Apple版本。
這似乎爲我工作:
$ xcrun LLDB /斌/ LS -o 「B malloc的」 O 「運行」 -o 「的劇本導入操作系統; os._exit(1)」
(lldb)target創建「/ bin/ls」
將當前可執行文件設置爲'/ bin/ls'(x86_64)。
(lldb)b malloc
斷點1:3個位置。
(LLDB)運行
過程640推出: '/ bin中/ LS'(x86_64的)
(LLDB)腳本導入口; os._exit(1)
過程640停止 *線#1:TID = 0x11033,0x00007fff9374136b libsystem_malloc.dylib malloc, stop reason = breakpoint 1.2 frame #0: 0x00007fff9374136b libsystem_malloc.dylib
的malloc libsystem_malloc.dylib`malloc: - > 0x7fff9374136b:pushq%RBP 0x7fff9374136c:MOVQ%RSP ,%RBP 0x7fff9374136f:pushq%RBX 0x7fff93741370:pushq%RAX
$(回提示)
這是一種嚴重的,但關鍵的城堡:
-o "script import os; os._exit(1)"
sys.exit(1)將不起作用(我們捕獲它並阻止它退出LLDB),但os._exit()是一個開放的免費贈品。考慮這個錯誤。
這對OP來說不起作用,因爲他說他的平臺上沒有Python。 – 2014-10-13 18:54:55
哎呀..沒有意識到! – 2014-10-13 21:25:48