디버그 모드 실행파일을 돌리면 프로그램이 자꾸 죽습니다 (MFC)

ha310의 이미지

MFC로 프로그램을 만들었는데요

스레드가 좀 많은 프로그램입니다

통신 연결해서 실시간으로 계속 값을 읽고

또 읽으면 화면에 표시하는 그런 프로그램입니다

데드락 문제인가 싶어서 의심되는 모든 코드에 락도 걸었고

이것저것 해봤는데 왜 프로그램이 죽는지 모르겠습니다

디버그 모드로 빌드해서 생성된 실행파일로 돌리면 죽고

소스에서 바로 F5해서 돌리면 안 죽습니다

디버그 모드에서 생성된 실행파일로 돌릴 때

다른 메모리 공간을 침범했다던지 알림창이라도 떴으면

그걸 토대로 찾아볼 텐데 아무런 알림도 없이 죽으니 진짜 답답합니다

혹시 이런 문제를 겪으신 분이 있나요?

자꾸 이유없이 죽는데 왜 그런지 모르겠습니다

고수분들 답변 부탁드립니다


아 중요한 걸 깜박했네요 함수 내에서 어떤 동작을 하고 나면

동작 실행여부에 대해 무조건 로그를 남기고 있습니다

로그를 남겨도 파악할 수가 없으니 정말 왜 그러는지 모르겠습니다

익명 사용자의 이미지

뭔가 볼 수 있는걸 줘도 알까말까인데 말로만 설명하면 어떻게 압니까?

머리가 아픈데 왜 아픈지 모르겠습니다.

mirheekl의 이미지


이유없이 죽는 프로그램은 없습니다. 어디선가 오류가 발생하였고 해당 예외처리를 제대로 못 하여 프로세스가 종료된 것이죠.

- 디버거를 사용하되, 처음부터 디버거를 붙여서 실행하지 말고, 일단 실행후에 디버거를 붙여보세요. 비주얼 스튜디오로 해도 되고, WinDBG로 해도 됩니다.

- 예외 발생시 덤프를 떠주는 유틸리티도 있습니다. DebugDiag이나 ProcDump 같은것들.

- 프로그램 내에서 전역 예외 처리기를 만들어도 됩니다. 일부 프로그램 보면 오류발생시 자체적인 UI가 뜨면서 정보를 개발자에게 보내네 마네 하는 것들이 있죠? 그것들이 바로 전역 예외 처리기를 통해서 동작하는 겁니다.

--