블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2797)
Unity3D (853)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (61)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday
Visual Studio 2008에서 C++ 프로그램을 컴파일 하면은 기본적으로 두가지 모드가 있습니다.

Release /Debug 두 버전의 차이점은 다른 소소한 성능 향상을 위한 컴파일 옵션도 있지만

가장 중요한건 디버깅이 가능하느냐 가능하지 않냐의 차이점 이라고 생각입니다.

그런데 기존에 구축되어 있는 프로그램을 유지 보수 하다보면은 디버깅 할일이 발생합니다.

기존의 선임이 Release / Debug  별로 프로젝트를 잘 관리했으면 좋겠지만

세상 사는 일이 다 내맘데로 안되듯이 너무 오랜기간 유지 보수를 하다보니 Debug 정보가 유실되는 경우가 있습니다.

프로젝트가 하나의 exe이면 다시 Debug 컴파일 하면되지만 exe와 dll이 약 40~50개 연결된 프로그램이라면

헉 소리 납니다.

이럴때 기본적으로 되어 있는 Release에서 디버깅 정보를 삽입해서 컴파일 할 수 있습니다.

프로젝트 속성 (ALT + F7) 으로 들어가서 아래 그림과 같이 3개의 설명을 그림에 맞게 해주시면 Release 에서도 

디버깅 가능합니다.

* Property Page -> Configuration Properties -> C++ -> General -> Debug Information Format

* Property Page -> Configuration Properties -> C++ -> Optimization -> Optimization 

* Property Page -> Configuration Properties -> Linker -> Debugging -> Generate Debug Info

반응형
Posted by blueasa
, |

마소에서 소개한 방법입니다.
   
    1.  Win32  Release로  선택한  후 Settings에서 C/C++ 탭을 선택한 후 Debug
    info 를 프로그램 데이터베이스로 선택합니다.
   
    2. 링크 탭에서 Generate debug info를 선택한 후 Rebuild All한 다음 디버그
    처럼 F10, F11키를 적절히 사용해 보세요. 디버깅을 할 수 있을 겁니다.
    
    
   
최적화 기능을 사용하지 않는 릴리즈 컴파일 방법
   
    프로젝트의   Settings을   선택한   후   ,  C/C++탭을  선택하면  우측편에
    Optimizations가 있습니다. 이것을 Disable(Debug)로 선택하면 됩니다.    
반응형
Posted by blueasa
, |

다음은 릴리즈 모드로 빌드해서 코드내에 브레이크 포인트를 거는등의 디버깅 방법을 소개한 것이다.


 

먼저 project menu의 setting에서 C/C++ tap을 선택하고 'Optimaizations'를 Disable로 선택한다. 그리고 그 아래 'Debug info'를 'Program Database'로 선택한다. 

그리고 Link탭에서 Generate debug info를 check한다. 

자, 준비는 다 되었다. 이제 릴리즈 모드에서 코드내에 브포를 걸고 디버깅을 할 수 있게 되었다. 

위의 지시대로 셋팅하고 빌드했는데 'precompiled type information not found'라며 에러가 난다면 Build메뉴로 가서 Rebuild를 선택해보면 에러없이 빌드 할 것이다.


 

주의할 점은 디버깅이 끝나고 다시 패키지를 릴리즈 할 때는 위의 셋팅했던 것들을 원래데로 복원시켜서 재빌드해야 한다. 즉, Optimization을 'Maximize Speed' 로 바꾸고 Debug Info를 'None'으로, Generate Debug Info를 uncheck하는 것을 잊지 않도록 한다. 

반응형
Posted by blueasa
, |