cvs commit: src/sys/ddb db_command.c db_output.c

Robert Watson rwatson at FreeBSD.org
Mon Oct 3 01:51:34 PDT 2005


On Sun, 2 Oct 2005, 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.

Thanks!

Is there any chance I can interest you in an idea phk, I, and a few others 
have been kicking around for a bit relating to smart small dumps? 
Specifically, we were discussing the idea of allowing a dumping mode in 
which rather than dumping all of kernel memory, we dump specifically the 
common and useful output from ddb, such as ps, show locked vnods, show 
alllocks, traceall, show allpcpu, and so on, basically in text format, to 
the dump partition.  Then the results can be pulled off easily in a format 
that is appropriate for e-mailing or submitting via a PR, even without a 
full debugging kernel, etc.  Among other things, these dumps would be 
much, much smaller than a memory dump, meaning they could be kept around 
like log files (/var/log/crash.log.0, ...), be e-mailed to the sysadmin, 
etc.  It would require some new magic in DDB and the dumping code, but 
almost all of the logic to generate the information from DDB could be 
reused, perhaps via an alternative pager or debug output device :-).

Robert N M Watson


More information about the cvs-src mailing list