2014-10-08 2 views
3

로 명령을 실행 한 후 lldb 종료 할 수 있습니다 : 대화 형 모드를 입력하지 않고 실행 후 lldb를 종료 할 수있는 방법이어떻게 내가 스크립트에서 다음 명령 같은 것을 실행하려면 -o

lldb -f /path/to/my/file -o command1 -o command2 ... -o detach 

있습니까? "-o exit 또는 -o quit을 전달하면"aborting after_file 명령 실행, 명령 : 'quit'failed. "와 함께 실패합니다. exit/quit을 사용하거나 사용하지 않고 위의 명령을 실행하면 터미널이 lldb 프롬프트에서 나가기 때문에이 명령을 실행하고 출력을 디스크의 어딘가에 리디렉션하지 못하게됩니다.

이 목표의 최종 목표는 특정 일이 발생할 때 주문형 명령 출력을 주문형으로 얻는 것입니다. 이 플랫폼에는 파이썬 인터프리터가 없으므로 이것이 옵션이 아닙니다. 어떤 제안?

답변

1

그래, 그저 버그 일뿐입니다. "-o"명령은 모두 수집되어 인터프리터 인터프리터를 시작하기 전에 실행될 서브 인터프리터에 제공됩니다. 불행히도, "quit"은 서브 인터프리터를 막 종료했습니다. TOT lldb에서 수정되었으므로 너무 오래 전에 공식 Apple 릴리스로 변경해야합니다.

이 나를 위해 작동하는 것 같다
3

:

$ xcrun lldb/빈/LS -o "B의 malloc에"를 "실행"-o -o "스크립트 가져 오기 운영 체제, os._exit (1)"

(lldb) 대상 작성 "/ bin/ls"

현재 실행 파일을 '/ bin/ls'(x86_64)로 설정하십시오.

b (1ldb) bmalloc

브레이크 포인트 1 : 3 위치.

(lldb) 640이 출시

프로세스를 실행 : '/ 빈/ls'이 (x86_64의)

(lldb) 스크립트 수입 운영 체제; os._exit (1)

프로세스 (640)는 정지 나사 * 1 : -> 0x7fff9374136b : TID = 0x11033, 0x00007fff9374136b malloc, stop reason = breakpoint 1.2 frame #0: 0x00007fff9374136b libsystem_malloc.dylib의 malloc libsystem_malloc.dylib`malloc libsystem_malloc.dylib 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()는 열린 공짜입니다. 이것이 버그라고 생각합니다.

+0

그는 자신의 플랫폼에 파이썬이 없다고 말하기 때문에 OP에는 사용할 수 없습니다. –

+0

죄송합니다. –