문제

저는 충돌을 덤프하는 응용 프로그램은 아마 누출 GDI.응용 프로그램이 실행되는 XP 나는 로드하는 데 문제가 발생으로 WinDbg 니다.이전에 우리가 사용하여 Gdikdx.dll extension 보고서 정보 Gdi 하지만 이 확장은 지원하지 않는 XP,Vista.

가 포인터를 찾기위한 GDI 객체에 사용 WinDbg.

또한,I 에 액세스하지 않아 실패한 프로그램(고 스트레스 테스트 suite)그래서 내가 할 수 있습을 재현에서는 시스템의 실행 당신이 알고 있는 경우의 어떤'라이브'디버깅을 위한 도구 XP,Vista(또는 윈도우 2000 지만 이것은 우리의 대상).

도움이 되었습니까?

해결책

가 있었다 MSDN 잡지 기사에서 몇 년 전 는 것에 대해 이야기 GDI 수적입니다.이 포인트를 여러 가지 다양한 장소에 좋은 정보를 제공합니다.

WinDbg 할 수 있도 !poolused 명령에 대한 몇 가지 정보를 제공합니다.

자원을 찾는 누수에서 덤프(사후)어려울 수 있습니다면-그것은 항상 같은 장소,같은 변수는 메모리 누수,그리고 당신이 운이 좋다면,당신이 볼 수있는 마지막 장소는 그것이 누출되,등등.그것은 아마보다 쉽게 할 수 있는 라이브 프로그램을 실행하는 디버거에서.

수도 있습을 사용하여 시험 Microsoft 회, 지만,라이센스는 않습니다.그것은 또한 더 비 침습적이고 고급합니다.

다른 팁

저는 지난주에서 작업하 GDI 누출을 측정기 도구입니다.우리는 또한 정기적인 스트레스 테스트하고 그것은 결코 이상 지속 보다는 하루의 가치 w/o 를 중지로 인한 사용자/gdi 개체 취급 과잉.

나도 예쁜 성공적으로 알 수 있습니다.물론 제가 약간의 시간을 보냈다 미리 보고 빨리 솔루션입니다.그것은 언급 할 가치가있다,나는 이전의 어떤 반 운이 좋은 경험으로 GDILeaks 에서 도구를 msdn 문서 위에서 언급된다.을 언급하지 않는 나를 해결하는 몇 가지 문제에 들어가기 전에 그것을 작동하고 이 시간 그냥하지 않았 나에게 무엇을 어떻게 내가 원했습니다.의 단점은 그들의 접근 방식은 헤비급 디버거 인터페이스(그것은 속도가 느려 연구 대상으로 주문 크기의는 찾을 수없는).또 다른 단점은 작동하지 않았 모든 시간에 실행되 나는 단순히 그것을 얻을 수 없었다는 보고서/컴퓨팅다.그 복잡성(에 의해 판단의 코드 양)었다는 또 다른 겁-리 요소입니다.나의 큰 팬 Gui 으로,그것은 나의 믿음입니다 내가 더욱 생산적으로 창문 없음 모 o).나 또한 그것을 발견 열심히 그것을 찾아 사용하는 기호입니다.

하나 더 많은 도구를 사용하기 전에 설정을 작성,내 자신이었다 leakbrowser.

어쨌든,마지막으로 정착에 반복적인 접근법을 달성하는 목표는 다음과 같습니다:

  • 사소한 성능 저하
  • 구현을 단순
  • 비 invasiveness(사용되는 여러 제품)
  • 에 의존하는 만큼 사용할 수 있으로 가능한

내가 사용하는 우회(비상업적 사용)에 대한 핵심 기능(그것은 주사 가능 DLL)가 있습니다.을 넣어 자바 스크립트를 사용한 코드를 자동으로 생성(15K 스크립트를 gen100K 소스 코드 없음 방법 코드를 수동으로 더 C 전처리기는 포함되지!) 플러스 windbg 확장자를 위한 데이터 분석 및 스냅샷/diff 지원합니다.

말 짧은 긴 이야기-후으로 완성되었습니다,그것은 몇 시간한 정보를 수집하는 동안 또 다른 스트레스 테스트하고 다른 시간을 분석하고 해결이 발전하고 있습니다.

I'll be 보를 공유하는 것을 매우 기쁘게 생각 나의 결과입니다.

P.S.시간이 나에 지출하려고 개선에 이전의 작업이다.내 의도 최소화하는 틀린 확실성(봤어요 단지에 대한 너무 많은 그 동안 발전),그래서 그것은 또한 확인할당/릴리스의 일관성을 피하기 위해 계정으로 할당을 하는 절대로 유출.

편집:을 찾는 도구

을 만들었 Windbg 스크립트입니다.보에의 응답

명령을 얻을 GDI 처리 계산에서 덤프

을 추적 할당 스택을 설정할 수 있습 ba(브레이크에 액세스)중단 마지막에 할당된 GDICell 개체하는 것에서 지점을 때 다른 GDI 할당 발생합니다.할 수 있는 조금 복잡하기 때문에 주소를 변경할 수 있는 충분을 찾는 거의 모든 누수가 발생합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top