Commit Graph

296 Commits

Author SHA1 Message Date
uwe ca90f34170 Widen FLAGS column for ps/l so that all defined l_flag flags fit. 2003-09-07 14:14:36 +00:00
ragge 65e8bb870b long -> unsigned long, so that correct pointer is sent in function call. 2003-09-03 10:45:10 +00:00
agc aad01611e7 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
2003-08-07 16:26:28 +00:00
simonb c9bc6f3a9a Allow the dmesg command to show the last N bytes of the kernel message
buffer.
2003-07-02 07:05:29 +00:00
fvdl d5aece61d6 Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
2003-06-29 22:28:00 +00:00
darrenr 960df3c8d1 Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records.  The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
2003-06-28 14:20:43 +00:00
briggs 819d74ccf1 Somehow overlooked in earlier commits: prototype db_kgdb_cmd(). 2003-05-22 20:17:11 +00:00
scw 66cf68c402 On some platforms, sizeof(db_expr_t) > sizeof(long), so add a method
to select the right format string (at compile time) when displaying
variables of type db_expr_t.

This fixes a problem where ddb(4) would only display the low 32-bits
of registers for an ILP32 kernel on SH5, even though registers
(and db_expr_t) are always 64-bits wide.
2003-05-17 09:58:03 +00:00
scw 273f50f75f Don't assume sizeof(db_expr_t) == sizeof(long).
Ditto for sizeof(db_addr_t), although I don't think this
one is currently an issue.
2003-05-17 09:48:05 +00:00
kristerw 96059deea7 Add a cast to make this build with -D__AUDIT__. 2003-05-17 00:28:44 +00:00
itojun f9121aada7 switch to use strlcpy() from libkern. 2003-05-16 16:28:30 +00:00
itojun d4074ff0ab use strlcpy [change prototype of db_symstr to pass size_t; noone seem to use it] 2003-05-16 15:02:08 +00:00
atatat b5329c1d85 (1) Don't print the message buffer (via ddb's dmesg command) if the
message buffer has not yet been set up, mimicking code from the top of
the sysctl routine for retrieving the message buffer.

(2) Add a /l modifier to the trace command.  This makes it print the
backtrace using printf() instead of db_printf(), which has the nice
side-effect of also putting it into the message buffer.  A kernel with
ddb in it but disabled (ie, ddb.onpanic set to zero) will print a
backtrace (which ends up in the message buffer) before dumping (or
not, depending on the value of kern.dump_on_panic) and rebooting, but
if ddb is not disabled, the backtrace is not printed, and there's no
way to get it to display a backtrace such that you can retrieve it
after the dump.  The backtrace printed by gdb is sometimes a little
different.

(3) Documentation for the above.
2003-05-15 13:18:18 +00:00
jdolecek d17c485917 make couple ksym functions' arguments const 2003-05-11 08:23:22 +00:00
scw 8c5c893bf7 Add a BKPT_ADDR() macro which gives MD code a chance to munge a
breakpoint address before it's used. Currently a no-op on all but sh5.

This is useful on sh5, for example, to mask off the instruction
type encoding in the bottom two address bits, and makes it possible
to do "db> break $rXX" instead of manually munging the address.
2003-04-29 17:06:03 +00:00
ragge 797b42a988 By accident db_symstr() was removed, which Håvard pointed out.
Readded now.
2003-04-28 15:55:45 +00:00
briggs e2391a87b6 Add a rudimentary 'trap to kgdb' command if KGDB is defined. This allows
systems with only one serial port for console, etc., to have at least some
basic access to remote-kgdb-over-serial, even if it is a bit awkward.
2003-04-28 02:49:54 +00:00
ragge cddfd23e42 Mobe the SYMTAB_SPACE stuff to ksyms_init, so that it can be used without
DDB compiled-in.
2003-04-25 20:30:57 +00:00
ragge e675595289 db_sym_numargs() disappeared by mistake, restore it. 2003-04-24 21:18:34 +00:00
ragge 4ee3d47c73 Teach DDB to use ksyms instead of it's own symbol table management.
Note: For a.out kernels (beware!) DDB will still use the old stuff.
2003-04-24 20:00:48 +00:00
jdolecek 054da0dc1b make parameter 'name' for db_del_symbol_table() const 2003-04-16 09:00:29 +00:00
enami 0f4835d18b Don't specify string width in the low level function like db_num_to_str.
The pretty printing should be done much higher level, and anyway the
value 10 doesn't make sense.
2003-03-02 13:39:40 +00:00
jmc 1ed82b5b2c Add a synonym for trace - 'bt' and document it 2003-02-13 23:50:33 +00:00
thorpej 1b84adbe5f New callout implementation. This is based on callwheel implementation
done by Artur Grabowski and Thomas Nordin for OpenBSD, which is more
efficient in several ways than the callwheel implementation that it is
replacing.  It has been adapted to our pre-existing callout API, and
also provides the slightly more efficient (and much more intuitive)
API (adapted to the callout_*() naming scheme) that the OpenBSD version
provides.

Among other things, this shaves a bunch of cycles off rescheduling-in-
the-future a callout which is already scheduled, which the common case
for TCP timers (notably REXMT and KEEP).

The API has been simplified a bit, as well.  The (very confusing to
a good many people) "ACTIVE" state for callouts has gone away.  There
is now only "PENDING" (scheduled to fire in the future) and "EXPIRED"
(has fired, and the function called).

Kernel version bump not done; we'll ride the 1.6N bump that happened
with the malloc(9) change.
2003-02-04 01:21:03 +00:00
pk 58005dc9d3 Zombie procs have no lwps. 2003-01-23 12:41:33 +00:00
simonb bbd9776970 Remove variable that is only assigned too but not referenced. 2003-01-20 07:20:01 +00:00
thorpej b78f59b443 Merge the nathanw_sa branch. 2003-01-18 08:51:40 +00:00
yamt 64f7cc2afc make stack trace on i386 work again.
(signed vs unsigned)
2002-11-13 05:59:28 +00:00
thorpej 1f8b8e3411 Avoid a GCC 3.3 strict alias warning. 2002-11-10 03:24:51 +00:00
thorpej aaf0f03bd6 Fix signed/unsigned comparison warnings. 2002-11-10 03:22:28 +00:00
thorpej 50d19d9171 Fix signed/unsigned comparison warnings. 2002-11-10 03:12:17 +00:00
itohy 94b2e6e61d Dump DDB_* and SYMTAB_SPACE options to opt_ddbparam.h rather than opt_ddb.h.
These options are used in limited files but #include "opt_ddb.h" are
everywhere, and changing them caused almost full recompilation.
2002-11-04 06:24:38 +00:00
perry 6858187df6 /*CONTCOND*/ while (0)'ed macros 2002-11-02 07:20:42 +00:00
scw f7982b5823 Another item on the TODO list:
Add support for cpus where sizeof(register_t) is not necessarily
	the same as sizeof(void *). This is the case on SH5 using the
	ILP32 ABI. On this cpu db_expr_t is, necessarily, 64-bits.
	Unfortunately, in ILP32 mode, ddb will only display the low 32-bits
	of any expression, including registers...
2002-08-26 11:35:22 +00:00
scw a82718b34d Casting from a pointer, to a db_expr_t, has to go via an intptr_t.
(db_expr_t == int64_t on sh5, for example).
2002-08-26 11:34:27 +00:00
drochner 49c4cfb2c5 provide a db_vprintf() which is exactly what the name suggests 2002-06-05 17:53:52 +00:00
matt 98b5a4329f Add db_recover 2002-05-13 20:17:20 +00:00
simonb 14ac06f0bd Add a "show event" ddb command to show the event counters. 2002-02-15 11:18:26 +00:00
simonb 4eaa4d66a8 ANSIfy, KNF.
Make some variables and functions static when not used outside of a module.
Make variables in headers extern.
Delete the unused db_find_watchpoint() function.
2002-02-15 07:33:48 +00:00
jhawk 73c2346377 Add db_symstr(), a parallel interface to db_printsym() that
writes to a string rather than outputs to the supplied printer.
This is convenient for disassemblers that are structured to
build a long string and print it later.

Perhaps db_printsym() should be changed to use this interface...
2002-01-05 20:09:52 +00:00
jhawk 605db0bb09 ddb(9) 2002-01-05 01:48:10 +00:00
jhawk a21d1ea7ac Convenience variables (workXX) don't work, so don't document them. 2001-12-31 00:35:21 +00:00
lukem 99bccc3cab - pull in opt_kgdb.h where necessary
- replace opt_kgdb_machdep.h with opt_kgdb.h
- defparam opt_kgdb.h:
	KGDB_DEV KGDB_DEVNAME KGDB_DEVADDR KGDB_DEVRATE KGDB_DEVMODE
- move from opt_ddbparam.h to opt_ddb.h:
	DDB_FROMCONSOLE DDB_ONPANIC DDB_HISTORY_SIZE DDB_BREAK_CHAR SYMTAB_SPACE
- replace KGDBDEV with KGDB_DEV
- replace KGDBADDR with KGDB_DEVADDR
- replace KGDBMODE with KGDB_DEVMODE
- replace KGDBRATE with KGDB_DEVRATE
- use `9600' instead of `0x2580' for 9600 baud rate
- use correct quotes for  options KGDB_DEVNAME="\"com\""
- use correct quotes for  options KGDB_DEV="17*256+0"
- remove unnecessary dependancy on Makefile for kgdb_stub.o
- minor whitespace cleanup
2001-11-20 08:43:19 +00:00
lukem 2565646230 don't need <sys/types.h> when including <sys/param.h> 2001-11-15 09:47:59 +00:00
lukem 1ac69d9cb3 add RCSIDs 2001-11-12 22:54:03 +00:00
thorpej 47514a31be Remove unneeded declarations of the db_machine_init() function. The
ARM ports are the only ones that actually have one, and it is about
to change.
2001-11-09 06:52:23 +00:00
christos e415081a60 PR/14498: Wesley Chen: Identify loaded modules vs. kernel, because we don't
load the elf header with them.
2001-11-08 15:01:35 +00:00
christos 500d44e36c PR/14498: Wesley Chen: Print a return after enumerating the matching symbols. 2001-11-08 15:00:17 +00:00
bjh21 cabab13edd When setting watchpoints, call pmap_update() for each watchpoint, rather
than at the end, since they may be in different pmaps.  This avoids a null
pointer dereference that was causing panics when resuming from DDB on arm26.
2001-10-13 15:17:38 +00:00
chs 3fb05f05f8 use a for loop instead of goto. 2001-09-15 18:20:53 +00:00
thorpej 16c229ea7c Optimization suggested by Bill Sommerfeld: Keep a hint as to the
"earliest" firing callout in a bucket.  This allows us to skip
the scan up the bucket if no callouts are due in the bucket.

A cheap O(1) hint update is done at callout insertion (if new callout
is earlier than hint) and removal (is bucket empty).  A thorough
refresh of the hint is done when the bucket is traversed.

This doesn't matter much on machines with small values of hz
(e.g. i386), but on systems with large values of hz (e.g. Alpha),
it has a definite positive effect.

Also, keep the callwheel stats in evcnts, so that you can view them
with "vmstat -e".
2001-09-11 04:32:19 +00:00
chris 0e7661f023 Update pmap_update to now take the updated pmap as an argument.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.

Currently this is a no-op on most platforms, so they should see no difference.

Reviewed by Jason.
2001-09-10 21:19:08 +00:00
thorpej fae2a1befd Add `show malloc' to dump the internal state of the MALLOC_DEBUG code. 2001-08-17 01:00:10 +00:00
bjh21 286faf2070 Extra sanity checking on ELF headers: Make sure the bootloader actually
loaded (or claims to have loaded) everything we need.
2001-07-31 22:31:47 +00:00
bjh21 34c3239d32 Don't depend on the bootloader's having loaded the .shstrtab section
in order to load the symbol table.  Instead of using the sections
called ".symtab" and ".strtab", use the first SYMTAB section (the
ELF spec says there should currently only be one) and the STRTAB
section that's linked to it.  I believe this is more robust, and it
certainly makes life easier for the bootloader.
2001-07-31 19:14:18 +00:00
atatat 124ae5b65c Add an easy way to dump the message buffer from ddb. 2001-07-31 04:28:16 +00:00
mrg 506cbe39be allow one to #define DB_MAX_LINE and DB_MAX_WIDTH independantly. 2001-07-01 12:16:25 +00:00
simonb 18b2f7e6a1 Add a port to IBM's PPC405GP Reference Board (the "walnut")
by Eduardo Horvath and Simon Burge of Wasabi Systems.

IBM 4xx series CPU features:
 - New pmap and revised trap handler.
 - Support on-chip timers, PCI controller, UARTs
 - Framework for on-chip ethernet and watchdog timer.
General PowerPC features:
 - Add in-kernel PPC floating point emulation
 - New in{,4}_cksum that is between 1.5 and 5 times faster than the
   old version depending on CPU type.
General changes:
 - Kernel support for generic dbsym-style symbols.
2001-06-13 06:01:44 +00:00
matt 9086deaf4d Default to kernel_map if no addr is available. 2001-06-03 00:32:25 +00:00
chs 821ec03ed9 replace vm_map{,_entry}_t with struct vm_map{,_entry} *. 2001-06-02 18:09:08 +00:00
mrg c13e3a6693 use _KERNEL_OPT 2001-05-30 11:40:35 +00:00
ross 818513678d The current API for MD support doesn't directly support the documented /u
option to show reg /u.  Fix this by adding a modif[ier] field to struct
db_variable.
2001-05-13 01:38:53 +00:00
thorpej 1c3a62e066 Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative.  It may be possible to
optimize these a little more.
2001-04-24 04:30:50 +00:00
msaitoh 9767692eee fix invalid reference to $fromconsole via DDB 2001-04-11 23:02:12 +00:00
cgd f7566f8058 Avoid crud after #endif. 2001-02-24 00:00:26 +00:00
cgd e4eb4c6cd5 #include <systm.h> for string fn prototypes. 2001-02-24 00:00:12 +00:00
cgd 42e019d568 put crud after #endif in comments 2001-02-15 21:59:38 +00:00
jhawk 35483d9169 alphabetize db_command tables 2001-02-11 21:12:24 +00:00
jdolecek 9818f641c3 make db_command_table[] const; since there is no way to dynamically extend
or modify the table at the moment, there is no functionality lost.
See also the discussion on tech-kern (Subject: 'machine' DDB command).
2001-01-24 20:54:41 +00:00
jdolecek 8b24036797 Require the machine-dependant DDB commands to be in db_machine_command_table[]
and link it directly to db_command_table[] so that it's not necessary
to do this at runtime. Make db_machine_command_table[] const on all ports.
g/c now unneded stuff, like db_machine_commands_install(), db_machine_init()

Patch written by enami.
2001-01-22 13:56:55 +00:00
jdolecek d5d431e8ae make db_[e]regs[] const 2001-01-18 10:54:27 +00:00
enami 1199c16835 db_command_table needs to be writable at least when DB_MACHINE_COMMANDS
is defined.
2001-01-18 08:52:26 +00:00
jdolecek 9aa0a0185f constify a little 2001-01-17 19:50:03 +00:00
jmc 5649071c21 Add x/m option functionality 2000-12-28 07:30:06 +00:00
jhawk 33e37f6d03 When we hit a breakpoint in a process, print the pid of the process as
well as the command name (p_comm) of the process.
2000-12-20 15:42:37 +00:00
thorpej 366b23111a Make sure values for a %llx are long long. 2000-11-28 21:44:34 +00:00
eeh 054819083c Restore the top level `callout' command. 2000-11-28 19:27:46 +00:00
eeh 6a7e0164dd Implement db_show_callout() again. 2000-11-28 19:20:37 +00:00
chs 55a751c9d5 add ddb commands "show uvmexp" and "show ncache".
the former used to be "call uvm_dump", the latter is new.
2000-11-24 07:25:50 +00:00
tv 0f6c5303e1 Missed change of parameter for %r->db_format_radix() change. 2000-08-11 22:50:47 +00:00
tv 242cedc18c Add two new functions, db_format_radix() and db_format_hex(), which supplant
the former %r and %z nonstandard kprintf strings.
2000-08-09 19:51:44 +00:00
tv 181f4183a5 Change kprintf attribute to printf. 2000-08-09 15:13:29 +00:00
jhawk 67c55e543e Fix CTRL-T to behave properly. It should swaps the current and previous
characters, not the previous and second-to-previous.
2000-07-28 16:33:39 +00:00
jeffs 9349a51d66 Provide some info on what db_trap_callback() is for in the code. 2000-07-18 20:51:07 +00:00
jeffs 0e0c4d24e8 Move platform db_trap callback from arch/mips into ddb as suggested by
jhawk.  This callback is used by platform code to manage things like
watchdogs that should be disabled while in ddb.  Done as a callback
for processors such as mips that support lots of different systems.
2000-07-17 19:57:49 +00:00
eeh 3acffdb4a5 Update TODO list item #7. 2000-07-10 00:50:22 +00:00
mycroft 39ff4faf53 Fix compiler warning. 2000-07-09 01:52:17 +00:00
eeh 74e5e4f040 Fix for:
7.      Numbers starting with [a-f] should work, but symbols
        of the same name should have priority.
2000-07-08 21:35:32 +00:00
sommerfeld 8951fce5df printf format safety 2000-07-08 17:10:22 +00:00
jhawk e0b6c173e7 s/preserving ... bytes of symbol table/using ... bytes of symbol table/
"preserving" implies that the data may be copied and might otherwise
be freed, and that other data in the symbol table or sections of
the kernel might be freed, however there is no mechanism for these
things to take place, so "using" is clearer.
2000-07-07 21:55:18 +00:00
jhawk 21322c88b6 Observe deficiency in printfs reporting symbol table problems
before we have a message buffer.
2000-07-07 21:51:38 +00:00
jhawk d58fe92d14 Detect ELF sections (string and symbol tables) by looking them
up by name (in .shstrtab) instead of guessing based on section
type (and throwing away the small one). In addition to being cleaner,
multiple symbol tables are no longer and error condition, so
booting netbsd.gdb no longer results in ddb being unable to use
*any* symbols.
2000-07-07 21:50:26 +00:00
jhawk 92276a6ce3 "set" now displays the name of the variable, old value, and new value,
just as "write" does.
2000-07-05 16:29:25 +00:00
mrg f324eef2d2 remove include of <vm/vm.h> 2000-06-27 17:55:38 +00:00
mrg 2f159a1bac remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h>
	<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
	<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
	<vm/vm_object.h> -> nothing
	<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
2000-06-26 14:20:25 +00:00
jhawk a639b800ee In db_command(), fix indentation and add a missing db_skip_to_eol() which
previously caused the next command following a ","-style repitition
to not be properly executed.
2000-06-17 05:57:41 +00:00
sommerfeld cb31de55ed In the "reboot" and (badly misnamed) "sync" commands, clear db_recover
before calling cpu_reboot() (which never returns) so we can debug
faults occurring in cpu_reboot().
2000-06-10 16:31:42 +00:00
jhawk 74ee4f350f Only define db_show_arptab if NARP>1;
pointed out by cgd in kern/10314
2000-06-08 21:06:46 +00:00
jhawk 84ceb5dfe7 Fix long-standing inconsistency between manapage and code.
The "ditto" character is " (double-quote); not , (comma) as
indicated in the manpage; and not ' (single-quote) as indicated
in the man.old -style manpage from which the mdoc manpage was derived.

Some other versions of ddb use single-quote for this feature, and this
part of the code may change again in the near future, but the documentation
now affects reality now.
they
2000-06-07 13:24:11 +00:00
soren 6d6d07abe5 #include <sys/systm.h> for the snprintf() prototype. 2000-06-06 18:50:56 +00:00