2009-07-30 3 views
5

개발자로서 새로운 VMWare ESX 서버에서 개발 환경을 설정하려고합니다. 문제가 해결되지 않음 : SharePoint 제품 & 기술 구성 마법사 중 어딘가에 응용 프로그램이 사라지고 이벤트 로그에 다음 오류가 표시됩니다..net 치명적인 실행 엔진 오류를 어떻게 디버깅합니까?

.NET 런타임 버전 2.0.50727.3082 - 치명적인 실행 엔진 오류 (7A0979C6) (80131506)

는 지금은이 모든이 ServerFault.com 스타일의 문제 (매우 일반 오류 메시지, 구글에 비슷한 안타)의 많은 같은 의심 소리로 들리 겠지만, 물론 우리는 있습니다 등의 문제를 해결 방법 (설치/제거 서비스 팩/핫픽스, 다른 운영 체제 버전, 설치의 개별 요소 테스트, VM에 대한 다른 설정 등), 개인적인 관심에서 벗어나고 싶습니다. e에 대한 이해를 좀 더 얻으려면 "XXYY 핫픽스를 설치하고 사라지길 바랍니다." 나는 궁금 해서요 : 코더 관점에서이 오류에 어떻게 접근합니까??

  • 이 문제가 발생하면 어떻게 든 디버거를 중지 시키거나 수동으로보고 된 주소 (어떤 모듈에서)를 가리킬 수 있습니까?
  • Visual Studio를 설치하거나 windbg과 같은 하위 수준 도구를 사용해야합니까?
  • 이러한 오류 코드는 무엇입니까 정확히입니까? 후자는 com 오류처럼 보입니다. 다른 하나는 주소입니까?
  • 어떻게하면 더 자세한 오류보고를 사용할 수 있습니까? 오류가있는 .dll이 좋을 것입니다.

.net 환경에서이 수준의 디버깅 경험이 전혀 없다는 것을 알 수 있지만 배우려는 기꺼이하고 있습니다. 모든 포인터를 환영합니다!

p.s. 비 UI 구성을 수행하기 위해 명령 줄 구성 도구 psconfig를 실행하려고하면 대부분의 명령이 아니더라도 대부분 StackOverflowException을 트리거합니다. 다시, 나는 거기에서 어디로 가야합니까?

+0

나는 80131506가 FEEE –

+0

의 내부 오류 코드라고 생각한다. 오류가있는 dll/address를 포함하여 windbg를 사용할 경우 오류에 대한 자세한 내용을 알아야한다. –

+0

@Brian : 아, 좋은 소식. Google 코드 검색을 통한 검색은 COR_E_EXECUTIONENGINE으로 연결되며, 이는 http://msdn.microsoft.com/en-us/library/system.executionengineexception.aspx로 연결되며이 신빙성을 명시 적으로 확인하는 페이지입니다. 아마 그것을 직접 발견하는 더 직접적인 방법이 있을지 모르지만 나는 어떤 것도 모른다. :-) @Sam : 감사합니다. 내 발을 wndbg에 젖게 할 것입니다. –

답변

8

짧은 대답 :Tess Ferrandez의 블로그를 읽으십시오. 여기에는 .NET 응용 프로그램을 디버깅하는 데 도움이되는 많은 지침이 포함되어 있으며이를 수행하는 방법을 안내합니다.

당신은 Visual Studio를 사용하면 처리되지 않은 .NET 예외에 침입을 시도 할 수 설치되어있는 경우 비주얼 스튜디오 내에서

긴 답변을 ...

. 이 기능을 사용하려면 메뉴로 이동하여 디버그, 예외 및 일반 언어 런타임 예외 확인을 선택하십시오. 그런 다음 도구, 옵션, 디버깅으로 이동하여 내 코드 사용을 해제합니다. 마지막으로 구성 마법사의 프로세스에 연결하고 (분명히 먼저 실행해야 함) 예외가 발생하는 시점에서 Visual Studio 디버거가 중단됩니다.

디버거가 중단되었다고 가정하면 (잘못된 프로세스에 연결되어 있지 않은 경우) 호출 스택에 액세스해야하며 잘못된 점에 대해 메소드 이름에서 추측 할 수 있습니다. 그러나이 방법은 난독 화되어 도움이되지 않을 수도 있습니다. 디버거가 중지 된 현재 MSIL 명령을 볼 수도 있습니다. 여기가 저를 넘어서기 시작하는 곳이지만 코드에서 무슨 일이 일어나고 있는지 이해할 수 있도록 좋은 참고 자료가 있습니다.비주얼 스튜디오

없이

당신은 비주얼 스튜디오가 없거나 어떤 이유로 디버거가 휴식을 얻을 수없는 경우, 다음은 충돌 프로세스의 덤프를 만들 수 있습니다. 내가 아는 두 가지 방법이 있습니다. 하나는 described by the Windows Server Performance Team이고 좋은 사람은 Dr. Watson입니다. 다른 하나는 처리되지 않은 예외를 통해 충돌하는 프로세스의 덤프를 자동으로 만들 수있는 ProcInfo이라는 Mark Russinovich가 방금 출시 한 새로운 도구입니다. 다른 방법이있을 수 있습니다.

일단 덤프가 있으면 this KB article을 사용하여 디버깅을 설정할 수 있습니다.

마지막으로 위의 '짧은 대답'에

반환 : 더 진행 테스 '블로그를 읽어! 이것은 큰 주제이며 그녀는 내가 찾은 최고의 자원을 가지고 있습니다. 또한 도움이 될 수있는 좋은 post by Vincent Rothwell이 있지만 실제로는 자신의 코드를 디버깅하는 것이 목표입니다.

제쳐두고 - 당신은 예외가되어서는 안됩니다. 그것은 꽤 심각한 문제를 나타냅니다. 나는 부패와 심각한 하드웨어 고장을보고 재건을 고려할 것이다.

+0

와우, 대단한 대답,이 단일 게시물은 저를 주제로 시작하게하는 데 큰 도움이됩니다. –

+0

또한 우리는 우리가 말한대로 재건축을 철저히 동의합니다. –

+0

위대한, 다행스럽게 도울 수있어! –

관련 문제