gaburici [Fri, 5 Apr 2002 17:13:02 +0000 (17:13 +0000)]
Added instruction iterator
mirg [Thu, 4 Apr 2002 18:06:42 +0000 (18:06 +0000)]
Do not use REG_MT_BASE as a general-purpose register if MT_THREAD is defined
mirg [Tue, 2 Apr 2002 23:27:49 +0000 (23:27 +0000)]
+ When emitting code for binary operators we must not overwrite a
source register with the result if the register value is shared
between different parts of the code.
+ When storing into a variable we must invalidate the cached value
of the variable.
pcroth [Tue, 2 Apr 2002 16:11:12 +0000 (16:11 +0000)]
Changed C++-style comments to C-style comments. Although gcc will accept
C++ style comments in C code by default, PGI's compiler will not.
bernat [Mon, 1 Apr 2002 20:06:07 +0000 (20:06 +0000)]
Fixed problem when a by-module search for a function would only check
the first known name for a function instead of all aliases.
hollings [Thu, 28 Mar 2002 20:13:37 +0000 (20:13 +0000)]
Skips some tests on Alpha until we get the bugs worked out.
chadd [Wed, 27 Mar 2002 22:16:56 +0000 (22:16 +0000)]
This commit fixes a bug I introduced in
my previous commit. Namely, the
libdyninstAPI_RT.so would not build correctly
with cc because _init was multiply-defined.
The problem is the runtime library now needs
to have a function called upon loading
the library. There is no compiler independent
way to code this into the source.
I have added a flag to the solaris Makefile
to determine if you are compiling with cc or gcc.
If you are compiling with cc the appropriate
cc pragma is used. If you are using gcc the
_init function and -nostdlib flag is used as
before.
rchen [Sat, 23 Mar 2002 19:22:16 +0000 (19:22 +0000)]
This commit fixes a bug in process::insertTrapAtEntryPointOfMain(). There
seems to be a problem with the first SIGTRAP after a successful exec call.
At the time of the first SIGTRAP, any attempt to read or write the child
data space fails.
If the child is instructed to continue, it will eventually stop
in a useable state (before the first instruction of main). However,
a SIGTRAP will *NOT* be generated on the second stop. PROCFS also
stops in a strange state (prstatus_t.pr_info.si_code == 0).
Looks like this code was in place before. I don't know why it was
removed.
Ray Chen
rchen [Sat, 23 Mar 2002 19:12:09 +0000 (19:12 +0000)]
This commit cleans up a race condition found in process::waitProcs().
The mutatee process was instructed to continue upon SIGTRAP. However,
sometimes the mutatee would continue to completion before the mutator
could insert the trap in main().
Ray Chen
chadd [Fri, 22 Mar 2002 21:55:17 +0000 (21:55 +0000)]
This update closes bug #76, the .bss issue. This is
now fixed for Solaris and Linux. Fixing this bug
turned out it require an almost total overhaul
of how the solaris save the world works. The most
notable change is that RTcommon.c now contains
an _init function for solaris (previously it was
only defined for linux) to jump start the process
of restoring the memory state.
This also reorganizes some of the save the world code.
As much platform independent code as possible has been
moved from solaris.C and linux.C to process.C.
Note this has been tested on linux with gcc 2.96 and 3.0.4
and on solaris with gcc 2.95.3 and found to work correctly.
gaburici [Fri, 22 Mar 2002 00:11:05 +0000 (00:11 +0000)]
Fail, but continue on address to far on AIX
gaburici [Thu, 21 Mar 2002 23:33:22 +0000 (23:33 +0000)]
Fixed writeValue to BPatch_variableExpr pointing to a struct field
gaburici [Thu, 21 Mar 2002 22:35:16 +0000 (22:35 +0000)]
findFunctionByAddress bypass on AIX
jaw [Tue, 19 Mar 2002 22:57:18 +0000 (22:57 +0000)]
mods/additions largely under the USE_STL_VECTOR and IBM_BPATCH_COMPAT flags
arrived at during the process of getting DPCL to work w/Dyninst on Linux x86.
tlmiller [Mon, 18 Mar 2002 22:17:06 +0000 (22:17 +0000)]
Corrected boneheaded mistake (i386 linux still 2.0)
chadd [Mon, 18 Mar 2002 21:34:33 +0000 (21:34 +0000)]
This patches my previous commit to make addLibraryLinux.C compatible
with gcc 2.9x.x
tlmiller [Mon, 18 Mar 2002 20:22:43 +0000 (20:22 +0000)]
Commented out an if statement with no body because it was breaking
my build. (Used an MT #define outside of a #if defined(MT_THREAD).)
tlmiller [Mon, 18 Mar 2002 20:08:16 +0000 (20:08 +0000)]
defined "UESP" (analogue) for IA-64. Not sure if it'll work, but it compiles,
and is worth trying.
tlmiller [Mon, 18 Mar 2002 20:03:57 +0000 (20:03 +0000)]
Added IA-64 to #if defined()
chadd [Mon, 18 Mar 2002 19:17:47 +0000 (19:17 +0000)]
This update changes the method used to add the
DyninstAPI runtime shared library to the
mutated binary. This new method does not
require the full-expansion of the .bss section.
See the comment in addLibraryLinux.C for a detailed
explaination. (addLibraryLinux.[h|C]) (bug #76)
This update also closes bug #74 where a large number
of high memory trampolines caused the mutated binary
to be invalid. (linux.C, writeBackElf.C)
This update also addes some debugging statements
to writeBackElf.C.
Also, some of the code to solve the dlopen problem
(bug #75) was added (though disabled) to linux.C.
Note all these changes only affect Linux. Bug #76
will remain open until this is fixed on Solaris as
well.
cheers,
chadd
M addLibraryLinux.C
M addLibraryLinux.h
M linux.C
M writeBackElf.C
--
umd: 87
uw : 57
tlmiller [Sun, 17 Mar 2002 20:10:59 +0000 (20:10 +0000)]
The IA-64 assembler requires 21-bit operands to NOPs. #ifdef
added to make this happen.
tlmiller [Sat, 16 Mar 2002 04:07:05 +0000 (04:07 +0000)]
Added time/compiler stamp. (Oops. :))
tlmiller [Sat, 16 Mar 2002 04:05:27 +0000 (04:05 +0000)]
Two files compile cleaninly without -O that didn't with, changed.
bernat [Fri, 15 Mar 2002 23:14:13 +0000 (23:14 +0000)]
Adding various MT-AIX files
bernat [Fri, 15 Mar 2002 22:58:20 +0000 (22:58 +0000)]
Added pthread version of RTthread file
bernat [Fri, 15 Mar 2002 22:58:08 +0000 (22:58 +0000)]
Better debugging output
gaburici [Fri, 15 Mar 2002 21:05:13 +0000 (21:05 +0000)]
Fixed test6 on AIX
gaburici [Fri, 15 Mar 2002 19:01:47 +0000 (19:01 +0000)]
Added way to restore R1 on Power
gaburici [Fri, 15 Mar 2002 16:29:11 +0000 (16:29 +0000)]
More debugging enabled in test6
gaburici [Fri, 15 Mar 2002 16:11:45 +0000 (16:11 +0000)]
Added $ to test6 mutatee files
gaburici [Fri, 15 Mar 2002 16:09:45 +0000 (16:09 +0000)]
Fixed r0 in test6 on Power; enabled debug
hollings [Fri, 15 Mar 2002 15:26:39 +0000 (15:26 +0000)]
Added expanded clean rule to get both 32 and 64 bit binaries.
willb [Fri, 15 Mar 2002 14:59:50 +0000 (14:59 +0000)]
implementation of thread synchronization primitives
int thr_monitor_create(thread_monitor_t* mon);
int thr_monitor_destroy(thread_monitor_t* mon);
int thr_monitor_enter(thread_monitor_t* mon);
int thr_monitor_leave(thread_monitor_t* mon);
int thr_cond_register(thread_monitor_t* mon, unsigned cond_no);
int thr_cond_wait(thread_monitor_t* mon, unsigned cond_no);
int thr_cond_signal(thread_monitor_t* mon, unsigned cond_no);
int thr_rwlock_create(thread_rwlock_t* rw);
int thr_rwlock_destroy(thread_rwlock_t* rw);
int thr_rwlock_acquire(thread_rwlock_t* rw, action_t action);
int thr_rwlock_release(thread_rwlock_t* rw, action_t action);
willb [Fri, 15 Mar 2002 14:58:47 +0000 (14:58 +0000)]
Added interface for synchronization primitives, including
int thr_monitor_create(thread_monitor_t* mon);
int thr_monitor_destroy(thread_monitor_t* mon);
int thr_monitor_enter(thread_monitor_t* mon);
int thr_monitor_leave(thread_monitor_t* mon);
int thr_cond_register(thread_monitor_t* mon, unsigned cond_no);
int thr_cond_wait(thread_monitor_t* mon, unsigned cond_no);
int thr_cond_signal(thread_monitor_t* mon, unsigned cond_no);
int thr_rwlock_create(thread_rwlock_t* rw);
int thr_rwlock_destroy(thread_rwlock_t* rw);
int thr_rwlock_acquire(thread_rwlock_t* rw, action_t action);
int thr_rwlock_release(thread_rwlock_t* rw, action_t action);
willb [Thu, 14 Mar 2002 23:57:40 +0000 (23:57 +0000)]
poll_preference implemented in thr_mailbox::poll
willb [Thu, 14 Mar 2002 23:50:52 +0000 (23:50 +0000)]
Added support for poll_preference to thr_mailbox::check_for.
Note that this is not available at the interface level yet.
willb [Thu, 14 Mar 2002 23:38:04 +0000 (23:38 +0000)]
code cleanups
bernat [Thu, 14 Mar 2002 23:26:34 +0000 (23:26 +0000)]
aix.C: fixed AIX stack walk behavior
process.C, process.h: fixed MT quick fix for AIX
inst.C: modified mini tramp placement behavior (AIX)
bernat [Thu, 14 Mar 2002 23:25:25 +0000 (23:25 +0000)]
Replaced assert (size == 0) with error messages. Temporary fix until
Brandon's commit.
pcroth [Thu, 14 Mar 2002 19:11:31 +0000 (19:11 +0000)]
Updated so that msg_poll removes the message from the queue if the sender
is a special file. The thought is that the act of receiving the "file/socket
is ready to read" response from msg_poll is enough to reset the state
of the bound file/socket.
pcroth [Thu, 14 Mar 2002 19:08:59 +0000 (19:08 +0000)]
updated to keep "special" flags with bound sockets and files
pcroth [Wed, 13 Mar 2002 22:23:27 +0000 (22:23 +0000)]
Fixed bug where incorrect sender was reported if sender is a bound socket,
and bug where incorrect set of bound sockets were examined when input
is indicated on a select.
tlmiller [Wed, 13 Mar 2002 19:53:15 +0000 (19:53 +0000)]
Added IA-64 to Linux #ifdef.
tlmiller [Wed, 13 Mar 2002 19:28:45 +0000 (19:28 +0000)]
Will be using Elf64.
willb [Wed, 13 Mar 2002 18:34:09 +0000 (18:34 +0000)]
Additional debugging functionality and bug fixes.
See msg.C for info on how to use thr_debug.h
jaw [Tue, 12 Mar 2002 18:39:59 +0000 (18:39 +0000)]
code cleaning to get rid of compilation warnings.
(primarily for linux, aix)
some fixes apropos -DUSE_STL_VECTOR
tlmiller [Mon, 11 Mar 2002 23:43:54 +0000 (23:43 +0000)]
Changed two P_* functions to use socklen_t instead of size_t
so that IA-64 and i386 Linux builds can use the same header.
tlmiller [Mon, 11 Mar 2002 23:27:52 +0000 (23:27 +0000)]
IA-64 is 64-bits wide.
hollings [Mon, 11 Mar 2002 22:31:14 +0000 (22:31 +0000)]
Added umd-daily rule
tlmiller [Mon, 11 Mar 2002 22:04:26 +0000 (22:04 +0000)]
Cleaned out in anticipation of platform-dependent code.
tlmiller [Mon, 11 Mar 2002 22:00:33 +0000 (22:00 +0000)]
IA-64 is also 64-bit platform.
willb [Mon, 11 Mar 2002 06:00:44 +0000 (06:00 +0000)]
Changed preprocessor directive to DO_DEBUG_LIBPDTHREAD_MSGS
willb [Mon, 11 Mar 2002 05:53:11 +0000 (05:53 +0000)]
Fixed starvation bug in socket/file recv code.
willb [Fri, 8 Mar 2002 23:05:40 +0000 (23:05 +0000)]
Paper-bag fix for prev commit.
willb [Fri, 8 Mar 2002 22:59:22 +0000 (22:59 +0000)]
Bug fixes; debugging support in msg.C
willb [Fri, 8 Mar 2002 22:58:41 +0000 (22:58 +0000)]
pdthread integration fixes; set USE_PTHREADS to "yes" to use
schendel [Thu, 7 Mar 2002 23:49:19 +0000 (23:49 +0000)]
fix so default_host is referenced for MPI applications
bernat [Mon, 4 Mar 2002 20:44:59 +0000 (20:44 +0000)]
Small fix for semi-MT AIX. This should fix Chris Chambreau's stack walk
problems.
gurari [Fri, 1 Mar 2002 22:22:09 +0000 (22:22 +0000)]
I've changed the branch being generated in generateMTSkipBranch() to a
conditional branch. It was mistakenly set to be unconditional.
schendel [Fri, 1 Mar 2002 16:55:50 +0000 (16:55 +0000)]
remove unneeded assert
gurari [Thu, 28 Feb 2002 22:06:41 +0000 (22:06 +0000)]
Insert check for whether or not the arbitrary instrumentation point instruction
is a delayed branch control instruction.
willb [Thu, 28 Feb 2002 20:35:54 +0000 (20:35 +0000)]
Removed all non-typesafe allocators and fixed a small bug in the select_loop
functions.
willb [Thu, 28 Feb 2002 20:34:53 +0000 (20:34 +0000)]
Removed template instantiation control from make options -- the
easiest way to get libpdthread building with the rest of paradyn.
For more information about -fexternal-templates,
-fno-implicit-templates, -frepo, and C++ templates and their
interaction with the linker, please see the following:
http://gcc.gnu.org/onlinedocs/gcc/C---Dialect-Options.html
http://gcc.gnu.org/onlinedocs/gcc/Deprecated-Features.html#Deprecated%20Features
http://gcc.gnu.org/onlinedocs/gcc/Template-Instantiation.html#Template%20Instantiation
hollings [Wed, 27 Feb 2002 23:27:09 +0000 (23:27 +0000)]
Fixes to get mips compiling again.
bernat [Wed, 27 Feb 2002 19:44:05 +0000 (19:44 +0000)]
Added in protecting IFDEF that was missed before
bernat [Wed, 27 Feb 2002 01:48:49 +0000 (01:48 +0000)]
inst-power.C: fixed some bugs with accessing parameters, MT work
process.C: fixed Linux bug
inst-sparc.C: keeping up with AIX
willb [Tue, 26 Feb 2002 22:31:28 +0000 (22:31 +0000)]
updated include directives so this will compile in tree
willb [Tue, 26 Feb 2002 22:31:01 +0000 (22:31 +0000)]
Added NO_IMPLICIT_TEMPLATES before including make.config
gurari [Tue, 26 Feb 2002 20:30:05 +0000 (20:30 +0000)]
Unified multi-threaded and non-threaded stack walk code. Also replaced #ifdef
MT_THREADs with is_multithreaded(). Also merged other non-threaded and
multi-threaded code.
gurari [Tue, 26 Feb 2002 20:26:24 +0000 (20:26 +0000)]
Replaced calls to getCallerStackFrameNormal() and getCallerStackFrameThread()
with calls to getCallerStackFrame().
gurari [Tue, 26 Feb 2002 20:24:38 +0000 (20:24 +0000)]
Changed the calls to walkStack(), to reflect changes made in unifying
the stack walk code.
pcroth [Tue, 26 Feb 2002 20:04:02 +0000 (20:04 +0000)]
Fixed logic in createProcess for combining dir and exe paths into an
absolute pathname. Now no concatenation takes place if exe is already
an absolute path.
willb [Tue, 26 Feb 2002 19:36:35 +0000 (19:36 +0000)]
initial revision
pcroth [Tue, 26 Feb 2002 15:49:46 +0000 (15:49 +0000)]
Added flag to keep gcc 2.95 from generating exception handling context code.
(This auto-generated code can cause problems in conjunction with Paradyn's
current non-preemptive thread library.)
schendel [Fri, 22 Feb 2002 23:03:42 +0000 (23:03 +0000)]
put ability to handle IRIX PLATFORM variable back in (for dyninst)
schendel [Fri, 22 Feb 2002 22:34:58 +0000 (22:34 +0000)]
change platform variable that is expected
bernat [Fri, 22 Feb 2002 00:25:24 +0000 (00:25 +0000)]
Removed debugging message
bernat [Fri, 22 Feb 2002 00:25:10 +0000 (00:25 +0000)]
More debugging removal
bernat [Fri, 22 Feb 2002 00:13:31 +0000 (00:13 +0000)]
Modified makefile to not use -DUSES_PMAPI for all modules, just Paradyn
bernat [Fri, 22 Feb 2002 00:06:45 +0000 (00:06 +0000)]
Sigh... disabled debugging messages
bernat [Thu, 21 Feb 2002 21:48:41 +0000 (21:48 +0000)]
Added tramp guard variable/vector
bernat [Thu, 21 Feb 2002 21:48:31 +0000 (21:48 +0000)]
Removed SHM_SAMPLING
MT fixes
bernat [Thu, 21 Feb 2002 21:48:01 +0000 (21:48 +0000)]
RTaix: fixes
RTcommon: new tramp guard
bernat [Thu, 21 Feb 2002 21:47:45 +0000 (21:47 +0000)]
Removed obsolete tramp-power.S file
MT fixes
New tramp guard
Rewrote instrumentation code for AIX (base/mini tramps)
bernat [Thu, 21 Feb 2002 21:47:22 +0000 (21:47 +0000)]
Cleanup
bernat [Thu, 21 Feb 2002 21:47:05 +0000 (21:47 +0000)]
Switched build to use high-performance counters by default
gurari [Thu, 21 Feb 2002 19:15:19 +0000 (19:15 +0000)]
update the parameter list for emitInferiorRPCtrailer on mips and ia64.
willb [Thu, 21 Feb 2002 02:22:52 +0000 (02:22 +0000)]
Fixed some simple mistakes, ensuring that io_mailbox has a vtable,
virtualizing thr_mailbox destructor, and un-inlining some io_entity
functions. io_entity.C included to ensure that there is an io_entity.o.
gurari [Wed, 20 Feb 2002 22:22:05 +0000 (22:22 +0000)]
This commit fixes a bug where we were generating a save; call; restore;
sequence to branch to base trampolines for arbitrary instPoints, when all
that is needed is a call; nop; sequence. The object of the save and
restore was to protect the o7 register from the results of the call
instruction. They were not needed, though, because arbitrary instPoints
are not instrumented for functions with a 'live' o7 register. The 3
instruction sequence was getting caught straddling a basic block boundary, which
caused Tikir's code coverage tool to crash. Also, several bugs in the code
for deleting base trampolines were fixed.
willb [Wed, 20 Feb 2002 20:44:22 +0000 (20:44 +0000)]
Initial revision of libthread tests for preemption-safe libthread.
willb [Wed, 20 Feb 2002 20:43:47 +0000 (20:43 +0000)]
Initial revision of preemption-safe libthread.
willb [Wed, 20 Feb 2002 20:43:11 +0000 (20:43 +0000)]
Initial revision for new preemption-safe libthread.
gaburici [Tue, 19 Feb 2002 19:19:34 +0000 (19:19 +0000)]
Fixed BUG #61
gurari [Mon, 18 Feb 2002 19:05:43 +0000 (19:05 +0000)]
In my previous commits I didn't add function definitions of
getCallerFrameThread() for osf or irix, and my definition had an incorrect
return type for nt (no return at all). Now the function definitions for those
platforms and for linux are all the same.
gurari [Sun, 17 Feb 2002 00:41:10 +0000 (00:41 +0000)]
More multi and non threaded code unification.
rchen [Fri, 15 Feb 2002 21:46:14 +0000 (21:46 +0000)]
This commit updates the functions in dyninstAPI/src/osf.C to reflect the MT
unification changes made in dyninstAPI/src/process.C
M dyninstAPI/src/osf.C
gurari [Fri, 15 Feb 2002 18:57:06 +0000 (18:57 +0000)]
This commit does some more unification of the multi-threaded and
non-threaded paradyn code. Added empty getCallerFrameThread() to linux and
windows-nt. Merged getCallerFrameThread() and getCallerFrameLWP() on aix
and solaris.
pcroth [Fri, 15 Feb 2002 18:35:09 +0000 (18:35 +0000)]
Removed pdutilOld library.
gurari [Thu, 14 Feb 2002 16:26:47 +0000 (16:26 +0000)]
Insert an #ifdef MT_THREAD so aix build doesn't fail.
tlmiller [Wed, 13 Feb 2002 21:58:29 +0000 (21:58 +0000)]
Unded an accidental change w.r.t. EXPLICIT_DEPENDS.