Date: Fri, 15 May 2015 09:00:03 -0700 From: Sean Bruno <sbruno@ignoranthack.me> To: John Baldwin <jhb@freebsd.org>, freebsd-hackers@freebsd.org Subject: Re: How to get anything useful out of kgdb? Message-ID: <55561803.9050102@ignoranthack.me> In-Reply-To: <2063489.pgabuk9nPJ@ralph.baldwin.cx> References: <554E41EE.2010202@ignoranthack.me> <2063489.pgabuk9nPJ@ralph.baldwin.cx>
next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 05/15/15 08:50, John Baldwin wrote: > 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. > So one non-obvious thing that I'd like an explanation about: If I manually break to the debbugger and cause a dump (doadump), how do I poke around in the crash dump later on to find a thread that I'm looking for, e.g. I want to poke at various bits inside em(4). sean -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQF8BAEBCgBmBQJVVhgAXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRCQUFENDYzMkU3MTIxREU4RDIwOTk3REQx MjAxRUZDQTFFNzI3RTY0AAoJEBIB78oecn5kTR0IANHGeY0qH9wj8OKBUcAV/anR 8fpZMd4KxBIxy+2K2/TsAHWbXYDS+q/0LBNLI919ArDmPdR00iJjnMOCmBc4gCJr 53943f1x5+qKgtVVN9rQdKfHl6SilG2EeVI79HJasVNaghiV7o5vseu8p6FtQgai ytJPh5eWwBbNkYr0h9aNlXnODiqaZWLfwzSha/1VIU9nuhb1/zDh6O/MyvmuOF1B zu9kaNRyLSQBSe/YIK3D5pKiAotM4D/AQIkylc+Pan1G2JKIbqiaEqpETnjNQTSM BbVv7ccTEQXb+jow09z4JsAXyphVU7Jn+XdB7xnw0cUNkuUWMPy7x98dOJ10rM0= =jntV -----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55561803.9050102>