2012-11-05 8 views
3

일부 코드의 프로필을 작성하려고하는데 특정 명령이 실행될 때의 타임 스탬프를 확인해야합니다. 내 코드에 NSLog() 문을 삽입하여이 작업을 수행 할 수 있지만 여러 가지 이유로 디버거를 사용하고 싶습니다.Xcode에서 LLDB로 타임 스탬프를 어떻게 인쇄합니까?

각 중요한 이벤트에 중단 점을 설정했는데 "로그 메시지"동작을 사용하여 메시지를 인쇄 할 수있는 중단 점을 만들 수 있지만 NSLog() 스타일 타임 스탬프 (밀리 초 단위의 정확도)를 출력하고 싶습니다.).

이렇게하려면 LLDB 명령이 있습니까?

답변

4

이 기술은 작동하지만 조금 해키 보인다 (확실히 더 나은 방법이?) : 디버거 명령에서

전화 NSLog() : 메시지 라인 쓰기에서

call (void) NSLog(@"An Important Event Occurred") 
+0

예, NSLog()를 호출하기 위해 중단 점에 명령을 추가하는 것은 확실히 하나의 해결책입니다. NSLog() 귀하의 신청서에 또 다른 옵션은 중단 점에 파이썬 스크립팅을 추가하고 파이썬으로 현재 시간을 가져 와서 인쇄하는 것입니다.이 방법은 열등한 함수 호출보다 빠릅니다 (하위 함수 호출은 Xcode/lldb 대신 응용 프로그램에서 함수 호출을 실행하는 것을 의미합니다). Xcode breakpoint 편집기가 파이썬 명령을 추가 할 수 있다고 생각하지는 않습니다. 그러나 디버거 콘솔 창이나 '~/.lldbinit' 파일 (또는 콘솔에있는 명령 파일)을 통해이를 수행해야합니다. –

+0

실망 스럽습니다. 디버거에서이 기능이 비교적 일반적으로 (그리고 쉽게 구현 된) 기능이라고 생각했습니다. 그리고 GDB에서 LLDB 로의 전환에서 한 번 더 많은 희생이 따르는 것 같아요. :-( –

+0

당신이 lldb vrs. gdb 변경을 본 것 같지 않습니다, 아마도 Xcode 3 vrs Xcode 4가 변경 되었습니까? –

0

: [메시지 ] @Date(). timeIntervalSince1970 * 1000 @ 그러면 타임 스탬프가 밀리 초 단위로 인쇄됩니다.

관련 문제