2012-08-11 2 views
0

VS 2010의 출력 창에 작성된 메시지를 캡처하여 버그를 유발하는 메시지를 차단하려고 시도합니다. 내가 차단하기 위해 노력하고있어VS 2010의 출력 창 메시지 캡처

메시지 : 그 후

A first chance exception of type 'System.Runtime.InteropServices.SEHException' occurred in OpenNETCF.Desktop.Communication.dll 
Disconnect 

내가 어떤 제외하고, 장치를 응용 프로그램 동결을 연결합니다.

어떻게 출력 창 메시지를 캡처하거나 문자열로 리디렉션 할 수 있습니까? 프로덕션 모드에서이 앱을 사용할 때 가로 챌 수 있습니까?

나는 콘솔 메시지를 캡처하려고했지만 아무것도 console.writeline 애플 리케이션에서 호출, 그래서 나는이 메시지가 console.writeline 전화가 아닌 것 같아요.

+0

'캐치 (예외 예) {작업을} {시도 문자열 outputMessage = ex.toString; }' – SpYk3HH

+0

나는 중요한 부분에서 잡아 먹으려고했으나 여전히 메시지 이후에 난 편집을하고 메시지를 추가했습니다. – geogeek

+0

VS 2010에서 Debug-> Exceptions에 해당하는 확인란을 선택하고 예외가 발생하면 앱이 실제로 중지되도록 할 수 있습니다. – Les

답변

0

응용 프로그램을 디버깅하는 경우 특정 예외가 처음 제기 될 때 (첫 번째 예외 예외/throw 될 때) 디버거를 얻으려면 런타임의 전체 예외 집합 대신 원하는 특정 예외를 선택하십시오 .InteropServices.

아래 스크린 샷 참조 :

enter image description here

응용 프로그램이 현재 디버거에서 실행되지 않는 경우를, 당신은 "을 사용하여 ... 이미 실행중인 프로세스에 첨부 디버거를 얻을 수 있습니다 Attach to Process "... 그러나 프로덕션 환경에서는 정상적으로 수행되지 않습니다.

프로덕션 환경에서 응용 프로그램을 분석하려는 경우 즉, 응용 프로그램을 중지하거나 디버거에서 실행할 수없는 경우 ... 예외를 발생시키는 가장 좋은 방법은 예외가 발생하여 "덤프" 프로세스의 생성 ... 저장된 .dmp 파일을로드하여 WinDBG 또는 Visual Studio에서 오프라인으로 분석 할 수 있습니다.

DebugDiag를 사용하여 예외가 발생하면 "전체 덤프"파일이 자동으로 만들어 지도록 설정하는 것이 가장 좋습니다.

그것은 수동으로 작업 관리자에서 프로세스를 마우스 오른쪽 버튼으로 클릭하여 응용 프로그램 프로세스의 "미니 덤프"수행 및 덤프 파일을 생성하고 수도

. 그러나 수동으로 수행하면 예외 상황에 가까운 상태를 캡처하는 속도가 훨씬 느려지므로 "미니 덤프"는 전체 덤프보다 덜 유용합니다.

좋은 튜토리얼 프로덕션 환경에서 문제를 진단하는 방법에 여기있다 :