2013-08-19 3 views
12

Xcode를 사용하고 있으며 코드에서 NSString을 나타내는 중단 점을 설정하려고합니다. 내가하고있는 일은 중단 점을 설정 한 다음 편집하는 것입니다. "Shell Command"동작을 추가합니다. 첫 번째 인수는 say이고 두 번째 인수는 문제가있는 곳입니다.Xcode의 중단 점에 대해 Say 명령 사용

NSString *myString = @"This is a test"; 

두 번째 인수로 @[email protected]을 입력하면 메모리 주소를 읽습니다. 전의. 0x0b4be130

시도하면 @[myString UTF8String], 나에게 또 다른 메모리 주소를 제공합니다.

myString을 역 참조하면 @*[myString UTF8String]@은 문자열의 첫 번째 문자 만 제공합니다.

어떻게하면 제대로 할 수 있습니까?

답변

12

실제로 LLDB에는 전체 LLDB 라이브러리가 노출 된 inbuilt Python 인터프리터가 있습니다. 디버거 명령 script으로 액세스 할 수 있습니다. 이를 통해 프레임에서 변수의 문자열 표현을보다 쉽게 ​​얻을 수 있으며이를 OS say 명령으로 보낼 수 있습니다. 디버거 작업 추가 : 원하는 것을 얻기 위해

script os.system("say " + lldb.frame.GetValueForVariablePath("myVariable").description) 

을 추가하십시오. Python 스크립트를 새로운 LLDB "명령"으로 마무리 할 수 ​​있으므로 say이라는 디버거 명령을 명시 적으로 작성하여 기본 개체 설명을 작성할 수 있습니다. 이러한 유형의 스크립트 설정에 대한 소개는 http://lldb.llvm.org/python-reference.html을 참조하십시오.

관련 문제