"Visual Studio"를 사용하고 계신가요?
디버깅중에 프로세스 연결을 통해서 디버깅을 하는 경우가 있습니다. exe에 접근하는 환경에 따라 그렇게 할 수 밖에 없는 경우가 있는데, 이 과정에서 중단점 표시가 비활성화 되면서 디버깅을 할 수 없어서 고생을 했습니다. 몇 시간을 원인을 파악하기 고생한 끝에 알게 된 내용을 공유하고자 합니다.
"Visual Studio" 20xx 버전에서는 "프로세스에 연결"을 통해서 디버깅이 가능합니다.
저는 이런 형태로 실행 프로세스를 접근해야 하는 환경이라 이 방법을 종종 사용하고 있는데, 최근에 갑작스럽게 중단점에 break가 걸리지 않는 것이었습니다.
디버깅을 잘 하고 있다가 갑자기 이러면 매우 당혹스럽습니다. 이럴때는 보통 도구에 있는 옵션부터 뒤적 뒤적하고, 옵션들 하나 하나 다 보게 됩니다.
인터넷상에 올라와 있는 정보도 열심히 검색해 보게됩니다.
이번에 제가 경험한 내용은 이런 과정을 통해서도 해결이 되지않았습니다. 그런데 다행히 실행중인 폴더를 통채로 복사를 해둔게 있었는데, 그 폴더를 사용하니 디버깅이 되는 것이었습니다. 그렇다면 "Visual Studio" 셋팅이나 옵션과는 무관하다는 의미인거죠. 파일을 비교해봤는데, 다른 파일이 너무 많아 쉽게 파악되지 않았습니다. 여러 과정을 한 끝에 찾은 원인은 웹화면입니다.
제가 증권용 프로그램인 HTS에 접근해서 작업을 하고 있습니다. HTS 화면중에 뉴스화면이 있습니다. 이 화면이 HTS 기동할 때 같이 열리도록 셋팅이 되어있었는데, 그 화면이 로딩되면 디버깅이 비활성되는 것이었습니다.
원인을 좀 더 얘기해보면 이렇습니다. 뉴스화면이 웹으로 되어있는데, 뉴스화면웹이 보통 보안모듈을 같이 올리고 있습니다. 즉 HTS 보안모듈은 비활성했더라도, 화면내에 있는 보안모듈이 올라오며서 프로세스 접근을 막은 것입니다.
해결은 간단합니다. 보안모듈이 포함된 모듈 및 화면이 로딩되지 않도록 하는 것입니다. 확인을 해보니 뉴스화면없이 디버깅이 가능한 상태에서는 그 화면이 올라오더라도 디버깅이 동작했습니다.
보통 보안모듈은 프로세스를 실행하기전에만 신경을 썼었는데, 프로세스 연결을 할 때는 디버깅 연결을 하기전까지는 신경을 써야한다는 것을 배웠습니다.
디버깅이 안되어서 고생하는 분이 계신다면 이 정보가 도움이 되었기를 바랍니다.
'정보 > 개발 경험 나눔' 카테고리의 다른 글
노션 잘쓰고 있지만 아쉬운 부분 (0) | 2022.10.14 |
---|---|
해외선물 진법 계산법 명확하게 설명해드립니다 (0) | 2022.10.09 |
Visual Studio 2022 설치하기 (0) | 2022.03.25 |
이전 솔루션을 Visual Studio 2022으로 업그레이드 하기 (0) | 2022.03.24 |
[VS2019] CPP/Header 전환하기 (0) | 2022.02.10 |