가끔씩 교착 상태가되는 멀티 스레드 Windows 응용 프로그램이 있습니다. 필연적으로 이것은 소프트웨어가 테스트 중일 때가 아니라 고객 시스템에서 발생합니다. 응용 프로그램의 현재 상태를 Windows Minidump로 가져 오는 가장 쉬운 방법은 무엇입니까? 또한 사용자가 응용 프로그램을 다시 시작할 수 있도록 응용 프로그램을 종료 할 수 있으면 시스템을 계속 사용할 수 있습니다.고객 컴퓨터에서 교착 상태가있는 Windows 응용 프로그램을 디버그하는 방법
답변
Vista에서는 작업 관리자에서 직접 덤프 파일을 만들 수 있습니다. 프로세스 탭에서 프로세스를 마우스 오른쪽 단추로 클릭하고 '덤프 파일 작성'을 선택하십시오.
Vista 이전에는 사용자가 없어도 작동하지만 사용자가 다른 소프트웨어를 설치하지 않고도 지침이 실제로 따라 가기 쉽기 때문에 ntsd 경로를 선호합니다.
How to use ADPlus to troubleshoot "hangs" and "crashes"과 유용한 블로그 게시물 Debugging Production Applications using ADPlus을 참조하십시오.
이 두 기사는 프로덕션 환경에서 미니 덤프를 생성하는 데 사용할 수있는 Windows 용 디버깅 도구와 함께 제공되는 VBScript 도구입니다 (나중에 개발 컴퓨터에서 WinDbg로로드 할 수 있음). ADPlus는 많은 기능과 옵션을 가지고 있으므로 환경에서 사용하기에 가장 좋은 방법을 찾기 위해 약간의 독서, 실험 및 연습이 필요할 수 있습니다.
이 방법을 알고 있습니다. 그것은 내 기술이 약간 어색한 것입니다. 모든 Windows 2000 이상의 시스템에는 NTSD라는 기본 설치의 일부로 기본 명령 줄 디버거가 있습니다. 순간 내가 무엇을 실행한다 :
ntsd -pn MyApp.exe
디버거 콘솔 내가 다음 디버거 콘솔에 다음을 입력 할 수 있습니다 나타납니다
.dump c:\my-deadlock.mdmp
.kill
내가 무엇을 찾고 있어요 조금 뭔가있다 조금 더 깨끗하고 고객에게 전자 메일을 보내기 만하면됩니다. 나는 그것이 drwtsn32.exe를 사용하여 크래시 덤프를 추출하고 응용 프로그램을 종료 할 수 있다고 어딘가에서 암시하는 것을 보았습니다.
편집 : 다소 명령을 간소화 할 수 있습니다 : 프로세스가 (예를 들어 긴 네트워크 타임 아웃)하지 말기 중단을 가지고 있으며, 당신이 과정을 원하는 경우
ntsd -pn MyApp.exe -c ".dump c:\my-deadlock.mdmp; .kill"
명령 .detach
가 주어질 수있다 계속가.
ntsd는 Vista에서 더 이상 기본적으로 설치되지 않습니다. –
- 1. 자바 응용 프로그램을 디버그하는 방법
- 2. Windows 서비스를 디버그하는 방법
- 3. 웹 사이트에서 고객 문제를 원격으로 디버그하는 방법
- 4. Silverlight 응용 프로그램을 실행할 때 브라우저 충돌을 디버그하는 방법
- 5. C++에서 멀티 스레드 응용 프로그램을 디버깅하는 방법 (교착 상태)?
- 6. 웹 서비스를 통해 디버그하는 방법
- 7. Linux 컴퓨터에서 Windows (XP) 설치 프로그램을 만드시겠습니까?
- 8. Windows Forms 응용 프로그램을 올바르게 초기화하는 방법
- 9. 비동기 Windows Forms 응용 프로그램을 프로그래밍하는 방법?
- 10. Windows 시작 응용 프로그램을 만드는 방법?
- 11. VB.NET Windows Forms 응용 프로그램을 구성하는 방법
- 12. Windows Mobile에서 .net 응용 프로그램을 디버깅하는 방법
- 13. Windows 서비스에서 응용 프로그램을 실행하는 방법
- 14. Windows 응용 프로그램을 통해 SMS를 보내는 방법
- 15. Windows 바탕 화면에 응용 프로그램을 도킹하는 방법?
- 16. Windows 응용 프로그램을 만드는 가장 좋은 방법
- 17. 원격 컴퓨터에서 GWT 응용 프로그램을 실행 중입니다.
- 18. 원격 컴퓨터에서 응용 프로그램을 자동으로 제거하십시오.
- 19. .Net 및 MySQL을 사용하여 응용 프로그램을 디버그하는 데 도움이 필요합니다.
- 20. 원격 컴퓨터에서 실행중인 응용 프로그램을 가장 잘 업데이트하는 방법
- 21. 다른 Xcode 프로젝트 및 컴퓨터에서 응용 프로그램을 업데이트하는 방법
- 22. 다른 컴퓨터에서 dev 모드로 gwt 응용 프로그램을 검사하는 방법
- 23. Windows 프로그램을 조작하는 방법
- 24. 유닉스 컴퓨터에서 Windows RCP 응용 프로그램 빌드
- 25. 스크립트로 시작된 Eclipse에서 C++ 응용 프로그램을 실행하고 디버그하는 방법은 무엇입니까?
- 26. Windows XP에서 LAN상의 일부 컴퓨터에서 exe를 실행하고 내 컴퓨터에서 배치 파일을 사용하여 해당 컴퓨터에서 실행하는 방법?
- 27. C# Windows 응용 프로그램을 사용하여 Windows 화면 해상도를 설정하는 방법
- 28. Windows Form 응용 프로그램을 통해 Windows 서비스를 시작/중지하는 방법
- 29. 인터넷을 통해 VB.net windows 응용 프로그램을 업데이트하십시오.
- 30. Windows 방화벽이 응용 프로그램을 차단하게하는 원인은 무엇입니까?
ADPlus의 문제는 최종 사용자 컴퓨터에 소프트웨어를 설치해야한다는 것입니다. 내가 가진 일반적인 시나리오는 Windows 서버에서 민감한 데이터와 중요한 비즈니스 서비스를 제공하는 원격 고객입니다. 그들은 추가 소프트웨어를 설치하는 것을 다소 꺼립니다. – davefiddes
http://support.microsoft.com/kb/286350 : "ADPlus는 XCOPY 배포를 지원합니다 ... 또한 ADPlus에서는 사용자 지정 COM (구성 요소 개체 모델) 구성 요소를 시스템에 등록 할 필요가 없습니다. 잠긴 소프트웨어 구성이있는 프로덕션 서버에서 ADPlus를 사용할 수 있습니다. " 시도하지는 않았지만 플래시 드라이브에서 실행할 수도 있습니다. –