2011-03-25 11 views
18

내 iPhone 앱에서 빡빡한 루프에서 실행되는 일부 코드를 조정 중이며 생성 된 어셈블리 코드를보고 궁금한 점이 있는지 궁금합니다. 엑스 코드 3.X에서 Xcode 4에서 어셈블리를 검사하려면 어떻게해야합니까?

, 메뉴에서 빌드> 쇼 조합 코드 옵션이 있었다, 그러나 나는 어떻게

누구나 알고있는 메뉴에서 아무것도 또는 엑스 코드 4에 대한 문서를 볼 수 없습니다 이 작업을 수행? "gcc -S"를 할 수는 있지만, 전체 프로젝트를 컴파일하는 방법과 동일하지는 않습니다.

+3

: 미리 처리, 조립 및 분해를. http://stackoverflow.com/questions/5937031/xcode-4-preprocessor-output – jmihalicza

+0

아무도 대체 기능이없는 핵심 기능을 추출하는 경우 Apple과 매우 비슷합니다. –

답변

20

"보기 분해"옵션 http://pilky.me/view/16는 지금까지 내가 말할 수있는, 사라 졌어요.

여기에 한 가지 해결 방법은 다음과 같습니다.

  1. 프로젝트
  2. 를 열고 빌드 로그 구축, 그리고 관심있는 소스 파일을 작성하는 데 사용 된 컴파일 명령을 찾으려면 검색 창을 사용하여 복사 전체 빌드 명령.
  3. 터미널 창을 열고 프로젝트 디렉토리로 이동하십시오.
  4. 빌드 로그에서 빌드 명령을 터미널에 붙여넣고 -save-temps을 추가하십시오. Enter를 누르십시오.
  5. yourFile.iyourFile.s의 두 개의 새 파일이 있습니다.이 파일은 전처리 된 소스이며 생성 된 어셈블리이며 프로젝트에서와 똑같이 작성됩니다.

또는 otool -tvV /path/to/binaryOrDotOFile을 사용하여 빌드 된 이진 파일 (또는 소스 파일에서 생성 된 개체 파일)을 디스 어셈블 할 수 있습니다.

마지막으로이 기능을 갖고 싶으면 버그 보고서를 제출하십시오!

편집 : 이 기능은 Xcode 4.1에 있습니다. 보조 편집기 창에서 "Generated Output -> YourFilename (Assembly)"을 선택하십시오. 팔!

+1

굉장! otool이 트릭을했습니다. – Bill

3

Xcode 4의 this thorough review에 따르면이 기능은 Xcode 4에서 제거되었습니다. 다시 시도하려면 버그/rdar 파일을 제출해야합니다.

4 개 기능 같은 저자 엑스 코드에서 또 다른 도움이 빠른 눈 :

3

Ctrl + F7을 한 번 이상 눌러 보면 어셈블리 코드가 표시됩니다.

4

나 같은 게으른 분들을 위해 위의 Stephen Canon의 제안은 더 적은 작업으로 수행 할 수 있습니다 : 프로젝트 설정 -> 빌드 단계 -> 소스 컴파일 및 "컴파일러 플래그"열 참고 . 디스 어셈블리가 필요한 파일에 -save-temps를 추가하면 .ii 및 .s 파일이 프로젝트 디렉토리에 저장됩니다.

아마도 "-Wa, -alh"및 쉘 리디렉션 "> myFile.s"과 같은 사용자 지정 규칙을 만드는 것이 더 나은 해결책이 될 수 있지만 기본 빌드 규칙을 쉽게 복제하는 방법을 알지 못합니다 수정을 위해.

"뷰 어셈블리"가 XCode 4에서 어떻게 제거 되었습니까?!?!

16

제품 -> 출력 생성 -> 어셈블리 파일로 이동하여 어셈블리를 빌드 할 수 있습니다. 희망 사항입니다.

참고 : 그들은 위의 대답은 엑스 코드에서 지금

11

당신이 제품 →

조치 → "MyController.m를 조립"수행을 선택할 수 있습니다 5.0.2 일을하고있다 엑스 코드 5에서 다시 변경

NB 이 질문은 Xcode 4를 말하지만 Google의 검색 결과는 높은 편입니다.

2

디버거에서 실행하고 실행을 중단하고 디버거에 "disass"를 입력 할 수 있습니다. 기본적으로 현재 함수를 디스 어셈블 할 것이므로 일반적으로보고 싶은 함수에 중단 점을 넣는 것이 가장 빠릅니다. LLDB에서 "disass -h"는 명명 된 함수를 역 어셈블하는 것과 같은 다른 옵션을 표시합니다 (ObjC 선택기에서 작동하는지 확실하지 않음).

적어도, 손으로 소스 파일을 다시 작성보다 훨씬 쉽게 ... 보조 편집기가 해당 뷰가 들어 새로운 버전

+0

나는 도움이 다음과 같이 접근한다고 믿는다 :'help disass' –

관련 문제