2010-01-05 5 views
10

이것은 분명히 강하지 만 컴파일러가 C 코드를 기계 명령어로 번역하는 방법에 매료되어 있습니다. 필자가 약간의 지시 사항에 약간 희미하기 때문에 개별 시스템 명령어의 수준에서 컴파일 된 프로그램의 작동 (여러 CPU 명령어를 생성 할 수있는 C 명령문의 레벨 "아래")을 볼 수 있다면 도움이 될 것입니다. 즉, 단일 기계 명령어 후에 레지스터/메모리 변경 사항을 볼 수 있습니까?Xcode 디버거 - CPU 명령어 수준에서 단일 단계 수행 방법

다른 디버거에서도 가능하지만 Xcode 만 사용하고 있습니다.

+1

GDB는 확실히 그것을 할 수 있고, 그 GDB 명령을 호출 할 수있는 UI가있는 경우 문제는 그래서 엑스 코드 디버거는 GDB 프론트 엔드입니다. –

+0

고마워요. 대답은 '예'입니다. - Option – gary

답변

3

si는 "단계 명령"이며, ni은 "다음 명령"입니다 . 명령 단계에서만 코드 행에 대해 "단계"및 "다음"과 동일한 의미를가집니다.

+0

gdb처럼 들리지만 Xcode에서 그렇게 할 수 있습니까? – gary

+0

shift-cmd-R은 콘솔 창을 띄웁니다. 여기서 (한 번 중단하면) 표준 GDB 프롬프트가 나타납니다. 또한 Run 메뉴에 "Step Into Instruction"항목 (opt-shift-cmd-I)과 "Step Over Instruction"항목 (opt-shift-cmd-O)이있는 것 같습니다. –

+0

은 대문자 "I"("인디고"와 같은)이며 소문자 "L"은 아닙니다. –

2

디버거 창에서 어셈블리 활성화 : 실행/디버거 표시/소스 및 디스 어셈블리. 중단 점에 도달 할 때까지 기다리십시오. 그런 다음 Run/Step into (over) 명령어를 사용하여 어셈블리로 들어갑니다.

+0

에 맞춰 단계를 밟아 줘서 고마워요. - 'Step Into'가 있었지만 기계 수준 단계의 OPTION 키가 간과 되었어요. – gary

0

어머, 충분히 밀접하게 확인하지 않았다 - w/옵션 단계 씩 (Cmd를-탈퇴 SHFT-I = ⌘⌥⇧I)

8

디버거에서 Xcode의 스텝 오버, 스텝 인 및 스텝 아웃 명령을 사용할 수 있습니다. 트릭은 ctrl(제어) 키를 누른 상태에서 디버거 단계 아이콘 위로 마우스를 가져 가면 컨텍스트가 바뀝니다. 각 단계 아이콘 아래에서 선은 점으로 바뀌므로 명령 수준에서 단계를 밟을 수 있습니다.

빨간색 타원으로 강조 표시된 첨부 스크린 샷을 참조하십시오.

screenshot

관련 문제