Visual Studio 의 오작동으로 인한 크래시를 디버깅 하는 방법

C# 으로 개발하던 도중 갑자기 VisualStudio 크래시가 발생하였다.

발생한 타이밍은 C# 의 Form 을 Design View 로 보는 순간이었다. Design View 는 코드를 컴파일 하고 그 결과를 출력해주는 원리이며 컴파일 과정에 아무런 에러도 뱉지 않았으므로 문법적 오류는 사전에 없었고 단지 Design View 를 보는 순간에만 크래시가 발생하였다.

물론 한줄한줄 자세히 쫒다보면 의심이 될만한 부분을 찾을 수 있겠지만 나름 프로그램 개발을 하는 도구인 VisualStudio 에서 자체적인 예외처리도 하지 못하여 크래시가 나는 모습은 불만이 아닐 수 없다. 다행히 구글에 검색해보니 간단히 해결책을 찾을 수 있었다.

TOOL→Attach to Process 을 이용하는 방법이다. 간략히 스탭을 설명해보자면

  1. 일단 문제의 솔루션을 열은 두개의 VisualStudio 인스턴스를 띄우고 각각 A, B 라고 치자.
  2. A 에서 TOOL→Attach to Process 를 선택하고 아래 목록에서 B 의 VisualStudio 프로세스를 선택하여 Attach 시킨다. devenv.exe 이런 이름일 것이다.
  3. 이제 B 를 가지고 문제를 재현해본다.
  4. A 에서 문제가 되는 곳에 break 가 걸리며 이제 정확한 원인을 알 수 있게된다.

비단 이 상황뿐 아니라 VisualStudio 가 뻗어버리는 비슷한 상황에서도 응용할 수 있을거라 생각된다.

의견

내용을 입력하세요. ( 도쿠위키 문법 사용 가능 ):
KKUZH