Hogyan jelentsd a hibákat
A jó hiba jelentések nagyon értékes hozzájárulások bármilyen szoftver
fejlesztéséhez. De, akárcsak jó programot írni, jó probléma jelentést
készíteni is némi munkába kerül. Kérlek vedd figyelembe, hogy a fejlesztők
többsége roppant elfoglalt és valami hihetetlen mennyiségű levelet kap.
Tehát miközben a visszajelzések kritikus és nagyon megbecsült az
MPlayer fejlődése szempontjából, kérlek értsd meg,
hogy minden általunk kért információt meg
kell adnod és követned kell az ebben a dokumentumban leírt lépéseket.
Biztonsági hibák jelentése
Ha egy kihasználható hibát találsz és a helyesen akarsz cselekedni,
vagyis előbb a mi tudomásunkra akarod hozni, mielőtt publikálnád,
szívesen vesszük a biztonsági figyelmeztetésedet a
security@mplayerhq.hu
címen.
Kérjük írd bele a tárgy mezőbe a [SECURITY] vagy [ADVISORY] szót.
Figyelj rá, hogy a jelentésed a hiba teljes és részletes analízisét tartalmazza.
Nagyon hálásak leszünk, ha javítást is küldesz.
Kérjük ne késlekedj a jelentéseddel egy proof-of-concept exploit írása
miatt, azt később is elküldheted egy másik levélben.
Hogyan javíts hibákat
Ha úgy érzed, hogy képes vagy rá, bátran állj neki és javítsd ki a hibát magad.
Vagy talán már meg is tetted? Kérlek olvasd el ezt a rövid dokumentumot,
hogy megtudd, hogyan kerülhet be a kódod az MPlayerbe.
Az MPlayer-dev-eng
levelezési listán lévő emberkék segítenek neked, ha kérdésed van.
Hogyan tesztelj a CVS segítségével
Egy néha előforduló probléma, hogy "régen még működött, de most már nem...".
Következzék hát egy lépésenkénti leírás, mely segít a probléma
megtalálásában. Ez nem az átlagos
felhasználóknak szól.
Először is, be kell szerezned az MPlayer forrás fáját a CVS-ből.
Az utasításokat megtalálod
ennek az oldalnak
az alján.
Ezután lesz a main/ könyvtárban a CVS fáról egy pillanatképed, a kliens oldalon.
Ezután frissítsd ezt a kívánt dátumúra:
cd main/
cvs update -PAd -D "2004-08-23"
A dátum formátum YYYY-MM-DD HH:MM:SS.
Ezen dátum formátum használata biztosítja, hogy benne legyen minden olyan
javítás, ami az adott dátumig commit-olva lett és bekerült az
MPlayer-cvslog archívumába.
Majd folytasd, mint egy normális frissítést:
./configure
make
Ha olyan olvassa ezt, aki nem programozó, annak gyorsabb megkeresni a
probléma forrását bináris keresés használatával — ekkor
a hiba helyét a keresési intervallum ismételt felezéseivel határozza
meg.
Például a probléma előfordult 2003 közepén, akkor kérdezd meg, hogy
"Már ott volt a hiba?".
Ha igen, akkor menj vissza április elsejére; ha nem, menj október elsejére,
és így tovább.
Ha nagyon sok hely van a merevlemezeden (egy teljes fordítás jelenleg 100 MB
és 300-350 MB körül van a hibakereső szimbólumokkal), másold át a
legrégebbi tudvalevőleg működő verziót, mielőtt frissítenél; ezzel időt
spórolsz, ha vissza kell lépned.
(Általában le kell futtatni a 'make distclean'-t egy régi verzió újrafordítása
előtt, így ha nem készítesz mentést az eredeti forrás fádról, újra kell fordítanod
mindent, ha visszajössz a jelenbe.)
Ha megvan a nap, amikor a probléma megjelent, folytasd a keresést az
mplayer-cvslog archívum segítségével (dátum szerint rendezve) és egy sokkal
precízebb CVS update-tel, melybe órát, percet és másodpercet is írsz:
cvs update -PAd -D "2004-08-23 15:17:25"
Így könnyen megtalálod azt a javítást, ami okozta.
Ha megvan a javítás, ami a problémát okozta, majdnem győztél is;
jelentsd az
MPlayer Bugzilla-n vagy
iratkozz fel az
MPlayer-users
listára és küldd el oda.
Valószínűleg a szerző jelentkezni fog javítási ötlettel.
Addig azonban a javításra is gyanakodva tekint, amíg nem tiszta, hogy hol
is van a hiba :-).
Hogyan jelentsd a hibákat
Mindenek előtt kérlek, hogy mindig próbáld ki az MPlayer
legújabb CVS verzióját, hátha az általad felfedezett hibát már kijavították
benne. A fejlesztés borzasztó gyorsan halad, a legtöbb, hivatalos kiadásban
meglévő problémát napokon vagy akár órákon belül jelentik, így
csak a CVS-ből küldj hibajelentést. Ebbe
beleértendőek az MPlayer bináris csomagjai is. A
CVS utasításokat megtalálod
ennek az oldalnak
az alján vagy a README fájlban. Ha ez sem segít, olvasd el az
ismert hibák listáját és a dokumentáció többi részét.
Ha problémád még nem ismert vagy nem oldódott meg a leírásunk által, akkor kérjük
jelentsd.
Kérlek ne küljd hibajelentést személyesen egy fejlesztőnek. Ez csapatmunka és így
számos embert érdekelhet. Néha más felhasználók is belefutnak a te problémáidba,
és esetleg tudják, hogy hogyan lehet megkerülni, még akkor is, ha hiba van az
MPlayer kódjában.
Kérlek olyan részletesen írd le a problémádat, amilyen részletesen csak lehet.
Végezz egy kis felderítő munkát, szűkítsd le azon körülmények körét, amelyek között
a hiba előfordul. A hiba csak adott szituációban jön elő? Bizonyos fájlokra vagy
fájl típusokra vonatkozóan? Csak egy codec esetén vagy független a használt codec-től?
Mindegyik kimeneti vezérlővel elő tudod hozni? Minél több információt adsz meg,
annál nagyobb az esély a hiba kijavítására. Kérlek ne felejtsd el mellékelni azon
értékes információkat, amit lejjebb írunk, különben képtelenek vagyunk megfelelően
megkeresni a problémádat.
Egy kitűnő és jól megírt útmutató kérdések publikus fórumokban történő feltevéséhez
a How To Ask
Questions The Smart Way
(magyarul)
Eric S. Raymond-tól.
Van egy másik is, a
How to Report
Bugs Effectively című Simon Tatham-tól.
Ha követed ezeket a leírásokat, kapsz segítséget. De kérlek értsd meg, hogy a
levelezési listákat önként, a szabad időnkben nézzük. Van más dolgunk is, és nem
tudjuk garantálni, hogy kapsz megoldást vagy egyáltalán választ a problémádra.
Hol kell jelezni a hibákat
Iratkozz fel az MPlayer-users levelezési listára:
(vagy a magyar nyelvűre itt: )
és küldd el a hibajelentéseidet a
(illetve
) címre, ahol meg lehet vitatni.
Ha inkább azt szeretnéd, használhatod a vadi új
Bugzillánkat is.
Ezen lista nyelve az angol (a -felhasznalok listáé
természetesen magyar). Kövesd a szabványos
Netiquette Irányelveket és
ne küldj HTML levelet egyik levelezési listánkra se.
Ha nem így teszel, akkor vagy egyszerűen figyelmen kívül hagynak vagy kitiltanak.
Ha nem tudod mi az a HTML levél vagy hogy miért rossz az, olvasd el ezt a
frankó leírást. Mindent részletesen
megmagyaráz és tanácsokat ad a HTML kikapcsolásához. Szintén tartsd észben, hogy nem
CC-zünk (carbon-copy) egyéneknek, így jól teszed, ha feliratkozol, hogy megkapd te is
a választ.
Mit jelents
A hibajelentésedhez csatolnod kell a log-ot, konfigurációs vagy minta fájlokat.
Ha ezek közül valamelyik nagy, jobb ha feltöltöd az
FTP szerverünkre tömörített
formátumban (gzip és bzip2 a javasolt) és csak az elérési utat és a fájl nevet írod
bele a hiba jelentésedbe. A levelezési listáinkon az üzenet mérete maximum 80k lehet,
ha ennél nagyobb fájlod van, tömörítened kell, vagy feltöltened.
Rendszer információk
A Linux disztribúciód vagy operációs rendszered verziója, pl.:
Red Hat 7.1Slackware 7.0 + 7.1-es fejlesztői csomagjai ...
kernel verziója:
uname -a
libc verziója:
ls -l /lib/libc[.-]*
gcc és ld verziója:
gcc -v
ld -v
binutils verziója:
as --version
Ha a teljes képernyős lejátszással van gondod:
Ablakezelő tíusa és verziója
Ha az XVIDIX-szel van problémád:
X szín mélyésg:
xdpyinfo | grep "depth of root"
Ha csak a GUI a hibás:
GTK verziójaGLIB verziójalibpng verziójaGUI szituáció, ahol a hiba előjönHardver és vezérlők
CPU infó (csak Linuxon működik):
cat /proc/cpuinfo
Videó kártya gyártója és modellje, pl.:
ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAMMatrox G400 DH 32MB SGRAM
Videó vezérlő típusa & verziója, pl.:
X built-in drivernVidia 0.9.623Utah-GLX CVS 2001-02-17DRI from X 4.0.3
Hangkártya típusa & vezérlője, pl.:
Creative SBLive! Gold with OSS driver from oss.creative.comCreative SB16 with kernel OSS driversGUS PnP with ALSA OSS emulation
Ha nem vagy biztos benne, csatold az lspci -vv kimenetét (Linux alatt).
Konfigurációs problémák
Ha a ./configure futtatása közben fordult elő valami hiba,
vagy valaminek az automatikus detektálása nem sikerült, olvasd el a configure.log
fájlt. Ott megtalálod a választ, például ugyanazon függvénykönyvtár több verziója elszórva
a rendszerben, vagy elfelejtetted telepíteni a fejlesztői csomagokat (amiknek -dev
utótagjuk van). Ha úgy hiszed, hogy hibát találtál, csatold a configure.log
fájlt a hibajelentésedhez.
Fordítási problémák
Kérlek csatold a következő fájlokat:
config.hconfig.mak
Csak ha valamelyik alábbi könyvtárban sikertelen a fordítás, csatold az alábbi fájlokat:
Gui/config.maklibvo/config.maklibao2/config.makLejátszási problémák
Írd meg az MPlayer kimenetét az 1. szintű beszédességgel,
de figyelj rá, hogy ne szerkeszd át a kimenetet, amikor
beilleszted a levélbe. A fejlesztőknek szükségük van azokra az üzenetekre, hogy pontosan
diagnosztizálják a problémát. A kimenetet átirányíthatod fájlba így:
mplayer -v optionsfilename > mplayer.log 2>&1
Ha a probléma egy vagy több fájl esetén specifikus, kérlek töltsd fel ide:
Tölts fel egy apró, a fájloddal megegyező nevű, de .txt kiterjesztésű szöveges fájlt
is. Írd le a problémát, ami az adott fájllal jelentkezik és írd bele az e-mail
címed valamint az MPlayer kimenetét 1. szintű beszédességgel.
Általában a fájl első 1-5 MB-ja elég a hiba reprodukálásához, de a biztonság kedvéért:
dd if=yourfile of=smallfile bs=1024k count=5
Ez az első 5 megabájtot a 'your-file'-ból átírja a
'small-file'-ba. Ezután próbáld ki ezt a kicsi
fájlt is és ha a hiba még mindig jelentkezik, akkor ez elegendő lesz nekünk.
Kérlek soha ne küldj fájlokat mail-en keresztül!
Töltsd fel és csak az FTP szerveren élő elérési utat/fájlnevet írd meg. Ha a fájl
elérhető a neten, akkor a pontos URL beküldése
is elegendő.
Összeomlások
Az MPlayert a gdb-n belül kell futtatnod,
és elküldeni a teljes kimenetet vagy ha van core dump-od az
összeomlásról, abból is kiszedheted a hasznos információkat. Lássuk hogyan:
Hogyan tárolhatóak a reprodukálható összeomlás információi
Fordítsd újra az MPlayert a debug-oló kód engedélyezésével:
./configure --enable-debug=3
make
majd futtasd az MPlayert a gdb-ben az alábbi paranccsal:
gdb ./mplayer
Most a gdb-ben vagy. Írd be:
run -v kapcsolok-az-mplayernekfajlnev
és reprodukáld az összeomlást. Amint megtörtént, a gdb visszaadja a parancssort, ahol
be kell írnod:
bt
disass $pc-32 $pc+32
info all-registers
Hogyan szedd ki a hasznos információkat a core dump-ból
Hozd létre a következő parancs fájlt:
bt
disass $pc-32 $pc+32
info all-registers
Majd add ki ezt a parancsot:
gdb mplayer --core=core -batch --command=command_file > mplayer.bugTudom hogy mit csinálok...
Ha készítettél egy megfelelő hibajelentést a fenti utasítások betartásával és biztos
vagy benne, hogy az MPlayerben van a hiba és nem a fordítóban
vagy hibás fájl miatt, már elolvastad a dokumentációt és nem tudtad javítani a problémát,
a hang vezérlőid rendben vannak, akkor iratkozz fel az MPlayer-advusers listára és
küldd el a hibajelentésedet oda a jobb és gyorsabb válaszért.
Fontold meg, ha kezdő kérdéseket vagy a leírásban megválaszolt kérdéseket küldesz
be, vagy figyelmen kívül hagynak vagy elkezdenek flame-elni válaszolás helyett.
Tehát ne flame-elj és csak akkor iratkozz fel az -advusers listára, ha tényleg
tudod, hogy mit csinálsz és gyakorlott MPlayer felhasználónak
vagy fejlesztőnek érzed magad. Ha megfelesz ezen kritériának, nem fog nehezedre esni,
hogy kitaláld, hogy iratkozhatsz fel...