Commit graph

109 commits

Author SHA1 Message Date
Marius Strobl e31fe879a8 The tid member of struct pthread actually is long so read it as such.
Accessing it as an int causes failure on big-endian LP64, i.e. mips64be,
powerpc64 and sparc64.

Reviewed by:	marcel
Approved by:	re (kib)
MFC after:	1 week
2011-08-06 17:48:30 +00:00
Nathan Whitehorn b12277d1d4 Repair some build breakage introduced in r211725 and garbage collect some
code made obsolete in the same commit.
2010-08-28 15:03:11 +00:00
Warner Losh 25faff346c MFtbemd:
Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want
to test of all the CPUs of a given family conform.
2010-08-23 22:24:11 +00:00
Nathan Whitehorn 65801ce52d Powerpc64 thread libraries support. 2010-07-10 15:13:49 +00:00
Konstantin Belousov 098d0537f2 Extend the td_thrinfo_t to include siginfo for the signal that stopped
the target. Take care of ABI.

Suggested by:	davidxu
MFC after:	2 weeks
2010-07-04 12:08:04 +00:00
Ed Schouten daaf575910 Build lib/ with WARNS=6 by default.
Similar to libexec/, do the same with lib/. Make WARNS=6 the norm and
lower it when needed.

I'm setting WARNS?=0 for secure/. It seems secure/ includes the
Makefile.inc provided by lib/. I'm not going to touch that directory.
Most of the code there is contributed anyway.
2010-01-02 09:58:07 +00:00
Dag-Erling Smørgrav 18860a1cdf Revert r181651, which changed the ABI, and use a temp variable instead.
Suggested by:	attilio
2009-06-09 12:32:10 +00:00
Attilio Rao 8655c70597 libc_r_* library is no more required, so just axe it.
Approved by:	marcel, emaste
Sponsored by:	Sandvine Incorporated
2009-03-05 18:27:16 +00:00
Marcel Moolenaar 03fad2ad5f Allow psaddr_t to be widened by using thr_pread_{int,long,ptr},
where critical. Some places still use ps_pread/ps_pwrite directly,
but only need changed when byte-order comes into the picture.
Also, change th_p in td_event_msg_t from a pointer type to
psaddr_t, so that events also work when psaddr_t is widened.
2008-09-14 16:07:21 +00:00
David E. O'Brien 3337af98b4 Add the needed libpthread_md.c for MIPS.
Obtained from:	Juniper Networks
2008-08-28 15:41:12 +00:00
Marcel Moolenaar fc0053df42 Change the type of ti_traceme from a char to an int as its
address is passed to ps_pread for reading sizeof(int) bytes.
2008-08-13 00:03:35 +00:00
Marcel Moolenaar f60a5b31c8 Cleanup for WARNS 6. 2008-08-06 03:14:18 +00:00
Marcel Moolenaar 8d4e4b790a Add thr_pread_{int,long,ptr} and thr_pwrite_{int,long,ptr} to
help abstract the sizes and endianness of the primary types of
the target.  These currently use the native characteristics.
2008-07-31 20:25:52 +00:00
Marcel Moolenaar 820c1c554f Cleanup for WARNS 3. 2008-07-31 16:26:58 +00:00
Marcel Moolenaar 2f6a179eb9 Cleanup for WARNS 2. 2008-07-31 05:25:52 +00:00
Marcel Moolenaar 16b0c20c82 Change the type of psaddr_t from void* to uintptr_t. A pointer
type cannot be made wider to allow ILP32 platforms to target
LP64 platforms.
2008-07-30 00:59:19 +00:00
Jeff Roberson fbb275f59d - Restore kse.h in this directory so other tools don't find it by mistake.
- Restore the ability to debug kse coredumps in 8.0.

Suggested by:	marcel
2008-03-23 09:38:11 +00:00
David Xu 20b94d8035 Use linker set to collection all target operations. 2008-03-22 05:40:44 +00:00
Jeff Roberson 34147e4308 - Remove libkse and related support code in libpthread from the build.
Don't remove the files yet.  Kernel support will be removed shortly.
2008-03-12 09:49:39 +00:00
Olivier Houchard ebbcec3ad2 Add arm support in libthread_db. 2007-11-17 21:27:53 +00:00
Xin LI ec5430045b Include string.h for memcpy() and memcmp(). 2007-05-25 13:43:14 +00:00
Daniel Eischen 419ecd5dee Bump library versions in preparation for 7.0.
Ok'd by:	kan
2007-05-21 02:49:08 +00:00
Daniel Eischen 00fb440c1a Enable symbol versioning by default. Use WITHOUT_SYMVER to disable it.
Warning, after symbol versioning is enabled, going back is not easy
(use WITHOUT_SYMVER at your own risk).

Change the default thread library to libthr.

There most likely still needs to be a version bump for at least the
thread libraries.  If necessary, this will happen later.
2007-05-13 14:12:40 +00:00
Marcel Moolenaar 85999a0155 Roughly implement libpthread support. 2007-05-01 18:28:08 +00:00
Daniel Eischen 5f864214bb Use C comments since we now preprocess these files with CPP. 2007-04-29 14:05:22 +00:00
David Xu 210a647b67 remove libc_r remanent. 2006-10-20 14:15:42 +00:00
David Xu 65c4c80772 Remove libc_r support. 2006-10-05 06:26:31 +00:00
Ruslan Ermilov 2d05c776ef Remove alpha-specific stuff. 2006-08-23 12:12:56 +00:00
Marcel Moolenaar e4e9813eb9 Add stub functions. This allows libthread_db to be built and installed,
which means that we also have <thread_db.h>.
2006-08-04 17:55:55 +00:00
David Xu ef39743bc3 Fix return value. 2006-05-17 05:14:45 +00:00
David Xu 2ed66c9390 get thread signal info. 2006-05-17 05:12:42 +00:00
Daniel Eischen 029c3cdf55 Add symbol versioning.
Reviewed by:	davidxu
2006-03-29 14:08:45 +00:00
David Xu 4f7b0f0ee7 Use ps_linfo to retrieve LWP info, current it is used to retrieve
signal mask and pending signals.
2006-02-07 02:55:34 +00:00
David Xu 6ff81bf532 Use ps_linfo to retrieve LWP info. 2006-02-07 02:51:25 +00:00
David Xu 4db106a906 Replace ptrace syscall with ps_lgetgregs to check a LWP's existence. 2006-02-07 02:12:33 +00:00
David Xu 83154c48d6 Always clear thread info buffer to zero. 2006-02-06 11:54:19 +00:00
Ken Smith a84020c2b9 Bump the shared library version number of all libraries that have not
been bumped since RELENG_5.

Reviewed by:	ru
Approved by:	re (not needed for commit check but in principle...)
2005-07-22 17:19:05 +00:00
Doug Rabson 8d7681bb7f 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
Philippe Charnier d36dd0b78e Remove unused variables. 2005-05-20 13:09:49 +00:00
David Xu 787e88a3ac o Code cleanup, eliminate private thread id map, directly
use lwpid as thread id.
 o Export tls pointer.
2005-04-13 04:57:38 +00:00
David Xu b9da3fd798 Fill traceme and events fields. 2005-04-12 23:33:08 +00:00
David Xu a80845eab1 Sync with debugger code in libthr. 2005-04-12 03:03:16 +00:00
David Xu 2ec2da8602 Export thread address. 2005-04-05 11:38:30 +00:00
David Xu e65421ba6f Update debugger code for new libthr. 2005-04-02 01:36:21 +00:00
David Xu 2eb43a641f Plug a memory leak in error case. 2004-08-16 05:20:12 +00:00
David Xu cd980d46c2 1. Use libpthread's exported symbols to calcuate offset in data structure
2. Enable TLS debugger support.
2004-08-16 03:30:16 +00:00
David Xu d4ee712657 1. Add missing functions: libthr_dbresume,libthr_dbsuspend.
2. Implement functions: libthr_db_thr_setfpregs, libthr_db_thr_setregs,
   libthr_db_ta_map_id2thr.
3. simplify libthr_db_thr_getfpregs, libthr_db_thr_getgregs.
2004-08-13 06:47:33 +00:00
David Xu 3e93cc3ae3 1.Use new way to check if a thread is in critical region, defer suspending
if it is true.
2.Add thread_db api td_thr_tls_get_addr to get tls address, the real code
  is commented out util tls patch is committed.

Reviewed by: deischen
2004-08-08 22:37:53 +00:00
David Xu 4513fb36aa s/TMDF_DONOTRUNUSER/TMDF_SUSPEND/g
Dicussed with: deischen
2004-08-03 02:23:06 +00:00
David Xu 447d36ec16 Add missing thread suspension/resumption code, fix a bug in pt_thr_sstep,
don't overwrite other debug flags.
2004-08-01 04:57:04 +00:00
David Xu 6cc695d3b2 Add code to implement register structure converter. 2004-08-01 02:08:39 +00:00
Marcel Moolenaar c465e9a1f0 prgregset_t changed type from being a typedef of struct reg to an
array of one element of type struct reg. Change the argument to
libc_r_md_getgregs() accordingly.
2004-07-19 16:54:52 +00:00
Marcel Moolenaar 3475d7748a This library is not WARNS=2 clean for -O2 builds, because we include
headers from libpthread that are not WARNS=2 clean for -O2 builds.
Lower the WARNS level to 1. This is the highest level possible for
now.
2004-07-18 19:33:56 +00:00
Marcel Moolenaar a7092d3091 Correct the mess I made by committing from the wrong tree. Most
notably, this restores some of the contents in thread_db.h as well
as David Xu's copyright notice. This also fixes the includes in
the MD libpthread files which Scott tried to provide a quick fix
for.

Pointy hat: marcel
2004-07-18 19:29:38 +00:00
Scott Long 7a76c247bd Try to fix ia64 and alpha compiles. I don't have either equipment fired
up now, but it appears to be the same problem and solution as sparc64.
2004-07-18 15:24:37 +00:00
Scott Long 4bfe920594 Add missing #includes so that this can compile. Obtained from the i386 version. 2004-07-18 15:20:03 +00:00
Marcel Moolenaar 3c1e38ea6e Add rudimentary support and stubs for libthr and libc_r on alpha, amd64,
i386, ia64 and sparc64. Add stubs for alpha, amd64, ia64 and sparc64 for
libpthread.

Restructure the source files to avoid unnecessary use of subdirectories
that also force us to use non-portable compilation flags to deal with
the uncommon compilation requirements (building archive libraries for
linkage into a shared library).

The libpthread support has been copied from the original local and
cleaned-up to make them WARNS=2 clean.
that also force us to use non-portable compilation flags to deal with
the uncommon compilation requirements (building archive libraries for
linkage into a shared library).

The libpthread support has been copied from the original local and
cleaned-up to make them WARNS=2 clean.

Tested on: amd64, i386, ia64
2004-07-18 04:17:15 +00:00
Marcel Moolenaar 27123635dd Add the const qualifier to the prgregset_t argument for the *setregs*
functions.
2004-07-17 17:09:12 +00:00
David Xu a31a256002 Add my initial work of libthread_db. The library is used by gdb to debug
threaded process. Current, only libpthread is supported, but macrel will
work on it to support libthr and libc_r.
2004-07-15 03:36:35 +00:00