Naprawiono: Jak Naprawić Przerwanie Wycieku Pamięci DirectX

Jeśli masz przeciek pamięci DirectX na swoim wielopoziomie, mamy nadzieję, że ten przewodnik użytkownika może ci pomóc.

Możesz naprawić swój laptop lub komputer stacjonarny w kilka minut, bez żadnych umiejętności. Kliknij tutaj, aby zobaczyć jak.

Ten artykuł zawiera obejścia problemu, który powoduje awarię aplikacji Windows Presentation Foundation (WPF) podczas sprawdzania środowiska wykonawczego Break an Memory Leaks.

Oryginalna wersja produktu: Windows Presentation Foundation
Oryginalny numer KB: 2643361

Objawy

Programiści mogą ewentualnie zainstalować dedykowany SDK DirectX i użyć monitora kontroli DirectX, aby opcjonalnie włączyć fajne sprawdzanie w czasie wykonywania o nazwie Break on Memory Leaks. Direct3D9 jest zaprojektowany do wywoływania każdego z nas z DebugBreak w określonych momentach przy wyłączaniu, jeśli taka konfiguracja była zawsze włączona, a wynikiem jest potężny wyciek obiektów. Ta zmiana konfiguracji wpłynie również bezpośrednio na wszystkie aplikacje, wyjątkowo aplikacje Windows Presentation Foundation (WPF), takie jak Visual Studio 2010.

Powód

Natywna witryna dostarczająca w WPF nie jest ściśle zamknięta, więc te kontrole w czasie wykonywania nie działają. Te awarie pojawiają się tylko w trakcie zamykania, więc nie oczekuj porażki w zrozumieniu lub ciągłego pustki na resources.rsov.

Obejścia

  • Odznacz awarię przy wycieku pamięci w kontrolce bloku DirectX.
  • Zmuszanie aplikacji wpf do korzystania z trybu przenoszenia oprogramowania. Aby uzyskać więcej informacji, zapoznaj się z ustawieniami rejestru renderowania grafiki.
  • Przeczytaj około jednej lub dwóch minut
  • Zaktualizowano

    Czy masz dość powolnego działania komputera? Denerwują Cię frustrujące komunikaty o błędach? Reimage to rozwiązanie dla Ciebie! Nasze zalecane narzędzie szybko zdiagnozuje i naprawi problemy z systemem Windows, jednocześnie znacznie zwiększając wydajność systemu. Więc nie czekaj dłużej, pobierz Reimage już dziś!

  • 1. Pobierz Reimage
  • 2. Uruchom program
  • 3. Kliknij „Skanuj teraz”, aby znaleźć i usunąć wirusy z komputera

  • Tło:Posiadam prawdziwe wyzwanie Visual Studio 2013 z DirectX (wersja 9). Pokaz jest rodzajem selekcji x86. Kiedy uruchamiam DirectX w trybie debugowania, nie mogę pozbyć się wszystkich wycieków pamięci.

    Direct3D9::====> WEJŚCIE: DLLMAIN(6417d9a0): Odłącz proces 0000350c, tid=0000363cDirect3D9: (INFO):Pamięć Gotowe!Direct3D9: (BŁĄD): Przywrócono pamięć! Liczba rozważań sugeruje 975Direct3D9: (BŁĄD): Aktualne podejście (pid) oznacza 0000350c o nazwie świetny program breakpoint„[13580] ” pozostawił kod zero (0x0).

    Z powyższego dowiedziałem się, że ten konkretny program działa z 975 przydzielonymi szczegółami, ale również nie jest zniszczony ani otwarty. To wywołało punkt przerwania, ponieważ płacisz za ustawienie debugowania DirectX („Przerwij wycieki pamięci).

    break on memory leaks directx

    Więc przed opublikowaniem właściwego kodu I, próbowałem użyć niektórych narzędzi PIX dostarczonych przez Microsoft dzięki DirectX. Przechwytując to samo rozwiązanie, uzyskałem następujący wynik, z którego wynika, że ​​każdy utworzony obiekt został następnie zniszczony.

    przerwa w przypadku wycieków pamięci masowej directx

    Dlatego nadal polecam wszystkie Leak Store po VS2013, ale dalekie od bycia po PIX. Jakieś pomysły, jak to zrobić?

    Witaj Mohammad,

    Dziękuję za odpowiedź. W każdym razie nadal tęsknię za nim lub elementem, nie możesz tego naprawić…

    Po pierwsze, istnieje znacznie dłuższa lista niezarejestrowanych zadań, w tym główna koncepcja Direct3D (przynajmniej myślę, że zwykle jest to ta z AllocID 1), która w rzeczywistości nie ma (ale wywołuje wszystko, oczywiście). to, prawda?)

    Dziękuję za zrozumienie, dlaczego nie muszę ustawiać SetIndices(NULL) i wiele więcej. (To doprowadzało mnie do szału, kto może tego potrzebować…)

    Próbowałem znaleźć AllocID, ale większość z nich kończy się bezpiecznym wywołaniem sprintf() itp.

    Mogę odpowiednio zadowolić wyjście z tym debugowaniem (odbiorę w telewizji z bezużytecznych fragmentów danych), ale obawiam się, że nie będzie to zbyt wieleGotowe dla kupujących, jeśli nie będą wiedzieć, co to jest zbiornik.. .< /p >Niektóre z identyfikatorów AllocID zawsze znajdowały się gdzieś w pobliżu shaderów, ale na pewno opublikuję też asembler lub kompilację 🙁

    HookingE:UNLIMITEDRACERSOURCESCOMPILATIONGRAPHICTESTDEBUG.EXERPH: Wstrzyknięto podczas tworzenia aktualizacji...RPH:D3D9_DLL Hooked'GraphicTestDebug.exe': Załadowano 'C:WINDOWSsystem32MSCTF.dll' , Symbol nie został załadowany. „GraphicTestDebug.exe”: „C:WINDOWSsystem32d3d9d.dll” ułożone, symbole nie zostały załadowane. 'GraphicTestDebug.exe': 'C:WINDOWSsystem32d3dx9d_28.dll' zapełnione, motyw nie został załadowany. (INFO) direct3d9: Wybrano środowisko uruchomieniowe debugowania Direct3D9. Pomocnik D3D9: Zaawansowane debugowanie D3DD wyłączone; Aplikacja nie została zebrana za pomocą direct3d9 D3D_DEBUG_INFO(INFO): Wybrano odtwarzanie debugowania Direct3D9 Pomocnik D3D9: W pełni rozszerzone debugowanie D3DD wyłączone; Aplikacja nie została skompilowana razem z D3D_DEBUG_INFO(INFO) Direct3d9::Direct3D9 Debug Runtime, D3D9 Helper wybrany: Zaawansowane debugowanie D3DD wyłączone; Aplikacja rzeczywiście nie została skompilowana i wyposażona w (INFO) d3d_debug_infodirect3d9::====================== Hal MixedVP, wybrany element Direct3D9: (INFO):Styl sterownika HalDevice 9Direct3D9 : (INFO): Nie udało się zbudować sterownika w szczególności IndexbufferGraphicTestDebug.exe wygenerował doskonały punkt przerwania 'GraphicTestDebug.exe': Ładowanie 'C:WINDOWSsystem32usp10.dll', gwiazdy nie zostały przesłane D3D9 Jest już podłączony, ale wymaga ponownego uruchomienia. UnHookingRPH:D3D9_DLL „GraphicTestDebug.exe” zawiera: „H:ProgramsPowerStripPShook.dll” został załadowany, te pliki binarne nie zostały zbudowane, ponieważ były obecne informacje debugowania wyników. „GraphicTestDebug.exe”: „C:WINDOWSsystem32oleaut32.dll” naładowany, nie załadowano obrazu. 'GraphicTestDebug.exe': docsloadedGenius 'h:program NetScroll+ Optical MouseWhoru.dll' nie jest już wbudowany w plik binarny i dostarcza informacji debugowania. 'GraphicTestDebug.exe': załadowany 'C:WINDOWSsystem32mslbui.dll', warto nie załadowany 'GraphicTestDebug.exe': załadowany 'H:Program NetScroll+ filesgenius Optical Mousegnetscrl.dll', plik binarny nie utworzono stos i informacje debugowania .Direct3D9: (INFO):MemFini!Direct3D9: (OSTRZEŻENIE): pamięć jeszcze nie została podana! Licznik alokacji to 98Direct3D9:(OSTRZEŻENIE): bieżąca metoda (PID) to 000004c4Direct3D9: (OSTRZEŻENIE): ) Adres:: memory 003bc200 lAllocID=9 dwSize=00001368, (pid=000004c4)Direct3D9: (OSTRZEŻENIE): Backstack TraceDirect3D9: (OSTRZEŻENIE ) Address::memory 003bc098 lAllocID=10 dwSize=0000rect0008, (pid=000004c4) (OSTRZEŻENIE) Adres:: pamięć RAM 003bd5d8 lAllocID=11 dwSize=000007e0, (pid=000004c4)Direct3D9: (OSTRZEŻENIE): TraceDirect:Track9 ) Adres: :memory 003bf4d8 lAllocID=42 dwSize=42 dw06bc 00, 000004c4)Direct3D9: (OSTRZEŻENIE): - Stack Back TraceDirect3D9: (OSTRZEŻENIE) Adres::memory 003b9e80 lAllocID=44 dwSize,c=000017a090 : (OSTRZEŻENIE): Powrót do stosu TraceDirect3D9: (OSTRZEŻENIE) =000004c4)Direct3D9: (OSTRZEŻENIE): Ponowna instalacja stosu TraceDirect3D9: (OSTRZEŻENIE): Adres: OSTRZEŻENIE :Pamięć 01c8ad98 lAllocID=48 dwSize=00003508, (pid=000004c4)Direct3D9: ( OSTRZEŻENIE): Backstack TraceDirect3D9: (OSTRZEŻENIE) Adres 0:08 :bmemory lAllocID=49 dwSize=00000198, (pidc4)Direct3D98 i Stack Back TraceDirect3D9 : (OSTRZEŻENIE) Adres::cram 003bbf58 lAllocID=50 dwSize=00000030, (pid=000004c4)Direct3D9: (WARN): Stack Back TraceDirect3D9: (OSTRZEŻENIE) Adres::memory 01c8e310 lAllocID=51 dwSize=00001020, (pid= 000004c4 )Direct3D9: (WARN) (spacja) Stack Back TraceDirect3D9: (WARN) Address::memory 01c8f3a0 lAllocID=52 dwSize=2000088 , (pid jest równe 000004c4) Direct3D9: (WARN): Stack Back TraceDirect3D9: (WARN) Address: : m stary dobry ram 003bfe10 lAllocID=53 dwSize=00000090, (pid=000004c4)Direct3D9: (OSTRZEŻENIE): Wstecz T raceDirect3D9 stack: (OSTRZEŻENIE) Address::memory 003bff10 lAllocID=54 dwSize=00000050, (pid=000004c4) . . . TraceDirect3D9 Back Stack: (WARN) Adres: :retention 003bf200 lAllocID=56 dwSize=00000090, (pid=000004c4) pid=000004c4) Direct3D9: (WARN) i Stack Back TraceDirect3D9: (WARN) Address: :memory 005 Alldoc3 =00000050, (pid=000004c4)Direct3D9: (OSTRZEŻENIE): Trace Back TraceDirect3D9: (OSTRZEŻENIE) Adres:: Pamięć 003bf3c0 lAllocID=59 dwSize=00000044, (pid=000004c4)Direct3D9: (OSTRZEŻENIE):

    Jeśli szukasz sposobu na naprawienie swojego komputera, nie szukaj dalej. Reimage to kompleksowe rozwiązanie, które może pomóc w pozbyciu się wirusów i złośliwego oprogramowania, zwiększeniu wydajności systemu, naprawie błędów rejestru systemu Windows i nie tylko.

    Fixed: How To Fix DirectX Memory Leak Interrupt
    Corrigido: Como Corrigir A Interrupção De Vazamento De Memória DirectX
    Исправлено: как исправить прерывание утечки памяти DirectX
    Opgelost: DirectX Memory Leak Interrupt Repareren
    Corrigé : Comment Réparer L'interruption De Fuite De Mémoire DirectX
    Risolto: Come Risolvere L'interruzione Della Perdita Di Memoria DirectX
    수정됨: DirectX 메모리 누수 인터럽트를 수정하는 방법
    Behoben: So Beheben Sie DirectX Memory Leak Interrupt
    Corregido: Cómo Arreglar La Interrupción De Pérdida De Memoria De DirectX
    Fixat: Hur Man åtgärdar DirectX-minnesläckageavbrott