본문 바로가기
Programming/C++

[C++] 브레이크 포인트

by ★용호★ 2012. 9. 26.

2012년 9월 26일

 

 

데브피아의 브레이크 포인터에 관한 강좌를 보면서 유용한 정보들을 얻을 수 있었다.

 

1. Log를 남기지 않고 중단점을 이용하여 출력창에 원하는 로그를 찍을 수 있는 기능

 

 

 

 

 

 

 

메세지를 입력하고 난 후에 확인을 누르면 동그란 중단점 모양이 마름모 형으로 바뀌게 된다. (Trace Point)

메시지에는 쓰레드ID나 프로세스 ID등의 정보를 출력할 수 있다.

 

 

출력창에 메시지가 출력 됨

 

아래와 같이 중단점을 이용한 방법 외에도 함수를 직접 호출하여 출력창에 OutputDebugString을 사용할 수 있다.

 

 

 

출저 : http://mblog.devpia.com/link/?no=1928697

 

 

 

2. 원치 않는 함수 정의부는 건너 뛰자!

 

 

 

함수의 매개변수로 함수를 통한 인자값이 들어가게 되면 디버깅 시 해당 함수들의 정의부를 전부 타고 나야 test함수로 진입이 되는 불편함이 있었다.

 

 

위와 같이 test함수로 바로 가지 않고 b.c함수부터 차례대로 진입이 된다.

 

 

여기서 한단계씩 코드 실행을 사용하면 원치 않는 정의부는 건너 뛰고 test 함수로 바로 이동이 가능하다.

 

출저 : http://mblog.devpia.com/link/?no=2132799

 

 

3. vector와 map 같이 정의를 디버깅하지 않아도 검증된 소스는 넘어가도록 설정

 

 

 

디버깅 도중에 push_back과 같이 stl의 내부를 실수로라도 들어가게 되는 경우가 있는데 이러한 부분을 건너뛰고 싶다면

 

 

Regist를 수정해야 한다. 오른쪽 창에 1번으로 정의한 부분이 vecor에 대한 부분은 stepinto를 하지 않겠다라는 것인데, 자세한 내용은 아래 출저에서 확인!

 

 

위 과정을 수행하고 나면 F11을 눌러도 push_back의 정의 부분은 타고 들어가지 않는다.

 

출저 : http://mblog.devpia.com/link/?no=2132799

 

 

4. Attach to Process

 

 현재 실행중인 프로세스를 잡아 디버그를 하는 기능이다.  이 부분을 예전에 클라이언트 테스트할 때 알았더라면 훨씬 효율적으로 할 수 있었을 것이라는 아쉬움이 남는다. 

 

 

 

Ctrl + Alt + P를 누르면 위 창이 실행 되는데 프로세스 리스트에서 관련된 프로세스를 선택  후 연결을 하면

 

이렇게 디버깅으로 연결된다. 신기방기..

 

출저 : http://mblog.devpia.com/link/?no=2135478

 

 

 

 데브피아를 보면 항상 한탄글만 찾아 봤던 것 같은데 이런 팁들도 자주 보면 좋을 것 같다.  위 글을 포스팅 하신 분의 블로그를 가보니 책도 출판하시고 굉장한 내공이신것 같다.

블로그 링크 : http://blog.naver.com/drvoss/

댓글