2011-07-30 8 views
7

내 프로그램에 이상한 문제가 있습니다. 윈도우 폼 애플리케이션을 개발 중입니다. Visual Studio (F5)를 통해 디버깅 할 때 완벽하게 올바르게 작동하지만 실행 파일을 실행하면 충돌이 발생하고 "처리되지 않은 'System.ObjectDisposedException'형식의 예외가 mscorlib.dll에서 발생했습니다."System.ObjectDisposedException을 통한 프로그램 충돌

필자는이 예외를 잡기 위해 최상위 수준의 함수 (try/catch)를 넣으려고 시도했지만 여전히 프로그램이 충돌합니다. 내가 여기서 무엇을 놓치고 있니?

문제가 어디 있는지 전체 코드를 업로드해야하므로 코드를 업로드하지 않았습니다.

+1

문제는 GC를 디버깅 할 때 자주 삭제되는 개체를 수집하지 않는다는 것입니다. 코드의 다른 곳에서 더 이상 유효한 참조가없는 객체에 액세스하려고 시도합니다. 그것은 처분되었습니다. 어떤 코드없이 정확히 말할 수는 없습니다. –

+2

그가 접근하려고한다면, 분명히 그는 그것에 대한 참조가 있어야하며 따라서 GC가 없어야합니다. –

답변

3

와우, 최상위 catch 블록에서 catch하지 않은 ObjectDisposedException?

이 경우 내가 무엇을 할 지 모르겠습니다. 분명히 스택 추적을보고 폐기 된 것이 무엇인지 찾아야합니다. 잡을 수없는 예외가 몇 가지 있지만이 중 하나는 예외는 아닙니다. 아마도 Handler를 AppDomain.UnhandledException 이벤트에 연결하고 그 이벤트가 있는지 확인하십시오.

3

예외의 스택 추적을 얻을 수 있으면 근본 원인을 디버그하는 데 도움이됩니다. 이에 대한 호출 스택 창이 유용 할 수 있습니다. 안내를 확인하려면 여기를 참조하십시오.

Visual Studio에서 디버깅을 위해 "내 코드 만"옵션을 비활성화 할 수도 있습니다. 디버깅 정보를 더 잘 예외를 줄 수 있습니다. 여기 (해제에)의 지침을 따르

+0

업데이트 된 링크 : [방법 : 내 코드로 들어가기] (https://msdn.microsoft.com/en-us/library/h5e30exc(v=vs.100) .aspx) – OriolBG

관련 문제