From Fedora Project Wiki

(Addid not in use anymore admonition)
 
(14 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{admon/important|No longer used Wiki article. Don't start to work on this|The content was migrated to the Fedora Docs portal at https://docs.fedoraproject.org/en-US/quick-docs/troubleshooting-mozilla-products/. If you want to contribute information, start with the Quick Docs article. We will delete this Wiki article when the migration is completed. Any work you spend here will be lost! }}
This article helps affected users in reporting of Firefox and Thunderbird bugs and ease package maintainers fixing them.
This article helps affected users in reporting of Firefox and Thunderbird bugs and ease package maintainers fixing them.


=== Application crash ===
=== Using Mozilla crash reporter ===
Application crash can occur during runtime. Application window simply disappear and bug report dialog will show up. By accepting this dialog crash will be reported to Mozilla crashstat servers. You can see list of submitted crashes on [[about:crashes]] page. If you want to report this crash to Fedora bugzilla you need to do few additional steps described in following subsections.
 
Application crash can occur during runtime. Application window simply disappear and bug report dialog will show up. By accepting this dialog crash will be reported to Mozilla crashstat servers. To view and submit the crash info please do:
 
* Open [[about:crashes]] page
* If there is any crash report, submit them (the 'Submit All' button).
* Paste all crash ID to bugreport.
 
=== Using local debugging ===


==== Installing debug info packages ====
==== Installing debug info packages ====
Debug info packages which contains source files are required to create meaningful bug report. To install them you need to execute following command as root:
 
Debug info packages which contains source files are required to create meaningful bug report (unless you use Mozilla crash reporter). To install them you need to execute following command as root:
 
<pre>
<pre>
debuginfo-install firefox
dnf debuginfo-install firefox
</pre>
</pre>
for Firefox,
for Firefox,
<pre>
<pre>
debuginfo-install thunderbird
dnf debuginfo-install thunderbird
</pre>
</pre>
for Thunderbird.
for Thunderbird.
==== Using coredumpctl to get backtrace ====
You can use coredumpctl to get backtrace. Run on terminal:
<pre>
coredumpctl list
</pre>
and find Firefox crash there and get crash ID. Then launch gdb on it by
<pre>
coredumpctl debug ID
</pre>
you should get a gdb session and you should be able to get backtrace by
<pre>
thread apply all bt full
</pre>
gdb command.


==== Running application in debugger ====
==== Running application in debugger ====
To run application in gnu debugger you need to run command:
To run application in gnu debugger you need to run command:
<pre>
<pre>
Line 36: Line 70:
Then bring application to crash. This should be indicated by (gdb) prompt. Type:
Then bring application to crash. This should be indicated by (gdb) prompt. Type:
<pre>
<pre>
set logging on crash_bt
set logging on crash_bt.log
thread apply all bt full
thread apply all bt full
print DumpJSStack()
print DumpJSStack()
set logging off
set logging off
</pre>
</pre>
to store stack and Javascript trace into ''crash_bt''. Don't forget to attach this file to bug report.
to store stack and Javascript trace into ''crash_bt.log'' file. Don't forget to attach this file to bug report.


=== Application freeze ===
=== Application freeze ===
If you are able to reproduce freeze you can follow [[#Application crash]] steps. There is only one difference in [[#Obtain crash stack trace]] section where ''(gdb)'' prompt is missing. To get prompt you have to press Ctrl-C.
If you are able to reproduce freeze you can follow [[#Application crash]] steps. There is only one difference in [[#Obtain crash stack trace]] section where ''(gdb)'' prompt is missing. To get prompt you have to press Ctrl-C.
==== Getting Mozilla crash report from running application ====
You can kill running application by kill signal and then obtain and submit Mozilla crash stats.
To terminate all firefox instances run on terminal:
<pre>kill -s 11 $(pidof firefox)</pre>
This should terminate all Firefox instances and produce Mozilla crash report dialog. In next Firefox run you should see crash ID at '''about:crashes''' page. Please submit the crash to Mozilla and paste crash ID to bugreport.


==== Attach debugger to running application====
==== Attach debugger to running application====
Line 51: Line 94:
When the freeze occurs randomly and/or difficult to predict you can attach to running application when it freezes by:
When the freeze occurs randomly and/or difficult to predict you can attach to running application when it freezes by:
<pre>
<pre>
gdb firefox `ps ax|grep firefox/firefox|grep -v grep|cut -d-f2`
gdb firefox `ps ax|grep firefox/firefox|grep -v grep|grep -v "contentproc"|cut -d ' ' -f3`
</pre>
</pre>
for Firefox.
for Firefox.
<pre>
<pre>
gdb thunderbird `ps ax|grep thunderbird|grep -v grep|cut -d-f2`
gdb thunderbird `ps ax|grep thunderbird/thunderbird|grep -v grep|grep -v "contentproc"|cut -d ' ' -f3`
</pre>
</pre>
for Thunderbird.
for Thunderbird.
Line 85: Line 128:
Attach also output of following commands:
Attach also output of following commands:
<pre>
<pre>
rpm -q firefox xulrunner thunderbird flash-plugin gnash google-talkplugin nspluginwrapper
rpm -q firefox xulrunner thunderbird flash-plugin gnash google-talkplugin nspluginwrapper thunderbird-lightning thunderbird-enigmail flash-plugin
ls /usr/lib64/mozilla/plugins/
ls -l /usr/lib64/mozilla/plugins/
ls /usr/lib/mozilla/plugins/
ls -l /usr/lib/mozilla/plugins/
ls -l /usr/share/mozilla/extensions
</pre>
</pre>


Line 112: Line 156:


For '''Thunderbird''' make screenshot of ''Tools/Addons/Extensions'' and ''Tools/Addons/Plugins,'' dialogs and attach images to bugzilla.
For '''Thunderbird''' make screenshot of ''Tools/Addons/Extensions'' and ''Tools/Addons/Plugins,'' dialogs and attach images to bugzilla.
Continue in [[#Application crash]] if required.


=== Advanced debugging ===
=== Advanced debugging ===
Line 117: Line 163:


Thanks for your time you spare to reporting bugs!
Thanks for your time you spare to reporting bugs!
[[Category:Debugging]]

Latest revision as of 13:51, 26 December 2023

Important.png
No longer used Wiki article. Don't start to work on this
The content was migrated to the Fedora Docs portal at https://docs.fedoraproject.org/en-US/quick-docs/troubleshooting-mozilla-products/. If you want to contribute information, start with the Quick Docs article. We will delete this Wiki article when the migration is completed. Any work you spend here will be lost!


This article helps affected users in reporting of Firefox and Thunderbird bugs and ease package maintainers fixing them.

Using Mozilla crash reporter

Application crash can occur during runtime. Application window simply disappear and bug report dialog will show up. By accepting this dialog crash will be reported to Mozilla crashstat servers. To view and submit the crash info please do:

  • Open about:crashes page
  • If there is any crash report, submit them (the 'Submit All' button).
  • Paste all crash ID to bugreport.

Using local debugging

Installing debug info packages

Debug info packages which contains source files are required to create meaningful bug report (unless you use Mozilla crash reporter). To install them you need to execute following command as root:

dnf debuginfo-install firefox

for Firefox,

dnf debuginfo-install thunderbird

for Thunderbird.

Using coredumpctl to get backtrace

You can use coredumpctl to get backtrace. Run on terminal:

coredumpctl list

and find Firefox crash there and get crash ID. Then launch gdb on it by

coredumpctl debug ID

you should get a gdb session and you should be able to get backtrace by

thread apply all bt full

gdb command.

Running application in debugger

To run application in gnu debugger you need to run command:

firefox -g -d gdb

for Firefox,

thunderbird -g -d gdb

After debugger is started which is indicated by line:

(gdb)

To run program use command:

run

Obtain crash stack trace

Then bring application to crash. This should be indicated by (gdb) prompt. Type:

set logging on crash_bt.log
thread apply all bt full
print DumpJSStack()
set logging off

to store stack and Javascript trace into crash_bt.log file. Don't forget to attach this file to bug report.

Application freeze

If you are able to reproduce freeze you can follow #Application crash steps. There is only one difference in #Obtain crash stack trace section where (gdb) prompt is missing. To get prompt you have to press Ctrl-C.

Getting Mozilla crash report from running application

You can kill running application by kill signal and then obtain and submit Mozilla crash stats.

To terminate all firefox instances run on terminal:

kill -s 11 $(pidof firefox)

This should terminate all Firefox instances and produce Mozilla crash report dialog. In next Firefox run you should see crash ID at about:crashes page. Please submit the crash to Mozilla and paste crash ID to bugreport.

Attach debugger to running application

Before you can attach to running application you need to have debug symbols installed.

When the freeze occurs randomly and/or difficult to predict you can attach to running application when it freezes by:

gdb firefox `ps ax|grep firefox/firefox|grep -v grep|grep -v "contentproc"|cut -d ' ' -f3`

for Firefox.

gdb thunderbird `ps ax|grep thunderbird/thunderbird|grep -v grep|grep -v "contentproc"|cut -d ' ' -f3`

for Thunderbird.

Then you can continue by #Obtain crash stack trace

Figuring out what is responsible for crash

Some crashes and problems come from installed addons or 3rd party plugins. To determine if that's the case run application with -safe-mode parameter:

firefox -safe-mode

or

thunderbird -safe-mode

Then Disable all add-ons needs to be checked and Make Changes and Restart pressed.

Note.png
Note
This setting disables all your add-ons and plugins until you manually re-enable them.

If problem still persist it isn't most likely related to addons or plugins and you can just simply follow instructions in #Application crash. Otherwise continue to next section.

Reporting addons and plugins issues

Important.png
Reenable plugins and addons
At first don't forget to reenable all plugins and addons in Tools/Add-ons/Extensions and Plugins menu and restart application.

For Firefox set your location to about:plugins page. This page contains information about all installed plugins and it may help us in resolving your issue. Save it by File/Save Page As... to file and attach saved file to bug report.

For Thunderbird make screenshot of Tools/Addons/Extensions and Tools/Addons/Plugins, dialogs and attach images to bugzilla.

Attach also output of following commands:

rpm -q firefox xulrunner thunderbird flash-plugin gnash google-talkplugin nspluginwrapper thunderbird-lightning thunderbird-enigmail flash-plugin
ls -l /usr/lib64/mozilla/plugins/
ls -l /usr/lib/mozilla/plugins/
ls -l /usr/share/mozilla/extensions

You may also run Firefox or Thunderbird by strace. This help us to track which dynamic libraries are loaded during startup. Strace usage:

strace firefox &> strace_output

or in case of Thunderbird:

strace thunderbird &> strace_output

and don't forget to attach created strace_output file to bug report. If application crash or freeze stack trace is also very useful, for instructions see #Application crash section.

Bug report attachment in a nutshell

To make long story short, execute following commands and attach ~/bug-report file to bugzilla:

rpm -q firefox xulrunner thunderbird flash-plugin gnash google-talkplugin nspluginwrapper thunderbird-lightning thunderbird-enigmail flash-plugin > ~/bug-report
ls -l /usr/lib64/mozilla/plugins/   >> ~/bug-report
ls -l /usr/lib/mozilla/plugins/     >> ~/bug-report
ls -l /usr/share/mozilla/extensions >> ~/bug-report

For Firefox go to about:support and about:plugins pages, save them and attach to bug report.

For Thunderbird make screenshot of Tools/Addons/Extensions and Tools/Addons/Plugins, dialogs and attach images to bugzilla.

Continue in #Application crash if required.

Advanced debugging

TODO

Thanks for your time you spare to reporting bugs!