How to get anything useful out of kgdb?
John Baldwin
jhb at freebsd.org
Fri May 15 15:50:56 UTC 2015
On Saturday, May 09, 2015 10:20:46 AM Sean Bruno wrote:
> tl;dr What are the kernel config options to get good output of kgdb?
>
>
> I'm trying to get the ability to debug and display internal variables,
> as one does, with kgdb. I'm *must* be doing this wrong as I cannot get
> any useful output from accessing variables that were JUST accessed in
> order to invoke a panic() that I have inserted. This is a GENERIC
> kernel without INVARIANTS and without WITNESS:
>
> https://people.freebsd.org/~sbruno/wtf_kgdb.txt
>
> I seem to have debug enabled and am able to browse source, but I
> obviously haven't compiled correctly as things are optimized out.
1) gdb7 does a better job. I hope to get the kgdb patches into the
port soon. If you are feeling brave:
# add texinfo for HEAD
% pkg install gmake bison
% git clone https://github.com/bsdjhb/gdb.git
% cd gdb
% git checkout freebsd-7.9.0-kgdb
% fetch http://people.freebsd.org/~jhb/gdb/build
% sh ./build
% cd obj # or obj.i386 for i386
% gmake
Then use /path/to/git/gdb/obj/gdb/kgdb
2) Even with gdb7 it can't figure out variables that it should figure out
sometimes. Other options are either to find the variable in a higher
frame (e.g. if it is something like 'td' or a driver softc) or to start
poking around in the dissassembly to work out which register it is in
(or which register points to a structure that contains it) and go from
there.
--
John Baldwin
More information about the freebsd-hackers
mailing list