Commit Graph

272 Commits

Author SHA1 Message Date
drochner 7005d4ef81 make the argument of db_write_bytes const (sorry for the signature change) 2005-06-01 15:57:23 +00:00
drochner 4d205d8853 more constification fallout 2005-06-01 12:25:27 +00:00
jhawk a74233676c minor updates: vax port kludge is in trace, not kill. spelling.
no 0t output in ps.
2005-05-30 05:58:52 +00:00
christos 02e608f6b8 Add lots of const. 2005-05-29 21:31:05 +00:00
yamt 8ca4d66b5e move decl of db_machine_command_table from db_interface.h to db_command.c
to avoid an array of incomplete type.  found by gcc4.
2005-04-29 10:40:16 +00:00
christos 23b9ddb316 remove stray error(1) comment. 2005-03-28 01:05:13 +00:00
perry 477853c351 nuke trailing whitespace 2005-02-26 22:58:54 +00:00
cube 9367bbf87b The way I handled /dev/ksyms requests vs. kernel requests was completely
broken.  Inside the kernel, we always have to use the real values of the
st_name fields, and only do the math when the request comes from userland.

No need for ksyms_getval_from{kernel,userland} hack anymore.  However, a
different version will be asked for pull-up in -2{,-0}, one that doesn't
break the API, that is.

Fixes PR#29133 from Jens Kessmeier.
2005-02-15 21:09:57 +00:00
chs bb5a198f3d reduce db_maxoff from 256MB to 1MB, that should be plenty. 2005-01-16 23:38:47 +00:00
reinoud 22f1132820 Implement ddb setting that allows all ddb output to be teed into the
kernel message buffer/log. Its off by default and can be switched on in the
kernel configuration on build time, be set as a variable in ddb and be set
using sysctl.

This adds the sysctl value
	ddb.tee_msgbuf = 0
by default.

The functionality is especially added and aimed for developers who are not
blessed with a serial console and wish to keep all their ddb output in the
log. Specifying /l as a modifier to some selected commands will also put
the output in the log but not all commands provide one nor has the same
meaning for all commands.

This feature could in the future also be implemented as an ddb command but
that could lead to more bloat allthough maybe easier for non developpers to
use when mailing their backtraces from kernel crashes.
2004-09-29 23:54:11 +00:00
reinoud 8faf51b906 Note that point 32 (ddb output to msgbuf) is Work In Progress and is about
to be committed after more testing and cleanup/review.
2004-09-28 23:02:58 +00:00
reinoud ce5f43b0de Add an item to help developers without serial consoles. 2004-09-28 19:54:27 +00:00
nathanw 0ac1c38100 Make ddb's "show sched_qs" aware of big-endian sched_qs arrangements. 2004-07-27 02:15:07 +00:00
atatat d37080bc2f Sysctl descriptions under ddb subtree 2004-05-25 04:31:48 +00:00
atatat 1ee5d694aa That's not supposed to be there. Sorry. 2004-04-27 04:03:28 +00:00
itojun d2f1c029b9 kill sprintf, use snprintf 2004-04-21 18:40:37 +00:00
atatat 19af35fd0d Tango on sysctl_createv() and flags. The flags have all been renamed,
and sysctl_createv() now uses more arguments.
2004-03-24 15:34:46 +00:00
wiz d20841bb64 Uppercase CPU, plural is CPUs. 2004-02-13 11:36:08 +00:00
atatat 13f8d2ce5f Dynamic sysctl.
Gone are the old kern_sysctl(), cpu_sysctl(), hw_sysctl(),
vfs_sysctl(), etc, routines, along with sysctl_int() et al.  Now all
nodes are registered with the tree, and nodes can be added (or
removed) easily, and I/O to and from the tree is handled generically.

Since the nodes are registered with the tree, the mapping from name to
number (and back again) can now be discovered, instead of having to be
hard coded.  Adding new nodes to the tree is likewise much simpler --
the new infrastructure handles almost all the work for simple types,
and just about anything else can be done with a small helper function.

All existing nodes are where they were before (numerically speaking),
so all existing consumers of sysctl information should notice no
difference.

PS - I'm sorry, but there's a distinct lack of documentation at the
moment.  I'm working on sysctl(3/8/9) right now, and I promise to
watch out for buses.
2003-12-04 19:38:21 +00:00
dbj 6a88e9174b add "show mount" ddb command 2003-11-18 18:26:18 +00:00
cube d3730f1c68 o Fix a bug in ksyms that changed the real meaning of st_name entries for
symbols, and made it impossible for the kernel to use that value, and
  correctly find symbols from LKMs.
o Allow LKM users to use DDB to debug the entry function of a LKM by
  loading the symbol table with the temporary name /lkmtemp/ before calling
  it, and then renaming it once we know the module name.

Approved by ragge@.
2003-11-17 10:16:18 +00:00
scw c55851c88b Fix format string warnings for platforms where
sizeof(db_addr_t) > sizeof(long). e.g. ILP32 on sh5.
2003-11-09 20:52:18 +00:00
christos fe659fa011 fix uninitialized variable 2003-10-25 08:48:11 +00:00
chs d2266994e2 add "b" as a synonym for "break", since someone added "bt"
and made "b" an ambiguous prefix.
2003-10-10 15:21:24 +00:00
scw 5efdd1f9f3 Tweak the previous change to ensure symbol addresses are correctly
sign-extended on cpus with 64-bit registers.
2003-10-05 11:17:47 +00:00
thorpej c7a178e4a9 Add a "show sched_qs" command to dump the run queues. Format is:
1	pid.lid (p_comm)
	pid.lid (p_comm)
 ...

If a queue has procs, but no sched_whichqs bit, it shows:
!1	pid.lid (p_comm)
2003-09-20 03:02:03 +00:00
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