Date: Fri, 15 May 2015 11:50:38 -0400 From: John Baldwin <jhb@freebsd.org> To: freebsd-hackers@freebsd.org, sbruno@freebsd.org Subject: Re: How to get anything useful out of kgdb? Message-ID: <2063489.pgabuk9nPJ@ralph.baldwin.cx> In-Reply-To: <554E41EE.2010202@ignoranthack.me> References: <554E41EE.2010202@ignoranthack.me>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2063489.pgabuk9nPJ>