본문으로 바로가기

Visual Studio Release 모드에서 디버깅

category 개발언어/c++ 2016. 6. 13. 15:27

VC++ 릴리즈모드에서 BreakPoint......

흔히vc는 build시 debug모드로 컴파일 해야만 디버깅 할 수 있는줄 알고 있는데 릴리즈 모드에서 디버깅을 할 수 도 있다.

디버거에서는 문제가 없는데 릴리즈 이후 에러가 발생한는 경우 에러 추적에 유용하게 사용 될 수 있다.

또 특별한 경우 외부 Library를 참조 하는 경우 릴리즈 모드에서만 정상 동작 되는 경우도 있어서

릴리즈 모드에서 디버깅 하는 방법도 익혀 둘 필요가 있다.

 

VC에서 릴리즈 모드로 Build 할 때 디버깅 정보를 남기어서 VC++ Debugging Tool에서 디버깅을 가능하게 합니다.

이 방법을 사용하는 경우, 실제 릴리즈 실행 파일은 거의 영향을 받지 않으면서,

디버그에서 브레이크 포인터를 잡거나, Trace를 가능하게 하므로,릴리즈모드 에서만 발생하는 버그를 잡을수 있습니다.

이 방법을 사용하게 되면 _DEBUG free define으로 포함되는 디버깅 메크로는 포함되지 않으나,

Source code안으로 Step in 가능하게 하는 디버깅 정보들은 OBJ PDB 파일에 남게 됩니다.

이를 이용하게 되면 VC++ IDE 환경에서 source level 까지의 step in이 가능해 집니다.

< 순서 >

1. Project open한뒤 menu 'Project/Settings' 선택

2. 'Settings For' 'Win32 Release' 선택

3. 'C/C++' tab에서 'category' 'General'로 선택하고 'Program Database' 선택

4. 'Link' tab에서 'category' General'로 선택하고 'Generate debug info' 체크

5. 'Rebuild All'

릴리즈모드에서 디버깅 하고자 하는 위치에 브레이크포인터를 잡고 'Go'를 실행하면, 디버깅을 진행할수 있습니다.