2012-06-25 5 views
38

LLDB에 convenience variables이 있습니까? 그렇다면 어떻게 사용합니까? 없다면 사용할 유사한 것들이 있습니까?

참조 : 자신의 tutorial에서

(lldb) expr var 

: http://software.intel.com/sites/products/documentation/hpc/atom/application/debugger/commands143.html

+0

나는 그 증거가 보이지 않습니다. 웹 사이트는 http://lldb.llvm.org/이며 메일 링리스트를 가지고 있습니다. 관리자에게 직접 물어볼 수도 있습니다. –

답변

43

마침내 알아 냈습니다. LLDB에서 help expr을 실행하면 볼 수 있습니다 :

사용자 정의 변수 : 당신은 편의를 위해 자신의 변수를 정의 할 수 있습니다 또는 후속 표현에 사용되는. C에서 변수를 정의하는 것과 같은 방법으로 변수를 정의 할 수 있습니다. 의 첫 번째 문자가 $ 인 경우 변수 값은 이후 표현식에서 사용할 수 있습니다. 그렇지 않으면 현재 표현식에서만 사용할 수 있습니다 .

그래서 expr int $foo = 5입니다.

+0

세션 중에이 방식으로 정의 된 변수를 나열하는 함수가 있는지 아는 사람 있습니까? 그것은 매우 편리 할 것입니다. 'expr list'와 같은 것 ... –

3

은 그냥 양식을 사용

(lldb) expr (int) printf ("I have a pointer 0x%llx.\n", self) 
$2 = (int) 22 
I have a pointer 0x0. 
(lldb) expr self = $0 
$4 = (SKTGraphicView *) 0x0000000100135430 
:

(lldb) expr self 
$0 = (SKTGraphicView *) 0x0000000100135430 
(lldb) expr self = 0x00 
$1 = (SKTGraphicView *) 0x0000000000000000 

또한 함수를 호출 할 수 있습니다

19

오늘 나는이 문제로 어려움을 겪었습니다. 여기 LLDB에서 오브젝티브 C 변수를 다루는 것 같습니다 무엇 :

expr UIApplication *$app = (UIApplication *)[UIApplication sharedApplication] 
expr UIWindow *$keyWindow = (UIWindow *)[$app keyWindow] 

난 당신이 둥지 어떤 호출하지 않으면 LLDB가 가장 잘 작동합니다, 당신은 명시 적으로 모든 호출에 반환 유형을주는 것으로 나타났습니다 등 .

그래도 나중에 UIView에서 initWithFrame:을 작동 시키려고하면 세그먼트 화 오류가 발생합니다. :/

관련 문제