Rapporter un problème sous LibreOffice

From The Document Foundation Wiki
< QA‎ | BugReport
Jump to: navigation, search

Félicitations !

Vous êtes sur le point d'apporter une importante contribution à LibreOffice : un rapport de bogue clair, c'est une aide importante pour nos développeurs. Donc merci pour cette proposition ! Afin de rendre la vie des gens qui gèrent les rapports de bogue un peu plus facile, nous avons quelques trucs pour vous aider. L'important est de soumettre des bogues qui ne sont pas déjà connus. Peut-être qu'il y a déjà un rapport pour votre question, auquel cas vous pourrez peut-être ajouter un commentaire utile.

Pour vous aider dans votre rapport :

(Pour plus de détails, vous pouvez lire quelques-unes des sections ci-dessous. )

Informations générales

  1. Est-ce que le problème est réellement un bogue ? Si vous avez besoin d'aide pour utiliser LibreOffice, veuillez poster votre question sur la liste utilisateurs LibreOffice.
  2. Quel composant pose problème ? Si vous n'êtes pas sûr du composant concerné par votre problème, choisissez le composant Libreoffice. Un des contributeurs au triage lui assignera le bon composant. Pour plus d'informations à ce propos, consultez la page Triage des bogues. Si c'est une issue avec une priorité importante (fonction corrompue, régression, etc.), assignez-la à l'un des développeurs listés sur la page FindTheExpert.
  3. Rechercher des bogues similaires. Avant de créer un rapport de bogue, veuillez vérifier que le problème n'a pas déjà été rapporté. Si oui, peut-être pouvez-vous ajouter des informations complémentaires à ce rapport de bogues.
  4. Demander de l'aide pour la reproduction du bogue. Si personne n'a examiné votre rapport dans un délai approprié (24 h pour un bogue critique, 14 jours pour une demande d'amélioration) envisagez de demander à quelqu'un d'autre de reproduire le bogue que vous souhaitez rapporter afin de le confirmer sur users@fr.libreoffice.org liste, ou sur le canal IRC #libreoffice-fr.
  5. Ne pas mélanger les questions. Veuillez remplir un rapport de bogue séparé pour chaque issue trouvée !
  6. Rapporter un problème sous LibreOffice. Les bogues trouvés dans les packages LibreOffice doivent être reportés dans Bugzilla. Vous pouvez remplir un rapport de bogue directement sur "LibreOffice" product.

Comment utiliser l'Assistant de soumission de bogue

  1. Cliquer ici et suivez les instructions de l'Assistant
  2. Après avoir sélectionné un composant dans l'Assistant de soumission de bogue une liste avec des bogues déjà rapportés pour le même composant sera affichée. Si la courte description du bogue correspond à votre problème, cliquez sur le lien pour plus de détails. Avec le bouton EditSearch au bas de la page correspondante de Bugzilla vous pouvez modifier la recherche en fonction de vos besoins. Si vous trouvez un rapport existant concernant votre problème, aucun rapport supplémentaire n'est nécessaire, mais peut-être que vous pouvez fournir des informations supplémentaires.
    1. Lorsque vous décrivez votre rapport de bogue, un regard sur Ce qu'il faut inclure dans les rapports de bogues et BugReport Details pourrait être utile.

Signalement d'un bogue en quelques étapes

  1. Vérifiez la présence de doublons comme décrit ci-dessus. Pour ce faire, sur BugReport Details un simple clic sur le nom d'un sous-composant ouvre une liste avec les bogues déjà rapportés. Un clic sur ⓘ vous mène à l'aide concernant les sous-composants. Avec Edit Search au bas de la page Bugzilla vous pouvez modifier la recherche en fonction de vos besoins.
  2. Démarrer un nouveau rapport. Sur BugReport Details un simple clic sur la flèche► derrière le sous-composant que vous avez utilisé pour votre requête ouvre une page de rapport de bogues Bugzilla préparée pour vos besoins. (Si vous ne trouvez pas un composant, cliquez sur le lien "for all other problems" ! Ensuite, dans les différentes listes, sélectionnez :
    1. Votre version de LibreOffice.
    2. Votre type de matériel.
    3. Votre système d'exploitation.
    4. Écrivez votre rapport de bogue
    5. Décidez du niveau de gravité. Le laisser tel quel si vous n'avez pas beaucoup d'expérience, le bogue ne sera pas pris en charge rapidement si vous choisissez bloquant (blocker).
  3. Cliquez sur Envoyer ('Submit'), votre rapport sera ajouté à la base de données Bugzilla

En fonction du type, vous pouvez choisir différents composants :

  • Pour les problèmes relatifs au site LibreOffice.org, utilisez le composant WWW.
  • Pour les problèmes généraux relatifs aux applications, utilisez les composants correspondants Writer, Presentation, Spreadsheet, Database, ou Drawing.

Conseils supplémentaires

Si ce système de rapport de bogue vous impressionne avec toutes ses sélections et ses règles, vous pouvez poser votre problème sur la liste users@fr.libreoffice.org où vous obtiendrez de l'aide. Pour vous abonner à une liste, visitez Besoin d'aide ?!

Comment rapporter les problèmes spécifiques à Ubuntu

La liste de problèmes connus affectant la version de LibreOffice distribuée officiellement avec Ubuntu se trouve à :

Seuls les problèmes spécifiques à la version officielle distribuée par le projet Ubuntu devraient être rapportés suivant ces instructions :

  1. Vérifiez que votre problème n'est pas déjà parmi la liste de problèmes connus
  2. Déclarez le bogue :
    • Si vous utilisez Ubuntu 10.04 LTS ou Ubuntu 10.10, ce formulaire (en anglais) et choisissez libreoffice pour "In what package did you find this bug ?".
    • Si vous utilisez Ubuntu 11.04, ouvrez une fenêtre de terminal (Applications ▸ Accessoires ▸ Terminal) et tapez ubuntu-bug LibreOffice [Entrée], puis suivez les instructions pour compléter le rapport.

Ce que doit inclure un rapport de bogue

Les informations suivantes sont nécessaires pour nous aider à reproduire ou à localiser le problème et donc à fournir le correctif qui pourrait être disponible plus tôt pour vous :

  • Si vous n'avez pas l'expérience des rapports de bogue, vous pouvez lire le bug writing guidelines (en anglais), vous y trouverez un lien en haut de la page Enter Bug !
  • Utilisez correctement la sélection du Composant, de la Version et du Statut initial, des conseils figurent sur BugReport Details.
  • Il y a également des sous-sélections permettant de choisir la version et l'architecture du système : e.g. openSUSE 11.2 on x86_64, 32-bit Windows 7
    • pour Linux, quelle interface : e.g. KDE ou GNOME
  • La version de LibreOffice, par exemple 3.2.0. Vous l'obtenez à partir de la boîte de dialogue "Aide/À propos de LibreOffice". Si vous utilisez une pré-version de LibreOffice, sous Linux, dites les versions exactes des packages LibreOffice utilisés dans votre système de gestion de packages. Pour Windows, le nom de fichier exact de l'installeur et à partir d'où ils ont été téléchargés.
    • Des informations complémentaires concernant les localisation installées et utilisées (langue de l'interface, langue du document) peuvent être utiles
    • si une version 32-bit de LibreOffice est utilisée sur un système 64 bit (Linux)
    • la source du package si ce n'est pas une version officielle de LibreOffice
  • Veuillez indiquer un sommaire significatif pour les problèmes que vous souhaitez reporter :
    • Pas de : "UI cassée"
    • Mais : Menu FichierEnregistrer sous}} non disponible (grisé)
  • Étapes pour reproduire le problème, veuillez noter que chaque petit détail peut être important.
    • Ainsi, n'écrivez pas : "Ouvrir le document"
    • Mais: "Dans une nouvelle feuille de calcul LibO, utilisez le menu Fichier ▸ Ouvrir (boîte de dialogue LibO) ▸ type de fichier "documents Texte" ▸ sélectionnez le document d'exemple attaché ▸ double cliquez
  • tout autre détail utile (e.g. copies d'écran, documents d'exemple, backtrace, strace)

Comme obtenir un journal strace (sous Linux)

Dans la plupart des cas, il est suffisant de démarrer l'application de la façon suivante :

strace -o /tmp/strace.log -f -tt -s 512 libreoffice

Puis exécutez les étapes pour reproduire le problème et quittez l'application. Commande libreoffice peut être remplacée par

/opt/libreoffice/program/soffice surtout si vous n'avez pas l'intégration à l'environnement de bureau installée.    

Veuillez compresser le journal avant de l'attacher au rapport de bogue :

bzip2 /tmp/strace.log

Si une version 32-bit de LibreOffice est exécutée sur un système 64-bit, vous devez installer le package strace-32bit et démarrer le binaire 32-bit directement :

cd /opt/libreoffice/program
strace32 -o /tmp/strace.log -f -tt -s 512 ./soffice.bin

Comment obtenir un backtrace (sous Linux)

Un backtrace est utile lorsque l'application plante ou gèle. Vous devez suivre les étapes suivantes :

  1. Installez les packages libreoffice*-debuginfo, si disponibles. Si vous ne les avez pas, le backtrace est moins utile mais peut cependant fournir quelques informations.
  2. Démarrez le débogueur avec le binaire réel et journalisez la sortie :
    cd /opt/libreoffice/program
    
    gdb ./soffice.bin 2>&1 | tee /tmp/gdb.log
    
  3. À l'intérieur du débogueur, démarrez l'application :
    run
    
    Si vous devez spécifier des options en ligne de commande LibreOffice, utilisez run <options>, comme par exemple run -writer, ou run /path/to/document.odt
  4. Exécutez les étapes pour reproduire le plantage de l'application ou le gel. Dans le cas du gel, vous devez appuyer sur CTRL+C dans gdb pour avoir de nouveau la ligne de commande gdb.
  5. Produisez le backtrace :
    backtrace
    
  6. Produisez le backtrace de tous les threads :
    thread apply all bt
    
  7. Quittez le débogueur
    quit
    
  8. Attachez tout le gdb.log au rapport de bogue.

Comment obtenir un backtrace (sous Windows)

LibreOffice, comme tout logicel, peut se bloquer ou générer un crash (plantage) dans l'environnement Windows. Dans ce cas malheureux, des données de débogage peuvent être collectées par l'utilisateur pour donner aux développeurs un chance de résoudre le bug. C'est ce qu'on appelle un backtrace (journal de la pile des appels système) qui doit de préférence être joint au rapport de bug dans un document texte. Cet article décrit étape par étape comment obtenir un backtrace avec WinDbg (outil de débogage pour Windows).

Installation du débogueur (une seule fois)

  • Utilisateurs Windows 8 : Installer Standalone Debugging Tools for Windows 8.1
    http://msdn.microsoft.com/en-us/windows/hardware/hh852365, lien direct : http://go.microsoft.com/fwlink/?LinkID=323507
    L'installation va peut-être demander de redémarrer l'ordinateur pendant l'installation - redémarrer, puis relancer le programme d'installation. Il est suffisant de seulement installer Debugging Tools for Windows (outils de débogage pour Windows).
  • Utilisateurs Windows XP, Vista, 7 : Installer Microsoft Windows SDK for Windows 7 and .NET Framework 4, lien direct : http://www.microsoft.com/en-us/download/confirmation.aspx?id=8279
    Pendant l'installation, qui nécessite Microsoft .NET Framework 4, décocher toutes les autres options sauf Debugging Tools for Windows.
  • Démarrer WinDbg (X86) (par défaut dans le groupe de programmes Windows Kits), et définir le symbols search path (chemin où le débogueur recherche les fichiers) via File ▸ Symbol File Path...
    Pour les versions officielles (à partir de la 4.2.0rc1), entrer ceci 
    CACHE*C:\symbols;SRV*http://dev-downloads.libreoffice.org/symstore/symbols;SRV*http://msdl.microsoft.com/download/symbols
    
    Pour déboguer aussi bien les versions officielles que les Master (depuis Win-x86@39 tinderbox), indiquer à la place :
    CACHE*C:\symbols;SRV*http://dev-builds.libreoffice.org/daily/master/Win-x86@39/symbols;SRV*http://dev-downloads.libreoffice.org/symstore/symbols;SRV*http://msdl.microsoft.com/download/symbols
    
  • Maintenant exécuter File ▸ Save workspace pour enregistrer ces paramètres.
  • Si vous disposez de Visual Studio Express 2005 ou ultérieure, vous pouvez également l'utiliser pour obtenir le backtrace. Au lieu des paramètres ci-dessus vous ajouterez les URLs http://dev-builds.libreoffice.org/daily/master/Win-x86@39/symbols et http://dev-downloads.libreoffice.org/symstore/symbols aux serveurs mentionnés dans le menu Tools ▸ Options ▸ Debugging ▸ Symbols de Visual Studio Express.

Installation d'une version de LibreOffice permettant de générer un Backtrace

En option, vous pouvez recourir à un environnement virtuel en utilisant vhd images avec n'impore que système d'exploitation permettant la virtualisation et les images vhd.

Versions officielles

Vous devez uiliser une version 4.2.0rc1 ou ultérieure pour pouvoir accéder aux symboles sur le serveur.

Daily (versions développeur journalières de la branche Master)

Vous devez installer la version développeur la plus récente depuis la Win-x86@39 tinderbox à partir d'ici :
http://dev-builds.libreoffice.org/daily/master/Win-x86@39/current

Débogage

Pour commencer à déboguer, ne lancer WinDbg qu'après que votre version à tester de LibreOffice soit installée et en cours d'exécution.

Ensuite attacher WinDbg au process soffice.bin File ▸ Attach to a Process.... WinDbg commencera sortir des informations.

Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
Copyright (c) Microsoft Corporation. All rights reserved.
*** wait with pending attach
Symbol search path is: c:\lodev\symbols;SRV*c:\Symbols\mssymbols\*http://msdl.microsoft.com/download/symbols
Executable search path is: 
ModLoad: 01280000 0132a000   C:\Program Files (x86)\LOdev 3.5\program\soffice.bin
[...]
ModLoad: 64450000 644f9000   C:\Program Files (x86)\LOdev 3.5\program\lnglo.dll
ModLoad: 5f520000 5fa4d000   C:\Program Files (x86)\LOdev 3.5\program\xolo.dll
(13b8.d64): Break instruction exception - code 80000003 (first chance)
eax=7efaf000 ebx=00000000 ecx=00000000 edx=77d7f85a esi=00000000 edi=00000000
eip=77cf000c esp=08d3fa30 ebp=08d3fa5c iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
ntdll!DbgBreakPoint:
77cf000c cc              int     3
0:011>

Taper g dans la fenêtre de commande (ou choisir Debug ▸ Go).

0:011> g

Reproduire un plantage dans LibreOffice.

0:011> g
ModLoad: 05950000 05bfc000   C:\Program Files (x86)\LOdev 3.5\program\fwklo.dll
ModLoad: 05950000 05bfc000   C:\Program Files (x86)\LOdev 3.5\program\fwklo.dll
(13b8.dd8): C++ EH exception - code e06d7363 (first chance) 
[...]
ModLoad: 74a30000 74a36000   C:\Windows\SysWOW64\sensapi.dll
(13b8.dd8): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=9162b873 ebx=00000000 ecx=9162b873 edx=9162b873 esi=602ff600 edi=00000000
eip=6623b085 esp=00bec8fc ebp=00bec908 iopl=0         nv up ei ng nz na po nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010282
sal3!rtl_uString_newFromAscii+0x15:
6623b085 0fbe11          movsx   edx,byte ptr [ecx]         ds:002b:9162b873=??
0:000>

Taper !analyze -v dans la fenêtre de commande

0:000> !analyze -v

WinDbg commencera l'analyse de l'exception. Attendre patiemment la sortie de :

0:000> !analyze -v
*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************
FAULTING_IP: 
sal3!rtl_uString_newFromAscii+15 [c:\lodev\source\sal\rtl\source\ustring.cxx @ 437]
6623b085 0fbe11          movsx   edx,byte ptr [ecx]
EXCEPTION_RECORD:  ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 6623b085 (sal3!rtl_uString_newFromAscii+0x00000015)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000000
   Parameter[1]: 9162b873
Attempt to read from address 9162b873
FAULTING_THREAD:  00000dd8
DEFAULT_BUCKET_ID:  INVALID_POINTER_READ
PROCESS_NAME:  soffice.bin
ERROR_CODE: (NTSTATUS) 0xc0000005 - Instrukcja spod 0x%08lx odwo
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - Instrukcja spod 0x%08lx odwo
EXCEPTION_PARAMETER1:  00000000
EXCEPTION_PARAMETER2:  9162b873
READ_ADDRESS:  9162b873 
FOLLOWUP_IP: 
sal3!rtl_uString_newFromAscii+15 [c:\lodev\source\sal\rtl\source\ustring.cxx @ 437]
6623b085 0fbe11          movsx   edx,byte ptr [ecx]
MOD_LIST: <ANALYSIS/>
NTGLOBALFLAG:  0
APPLICATION_VERIFIER_FLAGS:  0
PRIMARY_PROBLEM_CLASS:  INVALID_POINTER_READ
BUGCHECK_STR:  APPLICATION_FAULT_INVALID_POINTER_READ
LAST_CONTROL_TRANSFER:  from 657221a0 to 6623b085
STACK_TEXT:  
00bec908 657221a0 00bec920 9162b873 91df8a88 sal3!rtl_uString_newFromAscii+0x15 [c:\lodev\source\sal\rtl\source\ustring.cxx @ 437]
[...]
FAULTING_SOURCE_CODE:  
   433: 
   434:     if ( pCharStr )
   435:     {
   436:         const sal_Char* pTempStr = pCharStr;
>  437:         while( *pTempStr )
   438:             pTempStr++;
   439:         nLen = pTempStr-pCharStr;
   440:     }
   441:     else
   442:         nLen = 0;
[...]
Followup: MachineOwner
---------

Copier tout le journal de la session dans un nouveau document au format texte et le joindre au rapport de bug.

LibreOffice est verrouillé par Windbg donc vous devez fermer Windbg (i.e. File ▸ Exit). Choisir "No" à la demande "Save information for workspace?". Ceci fermera à la fois Windbg et LibreOffice.

Produire un mini dump

Parfois WinDbg ne peut attraper proprement l'exception. Dans de tels cas nous devons produire un mini dump qui peut ensuite être chargé et parsé dans le débogueur. Pour produire un tel dump vous pouvez utiliser librement l'utilitaire ProcDump comme ceci :

Assurez-vous que votre version de débogage de LibreOffice est en cours d'exécution.

Dans la fenêtre de commande, taper :

d:\procdump4.01>procdump.exe soffice.bin -h

Reproduire un plantage.

Quand le blocage de LibreOffice est détecté ProcDump vous informe du succès de la création du mini dump.

d:\procdump4.01>procdump.exe soffice.bin -h
ProcDump v4.0 - Writes process dump files
Copyright (C) 2009-2011 Mark Russinovich
Sysinternals - www.sysinternals.com
Process:               soffice.bin (1964)
CPU threshold:         n/a
Performance counter:   n/a
Commit threshold:      n/a
Threshold seconds:     n/a
Number of dumps:       1
Hung window check:     Enabled
Exception monitor:     Disabled
Terminate monitor:     Disabled
Dump file:             d:\procdump4.01\soffice.dmp
[09:02.39] Hung window detected.
Writing dump file d:\procdump4.01\soffice_120614_090239.dmp ...
Dump written.
Dump count reached.
d:\procdump4.01>

Ouvrir WinDbg et charger le fichier .dmp (File ▸ Open Crash Dump...).

Loading Dump File [D:\soffice_120601_075839.dmp]
User Mini Dump File: Only registers, stack and portions of memory are available
Comment: '
*** procdump  soffice.bin -h
*** Hung window detected: 110946'
Symbol search path is: c:\lodev\symbols;SRV*c:\Symbols\mssymbols\*http://msdl.microsoft.com/download/symbols 
Executable search path is: 
Windows 7 Version 7601 (Service Pack 1) MP (2 procs) Free x86 compatible
Product: WinNt, suite: SingleUserTS
Machine Name:
Debug session time: Fri Jun  1 07:58:39.000 2012 (UTC + 2:00)
System Uptime: not available
Process Uptime: 0 days 0:00:44.000
................................................................
................................................................
............................................................
Loading unloaded module list
..............
eax=00000000 ebx=00e7b174 ecx=00000000 edx=00000000 esi=00000002 edi=00000000
eip=77d0013d esp=00e7b124 ebp=00e7b1c0 iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
ntdll!ZwWaitForMultipleObjects+0x15:
77d0013d 83c404          add     esp,4
0:000>

Taper !analyze -v dans la fenêtre de commande

0:000> !analyze -v

WinDbg démarrera l'analyse de l'exception. Attendre patiemment la sortie de :

0:000> !analyze -v
*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************
FAULTING_IP: 
+612e2faf0463dc04
00000000 ??              ???
EXCEPTION_RECORD:  ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 00000000
   ExceptionCode: 80000003 (Break instruction exception)
  ExceptionFlags: 00000000
NumberParameters: 0
FAULTING_THREAD:  00000f90 
DEFAULT_BUCKET_ID:  STATUS_BREAKPOINT
PROCESS_NAME:  soffice.bin
[...]
Followup: MachineOwner
---------

Copier tout le journal de la session dans un nouveau document au format texte et le joindre au rapport de bug.

Produire une sortie de débogage supplémentaire

Dans certains cas un développeur peut vous demander d'appliquer un patch à un fichier source et de réunir des informations supplémentaires en utilisant la fonction OutputDebugString disponible dans :

Télécharger librement l'utilitaire DebugView.

Assurez-vous que votre version de débogage de LibreOffice et de DebugView soient en cours d'exécution.

Reproduire un plantage.

DebugView collectera des informations de débogage :

00000001   0.00000000      [5112] WinInetBackend A 759F0000        
00000002        0.00007052      [5112] WinInetBackend B 759F6F21        
00000003        0.01316426      [5112] WinInetBackend C 0 14 0  
00000004        0.01324074      [5112] WinInetBackend D 0 14 0 6F0C82FD 00000028

Copier les infomations dans un nouveau document au format texte et le joindre au rapport de bug.

Voir aussi

Comment obtenir un journal valgrind (sous Linux)

Le journal valgrind est utile lorsque l'application plante ou gèle et que le backtrace n'est pas suffisant. Vous devez suivre les étapes suivantes :

  1. Installez les packages libreoffice*-debuginfo. (si disponibles pour votre distribution Linux)
  2. Démarrez le débogueur avec le binaire réel et journalisez la sortie :
    cd /opt/libreoffice/program
    
    valgrind --tool=memcheck --num-callers=128 --trace-children=yes ./soffice.bin 2>&1 | tee /tmp/valgrind.log
    
  3. Exécutez les étapes nécessaires à la reproduction du plantage ou du gel. Remarquez que cela fonctionne bien en général avec valgrind parce que cela aide à garder la mémoire propre. De toute façon cela doit détecter le danger et mettre des informations utiles dans le journal. Remarquez que valgrind imprime de nombreux avertissements tout le temps. Vous devez réellement reproduire les étapes problématiques pour que les informations importantes se retrouvent dans le journal.
  4. Quittez LibreOffice
  5. Veuillez compresser le journal valgring.log s'il est supérieur à 10kB
    bzip2 /tmp/valgrind.log
    
  6. Attachez le journal au rapport de bogue.