임베디드 Windows XP 상자에서 실행되는 DX9 응용 프로그램이 있습니다. 침적 테스트를 위해 하룻밤 사이에 자동으로 그대로두면 약 6 시간에서 8 시간이 지나면 충돌이 발생합니다. 우리의 개발자. 기계 (승리 7) 우리는이 문제를 재현 할 수 없습니다. 나는 또한 그것이 메모리 누출이 아니라고 꽤 확신한다.C++ : __try ... __ except; 해제 모드에서 크래시를 숨 깁니다.
- 임베디드 시스템에서 디버그에서 동일한 응용 프로그램을 실행하면 충돌이 발생하지 않습니다.
- 임베디드 시스템에서 메인 루프 업데이트 주위에
__try/__except
을 배치하면 충돌이 발생하지 않습니다.
디버그에서 로컬 배열 액세스를 "숨기고있는"일부 추가 바이트 패딩이 있거나 범위 밖의 로컬 배열 액세스가 숨겨져 있거나 일종의 초기화되지 않은 변수가 들여다보고 있습니다. 릴리스에서 실행되는 경우에도,
- 디버깅과 유사한 행동
__try/__except
않습니다그래서 나는이 개 질문이?
- 릴리스 모드에서 크래시가 있지만 디버그 모드가 아닌 경우 어떤 종류의 코드를 스캔해야합니까?
* "릴리스 모드에서 크래시가 있지만 디버그 모드가 아닌 경우 어떤 종류의 코드를 스캔해야합니까?"- 그 코드는 'assert()'또는 사이드 바코드가있는 다른 디버그 코드입니다. effects – Flexo
처음에는 try/except가 없으므로 try/catch가 있습니다. 둘째, 디버그에서 크래시를 관찰하지 않는 많은 이유가있을 수 있습니다. 그 중 하나는 더 오래 실행해야 할 수도 있습니다. –
당신은 try/catch 권리를 의미합니까? – David