2013-08-31 5 views
0

C : \ Windows \ SysWOW64에서 APPCRASH 덤프를 생성하는 응용 프로그램이 있습니다 (작성하지 않았습니다). 덤핑 중에는 응용 프로그램이 작동하지 않지만 최소한의 용량으로 작동하면 은 데이터가 손실됩니다. 문제는 이러한 덤프가 너무 커서 시스템이 대부분 시간을 쓰는 데 소요되고 응용 프로그램이 처리 속도가 크게 느려지고 곧 데이터가 손실되기 시작한다는 것입니다.APPCRASH 덤프 리디렉션 (또는 끕니다)

계획은 완전히 비활성화하거나 RAM 드라이브에 마운트하고 RAM 드라이브에 충돌하자마자 제거합니다.

는 지금은이 키를 사용하여 살펴본 결과 :

http://msdn.microsoft.com/en-us/library/windows/desktop/bb787181%28v=vs.85%29.aspx

은 보이지 않고 두 번째 덤프를 생성 이제 대신 원본을 리디렉션합니다.

은 덤프의 이름은 :

덤프 - 2013_03_31-15_23_55_772.dmp

이 일반적으로 (C/C++와 같은 물건) Windows에서 개발자의 영역이다 그래서 나는 그들을 공격하고 싶습니다 , ServerFault이 날 어떤 대답을 얻을 수 있다고 생각하지 않습니다.

덧붙이 자면 : 이것은 덤프 파일을 순환시키지 않으므로 (하드 드라이브에 남아있는 20GB를 채울 것입니다.) 이것이 Windows 동작인지 아니면 앱의 사용자 정의 코드인지는 확실하지 않습니다. !).

답변

1

DumpFile을 작성하려면 응용 프로그램이 "MiniDumpWriteDump"함수를 호출해야합니다.이 방법은 시스템 또는 사용자가 제어 할 수있는 동작이 아니므로 응용 프로그램에 의해 구동됩니다. 충돌시 덤프하면 OS가 대신하기 전에 자체 처리 루틴을 설정하기 위해 "SetUnhandledExceptionFilter"를 사용합니다 (!). 불행히도 다른 프로세스에서이 처리기를 덮어 쓰는 방법을 찾지 못했습니다. 그래서 왼쪽의 유일한 희망은 동작을 전환하거나 경로를 변경하는 응용 프로그램에 대한 항목이 있다는 것입니다 (내 응용 프로그램은 정확히 이유가 있습니다 너는 설명한다).