From 5bd96a2d3fbe3c80443810bcc8896375167c2592 Mon Sep 17 00:00:00 2001 From: Maik Schulz Date: Sun, 21 Dec 2008 23:57:38 +0100 Subject: german translations for winehq.org --- templates/de/developer-cheatsheet.template | 642 ++++++++++++++++++++++++++++ templates/de/download.template | 2 +- 2 files changed, 643 insertions(+), 1 deletions(-) create mode 100644 templates/de/developer-cheatsheet.template diff --git a/templates/de/developer-cheatsheet.template b/templates/de/developer-cheatsheet.template new file mode 100644 index 0000000..347cb2e --- /dev/null +++ b/templates/de/developer-cheatsheet.template @@ -0,0 +1,642 @@ + + + +

Fünf-Minuten Einführung in die Wine-Entwicklung

+ +

+ Dies ist eine flüchtige Zusammenstellung von Tipps und Tricks, + die für Wine-Entwickler nützlich sein können. Sie + orientiert sich grob an dem OpenOffice.org Entwicklerleitfaden. +

+ +

+ Das Wine Entwicklerhandbuch ist eine hervorragende Referenz, die + viel weiter als dieses Dokument ins Detail geht, insbesondere + was Wines Architektur und die einzelnen Komponenten betrifft. + Solltest Du jedoch eine Übersicht dafür suchen, wie Du + am besten anfängst, bist Du hier richtig. +

+ +

Debug Logging

+ +

+ Das mächtigste Werkzeug, das Dir zur Verfügung steht um + herauszufinden, warum eine Anwendung nicht unter Wine läuft, + ist das Logging System. Die Verwendung ist denkbar einfach. Jeder + Teil des Quellcodes (abgesehen vom Server) loggt in einen + "Debug-Kanal" und jeder Kanal hat vier Klassen: trace, warn, err + und fixme. Per Voreinstellung werden ERR und FIXME Nachrichten + angezeigt, wogegen TRACE und WARN Nachrichten ausgeblendet bleiben. + Um sie einzublenden: +

+ + WINEDEBUG=+channel1,+channel2 wine myprogram.exe + +

+ Es gibt einige Kanäle, die besonders nützlich sind: +

+ + + +
+ +

Grundlegende Debugging Tipps

+ + + +
+ +

Implementierung von Win32

+ + + +
+ +

Verwendung des Debuggers

+ +

Winedbg hat mehrere nützliche Fähigkeiten. Die + wichtigsten sind die Möglichkeiten, einen Backtrace von + Threads mit Win32 und eingebaute Debugging-Informationen zu + bekommen. Normalerweise sind diese aus Windows-Programmen + entfernt, so dass das nichts bringt, es kann sich aber als + nützlich erweisen, wenn man native DLLs nutzt. Einen + Backtrace bekommst Du mit dem bt-Befehl. Einen + Backtrace eines bestimmten Threads bekommst du, indem Du die + hexadezimale Thread-ID anhängst, z.B. bt 0x9. + Anstelle einer Thread-ID kannst du auch "all" angeben.

+ +

Er unterstützt eine Untermenge der gdb-Befehle. Die + gebräuchlichsten sind vorhanden, Du kannst z.B. info + proc und info thread nutzen und den Debugger dann an + einen bestimmten Prozess dranhängen. Das ist nützlich, + um einen Backtrace von Deadlocks zu erhalten.

+ +

Er kann auch Code disassemblieren. Du solltest nicht zu + enthusiastisch werden, Disassemblierung enthüllt nur selten + brauchbare Informationen. Manchmal ist es jedoch die einzige + Möglichkeit, eine Untersuchung voranzubringen, z.B. um + herauszufinden, warum ein Programm abstürzt. Verwende den + disas-Befehl um einen Code-Abschnitt zu disassemblieren. + Versuche ausgerichtete Adressen zu verwenden wenn Du Dich von + einer bestimmten Adresse aus zurückarbeitest, sonst + riskierst Du, die Disassemblierung mitten in einer Instruktion + zu beginnen, was nur Müll produziert. Wenn Dir x86-Assembler + noch fremd ist, versuche dich erstmal an ELF-Programmen, die Du + selbst kompiliert hast, damit Du Dich an den Anblick + gewöhnst. Der Intel-Befehlssatz ist sehr umfangreich, aber + nur wenige Instruktionen werden häufig genutzt. Wenn Du + weißt, was Du zu erwarten hast, kommst Du nicht durch + schlechte Disassemblierung oder Anti-Disassemblierungstricks, + die die Ausgabe unbrauchbar machen können, ins Stolpern.

+ +

Erstens ist es wichtig, dass Du weißt was Du tust, wenn Du + Dich entscheidest, ein Programm zu disassemblieren. Es ist klar, + dass Du nicht einfach beliebigen Code in Deinen eigenen Programmen + wiederverwenden kannst. Versuch erst gar nicht, dekompilierten Code + als Serie von Patches beizutragen, das haben schon Andere probiert + und wir wissen, wie sowas aussieht. Alexandre wird jeden Patch, der + so aussieht als wäre er dekompiliert oder das Resultat einer + Disassemblierung, zurückweisen.

+ +

Zweitens, verstehe was Du siehst. Hier sind ein paar Tipps:

+ + + +
+ +

Der wineserver

+ +

Was ist der wineserver? Einfach ausgedrückt ist er das + Äquivalent des Kernels in einem echten Windows-System. Er + ist der zentrale Nexus eines emulierten Windows-Systems: alle + Win32-Prozesse, die unter dem gleichen User laufen, verbinden + sich mit der diesem User zugeordneten Kopie des wineservers. + Ein Beispiel für einen Zustand, den mehrere Win32 Programme + teilen sollten, ist der Zustand der Registry. Das Erstellen oder + Ändern eines Keys in der Registry wird sofort in der Sicht + der Registry jedes anderen Prozesses wiedergespiegelt. Unter + Windows passiert das, weil die Registry eine große + Datenbank ist, die im Kernel-Speicherbereich gehalten wird. + Unter Wine werden Zugriffe auf die Registry in Remote Procedure + Calls auf den Server konvertiert, der die Stammkopie der + Datenbank hält. +

+ +

+ Die Kommunikation mit dem Server läuft über ein + einfaches selbstentwickeltes RPC-Protokoll. Die Definiton des + Protokolls kann in server/protocol.def gefunden + werden. Diese Datei wird genutzt, um andere zu generieren; + jedes Mal, wenn die Generierung neu ausgeführt wird, wird + die Protokollversion erhöht. Wine weigert sich zu starten, + wenn die Server- und Client-Protokollversionen nicht + übereinstimmen. Wenn Du das Protokoll veränderst, + musst Du das komplette Projekt neubauen. Einen wineserver-Aufruf + kannst Du sehen, wenn Du mit grep nach SERVER_START_REQ suchst. +

+ +

+ Hier ist ein kurzer Abriss einiger der Aufgaben des wineservers: + Nachrichtenzustellung, die Registry, Debugging API, Synchronisation, + ein Teil des Fenstermanagements, Thread-Verfolgung, Manipulation von + Regionen. In der Zukunft wird er noch viel mehr Aufgaben + übernehmen (der Windows-Kernel hat sehr viele Aufgaben). +

+ +
+ +

DLL-Einteilung

+ +

Wine war ursprünglich nach Themengebieten organisiert, + so dass jeder zusammengehörige Bereich von APIs sein + eigenes Verzeichnis hatte. Leider hat sich das nicht gerade + gut bewährt, da Windows selbst eher schlecht organisiert + ist, insbesondere in den älteren Bereichen. Hier ist nun + eine Übersicht darüber, wo der wichtigste Quellcode + zu finden ist. In der Datei DEVELOPER-HINTS findest Du einen + Einzeiler als Beschreibung für jede DLL. + +

+ +
+ +

Häufige Probleme

+ +

Einige Fehler sind einfacher zu beheben als andere. Hier ist eine + kurze Übersicht über die hartnäckigeren so dass Dir + klar ist, worauf Du Dich einlässt:

+ + diff --git a/templates/de/download.template b/templates/de/download.template index 03e939c..b59990e 100644 --- a/templates/de/download.template +++ b/templates/de/download.template @@ -214,6 +214,6 @@ für Informationen zu den Schritten, die nach der Installation auszufüh Download Wine - Benutze dieses Bild, wenn du zu unserer Download-Seite verlinken willst. + Benutze dieses Bild, wenn Du zu unserer Download-Seite verlinken willst.

-- 1.6.0.5