2011-09-29 2 views
0

최근에 C++ 서버 응용 프로그램을 테스트 해 보았습니다. 일부 클라이언트가 연결되어 다양한 작업을 수행 할 때 서버가 작동하지 않는 이상한 런타임 오류가 발생했습니다. - 당신이 나를 도울 수 나는 다음과 같은 오류를 디버깅 어떻게 내가 가진 모든 이들 이벤트 뷰어 로그 인 경우 :런타임 오류 - (사진)

Event Viewer Results

오류의 유형은 닫을 그냥 옵션으로, "C++ 서버가 응답하지"했다 대화 상자. 나는 심지어 콘솔을 볼 수 없었다.

내가 제공 할 수있는 다른 정보가 있으면 알려주십시오.

감사합니다. 당신이 적용하려면

+0

http://social.msdn.microsoft.com/forums/en-US/sqldataaccess/thread/aa657bbd-5548-48e2-b3d2-2f3c772f5e62/ Fault Bucket이 말합니다 ... ... Watson 오류보고 프레임 워크에서 생성됩니다. 그러나 어떤 응용 프로그램이 어떤 주소에서 실패했는지 설명하는 이벤트 로그 항목이 있어야합니다. '그래서 apperently는 도움이되지 않습니다. –

+0

작은 스크롤 상자의 메시지는 무엇입니까? 힌트가있을 수 있을까요? (아무 생각도없고, 단지 내 코를 파고) –

+0

나는 잘 모른다. 하지만, 바로 "Watson"오류 메시지가 있습니다 ... 업데이트했습니다. "비교"언급을 주목하십시오 ... 그 메모리 주소를 어떻게 찾습니까? – Matthew

답변

1

나는 행동의 두 가지 코스를 추천 할 것입니다 : 당신은 문제가 어디에서 오는 추적 할 수 있도록

1) 파일 또는 표준 출력)에 충분한 기록을 (추가합니다.

2) 디버거에서 서버를 실행하여 오류의 위치와 유형을 정확히 찾아 낼 수 있습니다. 올바르게 설정된 경우 호출 스택과 색인을 제공합니다.

WinDbg을 작업의 독립형 디버거로 권장 할 수 있습니다. 그러나 디버깅 기능이있는 IDE를 사용하고 있다고 가정합니다.

디버거에서 서버를 실행할 수없는 경우 오류가 발생하면 서버를 연결할 수 있습니다. WinDbg가 호출 스택과 다른 모든 장점을 제공하는 프로세스에 첨부 할 수있는 정보를 제공하는 Dr. Watson 대신.

+0

독립형 디버거를 찾는 방법을 확실히 살펴 보겠습니다. 나는 전에 하나를 사용하지 않았습니다. – Matthew

1

충돌하는 응용 프로그램의 크래시 덤프를 디스크에 저장하려면 서버에서 WER (Windows 오류보고)를 구성하십시오. 그런 다음 WinDbg에서로드하고 검사하십시오. 스택 및 변수를 보려면 디버거에서 응용 프로그램의 심볼 파일 (.pdb)을 설정하는 것을 잊지 마십시오.