CreateProcess로 실행시킨 다른 Application의 디버깅
2006/01/26 09:18
프로그래밍을 하다보니 별의별 조건에 디버깅을 해야할때가 있다.
DLL에서 CreateProcess로 실행시킨 프로그램(프로세스)는 프로세스디버그를 통해 디버깅이 가능하다.
하지만 다른 응용프로그램 또는 프로세스에서 또 다른 응용프로그램 또는 프로세스를 CreateProcess로 실행시킨것은 디버깅이 불가능하다.
아마도 프로세스가 달라 로드된 PDB를 찾을수 없는듯 하다.

예제 : 다운받기 (.NET환경에서 작성되었다.)

아쉬운대로 디버깅을 할수 있도록 하는 방법이 있는데...
디버깅을 원하는 부분에 __asm int 3; 이라는 코드를 삽입하면 된다.
그러면 디버깅 원하는 프로그램이 아래와 같이 강제로 종료되는데...

이때 디버그를 눌러주면 Just-In-Time 디버깅 창이 뜬다.
원하는 디버거 선택후...

프로세스에 연결한 다음

int 3 에 대한 처리되지 않은 예외에 대한 에러가 뜨면
중단을 눌러 디버깅이 가능하다.


물론 디버깅을 원하는 프로그램은 디버깅 모드로 build 되어야 하는건 당연하다.
(나중에 위키에 추가할 예정)

혹시 다른 방법을 알고 계신분 있다면 연락주시면 감사~
2006/01/26 09:18 2006/01/26 09:18
Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다

  1. Subject: 다른 프로세스를 디버깅할 때

    Tracked from 함 해보자! 2006/01/26 17:18  삭제

     홍오라버니가 천재라며 알려준 디버깅 팁~ 다른 프로세스를 디버깅할 때, __asm int 3; 을 활용하자! 자세한 내용은 이곳으로 트랙백~

  • 찬빠 2006/01/26 10:52  댓글주소  수정/삭제  댓글쓰기
    위키로!!
    여긴 놀다가는 곳이잖아요~~~ 갑자기 왜그래??
    체하셨나???