상세 컨텐츠

본문 제목

Debug와 release의 차이와 내용!!

카테고리 없음

by Candoit 2016. 10. 18. 19:50

본문

디버그와 릴리즈의 차이 설명을 시작합니돠!!


간단히 표현하자면 디버그는 개발할 때 사용하는 것이고, 릴리즈는 최적화를 한 후, 배포하기 위한 것입니다.


◆디버그 모드(Debug)

자세히 표현하면 디버그 모드는 실행파일에 디버깅 정보를 포함하여 언제든지 디버깅 할 수 있다!! 릴리즈 모드 보다 더 큰 메모리를 사용함. 그대신!! 디버그에 필요한 정보들을 실행 시 계속 확인 췌크하니까 속도가 다운다운 저하된돠~


◆릴리즈 모드(Relaese)

디버그에 대한 정보도 없고, 코드를 최적화해서 실행파일 크기를 최대에에한 주여준다.

초기화를 안하잖아? 그럼 같은 문자열 상수라도 서로 다른 공간에 할당됨.


근데!!!!! 

내가 둘다 빌드했는데 결과 값이 다르드라구요....

원인은 아직 못 찾아서 해결은 못했는데, 구글링 해보니까 메이비,,,, 메모리의 깨짐 증상, 두 모드에서 동적으로 메모리를 할당하면 힙 영역에 요청한 크기만큼 메모리를 할당 받게 되는데 초기 값이 다르다아!! 간단히 이야기하면 디버그 모드에서는 자동 초기화가 되는데 릴리즈 때는 자동 초기화가 안되니가 결과가 다르다 


-----------------------------------------------------------------------------

Pointer -> 초기화되지 않은 포인터의 경우 --> 디버깅 모드: 임의 값 0xCD로 초기화 수행.

(0xCDmalloc이나 new로 할당된 메모리, 해제된 (heap) 영역

[malloc: 동적 할당, heap: 저장메모리 공간] )

                          -->릴리즈 모드: 초기화 수행 안함.