Dodatek C - Jak zgłaszać błędy

Jak zgłaszać błędy?

Najpierw sprawdź ostatnie CVS, być może twój błąd został już poprawiony. Instrukcje (nieskomplikowane), jak ściągnąć CVS, znajdziesz na naszej stronie domowej.

Jeśli to nie pomogło: przeczytaj Dodatek D i inne dokumenty. Jeżeli twój problem nie jest znany lub nie rozwiązują go nasze instrukcje, wtedy zgłoś błąd:

Gdzie?

Zapisz się na listę użytkowników mplayera:
http://mplayerhq.hu/mailman/listinfo/mplayer-users
i wyślij swój raport do:
mplayer-users@mplayerhq.hu
Nie odpiszemy bezpośrednio, więc pamiętaj, aby zasubskrybować listę!!!

Nie wysyłaj raportów o błędach prywatnie, bezpośrednio na adres autora!!! Pracujemy wspólnie nad kodem, więc wszyscy są zainteresowani. Swoją drogą, często inni użytkownicy znają rozwiązanie (problemy z konfiguracją systemu, złe sterowniki itd.), nawet kiedy my myślimy, że to błąd w kodzie. Językiem tej listy jest ANGIELSKI!

Opisz swój problem ze szczegółami i nie zapomnij dołączyć tego:

Czego?

1.Informacja o systemie, jaką zawsze chcemy dostać:

- dystrybucja linuksa
  przykłady:
  - RedHat 7.1
  - Slackware 7.0 + pakiety developerskie z 7.1 ...
- wersja jądra:
  `uname -a`
- wersja libc:
  `ls -l /lib/libc[.-]*`
- wersja X:
  `X -version`
- wersja gcc i ld:
  `gcc -v
  ld -v`
- wersja binutils:
  `as --version`
- Jeśli masz probelmy z trybem pełnoekranowym:
  - Typ i wersja manadżera okienek
- tylko, gdy błędy ma GUI:
  - wersja GTK
  - wersja GLIB
  - wersja libpng
  - opis sytuacji, w której pojawiają się błędy w GUI

2. Sprzęt i sterowniki:

- informacja o CPU:
  `cat /proc/cpuinfo`
- producent i model karty wideo, przykłady:
  - ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAM
  - Matrox G400 DH 32MB SGRAM
- typ i wersja sterownika karty graficznej, przykłady:
  - wbudowany sterownik X-ów
  - nvidia 0.9.623
  - Utah-GLX CVS 2001-02-17
  - DRI z X 4.0.3
- typ i wersja sterownika karty dźwiękowej, przykłady:
  - sterownik Creative SBLive! Gold z OSS ze strony oss.creative.com
  - sterowniki jądra dla Creative SB16 z OSS
  - GUS PnP z emulacją ALSA OSS
- jeśli nie jesteś pewien, dołącz (jeżeli pracujesz na systemie linuksowym) wynik wykonania `lspci -vv`

Przy problemach i błędach kompilacji

3. te pliki:

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

Przy problemach z odgrywaniem:

3. Wyjście mplayera przy poziomie 1 komunikatów (-v)

`mplayer -v [opcje] nazwa_pliku &> mplayer.log`

4. Jeżeli problem jest specyficzny dla jednego lub kilku plików, prześlij te pliki na adres:

`ftp://mplayerhq.hu/MPlayer/incoming/`

Nagraj również mały plik tekstowy .txt z tą samą nazwą co właściwy plik, zawierający opis twojego problemu!
Zwykle pierwsze 1-5 MB wystarczy do przekazania problemu, ale najpierw powinieneś sprawdzić to:

`dd if=twój_plik of=mały_plik bs=1k count=1024`

(spowoduje to odcięcie 1MB z 'twój_plik' i zapisanie tego jako 'mały_plik') Spróbuj jeszcze raz na tym małym pliku i jeśli problem ponownie wystąpi, to wystarczy wysłać mały plik.
NIGDY nie wysyłaj takich plików e-mailem! Załaduj to przez ftp, a na listę wyślij tylko ścieżkę/nazwę pliku. Jeżeli plik jest dostępny przez sieć, to wystarczy wysłać _dokładny_ URL do niego.

5. W przypadku przerwań w działaniu programu ( segfault, SIGILL, sygnał 4 itd.):

Jeżeli masz coredump po tym zdarzeniu, zobacz 5.a, jeśli nie - zobacz 5.b:

5.a: Zapisz i wyślij nam coredump (jeżeli został stworzony).

Jak to zrobić: utwórz następujący skrypt:

`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
`

Później po prostu wykonaj następujące polecenie:

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

5.b.: Uruchom MPlayera w gdb:

Przekompiluj mplayera z włączeniem opcji debugowania kodu:
./configure --enable-debug
make

[w shellu roota/użytkownika:]
`# gdb mplayer`
[w gdb:]
`> run -v [opcje-mplayera] nazwa_pliku`
... (czekaj aż się przerwie)
`> bt`
`> disass $eip-32 $eip+32`
I wyślij nam wyjście z tego co powyższe!

Ogólnie:

Jeśli coś jest duże (logi itd.), wtedy lepiej załadować to (zgzipowane) przez ftp oraz dołączyć jedynie ścieżkę/nazwę pliku w raporcie!

Wiem co robię...

Jeśli stworzyłeś właściwy raport o błędzie, postępując zgodnie z podanymi wskazówkami oraz jesteś pewien, że to błąd mplayera, nie kompilatora, czy zepsutego pliku, przeczytałeś dokumentację i nadal nie znalazłeś rozwiązania, a twoje sterowniki karty dźwiękowej są w porządku, wówczas możesz zasubskrybować listę dyskusyjną mplayer-advusers i wysłać swój raport, aby dostać szybszą i lepszą odpowiedź. Ale STRZEŻ SIĘ: jeśli wyślesz pytanie w stylu początkującego użytkownika, bądź w typie rtfm ("read the fucken manual" - przeczytaj pieprzony manual), natychmiast zostaniesz zbanowany, zazwyczaj nie uzyskując nawet odpowiedzi na swoje pytania. A więc nie drażnij nas, zasubskrybuj -advusers tylko, jeśli naprawdę wiesz, co robisz i czujesz, że jesteś już zaawansowanym użytkownikiem lub developerem mplayera (a propos tego, jak subskrybować: dowiedz się sam! jeśli jesteś naprawdę zaawansowanym użytkownikiem, nie powinno to być dla ciebie problemem ...).