[Scribus] Scribus Digest, Vol 37, Issue 62
Craig Ringer
craig
Sat Mar 25 12:34:45 CET 2006
Helmut Wollmersdorfer wrote:
>Craig Ringer wrote:
>
>
>>On Linux they have to get gdb (unless glibc detects the
>>failure, eg a double free) but at least it's available and easy to give
>>instructions for.
>>
>>
>
>Verbose please. Which commands (perl or console) can I use to get out
>info from gdb?
>
>
If you want basic-user-oriented instructions for just getting a
backtrace check out the GAIM "getting a backtrace" page:
http://gaim.sourceforge.net/gdb.php .
Detail: First, make sure the app is compiled with -g (debugging) or at
the very least is not stripped (`file' on the executable/library can
tell you that). A backtrace from a stripped binary is almost entirely
useless.
To debug, you'll usually want to launch the app under gdb:
gdb --args /path/to/app [arg1 [ arg2 [arg3 [ ... ] ] ]
You can alternately connect to a running process or debug a core file,
as documented in the gdb man page. To get a crashing program to generate
a core file you may need to change your ulimit (this setting affects the
shell its run in and all child processes):
ulimit -c unlimited
Once gdb has started and shows the (gdb) prompt, if you ran the app from
gdb type "run" and work as normal. If you connected to a running app,
type "cont" and work as normal. A core file is "pre-crashed" and there's
no point in running anything, so just skip to the next bit.
When it crashes, the app will freeze instead of disappearing / reporting
a crash. You can then look at the gdb console and see a brief crash
report telling you what signal it crashed on and in what routine. [
after this applies to core files too: ] Type "bt" to get a full
backtrace. You can also explore the state of the program when it was
running - poke at local variables up the stack, at globals, and so on.
gdb's built-in help is rather ... er ... brief, but is useful. There's
more info out on the 'net.
For more information, read the gdb man page.
--
Craig Ringer
More information about the scribus
mailing list