Difference between revisions of "How to debug for reporting"

From Scribus Wiki
Jump to navigation Jump to search
m (Jluc, I've reformatted quite a bit...is that OK ?)
Line 1: Line 1:
 
[[Category:EN]][[Category:Development]][[Category:Tips]]
 
[[Category:EN]][[Category:Development]][[Category:Tips]]
 +
=Introduction=
 +
This page assumes:
 +
* You understand the basics of [[How to file a bug report|"How to file a bug report"]]
 +
* You have searched through the [http://bugs.scribus.net Scribus bug tracker] and found out that your bug had not yet been reported
 +
* You've searched this wiki for the issue and have come up empty-handed
 +
Therefore it will be useful to try to reproduce the bug, and to find out what is the simplest scenario where/when it happens.
  
==Introduction==
+
= Goal =  
 +
'''The goal is to help the developers get a grip on the bug and to understand how to troubleshoot it. '''
  
As explained in [[How to file a bug report|"How to file a bug report"]], when you have searched through the bugs database and found out that your bug had not yet been reported, it will be usefull to try to reproduce the bug, and to find out what is the simplest situation where it happens. This will help the developper to get a grip on the bug.
+
'''When your bug can be reproduced, then you will be able to attach to its report a backtrace from a debugger.'''
  
When your bug can be reproduced, then you will be able to attach to its report a backtrace from a debugger.
+
'''This Howto tells you how to generate this information.'''
 
 
This Howto tells you how to get these informations.
 
  
 
==On Linux==
 
==On Linux==
  
If the crash happens on a Linux machine (or generally on a unix machine with the GNU gcc compiler) you can use <code>gdb</code>.
+
If the crash happens on a Linux machine (or generally on a unix machine with the GNU gcc compiler) you can use <code>gdb</code> AKA The GNU Debugger.
  
You have to first load scribus in a new gdb session and launch scribus from there. After scribus has crashed you automatically get some details about the error occured. You can get a full report with the command bt (''backtrace'').
+
# You have to first load scribus in a new gdb session and launch Scribus from there, in other words you are invoking Scribus within the GNU Debugger.  
 +
# When Scribus crashes you will automatically see details generated about the error by <code>gdb</code>.
 +
# Generate a full report with the command bt (''backtrace'').
  
 
<pre>
 
<pre>
Line 25: Line 32:
 
</pre>
 
</pre>
  
If you compile yourself scribus -- and you plan to report bugs -- you should enable the debugging at compile time:
+
'''NOTE:''' If you can compile Scribus yourself from source  -- and you plan to report bugs -- '''you should enable the debugging at <u>compile time</u>:'''
  
 
* With Cmake (<code>cmake; make; make install</code>) , you should add '''-DWANT_DEBUG=1''' to your cmake line, e.g.:  
 
* With Cmake (<code>cmake; make; make install</code>) , you should add '''-DWANT_DEBUG=1''' to your cmake line, e.g.:  

Revision as of 18:58, 25 February 2014

Introduction

This page assumes:

  • You understand the basics of "How to file a bug report"
  • You have searched through the Scribus bug tracker and found out that your bug had not yet been reported
  • You've searched this wiki for the issue and have come up empty-handed

Therefore it will be useful to try to reproduce the bug, and to find out what is the simplest scenario where/when it happens.

Goal

The goal is to help the developers get a grip on the bug and to understand how to troubleshoot it.

When your bug can be reproduced, then you will be able to attach to its report a backtrace from a debugger.

This Howto tells you how to generate this information.

On Linux

If the crash happens on a Linux machine (or generally on a unix machine with the GNU gcc compiler) you can use gdb AKA The GNU Debugger.

  1. You have to first load scribus in a new gdb session and launch Scribus from there, in other words you are invoking Scribus within the GNU Debugger.
  2. When Scribus crashes you will automatically see details generated about the error by gdb.
  3. Generate a full report with the command bt (backtrace).
$ gdb scribus
(gdb) run
... error reporting ...
(gdb) bt
... full backtracking information
(gdb) exit
$

NOTE: If you can compile Scribus yourself from source -- and you plan to report bugs -- you should enable the debugging at compile time:

  • With Cmake (cmake; make; make install) , you should add -DWANT_DEBUG=1 to your cmake line, e.g.:
 cmake . -DCMAKE_INSTALL_PREFIX:PATH=/opt/scribus15svn -DWANT_DEBUG=1

On Microsoft Windows

I've not tried it, but this How-to explains how to run gdb under Microsoft Windows.

Can anybody try it out and, eventually, report here if it works?