On Wed, Nov 10, 2010 at 11:01:15AM +0100, Daniel Veillard wrote:
With some instruction on how to attach useful gdb backtraces
Daniel
diff --git a/docs/bugs.html.in b/docs/bugs.html.in
index 201705b..560dfa4 100644
--- a/docs/bugs.html.in
+++ b/docs/bugs.html.in
@@ -78,6 +78,35 @@
</ul>
<p>
+ If the bug leads to a tool linked to libvirt crash, then the best
+ is to provide a backtrace along with the scenario used to get the
+ crash, the simplest is to run the program under gdb, reproduce the
+ steps leading to the crash and then issue a gdb "bt" command to
+ get the stack trace, attach it to the bug. Note that for the
+ data to be really useful libvirt debug informations must be present
+ for example by installing libvirt debuginfo package on Fedora or
+ Red Hat Enterprise Linux (with debuginfo-install libvirt) prior
+ to running gdb.</p>
+ <p>
+ It may also happen that the libvirt daemon itself crashes or get stuck,
+ in the first case run it (as root) under gdb, and reproduce the sequence
+ leading to the crash, similary to a normal program provide the
+ "bt" backtrace information to where gdb will have stopped.<br/>
+ But if libvirtd get stuck, for example seems to stop processing
+ commands, try to attach to the faulty daemon and issue a gdb command
+ "thread apply all bt" to show all the threads backtraces, as
in:</p>
+ <pre> # ps -o etime,pid `pgrep libvirt`
+... note the process id from the output
+# gdb /usr/sbin/libvirtd
+.... some informations about gdb and loading debug data
+(gdb) attach $the_damon_process_id
+....
+(gdb) thread apply all bt
+.... informations to attach to the bug
+(gdb)
+</pre>
You don't need to specify the /usr/sbin/libvirtd binary name on the
command line to GDB if you're about to use 'attach', because GDB will
find it automatically from the PID, but ACK anyway
Daniel
--
|: Red Hat, Engineering, London -o-
http://people.redhat.com/berrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org -o-
http://deltacloud.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|