# Anhang C - Wie man einen Fehler berichtet

#### Wie sollen Fehler behoben werden?

Wenn man geschickt genugt ist, kann man versuchen den Fehler selber zu beheben, was äusserst positiv aufgenommen wird. Falls dies schon getan ist, sollte dieses kurze Dokument gelesen werden um zu erfahren, wie der Code in MPlayer integriert werden kann. Die Leute auf der mplayer-dev-eng Mailingliste können ansonsten bei Fragen helfen.

#### Wie sollen Fehler berichtet werden?

Probiere es als allererstes die letzte CVS-Version, da dein Problem möglicherweise schon gelöst ist. CVS-Anweisungen können am unteren Ende dieser Seite oder im README gefunden werden. Wenn dies nicht hilft, sollte in der Liste der bekannten Fehler und dem Rest der Dokumentationen nachgesehen werden. Wenn dein Problem nicht bekannt ist oder durch unsere Anweisungen nicht gelöst werden kann, dann berichte über den Fehler:

Sende auf keinen Fall Fehlerberichte an individuelle Entwickler. MPlayer ist Gemeinschaftsarbeit, also wird es vielleicht mehrere interessierte Leute geben. Es kommt auch teilweise vor, dass derselbe Fehler von anderen Benutzern erlebt wurde, die bereits eine Lösung zur Umgehung des Problems haben (sogar bei einem Fehler im MPlayer Code).

Bitte beschreibe dein Problem so detailiert wie möglich. Dazu gehört eine kleine Detektivarbeit um die Umstände unter denen das Problem auftritt einzuengen. Tritt der Fehler nur in bestimmten Situationen auf? Ist er abhängig von der Datei oder dem Dateityp? Tritt er nur mit einem Codec oder mit allen auf? Tritt er mit allen Ausgabetreibern auf? Je mehr Information zur Verfügung gestellt werden, um so besser stehen die Chance, dass das Problem gelöst werden wird. Es sollte nicht vergessen werden, auch die wertvollen unten angeforderten Informationen miteinzubeziehen, ansonsten ist es wahrscheinlich unmöglich eine Diagnose des Fehlers zu erstellen.

Ein exzellenter und gut geschriebener Führer, wie Fragen in öffentlichen Foren beantwortet werden sollen ist How To Ask Questions The Smart Way von Eric S. Raymond. Falls diesen Richtlinien gefolgt wird, sollte alles gut gehen. Bitte versteht, dass wir alle den Mailinglisten freiwillig in unserer Freizeit folgen. Wir sind sehr beschäftigt und können nicht garantieren, dass eine Lösung oder bloss eine Antwort zum beschriebenen Problem kommen wird.

#### Wo sollen Fehler berichtet werden?

Tritt der mplayer-users Mailingliste bei:
http://mplayerhq.hu/mailman/listinfo/mplayer-users
und sende deinen Fehlerbericht an:
mplayer-users@mplayerhq.hu

Die Sprache der Liste ist Englisch. Es wird gebeten den Netiquette Richtlinien zu folgen und keine HTML Mails zu irgendeiner unserer Listen zu senden. Man wird dabei bloss ignoriert oder von der Liste verstossen. Es sei auch darauf hingewiesen, keine individuellen Kopien (CC) versandt werden. Es ist also eine gute Idee sich anzumelden, wenn man auch seine Antwort erhalten will.

#### Was soll berichtet werden?

Systeminformationen:

- Deine Linux Distribution oder Betriebssystem:
  - RedHat 7.1
  - Slackware 7.0 + Development Pakete von 7.1 ...
- Kernel Version:
  `uname -a`
- libc Version:
  `ls -l /lib/libc[.-]*`
- X Version:
  `X -version`
- gcc und ld Versionen:
  `gcc -v
  ld -v`
- binutils Version:
  `as --version`

Hardware & Treiber:

- CPU Infos (dies funktioniert nur mit Linux):
  `cat /proc/cpuinfo`
- Grafikkartenhersteller und Modell:
  - ASUS V3800U, Chipset: nVidia TNT2 Ultra Pro 32MB SDRAM
  - Matrox G400 DH 32MB SGRAM
- Grafikkartentreiber-Typ & Version:
  - X eigener Treiber
  - nvidia 0.9.623
  - Utah-GLX CVS 2001-02-17
  - DRI von X 4.0.3
- Soundkartentyp und Treiber:
  - Creative SBLive! Gold mit OSS Treiber von oss.creative.com
  - Creative SB16 mit OSS Treiber des Kernels
  - GUS PnP mit ALSA OSS Emulation
- Wenn man sich unsicher ist, sollte die Ausgabe von `lspci -vv` mitgeschickt werden (auf Linux Systemen)

Bei Kompilierungsfehlern/-problemen:

Bitte schicke diese Dateien mit:

- configure.log
- config.h
- config.mak
- libvo/config.mak

Bei Wiedergabeproblemen:

Bitte gib die Ausgabe von MPlayer in Ausführlichkeits-Stufe 1, aber denk daran die Ausgabe nicht zu kürzen wenn diese dem Mail eingefügt wird. Die Entwickler benötigen alle Meldungen, um eine geignete Diagnose des Problems durchführen zu können. Die Ausgabe kann mit folgendem Befehl in eine Datei geschrieben werden:

`mplayer -v [Optionen] [Dateiname] &> mplayer.log`

Wenn das Problem spezifisch für eine oder einige wenige Dateien besteht, lade die Datei bitte auf ftp://mplayerhq.hu/MPlayer/incoming/

Uploade auch eine kleine .txt-Datei mit dem selben Namen wie die Datei (+ .txt Endung), die eine Problembeschreibung zur jeweiligen Datei, die detaillierte Ausgabe (-v) von MPlayer und deine Email-Adresse enthält! Normalerweise reichen die ersten 1-5MB der Datei aus um das Problem zu reproduzieren, aber als erstes solltest du folgendes ausprobieren:

`dd if=deinedatei of=kleinedatei bs=1024k count=5`
(kopiert die ersten 5 MB von 'deinedatei' in die Datei 'kleinedatei'.) Nun versuche es nochmals mit dieser kleinen Datei, wenn der Fehler immer noch auftritt reicht es die kleine Datei hochzuladen.
Sende NIE solche Dateien via Mail! Lade es herauf und schicke nur den Pfad/ Dateinamen der Datei auf den FTP Server.
Wenn die Datei im Internet bereits verfügbar ist reicht die exakte URL aus!

Bei Abstürzen:

Wenn du ein Speicherabbild (core dump) vom Absturz besitzt, lies beim nächsten Paragraph weiter, ansonsten lass ihn aus.

Wie brauchbare Informationen von einem core dump extrahiert werden können:

Bitte erzeuge die folgende Befehlsdatei (Command File):

`disass $eip-32 $eip+32
printf "eax=%08lX\n",$eax
printf "ebx=%08lX\n",$ebx
printf "ecx=%08lX\n",$ecx
printf "edx=%08lX\n",$edx
printf "esp=%08lX\n",$esp
printf "ebp=%08lX\n",$ebp
printf "edi=%08lX\n",$edi
printf "esi=%08lX\n",$esi
`

Dann führe einfach den folgenden Befehl auf der Konsole aus:

`gdb mplayer --core=core -batch --command=Kommandodatei > mplayer.bug`

Wie Informationen eines reproduzierbaren Absturzes bewahrt werden können:

Kompiliere MPlayer mit eingeschaltetem Debugging mit:
`./configure --enable-debug=3
make`
Lass dann MPlayer mit gdb laufen:
`gdb mplayer`

Du benutzt nun gdb. Gib folgendes ein:
`run -v [Optionen von mplayer] dateiname`
und reproduziere deinen Absturz. Sobald du dies getan hast, wird gdb zur Eingabeaufforderung zurückkehren, wo folgendes einzugeben hast:
`bt
disass $eip-32 $eip+32`
Sende uns die gesamte Ausgabe obiger Dinge!

#### Allgemeine Hinweise

Wenn etwas sehr groß ist (Log-Dateien z.B.) ist es besser diese gezippt auf den FTP hochzuladen und nur den Pfad-/Dateinamen im Fehlerbericht anzugebeben.

#### Ich weiss was ich mache...

Wenn du einen Fehlerbericht wie oben beschrieben geschreiben hast und du dir sicher bist das ein Bug in MPlayer, nicht ein Problem mit dem Kompiler oder eine defekte Datei ist kannst du auch der mplayer-advusers - Mailingliste beitreten und dort posten wenn du alle Dokumentation gelesen hast und dein Soundtreiber ok ist. Du wirst schnellere und besser Antworten erhalten.
Aber sei gewarnt: Wenn du Newbiefragen oder Fragen welche hier beantwortet werden schickst, wirst du sofort gebannt anstatt eine Antwort zu erhalten.
Also ärgere uns nicht und trette der -advusers-Liste nur bei, wenn du weisst was du machst und du dich wie ein erfahrener MPlayer Benutzer oder Entwickler fühlst. Wenn du wirklich ein erfahrener Benutzer bist sollte es kein Problem für dich sein dich anzumelden...