dyninst.git
20 years agoAdded -fno-squangle to compile flags
bernat [Thu, 22 Mar 2001 20:47:02 +0000 (20:47 +0000)]
Added -fno-squangle to compile flags

20 years agoUpdated version number to 2.3 for release. Release3_2
pcroth [Wed, 14 Mar 2001 14:02:21 +0000 (14:02 +0000)]
Updated version number to 2.3 for release.

20 years agoReplaced // comments with /* .. */
bernat [Mon, 12 Mar 2001 17:42:13 +0000 (17:42 +0000)]
Replaced // comments with /* .. */

20 years agoReplaced // comments with /*..*/.
bernat [Mon, 12 Mar 2001 17:40:07 +0000 (17:40 +0000)]
Replaced // comments with /*..*/.

20 years agofix the way that we include call35_1_x86_linux.s into test1.mutatee
schendel [Fri, 9 Mar 2001 22:06:05 +0000 (22:06 +0000)]
fix the way that we include call35_1_x86_linux.s into test1.mutatee

20 years agoFixes bug in SPARC where paradynd dies when the attached process exits.
shergali [Fri, 9 Mar 2001 20:01:44 +0000 (20:01 +0000)]
Fixes bug in SPARC where paradynd dies when the attached process exits.
M paradynd/src/perfStream.C
Altered the TR_EXIT case to force an aligned access to the output stats
structure

20 years agoOne last round before the release. Removed excess debug output, and
bernat [Fri, 9 Mar 2001 19:52:18 +0000 (19:52 +0000)]
One last round before the release. Removed excess debug output, and
fixed the (previously disabled) optimizations.

20 years agoThis commit sets functions with a call to the address call+5
gurari [Fri, 9 Mar 2001 17:50:04 +0000 (17:50 +0000)]
This commit sets functions with a call to the address call+5
non-relocatable. Calls to call+5 are used in dynamically linked
libraries of the code to get the address of the code. This should be
temporary, we will later change the call (during relocation) to a
functionally equivalent and non-problematic instruction sequence.
  Also, relocation failures (relocation was not successful) now revert us
back to using traps. Previously, if an attempt to relocate a function
failed, knowledge of the failure was lost. i.e. we assumed that the
function relocation worked, but there was no check to make sure that it
did. We now check that the relocation was succesful and if it wasn't,
we use traps on that function.

20 years agoRemoved an optimization while loading a const value into a register
bernat [Fri, 9 Mar 2001 15:58:52 +0000 (15:58 +0000)]
Removed an optimization while loading a const value into a register
(emitV), it was causing incorrect values on odd-numbered SP nodes.
Anyone have any idea why?

20 years agoM paradynd/src/shmSegment-unix.C
bernat [Thu, 8 Mar 2001 23:01:00 +0000 (23:01 +0000)]
M paradynd/src/shmSegment-unix.C
  * Better debug message

20 years ago8MAR01
bernat [Thu, 8 Mar 2001 23:00:48 +0000 (23:00 +0000)]
8MAR01
M dyninstAPI/src/Object-xcoff.C
  * Added a list of MPI symbols to skip (since they have PMPI_* equivalents)
  * Unified the inferior heap scavenging code
M dyninstAPI/src/aix.C
  * Fixed up memory allocation constraints.
M dyninstAPI/src/inst-power.C
  * Fixed post-fork tramp reinsertion code
M dyninstAPI/src/inst.C
  * Minitramps now use the (unlimited) data heap space, instead of
    scavenged (and limited) text heap space.

20 years agoTemporary fix of a bug that was causing the daemon to die on multi-threaded
shergali [Wed, 7 Mar 2001 23:10:24 +0000 (23:10 +0000)]
Temporary fix of a bug that was causing the daemon to die on multi-threaded
jobs.  This works for now, but we need a better solution in the future.

20 years agoChanged some accessor functions to be const to work with the fixed
pcroth [Wed, 7 Mar 2001 21:03:25 +0000 (21:03 +0000)]
Changed some accessor functions to be const to work with the fixed
LocalAlteration object sorting method.

20 years agoFixed sorting of alterations so that alterations are now ordered by the
pcroth [Wed, 7 Mar 2001 21:02:08 +0000 (21:02 +0000)]
Fixed sorting of alterations so that alterations are now ordered by the
offset at which they are to be applied rather than the address of the
LocalAlteration object within the mutator/paradynd address space.

20 years agoFixed problem for Windows NT whereby inferior RPC could be skipped if the
pcroth [Tue, 6 Mar 2001 15:45:16 +0000 (15:45 +0000)]
Fixed problem for Windows NT whereby inferior RPC could be skipped if the
application had already executed a trap instruction.  (The next
WaitForDebugEvent call indicates the occurrence of the trap, and the
inferior RPC code is never executed.)  Now saves the address of the pending
base tramp to execute once the inferior RPC is complete.

20 years agoModify the beginning of func34_2 in test1.mutatee.c, so that the entry point
buck [Tue, 6 Mar 2001 04:55:11 +0000 (04:55 +0000)]
Modify the beginning of func34_2 in test1.mutatee.c, so that the entry point
to that function is not also a branch target (which Dyninst cannot currently
handle; this only happened with some compilers).

20 years agoThis commit fixes a bug in sparc's function relocation that caused
gurari [Fri, 2 Mar 2001 01:29:29 +0000 (01:29 +0000)]
This commit fixes a bug in sparc's function relocation that caused
instPoints to be incorrectly updated in the deoptimization of
jump-nop tail calls, and call-restore tail calls. Previously, instPoints
were not being shifted out of the delay slots of the call or jump instructions
that preceeded them.

20 years agoM dyninstAPI/src/Object-xcoff.C
bernat [Thu, 1 Mar 2001 22:43:21 +0000 (22:43 +0000)]
M dyninstAPI/src/Object-xcoff.C
  * Scavenge space from the end of a shared object to the next page
    boundary as inferior heap space. This is done by creating a symbol
    DYNINSTstaticHeap_anyHeap_<size>_<addr> and adding it to the list
    of symbols in the image.
M dyninstAPI/src/aix.C
  * Raise the limit on where we can allocate memory from 0xd0000000
    (the start of the shared object space) to 0xe0000000 (the beginning
    of kernel space).
M dyninstAPI/src/aixDL.C
  * Add error output.

20 years agohandleIfDueTo...: add shared objects if on rs6000-ibm-aix4.2 platform.
bernat [Wed, 28 Feb 2001 23:59:24 +0000 (23:59 +0000)]
handleIfDueTo...: add shared objects if on rs6000-ibm-aix4.2 platform.
Otherwise we get into an infinite loop. We need to look at instrumenting
these shared objects.

20 years agoChanged the includeFiles array in BPatch_module.C from a fixed-size array
buck [Tue, 27 Feb 2001 20:44:51 +0000 (20:44 +0000)]
Changed the includeFiles array in BPatch_module.C from a fixed-size array
to a BPatch_Vector, in order to accomodate any number of include files.
To support this, removed the "const" qualifier from BPatch_Vector::operator[].

20 years agoRemoved const qualifier from stub function in response to change in
pcroth [Tue, 27 Feb 2001 16:26:17 +0000 (16:26 +0000)]
Removed const qualifier from stub function in response to change in
signature for AIX version.

20 years agoChanged C++-style comment to C-style comment to be acceptable to all
pcroth [Tue, 27 Feb 2001 15:18:40 +0000 (15:18 +0000)]
Changed C++-style comment to C-style comment to be acceptable to all
C compilers

20 years agoRemoved extraneous fork when starting Paradyn. This needs to be tested.
bernat [Mon, 26 Feb 2001 21:37:15 +0000 (21:37 +0000)]
Removed extraneous fork when starting Paradyn. This needs to be tested.

20 years agoRTaix.c: added support for calling dlopen from the mutator
bernat [Mon, 26 Feb 2001 21:36:58 +0000 (21:36 +0000)]
RTaix.c: added support for calling dlopen from the mutator
RTheap.c: Added a test for one failure case when allocating memory.

20 years agoAdd dlopen-based tests for rs6000-ibm-aix4.2
bernat [Mon, 26 Feb 2001 21:35:55 +0000 (21:35 +0000)]
Add dlopen-based tests for rs6000-ibm-aix4.2

20 years agoBuild libtestA.so and libtestB.so correctly
bernat [Mon, 26 Feb 2001 21:35:35 +0000 (21:35 +0000)]
Build libtestA.so and libtestB.so correctly

20 years agoBPatch_thread: bugfixes
bernat [Mon, 26 Feb 2001 21:34:37 +0000 (21:34 +0000)]
BPatch_thread: bugfixes
Object_xcoff: Added a "fake" inferior heap to the end of the binary image.
aix.C, aix.h: Support for dlopening runtime library
aixDL.C: Cleanups
arch-power.h: cleanups
ast.C: Bugfixes
inst-power.C: cleanup (partially complete)
process.C: Specifically check against the runtime library's name before
  assuming it was loaded.
process.h: cleanups
symtab.C: Explicit casting to remove compiler warnings
unix.C: Removed relinking command -- deprecated

20 years agoAdded USES_LIBDYNINSTRT_SO define to AIX platform defines
bernat [Mon, 26 Feb 2001 21:32:06 +0000 (21:32 +0000)]
Added USES_LIBDYNINSTRT_SO define to AIX platform defines

20 years agoThis commit fixes a bug with Function Relocation on sparc. The problem was
gurari [Sun, 25 Feb 2001 20:27:55 +0000 (20:27 +0000)]
This commit fixes a bug with Function Relocation on sparc. The problem was
that the call instructions in tail-call de-optimizations were not being
relocated correctly, which led to calls to random addresses. For example,
a tail call optimization with a call to a function Foo(), followed by a
restore instruction, would be unwound correctly, except that the call
instruction in the de-optimized and relocated function, would not be a
call to Foo(), but to some random address. This was because the address being
passed into LocalAlteration's RewriteFootprint method was that of a copy
of "this" function (an address in the mutator's address space), rather than the
real address of "this" function (an address in the mutatee's address space).

20 years agoModified RTetc-irix.c to handle using R10000 hardware counters for
shergali [Fri, 23 Feb 2001 23:25:34 +0000 (23:25 +0000)]
Modified RTetc-irix.c to handle using R10000 hardware counters for
tracking CPU time.

20 years agoModified irix.C and process.h to handle using R10000 hardware counters for
shergali [Fri, 23 Feb 2001 23:24:57 +0000 (23:24 +0000)]
Modified irix.C and process.h to handle using R10000 hardware counters for
tracking CPU time.

20 years agoChanged process creation so that newly created process inherits handles
pcroth [Fri, 23 Feb 2001 15:19:23 +0000 (15:19 +0000)]
Changed process creation so that newly created process inherits handles
from the mutator/paradynd.  With this change, the standard handles (stdout/
stderr/stdin) of the created process are the same as those for the mutator,
allowing output redirection to work as expected.

20 years agoupdate costs associated with start/stop timer routines in rtinst library
schendel [Fri, 23 Feb 2001 08:03:44 +0000 (08:03 +0000)]
update costs associated with start/stop timer routines in rtinst library

20 years agoturn on compiling with optimizations
schendel [Fri, 23 Feb 2001 00:00:56 +0000 (00:00 +0000)]
turn on compiling with optimizations

20 years agoUpdated to ignore dll and exp files produced when building dyninst as a DLL.
pcroth [Wed, 21 Feb 2001 21:24:15 +0000 (21:24 +0000)]
Updated to ignore dll and exp files produced when building dyninst as a DLL.

20 years agoUpdated stack walk code to handle situations where the thread was
pcroth [Wed, 21 Feb 2001 21:04:00 +0000 (21:04 +0000)]
Updated stack walk code to handle situations where the thread was
executing in a tramp or a relocated function when it was paused.
While walking the stack, if an address is found that is outside of the
"normal" text of the process, we now attempt to determine if it is an
address within a base tramp or relocated function, and if so, to artificially
restart the stack walk using an address from the function's original location.

One unfortunate caveat - we still cannot reliably handle apps that have
been compiled with the FPO optimization.  It seems like there just isn't
enough information available in the FPO records left behind by the compiler
to allow a reliable stack walk in some cases.

20 years agoThis file was renamed call35_1_x86_linux.s.
gurari [Tue, 20 Feb 2001 22:06:05 +0000 (22:06 +0000)]
This file was renamed call35_1_x86_linux.s.

20 years agoThis file was renamed call35_1_x86_solaris.s
gurari [Tue, 20 Feb 2001 22:05:36 +0000 (22:05 +0000)]
This file was renamed call35_1_x86_solaris.s

20 years agoFunctionExpansionRecord-x86.C was created as a variant of
gurari [Tue, 20 Feb 2001 22:03:04 +0000 (22:03 +0000)]
FunctionExpansionRecord-x86.C was created as a variant of
FunctionExpansionRecord.C, to be used for x86 function relocation. Once x86 and
sparc relocation were brought under the same code, sparc's
FunctionExpansionRecord.C was removed and replaced by x86's
FunctionExpansionRecord-x86.C, i.e. FunctionExpansionRecord-x86.C
became FunctionExpansionRecord.C

20 years agotemplates0.c previously included (conditionally)
gurari [Tue, 20 Feb 2001 21:48:45 +0000 (21:48 +0000)]
templates0.c previously included (conditionally)
FunctionExpansionRecord.h or FunctionExpansionRecord-x86.h (depending on
the platform). Since FunctionExpansionRecord-x86.h no longer exists, all
platforms now include FunctionExpansionRecord.h.

20 years agoAbout a dozen methods were removed from inst-sparc-solaris.C, some of
gurari [Tue, 20 Feb 2001 21:47:33 +0000 (21:47 +0000)]
About a dozen methods were removed from inst-sparc-solaris.C, some of
which are no longer needed (e.g. calcRelocationExpansions,
findNewInstPoints), and others that were platform independent and used
by x86 ( e.g.find_overlap(), sorted_ips_vector() ) and could therefore be
moved to func-reloc.C.

20 years agoSparc's old version of the RelocateFunction() was removed from
gurari [Tue, 20 Feb 2001 21:46:37 +0000 (21:46 +0000)]
Sparc's old version of the RelocateFunction() was removed from
inst-sparc.C (and replaced by a platform independent version located in
func-reloc.C).

20 years agoThese Makefiles were altered to reflect the removal of the files
gurari [Tue, 20 Feb 2001 21:45:36 +0000 (21:45 +0000)]
These Makefiles were altered to reflect the removal of the files
FuntionExpansionRecord-x86.C and FuntionExpansionRecord-x86.h
(those files were renamed FuntionExpansionRecord.C and
FuntionExpansionRecord.C).

20 years agoI renamed the assembly files linked in for Test #35 of the test suite.
gurari [Tue, 20 Feb 2001 21:41:46 +0000 (21:41 +0000)]
I renamed the assembly files linked in for Test #35 of the test suite.
This required that the Makefiles be changed. I also added for future
reference the C file that these platform dependent assembly files were
based on. Also, Test #35 of the dyninst test suite is now implemented for
sparc.

20 years agoThe RewriteFootprint() methods of the sparc-specific localAlterations
gurari [Tue, 20 Feb 2001 21:40:50 +0000 (21:40 +0000)]
The RewriteFootprint() methods of the sparc-specific localAlterations
were modified to reflect changes in how the methods were called.
This included adding some parameters which needed to be passed in for
bookkeeping, and adding other parameters that were not needed on the
sparc side, but were used in x86 versions of RewriteFootprint. This
allowed for code relocated to localAlterations to be treated as platform
independent. Also, LocalAlteration.C had previously been sparc dependent,
but it is now platform independent.

20 years agoThe files FunctionExpansionRecord.C and FunctionExpansionRecord.h were
gurari [Tue, 20 Feb 2001 21:39:53 +0000 (21:39 +0000)]
The files FunctionExpansionRecord.C and FunctionExpansionRecord.h were
removed and the files that had previously been called
FunctionExpansionRecord-x86.C and FunctionExpansionRecord-x86.h were
renamed to reflect their platform independence.

20 years agoThese files were altered because sparc function relocation now has a
gurari [Tue, 20 Feb 2001 21:38:56 +0000 (21:38 +0000)]
These files were altered because sparc function relocation now has a
different structure and uses different methods.

20 years agoThe purpose of this commit is to bring sparc function relocation under
gurari [Tue, 20 Feb 2001 21:36:36 +0000 (21:36 +0000)]
The purpose of this commit is to bring sparc function relocation under
the same code as x86 function relocation. The changes were mostly done on
the sparc side, with the creation of a few new functions (as a level of
indirection) so that x86 and sparc could share code. Functions that had
been used in sparc's old function relocation and which were no longer
needed, were removed. A few changes were made on the x86 side, but these
were minor and were done to make the platform independent code fit better
with the sparc code.

20 years agothis version I make modification in the implementation of find corresponding
wxd [Mon, 19 Feb 2001 15:36:48 +0000 (15:36 +0000)]
this version I make modification in the implementation of find corresponding
nodes in callGraph and whereAxis. Instead of using the name appearing on
GUI in the last version, the resourceHandle of the nodes are made use of.
Therefore in where4tree class, a parent pointer is added to maintain the
parent-child relationship of whereAxis hierarchy.

20 years agoMisc. bug fixes:
buck [Mon, 19 Feb 2001 07:03:13 +0000 (07:03 +0000)]
Misc. bug fixes:
Fixes to some prototypes in solarisHeaders.h
Fixes to parsing elf executables.
Fix for using the return value of fork rather than errno only to check for
errors when creating a child process.

20 years agoFixed problem with SHG display of focus strings containing /Code resources
pcroth [Thu, 15 Feb 2001 16:57:03 +0000 (16:57 +0000)]
Fixed problem with SHG display of focus strings containing /Code resources
with pathnames that include backslashes.  Backslashes are now properly
escaped before the resource name is passed to the Tk widget for display.

20 years ago*added reference to external callGraph variable theCallGraphPrograms so
wxd [Mon, 12 Feb 2001 14:53:07 +0000 (14:53 +0000)]
*added reference to external callGraph variable theCallGraphPrograms so
that it is possible to map state from whereAxis to callGraph
*added some code in SingleClick and DoubleClick method to get the selection
state of the current node, then send to callGraph

20 years ago* add map_to_CallGraph method to map selection state to callGraph when some
wxd [Mon, 12 Feb 2001 14:53:07 +0000 (14:53 +0000)]
* add map_to_CallGraph method to map selection state to callGraph when some
nodes are selected or unselected in whereAxis
* add map_from_callgraph method to synchronize the selection state of node
representing by string parameter with state info representing by bool
parameter.  called by callGraph

20 years ago* added accessor for shadow node state
wxd [Mon, 12 Feb 2001 14:53:06 +0000 (14:53 +0000)]
* added accessor for shadow node state

20 years ago* add new method map_from_WhereAxis for mapping from whereAxis to callGraph
wxd [Mon, 12 Feb 2001 14:53:06 +0000 (14:53 +0000)]
* add new method map_from_WhereAxis for mapping from whereAxis to callGraph

20 years ago* add new data member shadow_nodes for callGraph so that primary nodes can
wxd [Mon, 12 Feb 2001 14:53:06 +0000 (14:53 +0000)]
* add new data member shadow_nodes for callGraph so that primary nodes can
remember their shadow siblings
* add new data member primary_path for callGraph so that shadow node can find
their primary nodes when necessary
* add new method addShadowNode for callGraph to adding a shadow node for
primary node
* add new method setPrimaryPath for callGraph to make shadow node keep track of
the path from Root to its primary node, also to make primary node keep track
of path from Root to itself
* add net method getPrimaryPath and getShadowNodes to access data member

20 years ago* add map_to_WhereAxis method to map selection info from callGraph to whereAxis
wxd [Mon, 12 Feb 2001 14:53:06 +0000 (14:53 +0000)]
* add map_to_WhereAxis method to map selection info from callGraph to whereAxis
*add map_from_WhereAxis method to map selection info from whereAxis to callGraph
* add notify_shadow method to synchronize selection state between primary node
and shadow nodes

20 years ago* include reference to external variable theAbstractions, so that it is
wxd [Mon, 12 Feb 2001 14:53:05 +0000 (14:53 +0000)]
* include reference to external variable theAbstractions, so that it is
possible to map from callGraph to whereAxis
* in addItem method, when adding a node, check whether it is a shadow node
and treat it differently according to shadow state
* in SingleClick and DoubleClick method, add some code to trigger the
mapping to whereAxis the selection state of current selected node

20 years ago* add map_from_callgraph method to map the selection info from callgraph to
wxd [Mon, 12 Feb 2001 14:53:05 +0000 (14:53 +0000)]
* add map_from_callgraph method to map the selection info from callgraph to
whereAxis

20 years agoChanged to keep track of order of definition of top-level resources (resource
pcroth [Sun, 11 Feb 2001 20:03:42 +0000 (20:03 +0000)]
Changed to keep track of order of definition of top-level resources (resource
hierarchy roots).  By keeping track of this ordering, the getSelections()
method can return selections as tuples with elements in the same order as
is used by the Performance Consultant.  Without the same ordering, PC search
refinements may fail to respect the resource hierarchy (or callgraph) structure.

20 years agoThis commit limits how LocalAlterationSets are used for function
gurari [Fri, 9 Feb 2001 23:40:38 +0000 (23:40 +0000)]
This commit limits how LocalAlterationSets are used for function
relocation. LocalAlterationSets are a data structure for recording how
the relocated function will be expanded during its rewriting (i.e. they
record how many bytes of nops are to be inserted at a certain offset from
the beginning of the function). Previously, LocalAlterationSets fell into
two categories: these were Normalized sets, where the offset of the
alteration is relative to the original, non-relocated function, and
Expanded sets, where the offset of the alteration is relative to the
rewritten and relocated function. I have removed the use of Expanded
LocalAlterationSets in the code, and gotten rid of two functions,
copyAlterationSet() and shiftAlterationSet().

20 years agoM paradynd/src/init-aix.C
bernat [Fri, 9 Feb 2001 20:38:18 +0000 (20:38 +0000)]
M paradynd/src/init-aix.C
  * Changed initial instrumentation for MPI from MPI__* to PMPI_*.
    We were getting conflicts because of the stub nature of PMPI_*.
    This can be changed back (if anyone cares) when we get proper
    aliasing support.

20 years agoM dyninstAPI/src/Object-xcoff.C
bernat [Fri, 9 Feb 2001 20:37:47 +0000 (20:37 +0000)]
M dyninstAPI/src/Object-xcoff.C
  * Include arch-power.h file for instruction format information
  * Handle parsing in the case where we do not have valid text and
    data offset information. In this case, punt -- skip anything that
    includes a read from the inferior process' memory, assuming that
    the file will be reparsed later.
  * Correctly detect function length for (MPI) "stub" functions, which
    only consist of a single unconditional, non-linking branch to a
    second function. These do not end with a 0x0 value, and confuse our
    function size code. We now check to see if the first instruction
    is a branch to a different function.
  * Manually skip various MPI_* functions in favor of the PMPI_* names.
    This needs to be fixed at a higher level with support for function
    aliasing.
  * Fix archive parsing code.

M dyninstAPI/src/Object-xcoff.h
  * Added a newline somewhere. No real changes.

M dyninstAPI/src/aix.C
  * Added a prototype function to decode instructions for debugging
    output. Unused, but nice to have in the future.
  * HACKED deliverPtrace code to sleep for a short amount of time after
    writing to the inferior process. This avoids a problem I had been seeing
    on POWER 3 processors where recent writes did not appear to the
    instruction fetch stream, and so we crashed in inferior RPCs and
    (occasionally) other places as well. This needs to be fixed with an
    explicit buffer flush.
  * Added some (unused) debugging material to print a stack trace when
    dumping the process image. Leaving it in since it may be useful in
    the future.
  * Handle attach case where we can't ptrace the loader info for a process
    by setting text and data offset values to -1 (illegal).
  * Turn on multiprocess debugging when we check for shared libraries. This
    means we don't miss the attach case accidentally.
  * Handle dlopen() and load() appropriately.

M dyninstAPI/src/aixDL.C
  * Wrote handleIfDueToSharedObjectMapping(), which takes the current
    list of loaded libraries from the kernel, compares it to the daemon's,
    and reports any newly loaded/unloaded libraries.

M dyninstAPI/src/arch-power.h
  * Added genericform (6/26 bit pattern) to instruction union.

M dyninstAPI/src/inst-power.C
  * Removed spurious error messages when tracking inter-module calls.
    We now only complain if a _non-zero_ illegal address is detected.
    Previously we complained if zero was found, but this is legal for a
    function never called by the program.
  * Removed various debugging output which is no longer necessary.
  * Cleaned up code to reduce compiler warnings.
* Reparse the image after attaching on AIX only (#ifdef). Fixes
    attach failures.
  * Allocate non-constrained memory from anyHeap instead of textHeap
    for inferior RPCs. Only means anything on AIX, where we have a
    limited amount of textHeap.

M dyninstAPI/src/symtab.C
  * Added support for reparsing an image, replacing the original in the
    allImages vector. AIX only -- #ifdef'd

M dyninstAPI/src/unix.C
  * Support for on-the-fly relinking still disabled. Shouldn't make
    a difference in the near future anyway, and isn't working quite
    right. Link line is now dynamic if it matters.

20 years agoThis commit is merely cosmetic, it comments out a few print lines in the
gurari [Mon, 5 Feb 2001 16:42:14 +0000 (16:42 +0000)]
This commit is merely cosmetic, it comments out a few print lines in the
method relocateFunction().

20 years agocall35_1 is a function written in assembly and used for testing function
gurari [Fri, 2 Feb 2001 21:27:26 +0000 (21:27 +0000)]
call35_1 is a function written in assembly and used for testing function
relocation on linux and solaris. This function is instrumented in test #35
of the dyninst test suite.

20 years agoAdded functionality to the LocalAlterationSet data structure to allow the
gurari [Fri, 2 Feb 2001 21:26:54 +0000 (21:26 +0000)]
Added functionality to the LocalAlterationSet data structure to allow the
values of data members to changed. Methods were also added for
manipulating the basic LocalAlterationSet structure.

20 years agoAdded functionality to the FunctionExpansionRecord data structure to allow
gurari [Fri, 2 Feb 2001 21:26:18 +0000 (21:26 +0000)]
Added functionality to the FunctionExpansionRecord data structure to allow
the values of data members to be changed.

20 years agoMethods for regulating the relocation and rewriting of the function.
gurari [Fri, 2 Feb 2001 21:25:37 +0000 (21:25 +0000)]
Methods for regulating the relocation and rewriting of the function.
Determines where in the function to insert nops and determines how
to updates jump instructions so that their target destinations are
correct. There are methods for manipulating LocalAlterationSets, which
are the fundamental tools for relocating functions.

20 years agoModified to compile dyninstAPI/src/func-reloc.C,
gurari [Fri, 2 Feb 2001 21:24:19 +0000 (21:24 +0000)]
Modified to compile dyninstAPI/src/func-reloc.C,
dyninstAPI/src/LocalAlteration-x86.C, and
dyninstAPI/src/FunctionExpansionRecord-x86.C on each x86 platform

20 years agoI removed the command to compile FunctionExpansionRecord.C from
gurari [Fri, 2 Feb 2001 21:23:24 +0000 (21:23 +0000)]
I removed the command to compile FunctionExpansionRecord.C from
paradynd/make.module.tmpl, and explicitly added the command to the
Makefiles for alpha-dec-osf4.0, mips-sgi-irix6.5, rs6000-ibm-aix4.2, and
sparc-sun-solaris2.6. This is because I created a slightly changed
version of FunctionExpansionRecord.C for x86,
FunctionExpansionRecord-x86.C, and both files can not be compiled for x86.

20 years agoAdded a test (test #35) for linux and solaris to verify that function
gurari [Fri, 2 Feb 2001 21:22:14 +0000 (21:22 +0000)]
Added a test (test #35) for linux and solaris to verify that function
relocation is being done correctly. The test instruments an assembly
function (call35_1.s) which requires relocation for several reasons.

20 years agoInserted commands for compiling the assembly function call35_1.s, which is
gurari [Fri, 2 Feb 2001 21:21:16 +0000 (21:21 +0000)]
Inserted commands for compiling the assembly function call35_1.s, which is
used for testing function relocation on linux and solaris.

20 years agoAdd declaration of "template class vector<LocalAlteration*>" for x86.
gurari [Fri, 2 Feb 2001 21:20:18 +0000 (21:20 +0000)]
Add declaration of "template class vector<LocalAlteration*>" for x86.

20 years agoAdded declarations for new pd_Function methods and member variables.
gurari [Fri, 2 Feb 2001 21:19:32 +0000 (21:19 +0000)]
Added declarations for new pd_Function methods and member variables.

20 years agoThe method pcsToFuncs was added to calculate which functions correspond
gurari [Fri, 2 Feb 2001 21:19:05 +0000 (21:19 +0000)]
The method pcsToFuncs was added to calculate which functions correspond
to a set of PCs. This is used in determining whether a function can be
relocated safely, i.e. whether or not we are currently executing inside
the function to be relocated.

20 years agoA member variable was added to x86's instPoints to indicate whether an
gurari [Fri, 2 Feb 2001 21:18:26 +0000 (21:18 +0000)]
A member variable was added to x86's instPoints to indicate whether an
instPoint corresponds to the original or relocated function. Also,
Functionality was added to calculate how many extra bytes need to be
inserted at the instPoint to make the function instrumentable with a
jump instead of a trap.

20 years agoCode was inserted for determining whether a function is relocatable.
gurari [Fri, 2 Feb 2001 21:18:01 +0000 (21:18 +0000)]
Code was inserted for determining whether a function is relocatable.
Functions were added for rewriting the relocated function, as well as for
updating pd_Function member variables, notably the instPoints.

20 years agoCreated functions to allow for the manipulation of x86 machine
gurari [Fri, 2 Feb 2001 21:17:18 +0000 (21:17 +0000)]
Created functions to allow for the manipulation of x86 machine
instructions. Specifically, these functions allow us to change the
displacement of relative jump instructions

20 years agoChanged a *(instPoint) to a *&(instPoint). Upon relocation of a function,
gurari [Fri, 2 Feb 2001 21:16:46 +0000 (21:16 +0000)]
Changed a *(instPoint) to a *&(instPoint). Upon relocation of a function,
all instPoints now correspond to the relocated function and not to the
original function.

20 years agoModified to compile func-reloc.C, LocalAlteration-x86.C, and
gurari [Fri, 2 Feb 2001 21:15:49 +0000 (21:15 +0000)]
Modified to compile func-reloc.C, LocalAlteration-x86.C, and
FunctionExpansionRecord-x86.C

20 years agoAdded #ifdef around function call whose target is currently not included
pcroth [Fri, 2 Feb 2001 15:58:59 +0000 (15:58 +0000)]
Added #ifdef around function call whose target is currently not included
in the NT build.

20 years agoRemoved unnecessary link against imagehlp library in response to libdyninstAPI
pcroth [Thu, 1 Feb 2001 16:25:17 +0000 (16:25 +0000)]
Removed unnecessary link against imagehlp library in response to libdyninstAPI
being built as a DLL.

20 years agoRemoved declaration of V_libdyninstAPI (now included in dyninstAPI headers).
pcroth [Thu, 1 Feb 2001 16:24:44 +0000 (16:24 +0000)]
Removed declaration of V_libdyninstAPI (now included in dyninstAPI headers).

20 years agoRemoved unnecessary link against imagehlp library in response to libdyinstAPI
pcroth [Thu, 1 Feb 2001 16:24:24 +0000 (16:24 +0000)]
Removed unnecessary link against imagehlp library in response to libdyinstAPI
being built as a DLL.

20 years agoUpdated to build library as a DLL under Windows NT, and to install both
pcroth [Thu, 1 Feb 2001 16:23:28 +0000 (16:23 +0000)]
Updated to build library as a DLL under Windows NT, and to install both
.lib and .dll files into the destination directory.

20 years agoAdded DLL linkage specification to class declarations to support building
pcroth [Thu, 1 Feb 2001 16:22:41 +0000 (16:22 +0000)]
Added DLL linkage specification to class declarations to support building
library as a DLL under Windows NT.

20 years agofix the scope of an ifdef
schendel [Thu, 1 Feb 2001 01:11:26 +0000 (01:11 +0000)]
fix the scope of an ifdef

20 years agoupdated NT DEPENDS files
schendel [Thu, 1 Feb 2001 01:11:08 +0000 (01:11 +0000)]
updated NT DEPENDS files

20 years agoinclude int64iostream.h for debug output on NT, remove unnecessary
schendel [Thu, 1 Feb 2001 01:10:29 +0000 (01:10 +0000)]
include int64iostream.h for debug output on NT, remove unnecessary
reference to RThwtimer-x86.h

20 years agorelocated the declaration for type rawTime64 from common subdirectory
schendel [Thu, 1 Feb 2001 01:09:58 +0000 (01:09 +0000)]
relocated the declaration for type rawTime64 from common subdirectory
(Types.h) to rtinst subdirectory (rtinst.h) since not relevant to dyninstAPI

20 years agorestructured RThwtimer-x86.[hc] files into platform dependent files and
schendel [Thu, 1 Feb 2001 01:08:42 +0000 (01:08 +0000)]
restructured RThwtimer-x86.[hc] files into platform dependent files and
modified implementation

20 years agoadded ability to retrieve cpu cycle rate from OS (via windows registry),
schendel [Thu, 1 Feb 2001 01:07:25 +0000 (01:07 +0000)]
added ability to retrieve cpu cycle rate from OS (via windows registry),
link in advapi32.lib where appropriate

20 years agoadd hardware level wall timers for Paradyn on NT platform
schendel [Thu, 1 Feb 2001 01:04:38 +0000 (01:04 +0000)]
add hardware level wall timers for Paradyn on NT platform

20 years agoErased an assert statement as mistankely put
tikir [Sat, 27 Jan 2001 00:58:03 +0000 (00:58 +0000)]
Erased an assert statement as mistankely put

20 years agofix a coding error seen for the MT version and remove a warning
schendel [Wed, 17 Jan 2001 17:32:21 +0000 (17:32 +0000)]
fix a coding error seen for the MT version and remove a warning

20 years agochange counter variable (ie. it's value member) to a 64 bit integer
schendel [Tue, 16 Jan 2001 22:27:25 +0000 (22:27 +0000)]
change counter variable (ie. it's value member) to a 64 bit integer

20 years agochange initialization variable for int counter metrics to a 64 bit integer
schendel [Tue, 16 Jan 2001 22:26:20 +0000 (22:26 +0000)]
change initialization variable for int counter metrics to a 64 bit integer
retire the unused "theSpinner" member variable of the intCounter class

20 years agomake daemon's reading of 64 bit shared memory counters atomic on all
schendel [Tue, 16 Jan 2001 22:25:42 +0000 (22:25 +0000)]
make daemon's reading of 64 bit shared memory counters atomic on all
platforms

20 years agoAdded copyright header.
pcroth [Fri, 5 Jan 2001 16:34:35 +0000 (16:34 +0000)]
Added copyright header.

20 years agoSimplified constructor to remove bin_grow_factor as a constructor parameter,
pcroth [Thu, 4 Jan 2001 22:50:22 +0000 (22:50 +0000)]
Simplified constructor to remove bin_grow_factor as a constructor parameter,
made into a compile-time class constant.