Jak zgłaszać błędy
Dobre raporty błędów stanowią bardzo istotny wkład w rozwój każdego
projektu. Jednak tak jak pisanie dobrych programów wymaga sporo pracy, tak
dobre zgłoszenia problemów wymagają trochę wysiłku. Prosimy wziąć pod uwagę to,
że większość deweloperów jest bardzo zajęta i odbiera nieprzyzwoitą wręcz
ilość listów. Wsparcie ze strony użytkownika jest naprawdę ważne w procesie
rozwoju MPlayera. Należy jednak pamiętać, że
trzeba dostarczyć wszystkie informacje o które
poprosimy i postępować dokładnie według instrukcji zawartej w tym dokumencie.
Jak poprawiać błędy
Jeżeli uważasz, że posiadasz wystarczające umiejętności, namawiamy Cię do
samodzielnego poprawiania błędów. A może już to zrobiłeś? Przeczytaj
ten krótki dokument, żeby dowiedzieć
się w jaki sposób dodać swoją łatę do źródeł
MPlayera. Jeżeli będziesz miał jakieś pytania, pomogą
Ci ludzie z listy
mplayer-dev-eng
(tylko w języku angielskim -przyp. tłumacza).
Jak zgłaszać błędy
Po pierwsze sprawdź najnowszą wersję CVS MPlayera,
ponieważ dany błąd może być już w niej naprawiony. Rozwój
MPlayera przebiega naprawdę szybko, większość
problemów występujących w oficjalnych wydaniach jest zgłaszana w ciągu kilku dni
albo nawet godzin. Dlatego też prosimy używać tylko wersji
z CVSu do zgłaszania błędów. Dotyczy to głównie pakietów binarnych
MPlayera. Instrukcje dotyczące CVSu znajdują się na
dole tej strony
lub w pliku README. Jeżeli problem dalej występuje prosimy sprawdzić listę
znanych błędów i resztę dokumentacji. Jeżeli problem
nie jest znany lub rozwiązany przez naszą dokumentację prosimy zgłosić błąd.
Nie należy wysyłać zgłoszeń do deweloperów. MPlayer
jest dziełem dużej grupy, więc więcej osób może być zainteresowanych tym
problemem. Czasami inni użytkownicy spotkali się już z danym problemem i wiedzą
jak go rozwiązać nawet jeżeli jest to błąd w kodzie
MPlayera.
Prosimy opisywać problem tak dokładnie, jak to tylko możliwe. Należy sprawdzić w
jakich dokładnie okolicznościach pojawia się błąd. Czy występuje on tylko w
określonych sytuacjach? Czy ma związek z konkretnym plikiem lub typem plików?
Czy dotyczy tylko danego kodeka, czy też jest niezależny od kodeków? Czy możesz
go odtworzyć z każdym wyjściem wideo? Im więcej informacji dostarczysz, tym
większe są szanse na rozwiązanie zgłoszonego problemu. Nie należy również
zapominać o dołączeniu wartościowych informacji wymienionych poniżej. W
przeciwnym wypadku nie będziemy w stanie prawidłowo zdiagnozować zgłoszonego
problemu.
Doskonałym i dobrze napisanym przewodnikiem dotyczącym zadawania pytań jest
dokument "Jak
zadawać pytania w mądry sposób" napisany przez
Erica S. Raymonda. Istnieje
także inny dokumentem tego typu zatytułowany
Jak efektywnie zgłaszać błędy
stworzony przez Simona Tathama
(Polskie tłumaczenie tego dokumentu można znaleźć
tutaj
-przyp. tłum.). Jeśli będziesz postępował zgodnie z tymi przewodnikami,
powinieneś uzyskać pomoc. Prosimy jednak pamiętać, że śledzimy listę jako
ochotnicy poświęcając nasz wolny czas. Jesteśmy bardzo zajęci i nie potrafimy
zagwarantować, że pomożemy rozwiązać zgłoszony problem, ani nawet tego, że
odpowiemy na Twoje zgłoszenie.
Gdzie zgłaszać błędy
Zapisz się na listę mplayer-users:
i wyślij swoje zgłoszenie błędu na
gdzie będzie można je omówić.
Jeżeli wolisz, możesz zamiast tego skorzystać z naszej nowej
Bugzilli (systemu zgłaszania błędów - przyp. tłum.)
Językiem obowiązującym na tej liście jest
angielski. Prosimy trzymać się zasad standardowej
netykiety
(Polską wersję netykiety można przeczytać np.
tutaj - przyp. tłum.)
i nie wysyłać listów w HTMLu na żadną z naszych
list. W przeciwnym wypadku zostaniesz zignorowany lub wyrzucony z listy. Jeżeli
nie wiesz czym jest list w HTMLu albo dlaczego jest on zły, przeczytaj ten
świetny dokument (znów tylko
po angielsku - przyp. tłum.). Wyjaśnia on wszystkie szczegóły i zawiera
instrukcje wyłączania HTMLu. Zauważ również, że nie wysyłamy kopii listów do
użytkowników, więc dobrym pomysłem jest zapisanie się na listę w celu uzyskania
odpowiedzi.
Co zgłaszać
Może zajść potrzeba dołączenia logu, konfiguracji lub przykładowego
pliku w Twoim
zgłoszeniu błędu. Jeżeli któryś z nich ma duży rozmiar, lepiej załadować go na
nasz serwer FTP
w skompresowanej postaci (gzip i bzip2 są preferowanymi formatami) i załączyć
tylko ścieżkę i nazwę pliku do zgłoszenia błędu. Nasza lista ma ustawiony limit
rozmiaru każdej wiadomości na 80k. Jeżeli potrzebujesz wysłać coś większego,
musisz to skompresować albo załadować na serwer.
Informacja o systemie operacyjnym
Nazwa Twojej dystrybucji Linuksa albo system operacyjny. Np.:
Red Hat 7.1Slackware 7.0 + pakiety rozwojowe z 7.1 ...
wersja jądra (kernela):
uname -a
wersja biblioteki libc:
ls -l /lib/libc[.-]*
wersja gcc i ld:
gcc -v
ld -v
wersja binutils:
as --version
Jeżeli masz problem z trybem pełnoekranowym:
Menadżer okien i wersja
Jeżeli masz problem z XVIDIXem:
głębia barw Xów (colour depth):
xdpyinfo | grep "depth of root"
Jeżeli tylko GUI zawiera błędy:
wersja GTKwersja GLIBwersja libpngSytuacja w której pojawia się błąd GUISprzęt i sterowniki
informacje o procesorze (CPU) (to działa tylko pod Linuksem):
cat /proc/cpuinfo
Producent karty graficznej i model. Np.:
ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAMMatrox G400 DH 32MB SGRAM
Typ sterownika wideo i wersja, np:
wbudowane sterowniki XnVidia 0.9.623Utah-GLX CVS 2001-02-17DRI z X 4.0.3
Typ karty dźwiękowej i sterownik, np:
Creative SBLive! Gold ze sterownikiem OSS z oss.creative.comCreative SB16 ze sterownikiem OSS z kernelaGUS PnP z emulacją ALSA OSS
Jeżeli masz wątpliwości, załącz wyjście linuksowego polecenia
lspci -vv.
Problemy z konfiguracją
Jeżeli ./configure zwraca błąd albo
automatyczne wykrywanie czegoś zawiedzie, przeczytaj
configure.log. Możliwe, że znajdziesz tam odpowiedź, na
przykład kilka połączonych wersji tej samej biblioteki w Twoim systemie albo że
zapomniałeś zainstalować pakietów rozwojowych (tych z przyrostkiem -dev albo
-devel). Jeżeli wydaje Ci się, że istnieje jednak błąd, załącz
configure.log w twoim raporcie.
Problemy z kompilacją
Prosimy załączyć następujące pliki:
config.hconfig.mak
Tylko jeżeli kompilacja się nie powiedzie w którymś z tych katalogów, załącz
następujące pliki:
Gui/config.maklibvo/config.maklibao2/config.makProblemy z odtwarzaniem
Prosimy załączyć wyjście MPlayera w trybie gadatliwym
na poziomie pierwszym (opcja -v - przyp. tłum.), ale pamiętając o
nie skracaniu wyniku polecenia podczas
kopiowania go do Twojego listu. Deweloperzy potrzebują wszystkich informacji do
prawidłowego zdiagnozowania problemu. Możesz przekierować wyjście bezpośrednio
do pliku w ten sposób:
mplayer -v opcjenazwa_pliku > mplayer.log 2>&1
Jeżeli Twój problem jest specyficzny dla jednego albo wielu plików, załaduj
winowajcę(ów) na:
Załaduj także mały plik tekstowy nazwany tak samo jak Twój plik, ale z
rozszerzeniem .txt. Opisz w nim problem, który masz z zawartym plikiem i załącz
swój adres email oraz wyjście MPlayera w trybie
gadatliwym na poziomie pierwszym. Zazwyczaj pierwsze 1-5 MB pliku jest
wystarczające do odtworzenia problemu, ale żeby być pewnym prosimy wykonać:
dd if=twój_plik of=mały_plik bs=1024k count=5
To polecenie weźmie pierwsze pięć megabajtów
'twojego_pliku' i zapisze je do
'małego_pliku'. Następnie spróbuj odtworzyć
mały plik i jeśli błąd wciąż się pojawia plik ten jest dla nas wystarczający.
Prosimy w żadnym wypadku nie wysyłać plików
poprzez pocztę elektroniczną! Załaduj je na serwer FTP i wyślij tylko
ścieżkę/nazwę pliku. Jeżeli plik jest dostępny w sieci, wyślij
dokładny adres pod którym jest on dostępny.
Awarie programu (ang. Crashes)
Musisz uruchomić MPlayera wewnątrz
gdb i wysłać nam kompletne wyjście, albo jeżeli posiadasz
zrzut core (ang. core dump) utworzony w wyniku awarii,
wyciągnąć z niego użyteczne informacje. Oto jak to zrobić:
Jak otrzymać informację o awarii
Przekompiluj MPlayera z opcją debugowania kodu:
./configure --enable-debug=3
make
i uruchom MPlayera używając gdb:
gdb ./mplayer
Jesteś teraz wewnątrz gdb. Wpisz:
run -v opcje-mplayeranazwa_pliku i odtwórz swoją awarię. Gdy
tylko to zrobisz, gdb przeniesie cię z powrotem do linii poleceń, gdzie należy
wpisać
bt
disass $pc-32 $pc+32
info all-registers
Jak wyciągnąć sensowne informacje ze zrzutu core (ang. core dump)
Utwórz plik z nastepującymi poleceniami:
bt
disass $pc-32 $pc+32
info all-registers
A następnie uruchomić następujące polecenie:
gdb mplayer --core=core -batch --command=plik_z_poleceniami > mplayer.bugWiem co robię...
Jeżeli utworzyłeś właściwy raport błędu kierując się powyższymi wskazówkami i
jesteś pewien że to błąd MPlayera, nie kompilatora
albo uszkodzonego pliku, przeczytałeś dokumentację i nie możesz znaleźć
rozwiązania, Twoje sterowniki dźwięku są w porządku, możesz chcieć zapisać się
na listę mplayer-advusers (tylko po angielsku - przyp. tłum.) i wysłać tam swoje
zgłoszenie błędu, aby uzyskać lepszą i szybszą odpowiedź.
Wiedz, że jeśli zadasz trywialne pytanie albo odpowiedź na nie znajduje się w
podręczniku (ang. man), zamiast dostać odpowiedź zostaniesz zignorowany
albo obrzucony wyzwiskami.
Dlatego też nie obrażaj nas i zapisz się na listę -advusers tylko jeżeli
naprawdę wiesz co robisz i czujesz się zaawansowanym użytkownikiem lub
deweloperem. Jeżeli spełniasz te kryteria, nie powinno Ci sprawić problemu
znalezienie sposobu zapisania się na listę (pamiętaj, że musisz biegle znać j.
angielski - przyp. tłum.)