여기에 "Schroedinger 's Cat"유형의 문제가 있습니다. 내 프로그램 (실제로는 내 프로그램의 테스트 스위트이지만 그럼에도 불구하고 프로그램)이 충돌하지만 릴리스 모드에서 빌드 될 때만 명령 줄에서 실행될 때만 발생합니다. . 원시인 디버깅 (즉, 모든 곳에서 불쾌한 printf () 메시지)을 통해 코드가 충돌하는 테스트 방법을 결정했습니다. 불행히도 실제 충돌은 일부 소멸자에서 발생하는 것 같습니다. 깨끗하게 실행되는 다른 소멸자.
Visual Studio 내에서이 프로그램을 실행하려고하면 충돌이 발생하지 않습니다. WinDbg.exe에서 시작할 때도 마찬가지입니다. 충돌은 명령 줄에서 시작할 때만 발생합니다. 이것은 Windows Vista, btw에서 발생하며 안타깝게도 지금 테스트 할 XP 시스템에 액세스 할 수 없습니다.
Windows가 스택 추적을 인쇄하도록하거나 프로그램이 깨끗하게 종료 된 것처럼 단순히 종료하는 것 이외의 다른 것을 인쇄 할 수 있다면 정말 좋을 것 입니다. 여기에서 더 의미있는 정보를 얻고이 버그를 수정하는 방법에 대한 조언이 있습니까?
편집 : 문제는 실제로이 게시물에서 자세히 설명하는 범위를 벗어난 배열로 인해 발생했습니다 . 이 문제를 찾는 데 도움을 주신 모든 분들께 감사드립니다!