2012-06-20 3 views
0

몇 대의 컴퓨터에서 잘 실행되는 C++ 응용 프로그램이 있습니다. 흥미로운 것은 하나의 컴퓨터에서 부분적으로 작동하고 부분적으로없는 것입니다C++ 런타임 오류

This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.

:하지만 응용 프로그램이 오류로 실패 하나 이상의 PC를 발견했다. 며칠 전 오류로 실패하고 지금은 작동합니다.

이 문제의 원인은 무엇일까요?

+0

이 동작 제로
이러한 일반적으로 설정 한 모든 변수

는 디버그 빌드를 시도 컴파일러의 경고 수준을 높 정의되지 않은 동작 때문입니다. – Andrew

+1

해당 컴퓨터에서 디버거가없는 경우 로깅을 사용하여 오류 위치를 찾으려고하면 응용 프로그램을 디버깅 할 수 있습니다. – James

+0

경고를 컴파일 할 가능성이 높다고 생각합니다. 그렇지 않은 경우 경고 수준을 높이십시오. 그리고 경고에주의하십시오! –

답변

1

올바른 태도가 일부 컴퓨터에서 실패하지 않습니다 - 그것은 "내 프로그램은 모든 곳에서 잘못된 - 그것은 단지 우연히 특정 컴퓨터에서 작동하는 일"이다

가장 가능성이 초기화되지 않은 변수입니다 이것은 기계의 작업에서 빈 메모리와 0이 아닌 메모리를 가리 키지 만 다른 컴퓨터에서는 쓰레기를 가리키거나 일부 할당이 실패하고 작업중인 컴퓨터에 많은 메모가 있는지 확인하지 않습니다. 또 다른 공통적 인 문제는 런타임 라이브러리의 다른 버전입니다.

제안 : -이 스택 덤프에 대해 배울 수있는 좋은 기회 및 원격 디버깅

+0

또한 프로그램이 충돌 할 때 (문제가 디버그에서 분명하지 않은 경우) 상태를 분석하기 위해 코어 덤프를 생성하고 심볼 데이터베이스 (PDB?)를 사용하여 릴리스 구성을 손상시킬 수없는 경우 유용 할 수 있습니다. – Akanksh