태그 : cocoatouch
2009/06/14   objc_exception_throw 심볼릭 브레이크포인트
2009/06/14   Active Configuration의 Debug와 Release의 차이
objc_exception_throw 심볼릭 브레이크포인트
http://kenial.tistory.com/649 에서 정말 눈이 번쩍 뜨이는 Xcode 디버깅 팁을 보았는데, 좀비 객체처럼 아쉽게도 Cocoa Touch에서는 쓰지 못하는 녀석도 있다.

하지만 objc_exception_throw 심볼릭 브레이크포인트는 정말 편한 기능이다.

뭐 애초부터 꼼꼼히 설계하지도 않고, 대충 이런저런 객체 만들어서 이래저래 주고받고 하면 되겠지 수준에서 코딩을 시작하다보니, 배열이나 사전 안에 들어있는 녀석이 뭔지 곧잘 헷갈리고 해서, id의 폐해를 정말 뼈저리게 느끼며, 제대로 구조체를 만들어서 써야지 라고 생각을 하기는 하는데, 막상 쓰려면 id가 편하긴 편하다.

이런 상황이니 배열에다가 objectForKey를 날려주고 하는 바보짓도 종종 있고.. 뭐 요새는 그래도 개발노트랍시고 일단 끄적이면서 하고는 있으니 좀 낫지만.


방학 되면 정말 제대로 Objective C를 배워보긴 해야 할텐데..
by ceraduenn | 2009/06/14 23:03 | 개발 팁 | 트랙백 | 덧글(0)
Active Configuration의 Debug와 Release의 차이
GDB로 코드를 한 줄 한 줄 살펴보며 디버깅할 때, Step Over를 하면 한 줄씩 다음 줄로 넘어가야 한다.
(뭐 한 줄 내용을 두세 줄에 나눠 썼을 때는 두세 줄씩 넘어갈 수도 있긴 하다.)

Active Configuration을 Release로 해서 컴파일시킨 녀석은, 다음 줄로 넘어가다 갑자기 뒤로 돌아오기도 하고 그러는데 Debug로 하면 제대로 넘어가는 듯 하다.

아마 이 차이가 아닐까?

Target Info의 기본값에서 두 Configuration을 비교해 보면,

Deployment에서는
Strip Debug Symbols During Copy (Debug:OFF, Release:ON)

GCC 4.0 - Code Generation에서는
Generate Position-Dependent Code (Debug; OFF, Release:ON)
Optimization Level (Debug: None [-O0], Release:Fastest, Smallest [-Os])

경로 지정 같은 걸 제외하면 이런 차이가 있는데, 뭐 솔직히 Optimization Level 빼고는 무슨 말인지 모르겠다.
by ceraduenn | 2009/06/14 22:49 | 개발 팁 | 트랙백 | 덧글(0)
< 이전페이지 다음페이지 >