저는 처음으로 LLDB를 사용하고 있습니다. MacOSX Mavericks를 운영하고 있습니다. 어떤 이유로 LLDB가 소스 코드의 줄을 인쇄 할 수 없습니다. 오히려 출력은 어셈블리 명령어 세트 인 것 같습니다. 코드를 대신 표시하도록 어떻게 수정합니까? '의 a.out'(x86_64에)에LLDB 터미널 출력
현재 실행 세트의 a.out
는 [c_src]> lldb.
(lldb) 주요
중단 점 (1) -n 설정 중단 = 주, 주소의 a.out = 곳 0x0000000100000d60
(lldb) 실행
프로세스 54010 시작 : a.out의 (x86_64의)
프로세스 pushq %의 RBP는 0x100000d61 : movq의 %의 RSP %의 RBP 0x100000d64는 : $ 2032 subq - : TID = 0x202742, 0x0000000100000d60 a.out`main
메인main, queue = com.apple.main-thread, stop reason = breakpoint 1.1 frame #0: 0x0000000100000d60 a.out
의 a.out> 0x100000d60 가 54,010이
* 스레드 1 정지 % rsp 0x100000d6b : movq 4766 (% rip), % rax; (공극 *) 0x00007fff72d37420는 : __stack_chk_guard
(lldb) S
프로세스 54,010 정지 * 실 # 1 : TID = 0x202742, 0x0000000100000d61
main + 1, queue = 'com.apple.main-thread, stop reason = instruction step into
메인 + 1 의 a.out의 a.out `주 + 1 :
frame #0: 0x0000000100000d61 a.out
-> 0x100000d61 : movq의 %의 RSP %의 RBP
0x100000d64가 : $ 2032 subq %의 RSP
0x100000d6b : movq 4766 (% 립), %의 RAX; (무효 *) 0x00007fff72d37420 : 나는 그것이 코드에서를 강화하고있다 위치를 표시하는 "S"명령을 얻으려고 movq (%의 RAX), %의 RAX
: 0x100000d72을 __stack_chk_guard.
작동합니다. 나는 명령 행에서 -g를 잊어 버렸다는 것을 믿을 수 없다. – zilitron