Date: Sun, 13 Jun 2004 05:05:37 GMT From: Marcel Moolenaar <marcel@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 54786 for review Message-ID: <200406130505.i5D55bH3023575@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=54786 Change 54786 by marcel@marcel_nfs on 2004/06/13 05:05:10 Ok, time to mess it all up again. I've been having a lot of problems getting backtraces to work from trapframes so a new approach is needed. With this commit td_last_frame is officially slamdunked to the realm of the goners. We're going to use the PCB as the context for debugging and only frob the trapframe for singlestepping. A quick and dirty prototype has shown that the PCB has a lot of advantages, including handling of dumppcb and the generation of backtraces outside the debugger. A simple call to savectx() creates a PCB from which a backtrace can be generated. This branch is broken until further notice. Affected files ... .. //depot/projects/gdb/sys/sys/proc.h#15 edit Differences ... ==== //depot/projects/gdb/sys/sys/proc.h#15 (text+ko) ==== @@ -141,7 +141,6 @@ * p - select lock (sellock) * q - td_contested lock * r - p_peers lock - * t - updated at kernel (re)entry. Read-only in all other cases. * x - created at fork, only changes during single threading in exec * z - zombie threads/kse/ksegroup lock * @@ -272,7 +271,6 @@ int td_flags; /* (j) TDF_* flags. */ int td_inhibitors; /* (j) Why can not run. */ int td_pflags; /* (k) Private thread (TDP_*) flags. */ - struct trapframe *td_last_frame; /* (t) Trapframe of last entry. */ struct kse *td_last_kse; /* (j) Previous value of td_kse. */ struct kse *td_kse; /* (j) Current KSE if running. */ int td_dupfd; /* (k) Ret value from fdopen. XXX */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200406130505.i5D55bH3023575>