|
|
@ -1,7 +1,7 @@
|
|
|
|
Introduction
|
|
|
|
Introduction
|
|
|
|
============
|
|
|
|
============
|
|
|
|
|
|
|
|
|
|
|
|
This is a short tutorial on debugging KDE applications. Throughout this
|
|
|
|
This is a short tutorial on debugging TDE applications. Throughout this
|
|
|
|
tutorial I will use "kedit" as example application.
|
|
|
|
tutorial I will use "kedit" as example application.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -9,7 +9,7 @@ Configuring for debugging
|
|
|
|
=========================
|
|
|
|
=========================
|
|
|
|
|
|
|
|
|
|
|
|
You can use --enable-debug with the configure script, if you want to have
|
|
|
|
You can use --enable-debug with the configure script, if you want to have
|
|
|
|
debug code in your KDE libs. If you have the space and can stand code that's
|
|
|
|
debug code in your TDE libs. If you have the space and can stand code that's
|
|
|
|
somewhat slower, this is worth it. The extra information really
|
|
|
|
somewhat slower, this is worth it. The extra information really
|
|
|
|
helps debugging and thus bugfixing.
|
|
|
|
helps debugging and thus bugfixing.
|
|
|
|
|
|
|
|
|
|
|
@ -59,7 +59,7 @@ first line of main and then start the program:
|
|
|
|
(gdb) break main
|
|
|
|
(gdb) break main
|
|
|
|
Breakpoint 1 at 0x804855c
|
|
|
|
Breakpoint 1 at 0x804855c
|
|
|
|
(gdb) run
|
|
|
|
(gdb) run
|
|
|
|
Starting program: /opt/kde/bin/kedit myfile.txt
|
|
|
|
Starting program: /opt/trinity/bin/kedit myfile.txt
|
|
|
|
Breakpoint 1 at 0x4002cf18: file kedit.cpp, line 1595.
|
|
|
|
Breakpoint 1 at 0x4002cf18: file kedit.cpp, line 1595.
|
|
|
|
|
|
|
|
|
|
|
|
Breakpoint 1, main (argc=2, argv=0xbffff814) at kedit.cpp:1595
|
|
|
|
Breakpoint 1, main (argc=2, argv=0xbffff814) at kedit.cpp:1595
|
|
|
@ -133,9 +133,9 @@ Type "show copying" to see the conditions.
|
|
|
|
There is absolutely no warranty for GDB. Type "show warranty" for details.
|
|
|
|
There is absolutely no warranty for GDB. Type "show warranty" for details.
|
|
|
|
This GDB was configured as "i686-pc-linux-gnu"...
|
|
|
|
This GDB was configured as "i686-pc-linux-gnu"...
|
|
|
|
/home1/bastian/21570: No such file or directory.
|
|
|
|
/home1/bastian/21570: No such file or directory.
|
|
|
|
Attaching to program: /opt/kde/bin/kedit, Pid 21570
|
|
|
|
Attaching to program: /opt/trinity/bin/kedit, Pid 21570
|
|
|
|
Reading symbols from /opt/kde/lib/kedit.so.0...done.
|
|
|
|
Reading symbols from /opt/trinity/lib/kedit.so.0...done.
|
|
|
|
Loaded symbols for /opt/kde/lib/kedit.so.0
|
|
|
|
Loaded symbols for /opt/trinity/lib/kedit.so.0
|
|
|
|
....
|
|
|
|
....
|
|
|
|
Reading symbols from /lib/ld-linux.so.2...done.
|
|
|
|
Reading symbols from /lib/ld-linux.so.2...done.
|
|
|
|
Loaded symbols for /lib/ld-linux.so.2
|
|
|
|
Loaded symbols for /lib/ld-linux.so.2
|
|
|
@ -147,7 +147,7 @@ Loaded symbols for /lib/libnsl.so.1
|
|
|
|
(gdb)
|
|
|
|
(gdb)
|
|
|
|
|
|
|
|
|
|
|
|
You will usually end up in the middle of a select() call from the event-loop.
|
|
|
|
You will usually end up in the middle of a select() call from the event-loop.
|
|
|
|
This is the place where a KDE application spends most of its time, waiting
|
|
|
|
This is the place where a TDE application spends most of its time, waiting
|
|
|
|
for things to happen.
|
|
|
|
for things to happen.
|
|
|
|
|
|
|
|
|
|
|
|
A backtrace will typically look something like this:
|
|
|
|
A backtrace will typically look something like this:
|
|
|
@ -173,7 +173,7 @@ Getting core dumps
|
|
|
|
If you want to have a core dump after your application crashes you need to
|
|
|
|
If you want to have a core dump after your application crashes you need to
|
|
|
|
do two things:
|
|
|
|
do two things:
|
|
|
|
|
|
|
|
|
|
|
|
1) Disable the KDE crash handler. This can be done either by using the
|
|
|
|
1) Disable the TDE crash handler. This can be done either by using the
|
|
|
|
--nocrashhandler command line option or by setting the KDE_DEBUG environment
|
|
|
|
--nocrashhandler command line option or by setting the KDE_DEBUG environment
|
|
|
|
variable to some value e.g. KDE_DEBUG=true.
|
|
|
|
variable to some value e.g. KDE_DEBUG=true.
|
|
|
|
|
|
|
|
|
|
|
|