Jeśli będziesz mieć flagi debugowania Wine w swoim programie, ten przewodnik użytkownika powinien pomóc ludziom je naprawić.

Zatwierdzone

  • 1. Pobierz ASR Pro
  • 2. Otwórz program i wybierz „Skanuj swój komputer”
  • 3. Kliknij „Napraw”, aby rozpocząć proces naprawy
  • Oprogramowanie do naprawy komputera to tylko jedno kliknięcie - pobierz je teraz.

     

     

    z

    Tłumaczenie tej strony podejścia: port nie działa. Tłumacz, przeczytaj dokument do dyskusji.

    Zatwierdzone

    Narzędzie naprawcze ASR Pro to rozwiązanie dla komputera z systemem Windows, który działa wolno, ma problemy z rejestrem lub jest zainfekowany złośliwym oprogramowaniem. To potężne i łatwe w użyciu narzędzie może szybko zdiagnozować i naprawić komputer, zwiększając wydajność, optymalizując pamięć i poprawiając bezpieczeństwo procesu. Nie cierpisz już z powodu powolnego komputera — wypróbuj ASR Pro już dziś!


    WINEDEBUG to rzeczywista zmienna środowiskowa, która według ekspertów włącza i wyłącza komunikaty debugowania.

    Składnia

     WINEDEBUG = [klasa] [+/-] propel [, [klasa2] [+/-] kanał2]

    Rodzaj

    jest opcjonalny i mimo to może być jedną z następujących opcji: uruchom śledzenie, ostrzegaj, popełnij błąd lub napraw. Są najsłabiej oceniane w wyniku od najbardziej rygorystycznych do w dużej mierze rygorystycznych. follow jest używany dla ścieżek sygnałowych, które przenoszą go jako cel normalnego programu. warn jest zwykle używany do ścieżek, które mogą potencjalnie powodować błędy, ale prawdopodobnie zapewnią dobrą obsługę przez odpowiedni komponent wyższego poziomu. błąd polega na tym, że stwarza to możliwości ścieżek kodu, które z pewnością będą zachęcać do błędów. Fixme jest używany ze ścieżkami kodu, które nie są pobierane w Wine. Po prostu zrób confound domyślnie i fixme jest w środku. Jeśli określono kanał z wyłączeniem zajęć, dołączane są wszystkie Twoje samouczki.

    Każdy kanał jest wykorzystywany do drukowania informacji o ekspresowym produkcie winiarskim. Następujące elementy najprawdopodobniej zostaną dostosowane bez + lub – w górę, aby faktycznie włączyć lub wyłączyć określony kanał. Jeśli przed nami jest niewielka część klasy lub nie ma jej wcale, nagłówek + można pominąć. Notatki spacji nie są pozostawiane, jeśli jest rozszerzenie.

    flagi debugowania wine

    Kanał, który identyfikuje określony kanał debugowania do włączenia lub usunięcia. Aby zobaczyć pełną listę większości kanałów, wyświetl ją za pomocą polecenia uncover directory:

    flagi debugowania wine

     grep -r --include jest równe '*. c '--uwzględnij =' *. b '' WINO _  (DOMYŚLNE  | ZADEKLAROWAĆ ) _ DEBUG_CHANNEL 'dll i programy/

    Aby dodać czasem więcej pracy, mamy skategoryzowaną i sformatowaną listę w BASH (możesz zmienić numer 26 na końcu tej ważnej rozprawy, aby dopasować ją do swoich upodobań w policzku):

     do nazw modów za pieniądze (znajdź dll / programy / -mindepth określoną osobę -type d sort); | robić  echo $ (grep -rE --are = '*. [ch]' '^ WINE_ (DEFAULT | DECLARE) _DEBUG_CHANNEL' $ nazwa_modu n        | awk -F "[()]" 'wypisz 2 USD' | sortuj | sam) n        | awk -v nazwa_modu równa się $ nazwa_modu 'if (NF> 0) printf ("% - * s% ludzi  n", 26, nazwa_modu ":", rrr 0)';zrobił

    Przykłady

    WINEDEBUG = ostrzegaj + wszystkie
    odnosi się do komunikatów WARN dla wszystkich obszarów innych niż komunikaty ERR, które są już włączone, jak również komunikaty FIXME.
    WINEDEBUG = fixme-all, warn + kursor, + przekaźnik
    wyłącza wszystkie rzeczy związane z komunikacją FIXME, zawiera instrukcję Cursor WARN (oprócz FIXME ERR, która zawiera komunikaty) i zawiera wszystkie sygnały wymiany (wywołania API).
    WINEDEBUG = + komunikuj się
    obejmuje wszystkie transfery wiadomości. Aby uzyskać większą kontrolę nad włączaniem lub zapominaniem funkcji i bibliotek DLL, sprawdź śledzenie przekazywania w krytycznym rejestrze [HKCU Software Wine Debug] (zobacz Przydatne klucze rejestru i skuteczny przykład poniżej).
    WINEDEBUG jest równe -d3d
    d3d wyłącza wszystkie komunikaty w połączeniu z wyłączaniem sprawdzania pomijania GL nawet po wykonaniu operacji. Może to poprawić wydajność.

    Przydatne kanały

    • + all : zapisuje wszystko, w bardzo wielu przypadkach prawdopodobnie daje tyle wiedzy, może być przydatny do rozwiązywania delikatnych problemów.
    • + pakiet: Śledź wszystkie stosy aktywności programu i włącz absolutnie ciągłą kontrolę spójności. Jeśli twoja aplikacja rutynowo czyści stertę, możesz również użyć + relay, + sterta patrząc w górę, aby zawęzić, gdzie to przychodzi. Jeśli zlokalizowana jest duża niespójność, Wine opróżnia zawartość całej sterty, aby zakończyć program. Podczas gdy wiele aspektów może prowadzić do ruiny, najczęstszyWewnętrzna powódź bufora występuje z powodu Wine. Pamiętaj, aby zapamiętać ten kanał; Wszystkie style Wine używają interfejsów API HeapAlloc / HeapFree, więc jednym z głównych elementów jest to, że wbudowaną stertę Wine można opisać jako naprawdę użyteczną do debugowania. Upewnij się, że sterta Can + może bardzo nudzić program, a także tworzyć bardzo duże pliki dziennika. Jeśli obawiasz się, że Wine może uszkodzić stertę, ale nie jesteś pewien, czy ostrzeżenie sterty + będzie w stanie aktywować ochronę sterty, ale nie może śledzić każdego fragmentu i jest swobodnie dostępne.
    • + loaddll : Zgłasza każdy załadowany Ace jako DLL.
    • + wiadomość : Rejestruje wszystkie wiadomości wysłane przez port gałki ocznej do trasy okna, podobnie do przekaźnika +. Użyj msg, które będzie śledzić wszystkie interfejsy API do przesyłania wiadomości.
    • + msgbox : temat logów wszystkich wywołań MessageBox (). Wiele programów wyświetla informacje bliskie awarii za pomocą MessageBox(), co może być szybkim sposobem gromadzenia tych informacji w użytecznym programie.
    • + pid: prefiks pojedynczej linii wyjścia debugowania i identyfikator powiązany z procesem, który jest generowany. Może to być przydatne podczas debugowania aplikacji wieloprocesorowych.
    • + relay: rejestruje pojedyncze wywołanie, które trwa dłużej niż rzeczywisty moduł szablonów Web Wine, który redukuje DLL, w tym wywołania między bibliotekami DLL (nie natywnymi). Kanał Jest to często pierwsza lokalizacja, w której nie rozumiesz, co uważa się za błędne. Pokazuje każdy telefon komórkowy i wyjście modułów Wine obecne w bibliotece DLL. Jeśli jesteś zajęty niektórymi funkcjami, sprawdź nową technologię linii i zmarszczek RelayInclude i RelayExclude, które są dostępne w rejestrze Wine (w [HKCU Software Wine Debug]). Zauważ, że mój łańcuch jest już przepełniony funkcjami, o które regularnie dzwonię, ale zwykle nie dostarcza żadnego pojęcia, dlaczego szkoła generalnie upada. Nigdy nie potrzebujesz + Relay lub + Snoop z natywnymi bibliotekami DLL! To pokaże Ci implementację tych bibliotek DLL, co oznacza, że ​​każdy kod, który napiszesz, aby zaimplementować użytkowników końcowych, będzie naruszał nasze wytyczne dotyczące projektowania odwrotnego dla pomieszczeń czystych. Protokoły
    • + seh : wyjątki Windows (ustrukturyzowana obsługa różnic). Są wywoływane, gdy jest to bardzo dobre. Jego zastosowanie jest nielegalną operacją (to znaczy, że operacja się nie powiedzie), lub gdy program na wszelki wypadek pokrywa własne wyjątki. Konwertuje sygnały Wine UNIX na pominięcia SEH i wysyła je przez to karmienie butelką. Będzie to niewątpliwie przydatne głównie dlatego, że aplikacje często wymuszają własne zrzuty wpływu jeden po drugim, jeśli chcesz dostać się do instancji. Zdecydowana większość typowych wyjątków, na które należy uważać, to STATUS_ACCESS_VIOLATION i 0xC0000005, które będą najbliżej błędu podziału w Win32. Możesz na dodatek zobaczyć kody, które nie wykonują nagłówków; Są to prawdopodobnie wyjątki specyficzne dla języka, które nie są używane przez żaden kompilator używany dla EXE. Na przykład 0xEEDFADE to kod do tworzenia wewnętrznego wyjątku Delphi, a 0xE06D7363 to wyjątek Microsoft Visual C++ od tej reguły, jaki rodzaj ma magiczną wartość dla zysku pieniężnego (info [0]) 0x19930520, który jest łatwy do rozważenia, ponieważ wygląda na pragnienie randki (i prawdopodobnie też). Jeśli użytkownicy widzą którekolwiek z tych wyjątków, ta metoda może oznaczać, że nasz własny termin Win32 API zwrócił gdzieś nowy niezerowy kod z zakończeniami.
    • + serwer : Wyświetla wszystkie serwery RPC Wine. Zwykle na pewno nigdy go nie będziesz potrzebować, ale w wielu przypadkach może być przydatny podczas rozwiązywania problemów z Wineserverem.
    • + snoop: całkowicie rejestruje wywołania funkcji między natywnymi bibliotekami DLL. Jest to podobne do działania Aber + Relay między dwoma własnymi bibliotekami DLL, chociaż ten potok dostarcza mniej informacji, ponieważ parametry nigdy nie są przekazywane. + snoop może również spowodować uszkodzenie lub destabilizację urządzenia, ponieważ produkt sprawdza baterię i faktycznie analizuje funkcję Prolog, aby odgadnąć jeszcze więcej parametrów. Nigdy nie używaj + Relay również + Snoop z własnymi bibliotekami DLL! Pokazuje również uruchomienie wszystkich bibliotek DLL, co oznacza, że ​​niestety każdy kod, który napiszesz, aby je uruchomić, narusza nasze wytyczne antropologii odwrotnej dla pomieszczeń czystych.
    • + synchronicznie: zwiększaj X11 synchronicznie
    • + znacznik czasu: Poprzedź prawie każde wyjście debugowania linią z kilkoma znacznikami czasu, jeśli ta linia została uruchomiona. Powinno to być cenny problem z wydajnością debugowania.
    • + fps: Wprowadź liczbę klatek na sekundę w terminalu dla aplikacji OpenGL lub d3d, Vulkan.

    Więcej wskazówek dotyczących debugowania

    • Jeśli fajny program często wyświetla formularz posta i nie działa, właściwie nie wiesz, co spowodowało większość błędów, spróbuj relay, msgbox trace. Następnie wyczyść dziennik debugowania w swoim ulubionym (mniej dobrym) edytorze lub kliencie tekstowym i wyszukaj ślad: msgbox. Przejrzyj informacje o przekaźniku i fakty związane z wywołaniem interfejsu MessageBox API, chociaż konkretny problem może nie być związany z wywołaniem, które miało miejsce przed awarią. Należy pamiętać o podkreślonym zrozumieniu nieudanych wywołań API, a także pamiętać, że interfejsy API systemu Windows są wspólne minimalnie spójne, aby zwracać dokładną wartość kodu. Musisz tylko użyć, aby dowiedzieć się, jakiego języka faktycznie używa każdy interfejs API. Podczas gdy większość innych zwraca karę i 5 w przypadku niepowodzenia, niektórzy stosują dokładnie odwrotną konwencję;
    • Jeśli program nie może uruchomić się bez podania przyczyny, możesz użyć szerokiego śledzenia + wszystkiego. Ponadto, jeśli twój własny program wydaje się chcieć głodować poza wywołaniem API, twoja korporacja może spróbować [Disassembly Disassembly], aby to sprawdzić, gdy uzyska dostęp do jakichś kryteriów przekazanych do jego elementu montującego (na przykład Loch Keepera zawiesi się, jeśli prawdopodobnie uruchomisz to bez całkowicie poprawnej ścieżki dla argv [0]).

    + Spraw, aby przekaźnik był mniej szczegółowy

    Jeśli szukasz poważnego problemu, który pojawia się po różnych minutach Tracphone, gdy system jest uruchomiony, + relay może zdecydować się na zbyt szczegółowy. W takim przypadku kontroluj go raz, a następnie wyślij, powiedziałbym, że dziennik za pomocą programu takiego jak

     numer Szybko zwolnij grepJĘZYK = C# Znajdź najlepsze połączeniafreq = `grep 10 ': Ret haya | sed jest powodem /(.*//; s /.* //' | podejście | uniq -c | sort - | stop | awk 'drukuj dochód 2' | tr ';' 'Czat ' 012'> quiet.reg << _EOFREGEDIT4[HKEY_CURRENT_USER  Oprogramowanie  Wine  Debug]„RelayExclude” równa się „ntdll.RtlEnterCriticalSection; ntdll.RtlTryEnterCriticalSection; ntdll.RtlLeaveCriticalSection; kernel32.48; kernel32.49; kernel32.94; kernel32.95; kernel32.96Tls32.96el32.973297; SetLastfreE_EOFRegedit quiet.reg wino

    To mówi Wine, że nie może rejestrować dziesięciu częstych wywołań do twojej aplikacji, co powinno sprawić, że każdy dziennik przekaźnika będzie łatwiejszy w zarządzaniu.

    Zobacz też

    • Zmienne środowiskowe: WINEDEBUG — rozdział podręcznika użytkownika Wine
    • Dokumentacja WineAPI - używane kanały debugowania są z pewnością wymienione dla każdej indywidualnej korzyści.

     

     

    Oprogramowanie do naprawy komputera to tylko jedno kliknięcie - pobierz je teraz.