366 Commits

Author SHA1 Message Date
marcel
6a4e53f39d Add threading support. 2007-05-01 18:29:34 +00:00
kib
5b0899cab6 Unbreak the kgdb stepping over the special frames on i386 after rev. 1.117 of
i386/i386/exception.s.

No objections from:	marcel
2007-03-01 13:56:08 +00:00
kib
f680330859 Rename lookup() to kgdb_lookup() and make it global (for use in trgt_i386.c).
No objections from:	marcel
2007-03-01 13:55:15 +00:00
emaste
13b4da30e0 Avoid writing uninitialized stack data into a thread's MMX/SSE state by
first getting the current state with td_thr_getxmmregs_p.  Without this,
debugging a threaded app that uses libthr resulted in kernel panics or
spurious SIGFPEs for me.

(As of revision 1.6, sys/i386/i386/ptrace_machdep.c masks off the
reserved bits in the mxcsr register, which prevents the kernel panics.)

Architectures without PT_GETXMMREGS are not affected.

MFC after:      1 week
2007-02-20 18:10:13 +00:00
rodrigc
5ecf1e9826 Try to avoid a possible infinite loop when parsing an invalid kernel dump file.
PR:		108229
Submitted by:	Jessica Han <jessicah juniper net>
Reviewed by:	marcel
MFC after:	1 week
2007-01-25 06:39:25 +00:00
ru
fc876fdc9e Bump document date for the previous change. 2006-10-21 17:39:35 +00:00
jmg
d571cf9da2 Turn on gdbserver for the arch that supports it.. 2006-10-21 17:27:36 +00:00
jhb
21fce90fb9 Trim trailing whitespace. 2006-10-16 20:07:23 +00:00
jhb
a75ada9559 Restore the 'proc' and 'tid' commands which allow one to switch to the
first thread in a process or to a specific thread via PIDs and TIDs,
respectively.

Submitted by:	kan
Approved by:	marcel
2006-10-16 20:06:32 +00:00
obrien
30402bd446 Document '-w' from main.c rev. 1.11. 2006-10-11 14:42:43 +00:00
imp
ccf269aef7 Add cross debug support to arm.
Submitted by: cognet@
2006-09-14 07:51:52 +00:00
imp
01cb50b4e4 Architecture specific portions of gdb for arm.
Submitted by: cognet@
2006-09-14 06:49:34 +00:00
jhb
3bdf41a5e4 Use the pcb in stoppcbs[] if it is present for threads that were running
on other CPUs in system when a dump is written.

Submitted by:	ups
Reviewed by:	marcel
MFC after:	3 days
2006-08-25 16:20:17 +00:00
marcel
693fc69022 Add initial support for kgdb(1) on PowerPC. 2006-08-24 21:53:49 +00:00
marcel
947473fc96 Add basic support for PowerPC. This excludes kgdb(1). 2006-08-24 02:44:59 +00:00
jhb
bdd032b9cb Remove special handling for PC == 0. With this, kgdb can now properly
unwind across a page fault due to a null function pointer.  It does a
better job than ddb now in fact.

Reviewed by:	marcel
MFC after:	3 days
2006-08-23 19:16:17 +00:00
ru
557b37c8db Remove alpha-specific stuff.
Approved by:	marcel
2006-08-23 12:14:26 +00:00
obrien
100c4dc194 Add initial platform support.
Submitted by:	cognet
2006-07-22 15:27:18 +00:00
ru
2517bd3f8f Clean the product of patch(1). 2006-04-10 09:00:19 +00:00
jmg
eb74e00e0c bring in the necessary changes to make gdbserver compile and work (at
least on i386)...  fbsd-* changes started out as s/linux/fbsd/g and then
additional changes to handle different ptrace defines among other things..
(use vfork to eliminate a race for progress group creation)

reg-i386.c is generated by regdat.sh..
2006-04-06 22:24:01 +00:00
jmg
0bf49b8fa9 This commit was generated by cvs2svn to compensate for changes in r157571,
which included commits to RCS files with non-trunk default branches.
2006-04-06 21:32:05 +00:00
jmg
b76dbd3b4f import gdbserver Linux files renamed to fbsd... I have made gdbserver
work w/ minor modifications to these files, so keep the history...

These are stock files from GDB 6.1.1 w/ only the filename s/linux/fbsd/g
2006-04-06 21:32:05 +00:00
davidxu
23067f406e Introduce a new proc service routine ps_linfo() to get LWP info. 2006-02-07 02:29:55 +00:00
davidxu
0fdc8d7b72 1. Eliminate compile warnings.
2. Add command 'thread signal' to print out current thread's signal mask
   and pending signals.
2006-02-06 06:07:56 +00:00
kan
de096a0825 Add -w parameter which tells kgdb to open kmem-based targets in read-write
mode. This allows one to use kgdb on /dev/mem and be able to patch memory
on a live system. This is identical to what -wcore used to do in previous
gdb versions for FreeBSD.

Requested by:	wpaul
2006-01-04 23:17:52 +00:00
marcel
52c3518dcc Fix dump of the unread portion of the kernel message buffer.
PR: bin/87964
Submitted by: Frank Mayhar	frank at exit dot com
2005-10-26 02:22:28 +00:00
peter
b568c68740 Unbreak - remove leftover reference to pcb_rflags. 2005-09-28 07:40:27 +00:00
marcel
95c333b219 Claim frames corresponding to tl(0|1)_intr and tl0_trap as well. I
think that's the lot, but it's hard to understand the exception code
by mere glancing at it.

MFC after: 1 week
2005-09-11 06:52:14 +00:00
marcel
afc227eedb Unwind across intrframes as well. While here, better handle bottom of
stack by claiming the frame when the IP is 0. It's a bit of a kluge,
but avoids screens full of bogus frames.

MFC after: 1 week
2005-09-11 05:55:24 +00:00
marcel
5c551253ea Unwind across intrframes as well.
MFC after: 1 week
2005-09-11 05:36:30 +00:00
marcel
8b1d37e93e Unwind across trap frames. Handles all entry points, except the EPC
syscall. This is an entry from userland anyway.

MFC after: 1 week
2005-09-11 00:47:03 +00:00
marcel
63c6575f86 Unwind across trapframes. All kernel entries are handled.
MFC after: 1 week
2005-09-10 23:11:54 +00:00
marcel
1537de4a54 Unwind across trap frames. This adds most of the meat. The sniffer
just needs to be taught about all the other entry points and the
unwinder needs to be taught about the frame variation between them.

MFC after: 1 week
2005-09-10 22:03:09 +00:00
marcel
afef46c1a0 Unwind across trap frames. This adds most of the meat. The sniffer
just needs to be taught about all the other entry points and the
unwinder needs to be taught about the frame variation between them.

MFC after: 1 week
2005-09-10 21:01:36 +00:00
marcel
853fa27dc1 Unwind across trap frames. This adds most of the meat. The sniffer
just needs to be taught about all the other entry points and the
unwinder needs to be taught about the frame variation between them.

MFC after: 1 week
2005-09-10 20:12:52 +00:00
marcel
d05b9c6e82 Add a kluge to allow kgdb(1) to inject its own frame sniffer in the
list of frame sniffers so that trapframes can be detected. The kluge
is needed because this version of gdb only supports appending a
sniffer to the list of sniffers and the moment kgdb gets a chance to
add its own frame sniffer, the target's default frame sniffer is
already in the list. Since the default frame sniffer claims any
frame thrown at it, kgdb's frame sniffer never gets to smell (a
process much akin to tasting, but with lesser chance of hurling :-)

This commit adds dummy frame sniffers that never claim a frame and
as such don't fix anything yet. However, we now have frame sniffers
and they are being called, so it's just a matter of adding meat to
the bones and we'll be able to properly unwind across trapframes.

MFC after: 1 week
2005-09-10 18:25:53 +00:00
marcel
fddce319d2 Fix backtraces. Supply registers from the register window.
MFC after: 3 days
2005-08-16 05:13:57 +00:00
marcel
b8c1757032 o Remove the obscure tid command, because it does what the thread
command does, but worse.
o  Remove the obscure proc command, because it does what the thread
   command does, but not unambigously.
o  Move the PID to the extra thread info, where it makes sense and
   where it doesn't confuse users. The extra thread info holds some
   process information, to which the PID belongs.
o  Implement the to_find_new_threads target method by having it call
   the target beneath us if we're not using KVM. This makes sure that
   new threads are found when using the remote target.

o  Fix various core dump scenarios:
   -  Implement the to_files_info target method. Previously the
      'info target' command would cause a NULL pointer dereference.
   -  Don't assume there's a current thread. We're not initialized
      in all cases. This prevents a NULL pointer dereference.
   -  When we're not ussing KVM, have the to_xfer_memory target
      method call the target beneath us. This avoids calling into
      KVM with a NULL pointer.

MFC after: 1 week
2005-08-06 19:22:27 +00:00
marcel
dd65af4600 o As mentioned in the previous commit: make the KVM error buffer
static.
o  Register a function with atexit(3) to close the KVM object if
   we have one open.
o  Show the unread portion of the kernel's message buffer before
   presenting the prompt. It's bound to provide some useful info.
o  Don't call kgdb_target() twice. It results in having all threads
   listed twice.

MFC after: 1 week
2005-08-06 19:07:07 +00:00
keramida
5f3be39f8f Spell "currently" correctly. 2005-07-28 15:59:52 +00:00
peter
756b97ccf0 kvm_openfiles() uses the supplied buffer for storing error messages
in future calls, so we can't free it here.  The right place to free the
buffer would be to be after kvm_close(), but we don't do that yet.  A
static buffer would work too.

Reviewed by:  marcel (who has other plans for this anyway)
Approved by:  re
2005-06-24 00:50:12 +00:00
dfr
874478d7fd Add support for XMM registers in GDB for x86 processors that support
SSE (or its successors).

Reviewed by: marcel, davidxu
MFC After: 2 weeks
2005-05-31 09:43:04 +00:00
davidxu
f305634ad3 Don't try to enable event reporting for core file, it is not writable. 2005-05-06 11:01:15 +00:00
davidxu
a072bd5e74 Report events from thread library. 2005-04-12 03:04:04 +00:00
davidxu
f49d76552d Print thread address.
PR: threads/76821
2005-04-05 11:40:58 +00:00
marcel
d810912cf5 Implement and document the -q and -f options with their corresponding
long form (-quiet and -fullname resp.) Bump documentation date.

PR: bin/78031
MFC after: 5 days
2005-03-02 18:40:04 +00:00
obrien
33b81ea30f .It the -v option. 2005-03-01 20:41:38 +00:00
kan
a73cb310d2 Restore r1.2 change to use TARGET_ARCH.
Submitted by:	kris
2005-02-20 23:06:03 +00:00
kan
858ff332fa Attempt to make kgdb little more useful and easy to use. Properly initialize
it to recognise what ABI  to use on amd64 (and possibly others) platform.
Display PID and process name as a part of the 'info threads' output, TIDs
alone are too confusing. Introduce new commmands 'tid <tid>' and 'proc <pid>'
to accompany gdb's default 'thread <thread num>' to make the task of switching
between different contexts easier.
2005-02-20 22:55:07 +00:00
marcel
9a64d9e899 Remove mention of the -k and -wcore options because they don't
exist anymore.

PR: doc/70943
Submitted by: Jun <junsu at delphij dot net>
Reviewed by: delphij
2005-02-15 07:13:51 +00:00