# Jak hlásit chyby

Dobrá hlášení chyb jsou velmi cenným příspěvkem do vývoje jakéhokoli softwarového projektu. Ale je to s nimi jako se psaním dobrého programu, sepsání dobrého hlášení problému vyžaduje trochu práce. Prosím berte na vědomí, že většina vývojářů je velmi zaneprázdněna a dostává kvanta e-mailů. Takže ačkoli je vaše zpětná vazba kritická pro vylepšování MPlayeru a velmi ceněná, prosíme pochopte, že musíte poskytnout veškeré informace které požadujeme a postupovat přesně podle instrukcí v tomto dokumentu.

## Jak napravovat chyby

Pokud si myslíte, že máte potřebné schopnosti, pak vás vybízíme abyste opravil(a) chybu samostatně. Nebo jste to již udělal(a)? Přečtěte si prosím tento krátký dokument, abyste se dozvěděli jak zahrnout váš kód do MPlayeru. Lidé z konference mplayer-dev-eng vám pomohou, pokud budete mít otázky.

## Jak oznamovat chyby

Nejprve, prosím, vyzkoušejte poslední CVS verzi MPlayeru, jelikož vaše chyba již mohla být odstraněna. Vývoj je velmi rychlý, většina chyb v oficiálních balíčcích je nahlášena během několika dnů, nebo dokonce hodin, takže prosím používejte pouze CVS pro hlášení chyb. To zahrnuje binární balíčky MPlayeru. CVS instrukce naleznete na konci této stránky, nebo v souboru README. Pokud to nepomůže, prostudujte si prosím seznam známých chyb a zbytek dokumentace. Pokud je váš problém neznámý nebo jej nelze řešit pomocí našich instrukcí pak jej nahlaste jako chybu.

Prosíme, neposílejte hlášení chyb soukromě jednotlivým vývojářům. Toto je týmová práce a proto se o ně může zajímat více lidí. Čas od času měli ostatní uživatelé stejný problém a vědí jak jej obejít, dokonce i když se jedná o chybu v kódu MPlayeru.

Prosíme popište svůj problém tak podrobně, jak je to jen možné. Proveďte malé pátrání po okolnostech za kterých problém nastává. Projevuje se ta chyba jen v určitých situacích? Je vlastní určitým souborům nebo typům souborů? Stává se pouze s jedním kodekem, nebo je nezávislá na použitém kodeku? Dokážete ji zopakovat se všemi výstupními rozhraními nebo ovladači? Čím více nám poskytnete informací, tím je větší šance na odstranění problému. Nezapomeňte také připojit hodnotné informace požadované níže, jinak nebudeme schopni stanovit příčinu problému.

Skvělá, dobře napsaná příručka jak se ptát ve veřejných konferencích je How To Ask Questions The Smart Way od Erica S. Raymonda. Další příručka je How to Report Bugs Effectively od Simona Tathama. Pokud budete postupovat podle těchto rad, jistě se vám dostane pomoci. Pochopte však, že my všichni sledujeme konference dobrovolně ve svém volném čase. Máme mnoho práce a nemůžeme vám zaručit že vyřešíme váš problém nebo že vůbec dostanete odpověď.

## Kam hlásit chyby

Přihlaste se do e-mailové konference mplayer-users: a pošlete své hlášení o chybách na adresu kde o tom můžeme diskutovat.

Pokud chcete, můžete místo toho použít zbrusu novou Bugzillu.

Jazykem konference je Angličtina. Zachovávejte prosím Pravidla Netikety a neposílejte HTML mail do žádné z našich konferencí. Jinak můžete být ignorováni nebo vyhozeni. Pokud nevíte co je to HTML mail, nebo proč je tak zatracován, přečtěte si tento výborný dokument. Zde se dovíte detaily včetně instrukcí pro vypnutí HTML. Poznamenejme též, že nebudeme individuálně dělat CC (kopie) lidem, takže je dobré se přihlásit, abyste obdrželi svou odpověď.

## Co nahlásit

Bude potřeba připojit log, konfiguraci nebo vzorky souborů ke svému hlášení chyb. Pokud jsou některé z nich opravdu velké, pak je raději nahrajte na náš FTP server v komprimovaném formátu (preferujeme gzip a bzip2) a do zprávy zahrňte pouze cestu a název souboru. Naše konference mají limit velikosti zprávy 80k, pokud máte něco většího, musíte to zkomprimovat a nahrát na FTP.

### Systémové informace

- Vaše Linuxová distribuce nebo operační systém a jeho verze jako:

  - Red Hat 7.1

  - Slackware 7.0 + devel packs from 7.1 ...

- verze jádra:

      uname -a

- verze libc:

      ls -l /lib/libc[.-]*

- verze gcc a ld:

      gcc -v
      ld -v

- verze binutils:

      as --version

- Pokud máte problémy s celoobrazovkovým režimem:

  - Druh Window manageru a jeho verze

- Pokud máte problémy s XVIDIX:

  - Hloubka barev v X:

        xdpyinfo | grep "depth of root"

- Pokud je chybné pouze GUI:

  - verze GTK

  - verze GLIB

  - verze libpng

  - GUI situace kdy se chyba projevila

### Hardware a rozhraní (ovladače)

- CPU info (to funguje pouze v Linuxu):

      cat /proc/cpuinfo

- Výrobce a model videokarty, např:

  - ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAM

  - Matrox G400 DH 32MB SGRAM

- Video driver type & version, e.g.:

  - X built-in driver

  - nVidia 0.9.623

  - Utah-GLX CVS 2001-02-17

  - DRI from X 4.0.3

- Sound card type & driver, e.g.:

  - Creative SBLive! Gold with OSS driver from oss.creative.com

  - Creative SB16 with kernel OSS drivers

  - GUS PnP with ALSA OSS emulation

- Pokud si nejste jisti, přidejte výstup z `lspci -vv` na systémech Linux.

### Problémy s konfigurací

Pokud nastanou chyby během běhu `./configure`, nebo selže autodetekce něčeho, prostudujte `configure.log`. Možná naleznete odpověď zde. Například několik verzí stejné knihovny v systému, nebo jste zapomněli nainstalovat vývojový (devel) balíček (to jsou ty s koncovkou -dev). Pokud si myslíte, že je zde chyba, přidejte `configure.log` do svého hlášení.

### Problémy s kompilací

Zahrňte prosím tyto soubory:

- config.h

- config.mak

Pouze pokud selže kompilace pod jedním z těchto adresářů, zahrňte tyto soubory:

- Gui/config.mak

- libvo/config.mak

- libao2/config.mak

### Problémy s přehráváním

Zahrňte prosíme výstup MPlayeru v upovídaném režimu úrovně 1 ale dejte pozor, abyste jej nezkrátili při kopírování do mailu. Vývojáři potřebují všechny zprávy pro dobrou diagnózu problému. Takto můžete přesměrovat výstup do souboru:

    mplayer -v volby film > mplayer.log 2>&1

Pokud se problém vztahuje k jednomu nebo více souborům, pak prosím nahrajte potížisty na:

Rovněž zde nahrajte malý textový soubor se stejným základním jménem a příponou .txt. Popište problém který máte s daným souborem a připojte svůj e-mail a také výstup MPlayeru v upovídaném režimu úrovně 1. Pro reprodukci problému stačí obvykle prvních 1-5 MB souboru, ale pro jistotu vás žádáme o:

    dd if=váš_soubor of=malý_soubor bs=1024k count=5

To vezme prvních pět megabajtů 'vašeho_souboru' a zapíše je do 'malého_souboru'. Pak znovu zkuste tento malý vzorek a pokud se na něm chyba projeví, pak je tento vzorek pro nás dostatečný. Prosíme nikdy neposílejte tyto soubory e-mailem! Nahrajte je na FTP a pošlete pouze cestu/název_souboru daného souboru na FTP serveru. Pokud je soubor přístupný na internetu, pak stačí poslat přesnou adresu URL.

### Pády

Musíte spustit MPlayer z `gdb` a poslat nám úplný výstup nebo pokud máte `core` dump z pádu, můžete nám vyextrahovat užitečné informace ze souboru Core. Jak to udělat:

#### Jak uchovat informace o zopakovatelném pádu

Překompilujte MPlayer se zapnutým debugovacím kódem:

    ./configure --enable-debug=3
    make

a spusťte MPlayer z gdb pomocí:

    gdb ./mplayer

Nyní jste v gdb. Zadejte:

    run -v volby-pro-mplayer soubor

a zopakujte pád. Jakmile to dokážete, vrátí se gdb do režimu příkazového řádku, kde musíte zadat

    bt
    disass $pc-32 $pc+32
    info all-registers

#### Jak získat smysluplné informace z core dump

Vytvořte následující příkazový řádek:

    bt
    disass $pc-32 $pc+32
    info all-registers

Pak jednoduše spusťte tento příkaz:

    gdb mplayer --core=core -batch --command=příkazový_soubor > mplayer.bug

## Vím co dělám...

Pokud jste vytvořili příkladné hlášení chyby pomocí výšeuvedených kroků a jste si jisti, že chyba je v MPlayeru, nikoli chyba kompilátoru nebo poškozený soubor, již jste si přečetli dokumentaci ale nenalezli řešení, vaše ovladače zvuku jsou OK, pak byste se měli přihlásit do konference mplayer-advusers a poslat hlášení chyb zde, abyste dostali lepší a rychlejší odpověď.

Mějte na paměti, že pokud zde pošlete nováčkovské otázky nebo otázky zodpovězené v manuálu, budete ignorováni nebo vyhozeni, místo abyste dostali vhodnou odpověď. Takže nám nenadávejte a přihlaste se do -advusers pouze pokud opravdu víte co děláte a cítíte se být pokročilým uživatelem MPlayeru, nebo vývojářem. Pokud splňujete tato kritéria, nebude pro vás těžké se přihlásit...