C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[24571] 디버그 모드와 릴리즈 모드 각각의 실행파일의 차이점이 있을까요?
김시환 [godson2] 9825 읽음    2014-04-04 09:57
어제 근 한달간의 장비 셋업을 마무리하고 마지막 컴파일을 릴리즈 모드로 한 후 실행파일을 만들어 장비를 돌렸습니다.
빌더 XE4로 작업을 했습니다.

그런데 프로그램 디버깅할 때 전혀 발생하지 않았던 Floating Point 에러가 계속해서 발생을 하면서 프로그램이 정지해 버리더군요..
그래서 혹시나해서 디버그모드로 다시 컴파일한 실행파일로 돌려 보았습니다.

아무 문제없이 정상적으로 잘 돌아갑니다.

원인을 찾으려고 디버그 모드로 돌려도 에러가 안나오니 딱히 브레이크가 걸리지도 않습니다.
그래도 혹시나 하고 소스를 찬찬히 훝어 보아도 딱히 눈에 들어오는 부분이 없습니다.

부동소수점 연산은 가능하면 try catch 문으로 처리를 하거나 , 나눗셈 연산의 경우 무조건 if 문으로 처리를 했습니다.

그럼에도 불구하고 몇번이고 릴리즈 모드로 컴파일하면 에러가 발생을 하면서 정지해 버리는 군요..

파일크기가 릴리즈 모드로는 1/10 크기로 줄어드는데 그가야 디버깅 정보가 빠지면서 그럴거라고 생각이 들지만 그렇다고 실행자체에 차이가 생기는 부분은 이해가 되지를 않습니다.

뭐 어차피 실행파일이라고 해봐야 디버깅모드로 5메가 정도니 크게 신경안쓰고 사용하면 되겠지만

그래도 이건 아니다 싶어서 이렇게 글을 올려 봅니다.
이런 경험들이 혹시 있으신지요?? 아니면 컴파일시 뭔가 설정이 필요할까요???
박지훈.임프 [cbuilder]   2014-04-04 10:10 X
아마도 최적화의 문제일 것 같네요. 최적화를 하지 않도록 컴파일러 옵션을 조정한 후에 다시 해보시면...?
누군가 [hsweon]   2014-04-04 13:22 X
제경우에는 릴리즈와 디버그 모드에서 변수 초기값이 달라 고생한적이 있습니다.
이재현 [semsemi]   2014-04-04 22:25 X
VC++을 사용하던 예전에 저도 비슷한 경험을 한적이 있습니다.
저의 경우에는 for문에서 i값이 증가되어야하는 로직인데, 릴리즈로 컴파일하니 반대로 줄어들면서 동작이 꼬여버린 경우였죠.
설비프로그램의 경우 매우 심각한 문제가 발생할 위험이 크기때문에 그냥 디버그모드로만든 실행파일을 그대로 사용합니다.
아마도 최적화 과정에서이 문제인것 같습니다만, 스트레스 받으실필요없이 디버그모드 실행파일로 사용하셔도 될것같네요 ^^
최진찬 [choijc2000]   2014-04-07 14:31 X
루프문이나 이상하게 플로팅 에러가 나서 무조건 옵티마이즈 옵션을 체크해제 해서 릴리즈 시킵니다.
pwrlove [pwrlove]   2014-04-17 12:33 X
제 경험으론

1) 최적화가 가장 많이 말썽을 부렸던것 같고,
2) 종종 애초부터 버그가 있었는데, 디버그 코드가 빠지면서 영향을 주는 것도 좀 있었고.
3) 기타 알 수 없는 경우도 있었습니다(이 말은 1), 2)도 아닌것이 도대체 원인을 모르는 경우 입니다.),
    그냥 디버그 정보만 제거하고 사용해도 큰 문제는 없습니다.
    -> 코드의 양이 적고, 그러면 사이사이 의심 나는 부분에 로그 코드 넣고 범위 좁혀 가면서 찾으면 공부도 많이 됩니다.

+ -

관련 글 리스트
24571 디버그 모드와 릴리즈 모드 각각의 실행파일의 차이점이 있을까요? 김시환 9825 2014/04/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.