152 Commits

Author SHA1 Message Date
ru
5db2b9d5b3 For variables that are only checked with defined(), don't provide
any fake value.
2004-10-24 15:33:08 +00:00
ache
e389b7e70d Update to readline 5.0 2004-10-18 10:13:24 +00:00
brooks
230e08557d If the argument to the -r flag starts with a ':' or a '|', don't try to
make sure it is a device.  GDB special cases these prefixes and treats
:#### as a tcp port on localhost and executes what ever follows '|'.

This allows kgdb to debug via dconschat.

Discussed with:	marcel
2004-09-03 07:11:42 +00:00
davidxu
ef41142de6 Only compile fbsd-thread.c on amd64 and i386, other architectures
have not been tested yet.
2004-08-22 10:59:33 +00:00
davidxu
7afd3579e8 Fix comments, most are style fix. 2004-08-22 09:05:57 +00:00
davidxu
c47e28f44c Fix some text messages. 2004-08-22 08:48:56 +00:00
davidxu
9ffe386e73 Add code to support statically linked binary and .core file of threaded
program.
2004-08-22 05:53:38 +00:00
marcel
0058f637d6 Improve the usage. Without any arguments, kgdb(1) works on /dev/mem
with the currently running kernel image. Otherwise, one of -c, -n or
-r is expected for working on a particular core file (-c), working
on a saved dump (-n) or working remotely (-r). When working on a
saved dump, a kernel may be omitted.
For a remote debugging session (-r), kgdb(1) will use the specified
device.
2004-08-15 02:39:20 +00:00
davidxu
c327574af2 Initialize thread_db module. 2004-08-10 12:20:00 +00:00
davidxu
8a33af7a5a Initialize thread_db module. 2004-08-08 22:46:22 +00:00
davidxu
be987aa523 1. Add some code check if thread suspending or resuming is failed.
2. Add code to retrieve thread tls address.
2004-08-08 22:45:36 +00:00
marcel
824264d2f4 Hook kgdb into the build. 2004-07-25 05:32:50 +00:00
marcel
79ca58867f Add the beginnings of kernel debugging support. the kgdb(1) tool
is basicly a shell on top of libgdb that knows about kernel threads,
kernel modules and kvm(3). As the word "beginnings" implies, not
all of the features have been implemented yet. The tool is useful
and I'd like feedback on the taken route.

The simplest way to debug a kernel core file is:
	kgdb -n 0

This opens /var/crash/vmcore.0 with the corresponding kernel in
the object directory (kernel.debug is used if it exists).

Typical things that need to be added are:
o  Auto loading of kernel modules,
o  Handling of trapframes so that backtraces can be taken across
   them,
o  Some fancy commands to extract useful information out of a core
   file,
o  Various (probably many) other things.
2004-07-25 05:29:15 +00:00
marcel
8fa131ee77 o ps_pd{read|write} and ps_pt{read|write} are obsolete interface
functions. Only ps_p{read|write} remains.
o  Remove ps_getpid. We don't need it now.
2004-07-17 17:08:13 +00:00
davidxu
9ff80f3e79 ptrace's first parameter is command not pid. pointy hat to me. 2004-07-16 06:11:48 +00:00
marcel
4990faa208 Update config.h to account for the prgregset_t and psaddr_t types
that have been added to <sys/procfs.h>. This change has no effect
because the source file that would be affected is not compiled on
FreeBSD. Hence, this is for completeness only.
2004-07-16 05:03:42 +00:00
davidxu
f478e0fbc2 Add libthread_db assisted debugging support module. 2004-07-15 04:51:04 +00:00
obrien
aedb4c2148 Prepare for upcoming Binutils house cleaning. 2004-07-06 21:55:11 +00:00
marcel
1689691aa6 We don't have to reach into binutils/doc anymore for inc-hist.diff
The file was repo copied into our doc directory.
2004-06-27 03:33:17 +00:00
bde
b9b4822364 Fixed world breakage in the NOSHARED=yes case (missing library).
Fixed some style bugs.
2004-06-26 08:48:50 +00:00
marcel
dcb884d098 Add bmake glue for gdb 6.1.1. Supports alpha, amd64, i386, ia64
and sparc64.

Note that the debugger doesn't support threading, nor kernel
debugging yet.
2004-06-25 06:48:54 +00:00
sheldonh
ee600f404c Reconnect gdb info file to the build.
Submitted by:	Szilveszter Adam <sziszi@bsd.hu>
2002-07-01 07:58:18 +00:00
ache
6fec02460c Upgrade for readline 4.2 2001-04-11 04:27:10 +00:00
peter
72ba83a59e A bandaid to try and make this buildable. This should probably be
rechecked by somebody who knows what is meant to happen here. The new
libreadline rluser.texinfo file duplicates the '@defcodeindex bt' entry.
2000-03-20 10:52:28 +00:00
dfr
c3bff79c67 Remove old bmake framework for gdb. It has moved to live next to binutils. 1999-05-02 19:51:47 +00:00
luoqi
ff48ed9c3e Make gdb work with kernel after the SMP vmspace sharing changes. 1999-04-28 01:27:55 +00:00
bde
1b04986c84 echo -> ${ECHO}. 1999-04-03 07:04:53 +00:00
bde
34ec08b0e2 Fixed breakage of gdbreplay's and gdbserver's BINDIR in previous commit.
They may belong in /usr/libexec/{aout,elf}, but objformat doesn't
support that.

Fixed bogus `?=' assignments for BINDIR.
1998-10-15 14:15:09 +00:00
peter
3ed74bd188 Install gdb in /usr/lib/aout or /usr/lib/elf depending on format. 1998-10-15 00:15:01 +00:00
jdp
fc9aaf05cb Fix GDB so that it can handle ELF core dumps. 1998-09-14 22:49:02 +00:00
jb
13a816f577 Missed some BINFORMATs. Fingers! Can't live with 'em. Can't live without 'em. 1998-08-30 02:46:35 +00:00
jb
ae7da114f6 BINFORMAT -> OBJFORMAT ready for E-day. I tossed a coin to decide this
one. We'll probably need to revisit gdb after E-day.
1998-08-30 02:01:07 +00:00
bde
755fd03ef8 Fixed printf format errors. 1998-06-30 20:48:45 +00:00
bde
400020b8c9 Don't attempt to read process context from the kernel when (the
kernel's) curproc is null.  This fixes endless recursion in
xfer_umem() for attempts to read from user addresses, in particular
for attempts to read %fs and %gs from the pcb for `info reg'.
1998-05-12 16:49:13 +00:00
bde
2fe6b18aba Simplified using new yacc rules. This is cosmetic - the old rules
worked because .ORDER prevented problems from concurrent generation
of multiple parsers (and their headers), and there were no missing
dependencies because the generated headers were not actually used.
1998-05-04 17:56:22 +00:00
bde
786ba30d95 Inherit BINDIR properly. 1998-05-01 14:48:06 +00:00
bde
141ed304a3 Fixed apparent bitrot (=' changed to ?=') in the definition of BINDIR
in the previous commit.  Just don't define it here at all.  This works
now that the default is inherited properly.
1998-05-01 14:44:00 +00:00
bde
cf6a14c047 Removed self-inclusion-prevention ifdef. It is unnecessary now that
bsd.man.mk doesn't include ${.CURDIR}/../Makefile.inc.

Removed GDBDIR-redefinition-prevention ifdef.  It hasn't done anothing
for a long time, if ever.  The directory is defined to the same value in
each subdir and had the same value because all subdirs are at the same
level.  Keep defining it in the subdirs since that is more flexible and
no more verbose.

Prepare to inherit BINDIR by including ../Makefile.inc.
1998-05-01 14:37:36 +00:00
bde
45937f1696 Oops, This should have been committed with the Makefile change that
requires the new file.

Fixed stale near-copy of contrib/libreadline/doc/hsuser.texinfo.  Patch
it at build ntime, and only keep the patch for it here.

Don't keep a copy of contrib/gdb/gdb/doc/all-cfg.texi here.  Link to it
at build time.
1998-05-01 14:13:00 +00:00
bde
e04d2296e3 Fixed dependencies.
Fixed stale near-copy of contrib/libreadline/doc/hsuser.texinfo.  Patch
it at build ntime, and only keep the patch for it here.

Don't keep a copy of contrib/gdb/gdb/doc/all-cfg.texi here.  Link to it
at build time.
1998-05-01 14:08:30 +00:00
dfr
9adf2e878f Add support for ELF shared libraries. Also use bfd from the binutils in that
case rather than gdb's own copy.
1998-04-30 08:03:50 +00:00
bde
40275f52e3 Removed vestiges of use of beforedepend target. 1998-03-19 15:21:19 +00:00
bde
6682846885 Use foo/bar.a' instead of -Lfoo -lbar' for linking to static internal
libraries, so that `ld -f' in can create correct dependencies for
yet-to-be-built libraries.
1998-03-07 08:55:00 +00:00
bde
7fdb812e6b Fixed printing of %fs and %gs for live kernels.
Only print the current pcb on startup.  Printing it every time a utility
routine was called messed up the register dump for live kernels.
1998-02-13 02:45:26 +00:00
bde
b0334344b1 Fixed accesses to addresses between VM_MAXUSER_ADDRESS (normally
0xefbfe000) and kernel_start (normally 0xf0100000).

Things are unnecessarily (?) difficult because procfs is used to
access user addresses in the live-kernel case although we must have
access to /dev/mem to work at all, and whatever works for the
dead-kernel case should work in all cases (modulo volatility of
live kernel variables).  We used the wrong range [0, kernel_start)
for user addresses.  Procfs should only work up to VM_MAXUSER_ADDRESS,
but it bogusly works for reads up to the address 2 pages higher
(the user area, including the kernel stack, is mapped to where the
user area used to be (WTUAUTB)).  Procfs can not work at all for
addresses between WTUAUTB and kernel_start.

Now we use procfs only to access addresses up to VM_MAXUSER_ADDRESS.
Higher addresses are translated normally using kvtophys(), so the
user ptd is used for addresses below the real kernel start (0xf0000000;
see INKERNEL()) and nothing is found WTUAUTB.

Strange accesses that cross the user-kernel boundary are now handled,
but such ranges are currently always errors because they necessarily
overlap the hole WTUAUTB.

Short reads are still not handled.
1998-01-19 15:27:56 +00:00
bde
314c0741a9 Removed `kstack' and associated mistranslations in kvtophys().
Correct translations would have been null.  However, kstack was
the top of the kernel stack instead of the base of the kernel stack
like it was when the kernel exported it, so the area above the
kernel stack was mistranslated and the kernel stack was not
translated.  This bug was depended on to compensate for the wrong
value of kstack - to read the pcb, instead of just using the address
of the pcb, we used the mistranslated address of kstack, which
happened to be the same (curpcb = kstack - 0x2000).

This area is simpler than it used to be now that the kernel stack
address is per-process.  The code still seems to be more complicated
than necessary - the `found_pcb == 0' case seems to be unused.
1998-01-19 14:27:41 +00:00
bde
938d820d5a Fixed endless loop for `p/x *(int *)0xf0000000'. kvm_uread() in
gdb was cloned from the buggy version of kvm_uread() in libkvm and
had the same bugs.  It looped endlessly on EOF and checked errno
without setting it in the lseek() error check.  The first bug caused
gdb to loop endlessly for reads from addresses between the end of
the user area and the start of the kernel text.  kvm_uread() should
not be used for addresses beyond the end of the user area, but is
due to bugs elsewhere.
1998-01-18 13:18:55 +00:00
bde
731bdc143f Don't override FRAME_CHAIN(). If the current frame is valid, then
the previous frame is in the usual place even for traps, interrupts
and syscalls in the kernel, because the assembly language stubs
don't change the frame pointer.  The previous frame is just not for
the calling function.  We may as well depend on this as on magic to
determine the trap frame address.  The magic is in FRAME_SAVED_PC()
which elides the correct number of stubs (1) to go back to a pc that
matches the previous frame.

Removing fbsd_kern_frame_chain() fixes bugs in it.  Xsyscall was
misspelled as _Xsyscall (gdb removes one leading underscore), so
the tf_syscall frame type was never found.  This was harmless
because tf_normal works in all cases in fbsd_kern_frame_chain()
and Xsyscall is spelled correctly in fbsd_kern_frame_saved_pc()
where it matters.  There were style bugs on almost every line,
starting with a primary indent of 7.
1998-01-18 12:35:48 +00:00
bde
4c528f38b0 Fixed sloppy definitions of SIGTRAMP_START and SIGTRAMP_END. The old
range was a little too large.
1998-01-18 11:51:48 +00:00
bde
a909b80bf1 Pass the system name to dmesg. Rev.1.7 only works when the symbols in
/kernel aren't too different form those in the kernel being debugged.
1998-01-17 17:07:53 +00:00