본문 바로가기
C++ 200제/코딩 IT 정보

Debug assertion failed 6가지 해결 방법 (debugger 팁)

by vicddory 2017. 10. 7.

Debug assertion failed 6가지 해결 방법 (debugger 팁)


Assert() 사용


간혹, Release 모드에선 정상, Debug 모드에선 에러가 발생하는 경우가 있습니다. Assert()는 Release 모드에선 무시가 되며, 에러가 발생하는 부분을 포함하지 않게 됩니다.


즉, 오류가 발생하는 부분을 컴파일러가 잘라버리고 프로그램이 구동되니, 실제로는, Release 모드에서 "정상"이라고 말할 수 없습니다.


서비스팩


옆 동료는 디버깅이 잘되는데, 나만 안된다면, 서비스팩을 설치해서 오류가 나던 부분의 소스 코드를 비교해 보세요. 서비스팩을 설치해서 오류를 제거했다면, 분명 뭔가 다를 겁니다. 서비스팩을 설치해서 오류를 제거했다면 말이죠.


DDX_Text(), Resource.h... 등등


MFC가 불편하고 짜증 나는 경우가 바로 이겁니다. C#에선 알아서 제거해주는 다이얼로그 아이템들의 잔해가 제거되지 않는 것이죠. 당연히 에러를 유발하며, 논리적으로 오류가 없다고 생각하는 개발자의 뒤통수를 칩니다.


Return FALSE


ASSERT(FALSE)란 부분을 의심해 보시고, assert는 그냥 if 정도로 대체해서 사용해보길. 또한, my app::InitInstance가 false를 리턴하는 부분도 함께 살펴보세요.


Visual Studio 설정


범용으로 사용되는 무엇인가를 사용할 땐, 메뉴얼을 꼭 살펴보세요. 무언가를 설정해야 하는데 설정하지 않고 안된다며 투정 부리는 일은 있어선 안 됩니다.


DLL, OCX 등을 확인


Debug assertion failed - DLL OCX 확인[비주얼 스튜디오 Debug assertion failed]


DLL, OCX 등의 파일을 확인해 보세요. 필요하다면 regsvr32 명령어로 시스템에 등록시키세요.


Debug assertion failed 6가지 해결 방법 (debugger 팁)

댓글