Commit Graph

30 Commits

Author SHA1 Message Date
mycroft 2b4ccae3e9 Remove pt_blockuc. If the debugger attempts to muck with the state of a
blocked thread, return an error; this should be done through ptrace(2).
2004-10-12 22:17:56 +00:00
chs 94a458cedd enhance MI pthreads code to support hppa:
- statically initialize all global spin locks.  on hppa, 0 means
   the lock is held, so leaving them with the default value doesn't work.
 - compare functions pointers using a function-pointer type rather than
   an integral type.  on hppa, function pointers may be indirect,
   so we need to trigger gcc to emit calls to the function-pointer
   canonicalization routines in the millicode.
 - on hppa the stack grows up, so handle that using the STACK_* macros.
2004-07-18 21:24:52 +00:00
nathanw 993713df32 Recognize thread objects in addr2sync. 2004-07-06 19:33:53 +00:00
nathanw 3a30736db7 td_sync_info(): explicitly clear the "locked" flag when unlocked,
instead of leaving it as garbage.
2004-07-01 18:59:52 +00:00
nathanw aaad58dd18 td_map_addr2sync(): recognize read-write lock objects. 2004-07-01 18:27:36 +00:00
scw 0f10094026 Cast integer to pointer types via intptr_t.
Problem reported by Havard Eidnes while building evbsh5.
2004-06-11 07:28:05 +00:00
martin 7347018381 Ouch. Lint didn't like the last change on sparc64. The reason:
<machine/reg.h> plays dirty naming tricks on sparc64 to allow 32bit
compatibility (reg ->  reg64 and the parameter in
PTHREAD_REG_TO_UCONTEXT() is called reg). This probably needs to be
fixed separately, but for now reordering the includes will do.
2004-06-10 18:06:19 +00:00
nathanw 41e871fe18 Avoid depending on declarations of struct reg and struct fpreg by using
the proc_regsize() callback to allocate reg and fpreg buffers as part of the
proc state (lazily initialized by the PT_STATE_RUNNING case of
td_thr_suspend()).

Fixes build on sh3 (and probably sh5) platforms.
2004-06-10 01:38:29 +00:00
nathanw 568717a98d Get the td_thread_t * corresponding to nthread to mess with its lwp
data, rather than trying a nonsensical operation on a caddr_t from a
different address space.

Moral: test-compile in the same tree you're working in.
2004-06-03 15:22:08 +00:00
nathanw 387534cc0a Update cached LWP values when suspending the running thread. 2004-06-03 00:31:28 +00:00
nathanw bff67c76fe Add an offset to the thread ID numbers, because GDB really doesn't
cope with "thread 0".
2004-06-03 00:20:24 +00:00
nathanw 9edc974b8c Add support for reporting and examining suspended threads. 2004-06-02 21:18:25 +00:00
nathanw 24ddb5f789 td_map_lwps(): there's always one lwp. This makes the call work before
the thread system has started.

Additionally, mark not-on-LWP threads explicitly, so that there's no
risk of using stale information.
2004-06-02 21:15:42 +00:00
nathanw 92733106a3 Add td_thr_suspend() and td_thr_resume(), to suspend and resume
threads from the context of a debugger.
2004-06-02 21:13:42 +00:00
cl e9598cefd0 Actually test pthread__dbg to check if another gdb is attached (and not
pthread__tsd_destructors whose address happens to be in addr).
2004-02-21 20:48:11 +00:00
nathanw 26ed28badd td_thr_getregs(): Return errors when the requested bit of register state
isn't in the ucontext.
td_thr_getregs(), td_thr_setregs(): Use "xreg" macros when defined.
2004-02-11 21:07:18 +00:00
nathanw 193a376007 Test pt_blockgen against pt_unblockgen, not against itself, to check
for blocked-in-kernel situations.
2004-02-03 20:26:16 +00:00
nathanw 0a6afcc70d Rename pt_stacksize, pt_stacksize_lg, and pt_stackmask to pthread_*. External
symbols can't start with pt_, as that is in the application namespace.
2004-02-02 20:36:18 +00:00
nathanw b2f27acb27 Do all the symbol lookups at td_open() time and cache them in the td_proc_st.
Make the stacksize lookups and data part of td_proc_st rather than global state.
2004-02-02 20:08:27 +00:00
cl 36ee225d9a catch up with block/unblock changes in libpthread 2003-12-31 16:46:34 +00:00
cl 828439fb74 Add td__getstacksize() to support variable stack sizes. 2003-11-27 16:32:09 +00:00
lukem f85d2d1c14 Use ${HOST_SH} instead of `sh'.
If necessary, pull in <bsd.sys.mk> to get the definition of HOST_SH;
Makefiles that pull in one of (most of) <bsd.*.mk> will get this anyway.
2003-10-26 07:25:33 +00:00
christos d217c83d02 add a cast to make lint happy. 2003-09-11 21:57:32 +00:00
nathanw d5ef0c1f39 Adapt to structure name changes. 2003-07-17 21:14:49 +00:00
nathanw 6a0c6dddb7 Preferentially read context pointer from pt_trapuc. 2003-06-26 21:51:59 +00:00
nathanw 64b72cb09f A couple of READ calls in td_sync_info() were reading into a
pthread_spin_t variable (4 bytes) but telling read that they were
reading sizeof(struct pthread_spinlock_st) (12 bytes). This led to
overwriting other things on the stack, like the return address. Oops.

Fix by changing READ call here (and elsewhere, for future safety) to:
  READ(,, &variable, sizeof(variable))
instead of
  READ(,, &variable, sizeof(type)).

Fixes a crash in gdb when running "thread examine all" reported by
Bill Studenmund.
2003-04-05 01:39:13 +00:00
lukem f043c0fb57 add __RCSID() 2003-03-08 08:03:34 +00:00
nathanw 0e0a0e7f51 Add hooks to read the application-assigned name of a thread. 2003-02-27 00:54:07 +00:00
christos 618d528679 de-lint 2003-01-18 19:10:41 +00:00
thorpej c62a74e6d5 Merge the nathanw_sa branch. 2003-01-18 10:32:11 +00:00