Date: Mon, 3 Oct 2005 11:14:29 -0400 From: John Baldwin <jhb@FreeBSD.org> To: Olivier Houchard <cognet@FreeBSD.org> Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/ddb db_command.c db_output.c Message-ID: <200510031114.31125.jhb@FreeBSD.org> In-Reply-To: <200510022257.j92MvV4N007297@repoman.freebsd.org> References: <200510022257.j92MvV4N007297@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 02 October 2005 06:57 pm, Olivier Houchard wrote: > cognet 2005-10-02 22:57:31 UTC > > FreeBSD src repository > > Modified files: > sys/ddb db_command.c db_output.c > Log: > - Call db_setup_paging() for traceall. > - Make it so one can't call db_setup_paging() if it has already been > called before. traceall needs this, or else the db_setup_paging() call from > db_trace_thread() will reset the printed line number, and override its > argument. > This is not perfect for traceall, because even if one presses 'q' while > in the middle of printing a backtrace it will finish printing the backtrace > before exiting, as db_trace_thread() won't be notified it should stop, but > it is hard to do better without reworking the pager interface a lot more. Actually, traceall() can be fixed without too much difficulty. Just adjust the API such that the MD function to trace a thread isn't the direct DDB function, but takes a pointer to the quit variable. Then have traceall() pass in its quit variable and add a simple MI wrapper for the single trace case that passes in a local quit variable as well and move db_setup_pager() into that MI wrapper and out of the MD functions. -- John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200510031114.31125.jhb>