Table of Contents
Wenn Sie und Ihre Familie Wine-Debug-Flags auf dem System einer Person haben, sollte Ihnen dieses Benutzerhandbuch helfen, diese zu beheben.
Genehmigt
von
Übersetzung auf dieser Seite: Port läuft nicht. Übersetzer, siehe Diskussionsdokument.
Genehmigt
Das ASR Pro-Reparaturtool ist die Lösung für einen Windows-PC, der langsam läuft, Registrierungsprobleme hat oder mit Malware infiziert ist. Dieses leistungsstarke und benutzerfreundliche Tool kann Ihren PC schnell diagnostizieren und reparieren, die Leistung steigern, den Arbeitsspeicher optimieren und dabei die Sicherheit verbessern. Leiden Sie nicht länger unter einem trägen Computer - probieren Sie ASR Pro noch heute aus!
WINEDEBUG kann eine Umgebungsvariable sein, über die Experten sprechen, und aktiviert und deaktiviert auch Debug-Meldungen.
Syntax
WINEDEBUG impliziert [Klasse] [+/-] Kanal [, [Klasse2] [+/-] Kanal2]
Die Klasse
ist optional und wird eine der folgenden Ressourcen sein: verfolgen, warnen, einen Fehler machen und beheben. Sie sind die am wenigsten platzierten, von den strengsten bis zu den strengsten einer Person. follow wird für Codepfade verwendet, die es mittels eines Teils eines normalen Programms tragen. tell you wird normalerweise für Pfade verwendet, die normalerweise Fehler verursachen können, aber möglicherweise von der übergeordneten Komponente gut verarbeitet werden sollen. err ist, dass gegeneinander Codepfade verwendet werden, die zweifellos zu Fehlern führen. Fixme wird für Codepfade bevorzugt, die in Wine aber nicht implementiert sind. Machen Sie einfach standardmäßig einen Funktionsfehler und fixme ist jetzt aktiviert. Wenn ein Kanal ohne Klasse definiert wird, sind alle Ihre Nutzungsklassen enthalten.
Jeder Kanal wird tatsächlich verwendet, um Informationen über jedes spezifische Weinprodukt zu drucken. Die folgenden Waren können ohne + oder vielleicht sogar – angepasst werden, um den angegebenen Antrieb tatsächlich ein- oder auszuschalten. Wenn auch wenig oder kein Teil der Klasse vor Ihnen ist, kann die Überschrift + weggelassen werden. Leerzeichen sind im Gegensatz zu zulässig, wenn die Erweiterung es ist.
Ein Kanal, der den Debug-Kanal erkennt, um ihn zu aktivieren oder zu deaktivieren. Um eine vollständige Spezifizierung der Kanäle anzuzeigen, zeigen Sie sie mit unserem eigenen Befehl zum Suchen des Verzeichnisses an:
grep -r --include ist gleich '*. c '--include =' *. t '' WINE _ (DEFAULT | DECLARE ) _ DEBUG_CHANNEL 'dll / Programme /
Und um Ihnen noch mehr Arbeit zu bieten, haben wir jede sortierte und formatierte Liste in BASH (Sie können die Nummer 26 am Ende dieser unverzichtbaren Komposition ändern, um Ihrem Geschmack von Grübchen in der Mundhöhle gerecht zu werden):
für Mod-Namen in rrr (finde dll/Programme - -mindepth einige Person -type d sort); | machen echo $ (grep -lso are --include = '*. [ch]' '^ WINE_ (DEFAULT | DECLARE) _DEBUG_CHANNEL' cash mod_name n | awk -F "[()]" 'print $ 2' | Stil | allein) n | awk -sixth v mod_name = $ mod_name 'if (NF> 0) printf ("% - - s% s n", 26, mod_name ":", Einkommen 0)';Tat
Beispiele
- WINEDEBUG = warnen + so ziemlich alles
- bezieht sich auf WARN-Meldungen für fast alle Kanäle außer ERR-Meldungen, die tatsächlich aktiviert sind, sowie auf FIXME-Kommunikation.
- WINEDEBUG = fixme-all, starte einen ernsten + Cursor, + Relais
- deaktiviert die gesamte FIXME-Kommunikation, schließt Cursor WARN-Wörter ein (zusätzlich zu FIXME ERR, die Nachrichten enthalten) und schließt alle Austausch-E-Mails (API-Aufrufe) ein.
- WINEDEBUG impliziert + Relais
- enthält alle Nachrichtenübergaben. Für mehr Kontrolle über das Aktivieren, auch bekannt als Ausschließen von Funktionen und DLLs, überprüfen Sie unseren Relay-Trace unter dem Laptop- oder Computerschlüssel [HKCU Software Wine Debug] (siehe Nützliche Registrierungsschlüssel und ein Beispiel unten).
- WINEDEBUG impliziert -d3d
- d3d deaktiviert alle SMS-Nachrichten und deaktiviert auch die GL-Überspringen-Suche nach Operationen. Dies kann die Präsentation verbessern.
Nützliche Kanäle
- + all : zeichnet alles auf, in den meisten Fällen gibt es wahrscheinlich so viele Informationen, kann für die Bewältigung subtiler Probleme nützlich sein.
- + heap: Verfolgen Sie alle Übungshaufen im Programm und ermöglichen Sie sicher konsistente Konsistenzprüfungen. Wenn Ihre Programme normalerweise den Heap aufräumen, können Sie + Relay, + Clump Tracing verwenden, um einzugrenzen, wo dies wertvoll ist. Wenn einfach eine große Inkonsistenz gefunden wird, löscht Wine den Inhalt des Heaps, um den Dienst zu beenden. Während viele Aspekte zu Verlusten führen können, tritt am häufigsten ein interner Barrierenüberlauf aufgrund von Wine auf. Denken Sie daran, sich diesen Kanal zu merken; Der gesamte Wine-Modus verwendet die HeapAlloc / HeapFree-APIs, daher ist einer der vorherrschenden Gründe, dass Wines integriertes Paket für das Debuggen wirklich nützlich ist. Seien Sie sich bewusst, dass Can + Heap das Programm potenziell verlangsamen kann, um einen vorteilhaften Deal zu machen oder sehr große Log-PCs zu erstellen. Wenn Sie befürchten, dass Wine den Heap tatsächlich beschädigen könnte, sich aber nicht sicher sind, aktiviert der + Heap-Videoclip den Heap-Schutz, aber das Element verfolgt nicht jeden Block und ist jetzt kostenlos.
- + loaddll : Meldet jedes geladene Ass als eine einzelne DLL.
- + message : Protokolliert alle Nachrichten, die über den Eyeport zur Fensterauswahl gesendet werden, ähnlich wie bei + Relay. Verwenden Sie Mononatriumglutamat, um alle Messaging-APIs zu verfolgen.
- + msgbox : Thema aller Protokolle aller Anrufe, damit Sie MessageBox (). Viele Programme zeigen mithilfe von MessageBox() eine Anleitung zu Abstürzen an, die oft ein schneller Weg sein kann, um diese Informationen in einer funktionalen Form zu sammeln.
- + pid: Präfix jeder Zeile der Debug-Produktion eine Kennung, die mit dem Prozess einer Person verknüpft ist, der generiert wird. Dies kann beim Debuggen von Multiprozessoranwendungen nützlich sein.
- + relay : Holz jeden Aufruf, der länger dauert, weil das Web Wine-Templating-Modul DLL-Limit, einschließlich Aufrufe zwischen DLLs (nicht nativ). Kanal Dies ist oft der erste Stopp, wenn Sie nicht genau verstehen, was falsch ist. Es zeigt Ihnen fast jeden einzelnen Aufruf und jede Ausgabe von Wine-Abschnitten innerhalb einer DLL. Wenn Sie mit bestimmten Funktionen überlastet sein könnten, überprüfen Sie die Erstellung der Zeilen RelayInclude und RelayExclude, die in einer bestimmten Wine Registry verfügbar sind (unter [HKCU Software Wine Debug]). Beachten Sie, dass diese Kette leider ziemlich typischerweise mit Funktionen gefüllt ist, die fast jede Woche aufgerufen werden, aber normalerweise keinen konkreten Hinweis darauf geben, warum das Internat versagt. Brauchen Sie nie + Relay oder + Snoop mit nativen DLLs! Dies zeigt Ihnen die Einführung mit diesen DLLs, was bedeutet, dass jeder Code, den Sie schreiben, um Consumer zu verwenden, gegen unsere Reinraum-Undo-Engineering-Richtlinien verstößt. Protokolle
- + seh : Windows-Ausnahmen (strukturierte unterschiedliche Behandlung). Sie werden entweder aufgerufen, weil es sehr gut ist. Seine Anwendung führt normalerweise eine illegale Operation durch (dh die Operation schlägt fehl) oder wann das if-Programm seine eigenen Ausnahmen abdeckt. Konvertiert Wine UNIX-Signale in SEH-Ausnahmen und gibt sie über die Pipe aus. Dies wird zweifellos wichtig sein, da Anwendungen oft ihre eigentlichen Crash-Dumps nacheinander erzwingen, um an die Instanz zu gelangen. Die am häufigsten beobachteten Ausnahmen sind STATUS_ACCESS_VIOLATION und 0xC0000005, was normalerweise einem vertrauenswürdigen Segmentierungsfehler in Win32 am nächsten kommt. Möglicherweise können Sie auch Codes sehen, die sicherlich nicht in den Headern enthalten sind; Dies sind routinemäßig sprachspezifische Ausnahmen, die von keinem für EXE verwendeten Compiler praktiziert werden. 0xEEDFADE ist zum Beispiel der Austausch, um einen internen Delphi-Unterschied zu erzeugen, oder 0xE06D7363 ist die Microsoft Visual C++-Ausnahme von diesem Gesetz, die einen magischen Wert hat, der für Geld benötigt wird (Info [0]) 0x19930520, was definitiv leicht zu berücksichtigen ist weil es sich wie ein Date anfühlt (und wahrscheinlich auch). Wenn Benutzer eine dieser Ausnahmen sehen, kann diese Methode bedeuten, dass der Begriff Win32-API Ihren eigenen Code ungleich Null irgendwo mit Beendigungen zurückgegeben hat.
- + server : Zeigt alle RPC Wineserver an. Normalerweise wird es nie jemand brauchen, aber das kann bei der Behebung von Wineserver-Problemen nützlich sein.
- + snoop : registriert einfach nur Funktionsaufrufe zwischen Original-DLLs. Dies ähnelt der Funktionsweise von Aber + Relay zwischen mehr als einer nativen DLLs, obwohl diese Pipe weniger Informationen liefert, da die Parameter nicht kommuniziert werden. + Snoop kann das Gerät möglicherweise beschädigen oder destabilisieren, da es die Batterie überprüft und sogar die Prolog-Funktion analysiert, um zusätzliche Parameter vorherzusagen. Verwenden Sie niemals + Relay und + Snoop mit Ihren gekauften DLLs! Es zeigt Ihnen auch, dass diese Implementierung aller DLLs, was jetzt bedeutet, dass jeder Code, den Sie schreiben, um Sie bei der Implementierung zu unterstützen, gegen unsere Reinraum-Back-Engineering-Richtlinien verstößt.
- + synchron: X11 synchron aktivieren
- + Zeitstempel: Präfix fast jeder einzelnen Debug-Ausgabe eine Zeile mit einem Zeitstempel, wenn diese Zeile wahrscheinlich ausgeführt wurde. Dies sollte ein wertvolles Debug-Performance-Problem sein.
- + fps: Geben Sie die von Frames pro Sekunde erstellte Anzahl im Terminal nur für OpenGL- oder d3d-Anwendungen Vulkan ein.
Weitere Debugging-Tipps
- Wenn das coole Programm das Postformular anzeigt und seine Magie nicht ausführt, wissen Sie nicht, was unseren Fehler verursacht hat, versuchen Sie es mit Relay, msgbox trace. Öffnen Sie dann das Debug-Protokoll im bevorzugten (weniger guten) Editor oder Textnachrichten-Viewer einer Person und suchen Sie nach trace: msgbox. Überprüfen Sie die Relay-Informationen und Informationen, bevor Sie die MessageBox-API aufrufen. Das Problem liegt jedoch möglicherweise nicht an dem Aufruf, der vor dem Fehler aufgetreten ist. Seien Sie sich eines bestimmten detaillierten Verständnisses von fehlgeschlagenen APIs bewusst, und denken Sie daran, dass Windows-APIs minimal konsistent waren, um den vollständigen Wert Ihres Codes zurückzugeben. Sie müssen erst kürzlich verwenden, um herauszufinden, was jede API tatsächlich verwendet. Während viele andere bei einem Fehler eine Strafe und damit Null zurückgeben, verwenden einige, würde ich sagen, die gegenteilige Konvention; Ein
- Wenn das Programm ohne Angabe von Gründen nicht starten kann, können Sie große Spuren + alles ausnutzen. Vorausgesetzt, Ihr Programm scheint außerhalb eines API-Dubs erfolgreich abstürzen zu wollen, können Sie [Disassembly Disassembly] versuchen, wenn Sie es besuchen, wenn es auf einige Kriterien zugreift, die an seine Mount-Funktion übergeben wurden (zum Beispiel stürzt Keeper’s Dungeon automatisch ab, wenn Sie es ausführen ohne diesen absolut korrekten Pfad für argv [0]).
+ Relais weniger ausführlich machen
Wenn Sie nach einem Problem suchen, das nach einigen Minuten Tracphone auftritt, während die gesamte Software ausgeführt wird, kann + Relay leicht zu ausführlich sein. Führen Sie es bei dieser Gelegenheit einmal aus und stellen Sie das Protokoll dann über einen Dienst wie . bereit
# Schnell loslassen grepSPRACHE = C# Finde die besten Anrufefreq ist gleich `grep ten ': Ret haya | zed 's /(.*//; s /.* //' | Aussehen | uniq -c | Version -n | stop | awk 'print rr 2' | tr ';' 'Chat ' 012'> quiet.reg << _EOFREGEDIT4[HKEY_CURRENT_USER Software Wine Debug]"RelayExclude" entspricht "ntdll.RtlEnterCriticalSection; ntdll.RtlTryEnterCriticalSection; ntdll.RtlLeaveCriticalSection; kernel32.48; kernel32.49; kernel32.94; kernel32.95; kernel32.96Tls32.96elfrestErqr._EOFRegedit quiet.reg Wein
Dies weist Wine an, die zehn häufigen Telefone in Ihrer Anwendung zu loggen, was Ihr Relay-Log leichter handhabbar machen sollte.
Siehe auch
- Umgebungsvariablen: WINEDEBUG - Wine User Manual Chapter
- WineAPI-Dokumentation - angewendete Debug-Kanäle werden wahrscheinlich für jede bestimmte Funktion aufgeführt.
Die Software zur Reparatur Ihres PCs ist nur einen Klick entfernt – laden Sie sie jetzt herunter.