rchen [Fri, 3 Feb 2006 12:56:58 +0000 (12:56 +0000)]
Introductory parseThat commit. - - - - - - - - - - - - - - - - - - - - -
Monitor/Mutator/Mutatee communication interface.
rchen [Fri, 3 Feb 2006 12:56:52 +0000 (12:56 +0000)]
Introductory parseThat commit. - - - - - - - - - - - - - - - - - - - - -
Core DyninstAPI driver.
rchen [Fri, 3 Feb 2006 12:56:42 +0000 (12:56 +0000)]
Introductory parseThat commit. - - - - - - - - - - - - - - - - - - - - -
Unified interface to Dyninst, regardless of version.
rchen [Fri, 3 Feb 2006 12:56:36 +0000 (12:56 +0000)]
Introductory parseThat commit. - - - - - - - - - - - - - - - - - - - - -
Global configuration structures.
rchen [Fri, 3 Feb 2006 12:56:32 +0000 (12:56 +0000)]
Introductory parseThat commit. - - - - - - - - - - - - - - - - - - - - -
Top level documentation.
rchen [Fri, 3 Feb 2006 12:56:28 +0000 (12:56 +0000)]
Introductory parseThat commit. - - - - - - - - - - - - - - - - - - - - -
Top level Makefile.
nater [Fri, 3 Feb 2006 01:52:43 +0000 (01:52 +0000)]
Load from offsets from any register, not just frame pointer
bernat [Thu, 2 Feb 2006 03:51:18 +0000 (03:51 +0000)]
gcc 4.0, fork fixes - - - - - - - - - - - - - - - - - - - - - - - - - -
Make trace_lock agree with definition.
bernat [Thu, 2 Feb 2006 03:51:17 +0000 (03:51 +0000)]
gcc 4.0, fork fixes - - - - - - - - - - - - - - - - - - - - - - - - - -
Replace use of ebx with edx (gcc 4.0 fix)
bernat [Thu, 2 Feb 2006 03:51:16 +0000 (03:51 +0000)]
gcc 4.0, fork fixes - - - - - - - - - - - - - - - - - - - - - - - - - -
Fix fork bug (attach to forked process)
bernat [Thu, 2 Feb 2006 03:51:13 +0000 (03:51 +0000)]
gcc 4.0, fork fixes - - - - - - - - - - - - - - - - - - - - - - - - - -
Assert non-NULL data (catch instead of segv)
bernat [Thu, 2 Feb 2006 03:51:12 +0000 (03:51 +0000)]
gcc 4.0, fork fixes - - - - - - - - - - - - - - - - - - - - - - - - - -
More warning fixes.
bernat [Thu, 2 Feb 2006 03:51:11 +0000 (03:51 +0000)]
gcc 4.0, fork fixes - - - - - - - - - - - - - - - - - - - - - - - - - -
#ifdef around x86-specific code.
bernat [Thu, 2 Feb 2006 03:51:09 +0000 (03:51 +0000)]
gcc 4.0, fork fixes - - - - - - - - - - - - - - - - - - - - - - - - - -
Various renamings of BPatch_thread *proc to BPatch_thread *thr
bernat [Thu, 2 Feb 2006 03:51:08 +0000 (03:51 +0000)]
gcc 4.0, fork fixes - - - - - - - - - - - - - - - - - - - - - - - - - -
Fix silly fork mistake.
bernat [Thu, 2 Feb 2006 03:51:04 +0000 (03:51 +0000)]
gcc 4.0, fork fixes - - - - - - - - - - - - - - - - - - - - - - - - - -
DPCL fixes.
bernat [Thu, 2 Feb 2006 03:51:03 +0000 (03:51 +0000)]
gcc 4.0, fork fixes - - - - - - - - - - - - - - - - - - - - - - - - - -
Add BPatch_typeCommon.
bernat [Thu, 2 Feb 2006 03:51:00 +0000 (03:51 +0000)]
gcc 4.0, fork fixes - - - - - - - - - - - - - - - - - - - - - - - - - -
Add virtual destructor to silence warnings.
bernat [Thu, 2 Feb 2006 03:50:59 +0000 (03:50 +0000)]
gcc 4.0, fork fixes - - - - - - - - - - - - - - - - - - - - - - - - - -
Add BPatch_edge to "these exist" list.
tlmiller [Thu, 2 Feb 2006 02:55:04 +0000 (02:55 +0000)]
Add getPtrToDataInText().
tlmiller [Thu, 2 Feb 2006 02:55:03 +0000 (02:55 +0000)]
Fix latent bug in DW_OP_pick; handle erroneous location lists more
gracefully.
tlmiller [Thu, 2 Feb 2006 02:55:02 +0000 (02:55 +0000)]
Thread-aware stackwalking.
tlmiller [Thu, 2 Feb 2006 02:55:01 +0000 (02:55 +0000)]
If the original frame size is maximal, manually spill a register to avoid
stomping on it when reallocating.
tlmiller [Thu, 2 Feb 2006 02:55:00 +0000 (02:55 +0000)]
Rewrite the jump table parsing to handle libc and icc-compiled binaries.
tlmiller [Thu, 2 Feb 2006 02:54:59 +0000 (02:54 +0000)]
Update getCalledFunctionInt() to build the BPatch_function if it
doesn't exist yet, rather than failing.
tlmiller [Thu, 2 Feb 2006 02:54:58 +0000 (02:54 +0000)]
Update walkDwarvenTree() declaration.
tlmiller [Thu, 2 Feb 2006 02:54:57 +0000 (02:54 +0000)]
Active BPatch_typeCollection destructor to allow DWARF to reparse. (The
debug information in the BPatch[_function] layer is thrown away.)
mjbrim [Wed, 1 Feb 2006 20:15:38 +0000 (20:15 +0000)]
support more base types, and encapsulate check into a function
nater [Wed, 1 Feb 2006 18:24:05 +0000 (18:24 +0000)]
Try alternate method for locating do_dlopen (for stripped libc support)
and exit gracefully if it cannot be found
nater [Wed, 1 Feb 2006 18:24:04 +0000 (18:24 +0000)]
Correct gap size detection and avoid continuing to look for
patterns in gaps if a function was detected.
nater [Wed, 1 Feb 2006 18:24:02 +0000 (18:24 +0000)]
Allow lookup of the callers of a function
nater [Wed, 1 Feb 2006 18:24:01 +0000 (18:24 +0000)]
Incorrect register checked for mov %esp, %ebp pattern
jaw [Wed, 1 Feb 2006 16:36:05 +0000 (16:36 +0000)]
removes stray asterisk causing build probs
jodom [Wed, 1 Feb 2006 02:38:11 +0000 (02:38 +0000)]
Fix minor syntax errors found with insure++ (I mean it this time).
jodom [Wed, 1 Feb 2006 02:06:22 +0000 (02:06 +0000)]
Fix minor syntax errors found with insure++
jodom [Wed, 1 Feb 2006 01:58:34 +0000 (01:58 +0000)]
Add multi-word instruction recognition, correct a few transposed
register classifications
jodom [Wed, 1 Feb 2006 01:58:09 +0000 (01:58 +0000)]
Handle tail-call optimizations, non-leaf called functions
jaw [Wed, 1 Feb 2006 00:42:54 +0000 (00:42 +0000)]
fixes test1-3 on alpha platform, broken by last signal handling commit
mirg [Tue, 31 Jan 2006 23:25:30 +0000 (23:25 +0000)]
Use cached parsing results even if a library is loaded at a
different address for the second time. Our code has been able to
handle such scenario for a while now.
jaw [Mon, 30 Jan 2006 19:44:59 +0000 (19:44 +0000)]
paradyn build fix addendum to my last "windows" commit
jaw [Mon, 30 Jan 2006 07:16:50 +0000 (07:16 +0000)]
further devel of internal threading, to include windows.
bpellin [Mon, 30 Jan 2006 04:55:37 +0000 (04:55 +0000)]
Fix error case
bpellin [Mon, 30 Jan 2006 04:55:34 +0000 (04:55 +0000)]
Adds references to test9_7
bpellin [Mon, 30 Jan 2006 04:55:33 +0000 (04:55 +0000)]
Adds new test code
bpellin [Mon, 30 Jan 2006 04:55:32 +0000 (04:55 +0000)]
New test
bpellin [Mon, 30 Jan 2006 04:31:41 +0000 (04:31 +0000)]
Adds shell character escaping for the -test and -mutatee flag
bpellin [Mon, 30 Jan 2006 04:31:40 +0000 (04:31 +0000)]
Adds the -test, -mutatee, -create, -attach command line flags
chadd [Sun, 29 Jan 2006 19:18:18 +0000 (19:18 +0000)]
This commit closed bug #541, save the
world failures on AIX. This commit
gets save the world working with mutators
that put instrumentation at the entry point
of main or anywhere in the first basic
block in main.
This commit also adds a sub test to
test9 to test instrumentating the entry
point of main and instrumenting a point in
the first basic block of main (a point that
is not part of the entry point of main).
chadd
dyninstAPI/src/baseTramp.C
dyninstAPI/src/multiTramp.C
dyninstAPI/src/process.h
dyninstAPI/tests/src/test9.C
dyninstAPI/tests/src/test9.mutatee.c
tlmiller [Fri, 27 Jan 2006 03:34:36 +0000 (03:34 +0000)]
Correct typo.
darnold [Fri, 27 Jan 2006 00:20:50 +0000 (00:20 +0000)]
Debugging output suppressed
src/NetworkImpl.C
src/RemoteNode.C
src/StreamImpl.C
src/utils.C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
darnold [Fri, 27 Jan 2006 00:19:12 +0000 (00:19 +0000)]
Changes to delay creation of paradyn daemons and MRNet network until necessary
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
metDoProcess() always called
darnold [Fri, 27 Jan 2006 00:19:11 +0000 (00:19 +0000)]
Changes to delay creation of paradyn daemons and MRNet network until necessary
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
doInitProcess() calls dataManager::startMRNet() to instantiate daemons
darnold [Fri, 27 Jan 2006 00:19:10 +0000 (00:19 +0000)]
Changes to delay creation of paradyn daemons and MRNet network until necessary
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
mrnet_topology flag removed from addExecutable()
darnold [Fri, 27 Jan 2006 00:19:09 +0000 (00:19 +0000)]
Changes to delay creation of paradyn daemons and MRNet network until necessary
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
startMRNet() RPC call implemented
just_define flag removed from defineDaemon()
mrnet_topology flag removed from addExecutable()
darnold [Fri, 27 Jan 2006 00:19:07 +0000 (00:19 +0000)]
Changes to delay creation of paradyn daemons and MRNet network until necessary
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
getDaemon() no longer creates a daemon if not already instantiated. This is done before this point. When metDoProcess() is all necessary daemons and the MRNet network are instantiated. The work is also now distributed among the new functions instantiateDaemon(), instantiateMPIDaemon(), instantiateDefaultDaemon(), and initializeDaemons()
darnold [Fri, 27 Jan 2006 00:19:05 +0000 (00:19 +0000)]
Changes to delay creation of paradyn daemons and MRNet network until necessary
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
add a startMRNet() RPC call. called from metDoProcess() during startup.
emoved just_define flag from defineDaemon(). now always "just defines"
chadd [Tue, 24 Jan 2006 16:56:02 +0000 (16:56 +0000)]
This commit gets save the world working on AIX. There
will be another commit coming soon to refine this commit,
refactor some code, make the code more robust, but this
commit should work for all our test cases and as such will
alert people when they have changed the code base and broken
some part of save the world on AIX.
This commit does three things:
First, the DYNINST_tramp_guards array is allocated by
mmap on AIX (see note in RTcommon.c for a full explaination)
to allow the mutated binary to reload the array in the correct
place more reliably.
Next, the memory allocated in inferiorRealloc is now tracked
by the save the world data structures, so that this memory is
correctly saved and restored. (this code will be refactored to
make it easier to update the save the world data structures
whenever memory is allcoated in the mutatee).
Finally, when the save the world code is run the multiTramp at the
entry point of main has the call to DYNINSTthreadIndex() turned off
since this multiTramp is used to load the RT shared library, which
contains said function. This will be refined to only turn off the
call to DYNINSTthreadIndex() for the baseTramp in the multiTramp
that calls dlopen() to load the RT lib.
bpellin [Mon, 23 Jan 2006 22:21:58 +0000 (22:21 +0000)]
Ported change from old testsuite
bpellin [Mon, 23 Jan 2006 22:21:56 +0000 (22:21 +0000)]
Output string typo fix
bpellin [Mon, 23 Jan 2006 22:21:55 +0000 (22:21 +0000)]
Added humanlog print option
nater [Fri, 20 Jan 2006 19:25:52 +0000 (19:25 +0000)]
* Correctly copy instrumentation points from entry block of shared
code.
* Removed invalid sanity check assert
nater [Fri, 20 Jan 2006 19:25:51 +0000 (19:25 +0000)]
Correctly copy instrumentation points from entry block of shared
code
nater [Fri, 20 Jan 2006 19:21:49 +0000 (19:21 +0000)]
Enable debugging symbols
nater [Fri, 20 Jan 2006 00:12:29 +0000 (00:12 +0000)]
Test was returning incorrect results
nater [Fri, 20 Jan 2006 00:12:28 +0000 (00:12 +0000)]
Fix inconsistent usage of paramters in cross-platform
tail call detection routine. Also added special-case
detection of non-returning Fortran routine (__f90_stop).
nater [Fri, 20 Jan 2006 00:12:27 +0000 (00:12 +0000)]
Add access method to retrieve current instruction's
type on ia64
nater [Fri, 20 Jan 2006 00:12:26 +0000 (00:12 +0000)]
Use instruction pointer to ensure correct virtual
methods are called when doing instruction type lookups
(methods defined for instruction and instruction_x).
nater [Fri, 20 Jan 2006 00:12:20 +0000 (00:12 +0000)]
Fix inconsistent usage of parameters in cross-platform
tail call detection routine.
nater [Fri, 20 Jan 2006 00:12:18 +0000 (00:12 +0000)]
Recognize UNIMP/ILLTRAP instruction
nater [Fri, 20 Jan 2006 00:12:17 +0000 (00:12 +0000)]
Correct debug output statement
tlmiller [Thu, 19 Jan 2006 23:21:11 +0000 (23:21 +0000)]
On IA-64, and potentially some x86 platforms, the vsyscall 'page'
is not a single page in size. We now extract its size from
proc/pid/maps.
legendre [Thu, 19 Jan 2006 20:01:19 +0000 (20:01 +0000)]
Removed compiler warning
legendre [Thu, 19 Jan 2006 20:01:18 +0000 (20:01 +0000)]
Added DYNINST_sysEntry, which tracks the vsyscall page from the RT library,
but is currently disabled.
legendre [Thu, 19 Jan 2006 20:01:16 +0000 (20:01 +0000)]
Added vsys_status_ variable to track the state of whether we've tried to read
the vsyscall page, and wheter we were successful.
legendre [Thu, 19 Jan 2006 20:01:13 +0000 (20:01 +0000)]
Made the vsyscall detection more intelligent.
nater [Tue, 17 Jan 2006 23:13:53 +0000 (23:13 +0000)]
Fix multiple execution of instructions in delay slots on SPARC. - - - -
test whether an instruction has a delay slot before setting
return address from multiTramp
jodom [Tue, 17 Jan 2006 18:02:30 +0000 (18:02 +0000)]
Add undocumented type id T (Fortran TYPE) for Sun native compiler.
legendre [Mon, 16 Jan 2006 17:50:20 +0000 (17:50 +0000)]
Add depends to cvsignore
legendre [Mon, 16 Jan 2006 17:50:17 +0000 (17:50 +0000)]
Added new files image-flowGraph.C to Paradyn and Windows builds
nater [Sat, 14 Jan 2006 23:48:00 +0000 (23:48 +0000)]
update dyninst parsing to support shared and non-contiguous code - - - -
nater [Sat, 14 Jan 2006 23:47:58 +0000 (23:47 +0000)]
update dyninst parsing to support shared and non-contiguous code - - - -
moved parsing methods to image-flowGraph.C
nater [Sat, 14 Jan 2006 23:47:56 +0000 (23:47 +0000)]
update dyninst parsing to support shared and non-contiguous code - - - -
add method to look up basic blocks by address within a process'
codeRangeTree. Also fixes compile error on AIX.
nater [Sat, 14 Jan 2006 23:47:53 +0000 (23:47 +0000)]
update dyninst parsing to support shared and non-contiguous code - - - -
handle relocation of functions containing shared code. If insertion of
a tramp for instrumentation would overwrite a shared region of code,
relocation will be forced on supported platforms.
nater [Sat, 14 Jan 2006 23:47:48 +0000 (23:47 +0000)]
update dyninst parsing to support shared and non-contiguous code - - - -
removed architecture-specific parsing; all parsing is now handled in
the architecture-independent routines of image-flowGraph. the
image-<arch> files implement routines to handle any special processing
during parsing.
nater [Sat, 14 Jan 2006 23:47:46 +0000 (23:47 +0000)]
update dyninst parsing to support shared and non-contiguous code - - - -
add edge type information, move parsing code to image-flowGraph.C,
nater [Sat, 14 Jan 2006 23:47:44 +0000 (23:47 +0000)]
update dyninst parsing to support shared and non-contiguous code - - - -
support relocation, low-level object lookup with shared code
nater [Sat, 14 Jan 2006 23:47:43 +0000 (23:47 +0000)]
update dyninst parsing to support shared and non-contiguous code - - - -
Implemented missing is_image_basicBlock method
nater [Sat, 14 Jan 2006 23:47:41 +0000 (23:47 +0000)]
update dyninst parsing to support shared and non-contiguous code - - - -
Add a "privileged" class of instructions (e.g., hlt) that may be used
(e.g., in glibc) to really /ensure/ that a system call to, for example,
exit() is really going to exit. These instructions end basic blocks.
nater [Sat, 14 Jan 2006 23:47:39 +0000 (23:47 +0000)]
update dyninst parsing to support shared and non-contiguous code - - - -
Make getMultipleJumpTargets use same data types as other architectures
nater [Sat, 14 Jan 2006 23:47:34 +0000 (23:47 +0000)]
update dyninst parsing to support shared and non-contiguous code - - - -
InstrucIters for all architectures now implement the same methods
nater [Sat, 14 Jan 2006 23:47:32 +0000 (23:47 +0000)]
update dyninst parsing to support shared and non-contiguous code - - - -
see whether function has shared blocks
nater [Sat, 14 Jan 2006 23:47:30 +0000 (23:47 +0000)]
update dyninst parsing to support shared and non-contiguous code - - - -
moved platform-independent parsing code to separate file
jodom [Fri, 13 Jan 2006 22:10:27 +0000 (22:10 +0000)]
Update recognition of new IBM XL C++ compiler, eliminate duplicate symbols
caused by wanting type information.
chadd [Fri, 13 Jan 2006 14:37:48 +0000 (14:37 +0000)]
This commit makes my commit of 11 jan more robust, it now
runs on RedHat Enterprise and older versions of RedHat 9.
This commit moves the start of the heap past the memory
location that holds the DYNINST_tramp_guards.
This is applied on Linux and Solairs (ELF format platforms)
jodom [Fri, 13 Jan 2006 08:32:39 +0000 (08:32 +0000)]
At one point a NO_OPT_FLAG build stopped using -g. This turns debugging
symbols back on for builds without optimization.
jodom [Fri, 13 Jan 2006 08:21:32 +0000 (08:21 +0000)]
Discard additional callee frame for non function-entry instPoints when
unwinding through the stack.
jodom [Fri, 13 Jan 2006 04:05:30 +0000 (04:05 +0000)]
Make the native solaris c++ demangler act more like the gnu version when
given non-c++ symbols.
jodom [Fri, 13 Jan 2006 00:00:47 +0000 (00:00 +0000)]
Sets the brk pointer for save-the-world binaries to what it was when each
dynamic library loaded by loadLibrary() is loaded. This forces the libraries
to load in the correct location.
chadd [Wed, 11 Jan 2006 16:23:49 +0000 (16:23 +0000)]
Forgot this file in the previous commit.
"1" and "i" look too much alike!
chadd [Wed, 11 Jan 2006 15:41:30 +0000 (15:41 +0000)]
This commit closes two bugs, 539 and 540, save the world failures on Solaris and Linux.
This commit also brings Solaris inline with Linux with respect to using dlopen() to load
libelf into the RT lib as opposed to linking libelf in during compilation. This work was
started by Matt.