Appendice C - Comment reporter un bogue

Comment reporter un bogue ?

Commencez par lire l'Appendice D, et le reste de la documentation. Reportez le bogue uniquement si votre problème n'est pas référencé ou résolu.

Où ?

Souscrivez à la liste de diffusion mplayer-users:
http://mplayerhq.hu/mailman/listinfo/mplayer-users
et décrivez votre problème:
mplayer-users@mplayerhq.hu
Nous ne reporterons pas votre e-mail, inscrivez vous SVP !!!

N'envoyez pas d' e-mail directement à l'adresse de l'auteur !!! Nous travaillons ensemble sur le code, donc votre problème intéresse tout le monde. De plus les autres utilisateurs ont souvent la solution (configuration système, mauvais drivers, etc..), même quand nous pensons qu'il s'agit d'une erreur dans le code. Cette liste de diffusion est en anglais !

Merci de décrire votre problème dans le détail, avec des exemples, et n'oubliez pas d'inclure ceci :

Quoi ?

1. Les informations indispensables sur votre système :

- Distribution GNU/Linux
  exemples:
  - RedHat 7.1
  - Slackware 7.0 + paquetages de développement de la 7.1 ...
- version du noyau :
  `uname -a`
- version de la libc :
  `ls -l /lib/libc[.-]*`
- version du serveur X :
  `X -version`
- version du gcc et de ld :
  `gcc -v
  ld -v`
- version des binutils :
  `as --version`

2. Matériel & drivers :

- Infos processeur:
  `cat /proc/cpuinfo`
- Fabricant et modèle de votre carte vidéo :
  exemples :
  - ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAM
  - Matrox G400 DH 32MB SGRAM
- Type et version des drivers vidéo
  exemples :
  - X built-in driver
  - nvidia 0.9.623
  - Utah-GLX CVS 2001-02-17
  - DRI from X 4.0.3
- Type et version des drivers son :
  exemples :
  - Creative SBLive! Gold with OSS driver from oss.creative.com
  - Creative SB16 with OSS drivers of kernel
  - GUS PnP with ALSA OSS emulation
- En cas de doute, joignez y le résultat de la commande lspci -v

En cas de problème/erreur de compilation :

3. Le résultat des commandes configure/make :

- `make distclean`
- `./configure &>config.log`
- `./make &>make.log`

4. Ces fichiers :

- config.h
- config.mak
- libvo/config.mak

Pour les problèmes de lecture :

3. Le résultat de la commande "mplayer -v" (verbose level 1)

`mplayer -v [options] filename &> mplayer.log`

4. Si le problème est spécifique à un fichier, merci d'envoyer ce fichier sur :

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

en y joignant un fichier texte du même nom décrivant votre problème.
Généralement les premiers 1-5 MB sont suffisants pour reproduire le problème, mais auparavent vous pouvez essayer ceci :

`dd if=votre_fichier of=le_petit_fichier bs=1k count=1024`

(cela coupera 1MB de 'votre_fichier' et les sauvera dans 'le_petit_fichier') Essayez alors de lire le petit fichier, et si le bogue persiste vous pouvez envoyer le petit fichier par ftp.
N'envoyez jamais ces fichiers par e-mail ! Envoyez les par FTP, et postez seulement leur nom/adresse sur ce FTP. Si le fichier est accessible en téléchargement, envoyez seulement son URL !

5. En cas de plantage (segfault, SIGILL, signal 4 etc...):

Si vous avez un "coredump" du plantage, c.f. section 5.a, sinon c.f. section 5.b:

5.a: Merci de nous envoyer le résultat du "coredump" (s'il a été crée).

Comment : créez la commande suivante (dans un fichier 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
`

puis exécutez simplement la ligne de commande suivante :

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

5.b.: lancez MPlayer dans gdb :

Recompilez mplayer avec les instructions de déboguage :
./configure --enable-debug
make

[au prompt shell :]
`# gdb mplayer`
[au prompt gdb :]
`> run -v [options-to-mplayer] filename`
... (attendre qu'il plante)
`> bt`
`> disass $eip-32 $eip+32`
Envoyez nous le résultat complet obtenu alors !

En général:

Les fichiers volumineux (logs, etc...) peuvent être envoyés par FTP (compressés), et indiquez uniquement leur nom/adresse dans le rapport de bug.