From Fedora Project Wiki

m (Update category link)
 
(15 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<!--{{header|<thunderbird>}}-->
+
== Identifying your problem area ==
  
= Identifying your problem area =
+
To isolate the cause of your bug in either Thunderbird or a Thunderbird extension, disable all installed extensions. 
  
To be able to identify if it's Thunderbird or Thunderbird extensions you need to disable all Thunderbird extension you have installed and enabled. You do so by starting Thunderbird, go to "Tools", select "Add-ons" and disable all extensions listed there.
+
* Start Thunderbird, go to "Tools", select "Add-ons" and disable all extensions listed there.
 +
* Quit Thunderbird and start it again.
 +
* Recreate whatever you did that caused the problem your experiencing and see if it persists.
 +
* If the problem persists, it is a Thunderbird problem.  File a bug at bugzilla.redhat.com against the component "Thunderbird".
 +
* If the problem does not persist, enable each extension one at a time until you come across which extension is causing the problem.  You will probably need to file a bug report with the author of the extension.
  
Quit Thunderbird and start it again. Recreate whatever you did that caused the problem your experiencing and see if it persists.
+
== Information to include in your report ==
  
If the problem persisted go to "Debugging Thunderbird".
+
In all cases, the following should be mentioned and attached to your Thunderbird bug report:
  
If the problem did not persist enable each extension and try to recreate the problem then disable the extension you just enabled again until you come across which extension is causing the problem then go to "Debugging Thunderbird Extensions".
+
* What version of Thunderbird you're using. Go to "Help" and choose "About" or open up a terminal window and run: <code>rpm -q thunderbird</code>
 
+
* If Thunderbird was started from the command line, exactly what was typed.
= Information to include in your report =
+
* Screenshot of the Thunderbird window if a graphical error occurs or Thunderbird shows an error.
 
+
* The text of any errors or warnings produced (verbatim, if possible).
{{Anchor|AllInfo}}
+
* List of Thunderbird extensions you have installed and result of the disabling experiment described above.
 
+
* Steps to reproduce the problem, or the context in which it occurred if not reproducible.
== All bug reports ==
 
 
 
In all cases, the following should be mentioned and attached to your bug report:
 
 
 
* What version of Thunderbird your using.
 
{{admon/tip|You can determine which version of Thunderbird you have installed by starting Thunderbird go to "Help" and choose "About" or open up a terminal window and run: <pre>$ rpm -q thunderbird</pre>}}
 
* The exact command-line used if an command was used to start Thunderbird.
 
* Screen shot of Thunderbird window if an graphical error occurs or Thunderbird shows an error.
 
* List of Thunderbird extension you have installed.
 
 
 
== Thunderbird Extensions problems ==
 
 
 
As well as the information from the [[How_to_debug_Thunderbird#AllInfo|'All bug reports']] section, include the following information:
 
  
 
{{Anchor|Debugging}}
 
{{Anchor|Debugging}}
  
= Debugging Thunderbird =
+
== Debugging Thunderbird ==
  
{{admon/warning|Always review and sanitize your logs before submitting them. Often when turning on debugging logging or when using debuggers in application they will show/store sensitive information such as passwords etc. simply remove or replace the sensitive string with xxxx in the logs before submitting them. }}  
+
{{admon/warning|Always review and sanitize your logs before submitting them. Often when turning on debug logging or when using debuggers in application they will show/store sensitive information such as passwords etc. simply remove or replace the sensitive string with xxxx in the logs before submitting them. }}  
  
 
Install Thunderbird debug package.  
 
Install Thunderbird debug package.  
Line 41: Line 32:
 
Find Thunderbirds process ID ( PID )
 
Find Thunderbirds process ID ( PID )
  
<pre>$ ps -C thunderbird-bin
 
  
Sample output:
+
<pre>Sample output...
  
 
$ ps -C thunderbird-bin
 
$ ps -C thunderbird-bin
Line 55: Line 45:
 
If gdb complaints about "Missing separate debuginfos" then type "quit" in the gdb shell and do a copy paste of the debuginfo-install entry and install it the same way as above then and rerun the gdb thunbird-bin PID command.
 
If gdb complaints about "Missing separate debuginfos" then type "quit" in the gdb shell and do a copy paste of the debuginfo-install entry and install it the same way as above then and rerun the gdb thunbird-bin PID command.
  
<pre> Sample error entry:
+
<pre> Sample error entry...
  
 
Missing separate debuginfos, use: debuginfo-install PackageKit-gtk-module-0.4.9-1.fc11.x86_64 audiofile-0.2.6-10.fc11.x86_64 elfutils-libelf-0.142-1.fc11.x86_64 esound-libs-0.2.41-2.fc11.x86_64 gecko-mediaplayer-0.9.8-1.fc11.x86_64 gvfs-1.2.3-12.fc11.x86_64 libXScrnSaver-1.1.3-2.fc11.x86_64 libXext-1.0.99.1-3.fc11.x86_64 libgnomeui-2.24.1-1.fc11.x86_64 libical-0.43-4.fc11.x86_64 libtool-ltdl-2.2.6-11.fc11.1.x86_64 libvorbis-1.2.0-8.fc11.x86_64 libxml2-2.7.5-1.fc11.x86_64 sqlite-3.6.12-3.fc11.x86_64 thunderbird-enigmail-0.97a-0.1.cvs20090721.fc11.x86_64</pre>
 
Missing separate debuginfos, use: debuginfo-install PackageKit-gtk-module-0.4.9-1.fc11.x86_64 audiofile-0.2.6-10.fc11.x86_64 elfutils-libelf-0.142-1.fc11.x86_64 esound-libs-0.2.41-2.fc11.x86_64 gecko-mediaplayer-0.9.8-1.fc11.x86_64 gvfs-1.2.3-12.fc11.x86_64 libXScrnSaver-1.1.3-2.fc11.x86_64 libXext-1.0.99.1-3.fc11.x86_64 libgnomeui-2.24.1-1.fc11.x86_64 libical-0.43-4.fc11.x86_64 libtool-ltdl-2.2.6-11.fc11.1.x86_64 libvorbis-1.2.0-8.fc11.x86_64 libxml2-2.7.5-1.fc11.x86_64 sqlite-3.6.12-3.fc11.x86_64 thunderbird-enigmail-0.97a-0.1.cvs20090721.fc11.x86_64</pre>
Line 63: Line 53:
 
From the gdb shell type `set logging on'
 
From the gdb shell type `set logging on'
  
<pre>(gdb) set logging on
+
<pre>Sample ouput...
You should see..
+
 
 +
(gdb) set logging on
 
Copying output to gdb.txt.
 
Copying output to gdb.txt.
 
Current language:  auto; currently minimal</pre>
 
Current language:  auto; currently minimal</pre>
Line 70: Line 61:
 
Then type cont and redo the steps in Thunderbird that caused the error your experiencing.
 
Then type cont and redo the steps in Thunderbird that caused the error your experiencing.
  
<pre>(gdb) cont
+
<pre>Sample output...
You should see..
+
 
 +
(gdb) cont
 
Continuing.</pre>
 
Continuing.</pre>
  
Line 77: Line 69:
 
thread apply all bt.
 
thread apply all bt.
  
<pre>Sample output..
+
<pre>Sample output...
 
^C
 
^C
 
Program received signal SIGINT, Interrupt.
 
Program received signal SIGINT, Interrupt.
Line 92: Line 84:
 
</pre>
 
</pre>
  
quit and sample output  
+
Press return until you are returned to the gdb shell then type quit and exit the debugger.
 +
 
 +
<pre>Sample output...
 +
 
 +
Current language:  auto; currently minimal
 +
(gdb) quit
 +
The program is running.  Quit anyway (and kill it)? (y or n) y
 +
</pre>
 +
 
 +
Attach gdb.txt to your bugzilla report..
 +
 
 +
If the application crashes on startup you need to start it inside the GNU Project Debugger to 
 +
 
 +
To do so type open an terminal window and type gdb.
 +
 
 +
<pre>Sample output...
 +
 
 +
[username@example ~]$ gdb
 +
GNU gdb (GDB) Fedora (6.8.50.20090302-38.fc11)
 +
Copyright (C) 2009 Free Software Foundation, Inc.
 +
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
 +
This is free software: you are free to change and redistribute it.
 +
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
 +
and "show warranty" for details.
 +
This GDB was configured as "x86_64-redhat-linux-gnu".
 +
For bug reporting instructions, please see:
 +
<http://www.gnu.org/software/gdb/bugs/>.
 +
(gdb) </pre>
  
attache gdb.txt to report..
+
First we want to turn on logging then execute startup of the application and finally tell it to run at our command.  
  
= Debugging Thunderbird Extensions =
+
<pre>Sample output for...
  
#FIXME PRACTICE IS CALLING
+
(gdb) set logging on
 +
Copying output to gdb.txt.
 +
(gdb) exec-file /usr/lib64/thunderbird-3.0b4/thunderbird-bin
 +
(gdb) run
 +
Starting program: /usr/lib64/thunderbird-3.0b4/thunderbird-bin
 +
[Thread debugging using libthread_db enabled]</pre>
 +
 
 +
{{admon/note| The above example is for x86_64 version of Thunderbird-3.0b4 if you are running on an i688 platform the correct path to Thunderbird is /usr/lib/thunderbird-<version>/thunderbird-bin.}}
 +
 
 +
When the application has crashed type thread apply all bt and quit gdb.
 +
 
 +
<pre>Sample output...
 +
 
 +
gdb) thread apply all bt
 +
 
 +
Thread 19 (Thread 0x7fffdacff910 (LWP 20935)):
 +
Output trunkated....
 +
 
 +
---Type <return> to continue, or q <return> to quit--
 +
</pre>
 +
 
 +
Press return until you are returned to the gdb shell then type quit and exit the debugger.
 +
 
 +
<pre>Sample output...
 +
 
 +
Current language:  auto; currently minimal
 +
(gdb) quit
 +
The program is running.  Quit anyway (and kill it)? (y or n) y
 +
</pre>
  
 +
Attach the gdb.txt to your report
  
[[Category:Debugging]] [[Category:How to]]
+
[[Category:Debugging|T]] [[Category:How to]]

Latest revision as of 15:25, 23 October 2009

Identifying your problem area

To isolate the cause of your bug in either Thunderbird or a Thunderbird extension, disable all installed extensions.

  • Start Thunderbird, go to "Tools", select "Add-ons" and disable all extensions listed there.
  • Quit Thunderbird and start it again.
  • Recreate whatever you did that caused the problem your experiencing and see if it persists.
  • If the problem persists, it is a Thunderbird problem. File a bug at bugzilla.redhat.com against the component "Thunderbird".
  • If the problem does not persist, enable each extension one at a time until you come across which extension is causing the problem. You will probably need to file a bug report with the author of the extension.

Information to include in your report

In all cases, the following should be mentioned and attached to your Thunderbird bug report:

  • What version of Thunderbird you're using. Go to "Help" and choose "About" or open up a terminal window and run: rpm -q thunderbird
  • If Thunderbird was started from the command line, exactly what was typed.
  • Screenshot of the Thunderbird window if a graphical error occurs or Thunderbird shows an error.
  • The text of any errors or warnings produced (verbatim, if possible).
  • List of Thunderbird extensions you have installed and result of the disabling experiment described above.
  • Steps to reproduce the problem, or the context in which it occurred if not reproducible.

Debugging Thunderbird

Warning.png
Always review and sanitize your logs before submitting them. Often when turning on debug logging or when using debuggers in application they will show/store sensitive information such as passwords etc. simply remove or replace the sensitive string with xxxx in the logs before submitting them.

Install Thunderbird debug package.

$ su -c 'debuginfo-install thunderbird'

Find Thunderbirds process ID ( PID )


Sample output...

$ ps -C thunderbird-bin
  PID TTY          TIME CMD
  22924 ?        01:15:06 thunderbird-bin

Attache GNU Project Debugger to Thunderbirds PID

$ gdb thunderbird-bin 22924

If gdb complaints about "Missing separate debuginfos" then type "quit" in the gdb shell and do a copy paste of the debuginfo-install entry and install it the same way as above then and rerun the gdb thunbird-bin PID command.

 Sample error entry...

Missing separate debuginfos, use: debuginfo-install PackageKit-gtk-module-0.4.9-1.fc11.x86_64 audiofile-0.2.6-10.fc11.x86_64 elfutils-libelf-0.142-1.fc11.x86_64 esound-libs-0.2.41-2.fc11.x86_64 gecko-mediaplayer-0.9.8-1.fc11.x86_64 gvfs-1.2.3-12.fc11.x86_64 libXScrnSaver-1.1.3-2.fc11.x86_64 libXext-1.0.99.1-3.fc11.x86_64 libgnomeui-2.24.1-1.fc11.x86_64 libical-0.43-4.fc11.x86_64 libtool-ltdl-2.2.6-11.fc11.1.x86_64 libvorbis-1.2.0-8.fc11.x86_64 libxml2-2.7.5-1.fc11.x86_64 sqlite-3.6.12-3.fc11.x86_64 thunderbird-enigmail-0.97a-0.1.cvs20090721.fc11.x86_64

Enable logging to a file in gdb.

From the gdb shell type `set logging on'

Sample ouput... 

(gdb) set logging on
Copying output to gdb.txt.
Current language:  auto; currently minimal

Then type cont and redo the steps in Thunderbird that caused the error your experiencing.

Sample output...

(gdb) cont
Continuing.

After you have recreated the steps that causes the error your experiencing press CTRL-C in the gdb shell and type thread apply all bt.

Sample output...
^C
Program received signal SIGINT, Interrupt.
0x0000003846ad50d3 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:87
87	  int result = INLINE_SYSCALL (poll, 3, CHECK_N (fds, nfds), nfds, timeout);
Current language:  auto; currently minimal
(gdb) thread apply all bt

Thread 19 (Thread 0x7fffdacff910 (LWP 20935)):
Output trunkated.... 

---Type <return> to continue, or q <return> to quit--

Press return until you are returned to the gdb shell then type quit and exit the debugger.

Sample output...

Current language:  auto; currently minimal
(gdb) quit
The program is running.  Quit anyway (and kill it)? (y or n) y

Attach gdb.txt to your bugzilla report..

If the application crashes on startup you need to start it inside the GNU Project Debugger to

To do so type open an terminal window and type gdb.

Sample output...

[username@example ~]$ gdb
GNU gdb (GDB) Fedora (6.8.50.20090302-38.fc11)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
(gdb) 

First we want to turn on logging then execute startup of the application and finally tell it to run at our command.

Sample output for... 

(gdb) set logging on
Copying output to gdb.txt.
(gdb) exec-file /usr/lib64/thunderbird-3.0b4/thunderbird-bin
(gdb) run
Starting program: /usr/lib64/thunderbird-3.0b4/thunderbird-bin 
[Thread debugging using libthread_db enabled]
Note.png
The above example is for x86_64 version of Thunderbird-3.0b4 if you are running on an i688 platform the correct path to Thunderbird is /usr/lib/thunderbird-<version>/thunderbird-bin.

When the application has crashed type thread apply all bt and quit gdb.

Sample output...

gdb) thread apply all bt

Thread 19 (Thread 0x7fffdacff910 (LWP 20935)):
Output trunkated.... 

---Type <return> to continue, or q <return> to quit--

Press return until you are returned to the gdb shell then type quit and exit the debugger.

Sample output...

Current language:  auto; currently minimal
(gdb) quit
The program is running.  Quit anyway (and kill it)? (y or n) y

Attach the gdb.txt to your report