Xcode에서 LLDB로 디버깅하는 동안 변수 값을 변경하는 방법은 무엇입니까?
Xcode에서 GDB를 사용하면 디버깅하는 동안 로컬 변수를 변경할 수 있습니다(XCode에서 디버깅하는 동안 NSString 값을 변경하는 방법 참조).LLDB는 비슷한 기능을 제공합니까?그렇다면 어떻게 사용할 수 있을까요?
expr myString = @"Foo"
(lldb) 도움말 expr
현재 범위에 있는 변수를 사용하여 현재 프로그램 컨텍스트에서 C/ObjC/C++ 식을 평가합니다.이 명령은 '원시' 입력을 사용합니다(따옴표로 묶을 필요 없음).구문: 식 --
명령 옵션 사용: expression [-f ] [-G ] [-d ] [-u ] -- expression [-o] [-d ] [-u ] - expression
-G <gdb-format> ( --gdb-format <gdb-format> ) Specify a format using a GDB format specifier string. -d <boolean> ( --dynamic-value <boolean> ) Upcast the value resulting from the expression to its dynamic type if available. -f <format> ( --format <format> ) Specify a format to be used for display. -o ( --object-description ) Print the object description of the value resulting from the expression. -u <boolean> ( --unwind-on-error <boolean> ) Clean up program state if the expression causes a crash, breakpoint hit or signal.
예:
exprmy_array->a = my_array[3]
expr -f bin -- (색인 * 8) + 5
exprcarc[] = "foo"; c[0]중요 참고:이 명령은 'raw' 입력을 사용하므로 명령 옵션을 사용하는 경우 명령 옵션의 끝과 원시 입력의 시작 사이에 ' --'를 사용해야 합니다.
'expr'은 'expion'의 줄임말입니다.
다음과 같은 것들이 저에게 효과가 있습니다.저는 Xcode 8을 사용하고 있습니다.
일부 변수(예: "dict")를 0으로 설정한 다음 코드 흐름을 테스트하려면 다음을 시도하십시오.
- 원하는 값으로 초기화한 후 중단점을 올바르게 배치합니다.
- 그런 다음 lldb 명령줄에서 "dict = nil"을 실행하여 변경합니다. (예: "dict")
- 브레이크 포인트를 넘습니다.
- 다음 줄에서 변수 "dict"를 확인합니다.0이 될 것입니다.
콘솔에 있는 것처럼 보일 것입니다.
(lldb) expression dict = nil
(NSDictionary *) $5 = nil
Xcode 10 또는 11을 사용하는 경우 필요한 변수로 초기화한 후 중단점을 적절하게 설정하면 다음을 사용하여 변수를 변경할 수 있습니다.po myString = "Hello World"
쉽게.
중단점을 누를 때마다 이 작업을 수행하려면 중단점에 식을 추가할 수 있습니다.
- 변수를 조작할 점에 중단점 생성
- 마우스 오른쪽 버튼을 클릭하고 중단점 편집 선택
- 작업 라디오 상자에서 '디버거 명령'을 선택합니다.
- 입력
e yourStringName = "Your new value"
- '액션 평가 후 자동으로 계속' 확인란을 선택합니다.
언급URL : https://stackoverflow.com/questions/9907387/how-to-change-variables-value-while-debugging-with-lldb-in-xcode
'programing' 카테고리의 다른 글
Python pep-8이 들여쓰기를 위해 탭 위에 공백을 두는 것을 강력히 권장하는 이유는 무엇입니까? (0) | 2023.06.09 |
---|---|
OpenXML 형식 SDK를 사용하여 스프레드시트에서 데이터를 읽는 방법은 무엇입니까? (0) | 2023.06.09 |
새 GUI를 만들 때 WPF가 Windows Forms보다 선호됩니까? (0) | 2023.06.04 |
Android에서 TextView 스크롤 가능하게 만들기 (0) | 2023.06.04 |
오류: gem을 실행하는 동안... (Errno::EPERM) 작업이 허용되지 않습니다. (0) | 2023.06.04 |