프로그램을 닫은 후에 만 예외가 발생하는 것으로 보이는 응용 프로그램이 있습니다. 그리고 그것은 매우 일치하지 않습니다. (우리 모두는 일관성없는 버그가 얼마나 재미 있는지 알고 있습니다 ...)예외 발생 (오류 발생) 프로그램 종료 후
정리 프로세스 중에 오류가 발생했습니다. 그러나 이러한 메모리 읽기/쓰기 오류는 "안전하지 않은"코드 사용 (포인터?)에서 잘못된 점을 나타내는 것 같습니다.
내가 관심을 갖는 것은 이러한 상황을 디버깅하는 가장 좋은 방법은 무엇입니까?
이미 닫힌 프로그램을 어떻게 디버깅합니까?
큰 문제를 해결하기위한 출발점을 찾고 있습니다.
이러한 오류는 여러 가지 방법 (일부 실행 시간, 일부 디버그) 자신을 제시하는 것 :
1: .NET-BroadcastEventWindow.2.0.0.0.378734a.0: Application.exe - Application Error
The instruction at "0x03b4eddb" referenced memory at "0x00000004". The memory could not be "written". 2: Application.vshost.exe - Application Error
The instruction at "0x0450eddb" referenced memory at "0x00000004". The memory could not be "written". 3: Application.vshost.exe - Application Error
The instruction at "0x7c911669" referenced memory at "0x00000000". The memory could not be "read". 4: Application.vshost.exe - Application Error
The instruction at "0x7c910ed4" referenced memory at "0xfffffff8". The memory could not be "read".
예 멀티 스레드입니다. 개발자는 대용량 스레드 수를 줄이는 경향이 있지만 내 애플리케이션에는 여러 애니메이션 그래픽이 동시에 실행될 수 있으므로 중요한 스레드 수가 계산됩니다. – PersistenceOfVision
멀티 스레드는 자체적 인 죄악이 아니지만 프로세스가 종료 된 후에 오랫동안 잘못된 스레드 (또는 2 개)가 충전되어있을 가능성이 큽니다. 앱을 종료 한 후 프로세스가 실행 중인지 확인하십시오. –
@ [PersistenceOfVision] : 보조 스레드가 범인이라고 의심되면 SafeThreads로 대체하려고 할 수 있습니다. http://www.codeproject.com/KB/threads/SafeThread.aspx –