[질문] HP-UNIX에서 Debug 정보를 안넣는 방법.

bizzare의 이미지

HP-UNIX에서 빌드할 때 (aCC)
디버그 옵션은 -g로 알고 있습니다.

그래서 릴리스모드로 빌드한다고 생각하고서
-g 옵션없이 빌드를 했는데,
ASSERTION이 발생하는 것 같더군요.
ex) assert(0);

그래서 optimize옵션인 -O+O2 를 줘 봤는데도

여전히 ASSERTION은 발생하더군요.

이게 단순히 ASSERTION이 발생하는 것 뿐인지,
디버그정보가 포함된채로 빌드된 것인지 정확히 모르겠더군요.

저의 질문은

1) 빌드 시에 Debug정보가 포함되지 않도록 하는 법

2) 생성된 binary가 Debug정보를 포함하고 있는지 확인하는 법

3) 어쩌면 debug정보는 안들어갔는데, assert코드만 작동하는 것일 수도 있다는 생각이 들더군요. NDEBUG가 정의되어 있지 않으면 동작하는 매크로니까요. 그런걸까요? 그렇다면 NDEBUG를 제가 명시적으로 define 해줘야 하나요?

입니다.

답변 부탁드립니다.

revizes의 이미지

Quote:
1) 빌드 시에 Debug정보가 포함되지 않도록 하는 법

-g 옵션이 없으면 기본적으로 debug symbol이 들어가지 않습니다. HP-Unix는 모르겠고
리눅스에는 strip이라는 커맨드가 있습니다. man page를 읽어보시면
-g 옵션을 주고 컴파일 했더라도 debug symbol들을 제거시켜준다는 것을 아실 수 있을 것입니다.

Quote:
2) 생성된 binary가 Debug정보를 포함하고 있는지 확인하는 법

디버거를 돌려보면 알 수 있을텐데요..^^

Quote:
3) 어쩌면 debug정보는 안들어갔는데, assert코드만 작동하는 것일 수도 있다는 생각이 들더군요. NDEBUG가 정의되어 있지 않으면 동작하는 매크로니까요. 그런걸까요? 그렇다면 NDEBUG를 제가 명시적으로 define 해줘야 하나요?

질문의 정확한 의미를 모르겠네요..^^

다 덤벼! 다 받아줄께!!