dyninst.git
11 years agoCorrected comment syntax
madhavi [Thu, 19 Mar 2009 02:53:53 +0000 (21:53 -0500)]
Corrected comment syntax

11 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
madhavi [Thu, 19 Mar 2009 02:49:54 +0000 (21:49 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

11 years agoVarious instructionAPI fixes & test fixes
Bill Williams [Wed, 18 Mar 2009 23:29:49 +0000 (18:29 -0500)]
Various instructionAPI fixes & test fixes

11 years agoShared pointer to dyn_detail; instructionAPI bugfixes.
Bill Williams [Wed, 11 Mar 2009 17:35:06 +0000 (12:35 -0500)]
Shared pointer to dyn_detail; instructionAPI bugfixes.

11 years agoRemoved obsolete code from lock implementation for power.
madhavi [Wed, 18 Mar 2009 21:17:35 +0000 (16:17 -0500)]
Removed obsolete code from lock implementation for power.
Also removed called to DyninstThreadIndex in Solaris DYNINSTBreakpoint.

11 years agoRemoved unnecessary call to DYNINSTthreadIndex on DYNINSTbreakpoint.
madhavi [Wed, 18 Mar 2009 21:13:30 +0000 (16:13 -0500)]
Removed unnecessary call to DYNINSTthreadIndex on DYNINSTbreakpoint.

11 years agoFix problem with converting offsets between debug files and executables
Matthew Legendre [Wed, 18 Mar 2009 17:29:16 +0000 (12:29 -0500)]
Fix problem with converting offsets between debug files and executables

11 years ago(1) Fix test5_5 failure on Solaris Native Compiler (bug 933).
madhavi [Wed, 18 Mar 2009 17:05:24 +0000 (12:05 -0500)]
(1) Fix test5_5 failure on Solaris Native Compiler (bug 933).
Solaris native compiler add a hash prefix to static variables when compiled with
debug option. The native demangler does not handle theprefix as of now.
So we remove the prefix which is of the form "$X*."

(2) Added debug messages to track thread failures on our nightly tests.
The debug messages willbe printed only in the case of deadlocks - giving
us more information about where the deadlock occurs.

11 years agoFix problems revealed in testing
Matthew Legendre [Wed, 18 Mar 2009 17:04:28 +0000 (12:04 -0500)]
Fix problems revealed in testing

11 years agoFix problem where multiple crashing mutators could send newtestsuite into infinite...
Matthew Legendre [Wed, 18 Mar 2009 16:55:54 +0000 (11:55 -0500)]
Fix problem where multiple crashing mutators could send newtestsuite into infinite loop.

The newtestsuite resume log system had a problem where multiple if three mutators would crash in a row, it could forget about the first crash and attempt to rerun that test.  That led to an infinite loop as the newtestsuite would keep attempting to rerun the same crashing tests over and over.

11 years agoHave vsyscall parsing use DWARF3 for stack walking.
Matthew Legendre [Mon, 16 Mar 2009 23:18:23 +0000 (18:18 -0500)]
Have vsyscall parsing use DWARF3 for stack walking.

This commit moves our vsyscall parsing to SymtabAPI to take advantage of DWARF3 parsing functionality that was added for StackwalkerAPI.  We now no longer need the dyninstAPI/src/parseDwarf.C file, as it was only around to support vsyscall parsing, so it's been removed.

This fixes bug 915

11 years agoMore merge fixes
Matthew Legendre [Mon, 16 Mar 2009 19:10:05 +0000 (14:10 -0500)]
More merge fixes

11 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Matthew Legendre [Mon, 16 Mar 2009 19:06:56 +0000 (14:06 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

Conflicts:
dyninstAPI_RT/sparc-sun-solaris2.9/Makefile
symtabAPI/h/Symbol.h
symtabAPI/src/Object-elf.C
symtabAPI/src/Object-elf.h
symtabAPI/src/parseDwarf.C

11 years agoAdd error logging to newtestsuite for better diagnostic messages
Matthew Legendre [Mon, 16 Mar 2009 17:35:11 +0000 (12:35 -0500)]
Add error logging to newtestsuite for better diagnostic messages

11 years agoFix problems with parsing seperate debug files on Linux when the base address of...
Matthew Legendre [Mon, 16 Mar 2009 17:34:14 +0000 (12:34 -0500)]
Fix problems with parsing seperate debug files on Linux when the base address of the debug file disagrees with the base address of the executable file.

11 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Mon, 16 Mar 2009 16:14:38 +0000 (11:14 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

Conflicts:
autodyninst/configure.in
autodyninst/make.config.local.in
configure

11 years agoAdded simple check for alternative compilers.
James Jolly [Mon, 16 Mar 2009 00:37:45 +0000 (19:37 -0500)]
Added simple check for alternative compilers.

11 years agoA copy of configure is now in the Dyninst root directory, and runs
James Jolly [Sun, 15 Mar 2009 22:55:59 +0000 (17:55 -0500)]
A copy of configure is now in the Dyninst root directory, and runs
using the scripts in autoparadyn.  As always, a new copy of
configure can be made by running autoconf in the autodyninst directory.

11 years agomisc. autoconf deltas:
James Jolly [Sun, 15 Mar 2009 22:20:45 +0000 (17:20 -0500)]
misc. autoconf deltas:
* added "soft" checks for libiberty and libunwind
* added macro that notes what type of library (shared/dynamic) is installed on the system (removed Python hack)
* added sensible INC/LIB path defaults for when the user both doesn't provide --with-package-base and specific
  --with-<package> arguments.
* cut some unecessary macro statements

11 years agoRemoved profiling flag from builds
Matthew Legendre [Sat, 14 Mar 2009 21:32:32 +0000 (16:32 -0500)]
Removed profiling flag from builds

11 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Sat, 14 Mar 2009 20:24:45 +0000 (15:24 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

11 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Fri, 13 Mar 2009 21:34:24 +0000 (16:34 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

Conflicts:
make.config
symtabAPI/src/parseDwarf.C

11 years agoDisable and remove out-of-line tramp code generation.
Andrew Bernat [Fri, 13 Mar 2009 21:31:59 +0000 (16:31 -0500)]
Disable and remove out-of-line tramp code generation.

11 years agoFix build failure I introduced earlier today.
Andrew Bernat [Fri, 13 Mar 2009 21:31:33 +0000 (16:31 -0500)]
Fix build failure I introduced earlier today.

11 years agoDisable deprecated merge tramp control functions.
Andrew Bernat [Fri, 13 Mar 2009 21:31:19 +0000 (16:31 -0500)]
Disable deprecated merge tramp control functions.

11 years agoAdd virtual "Call" node to represent formals to/from a function call.
Andrew Bernat [Fri, 13 Mar 2009 19:43:38 +0000 (14:43 -0500)]
Add virtual "Call" node to represent formals to/from a function call.

11 years agoUpdates for StackwalkerAPI
Matthew Legendre [Fri, 13 Mar 2009 19:24:02 +0000 (14:24 -0500)]
Updates for StackwalkerAPI

11 years agoFix a bug with handling aliases within a function. Also, simplify the code a lot.
Andrew Bernat [Fri, 13 Mar 2009 17:06:27 +0000 (12:06 -0500)]
Fix a bug with handling aliases within a function. Also, simplify the code a lot.

11 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Fri, 13 Mar 2009 16:08:56 +0000 (11:08 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

11 years agoUpdate the BPatch register interface to conform to our interface standard of bool...
Andrew Bernat [Fri, 13 Mar 2009 16:08:25 +0000 (11:08 -0500)]
Update the BPatch register interface to conform to our interface standard of bool func <vector &param> instead of vector func()

11 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
James Jolly [Fri, 13 Mar 2009 01:43:58 +0000 (20:43 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

11 years agoIf an .so file is present for LIBDWARF, set LIBDWARFSTATIC to false, etc.
James Jolly [Fri, 13 Mar 2009 01:33:48 +0000 (20:33 -0500)]
If an .so file is present for LIBDWARF, set LIBDWARFSTATIC to false, etc.
These checks are fragile and will probably be replaced later.

Automatically generating make.config.local...
(example for cs.wisc.edu machines with AFS access)
From the root of dyninst.git, run:
./autodyninst/configure --with-package-base=/afs/cs.wisc.edu/p/paradyn/packages

11 years agoAdded a new "--suppress-ipc" configuration option to parseThat to reduce the size...
Michael Lam [Thu, 12 Mar 2009 23:33:12 +0000 (19:33 -0400)]
Added a new "--suppress-ipc" configuration option to parseThat to reduce the size of parseThat log files.

11 years agoAdded AMD64 support to test for dereferences.
Bill Williams [Thu, 12 Mar 2009 21:13:33 +0000 (16:13 -0500)]
Added AMD64 support to test for dereferences.

11 years agoMerge branch 'master' of ssh://bill@git.dyninst.org/pub/dyninst
Bill Williams [Thu, 12 Mar 2009 21:10:35 +0000 (16:10 -0500)]
Merge branch 'master' of ssh://bill@git.dyninst.org/pub/dyninst

11 years agoInstruction API bugfix: use the correct size registers for all dereferences, and...
Bill Williams [Thu, 12 Mar 2009 21:10:00 +0000 (16:10 -0500)]
Instruction API bugfix: use the correct size registers for all dereferences, and test this.

11 years agoRemove erroneous assert. We were asserting in instrSideEffect that
Andrew Bernat [Thu, 12 Mar 2009 18:37:30 +0000 (13:37 -0500)]
Remove erroneous assert. We were asserting in instrSideEffect that
an instPoint had at least one instPointInstance. This is not the case
for uninstrumentable code, and is correctly handled anyway.

This commit fixes bug 921.

11 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Wed, 11 Mar 2009 19:17:28 +0000 (14:17 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

11 years agoReplace a printed error (perror) with a proccontrol_printf. Fixes bug 885.
Andrew Bernat [Wed, 11 Mar 2009 19:16:28 +0000 (14:16 -0500)]
Replace a printed error (perror) with a proccontrol_printf. Fixes bug 885.

11 years agoAdd an "analyze everything" test for overhead/bug finding purposes.
Andrew Bernat [Wed, 11 Mar 2009 19:15:23 +0000 (14:15 -0500)]
Add an "analyze everything" test for overhead/bug finding purposes.

11 years agoAdd preliminary data tracking for hooking up function call parameters.
Andrew Bernat [Wed, 11 Mar 2009 19:14:56 +0000 (14:14 -0500)]
Add preliminary data tracking for hooking up function call parameters.

11 years agoRemoved more error messages
madhavi [Wed, 11 Mar 2009 17:04:55 +0000 (12:04 -0500)]
Removed more error messages

11 years agoRemoved more error messages printed from internal dyninst routines regarding invalid...
madhavi [Wed, 11 Mar 2009 16:28:49 +0000 (11:28 -0500)]
Removed more error messages printed from internal dyninst routines regarding invalid process to attach and non-existent file passed to dlopen

11 years agoIn Object-elf, we were not adding a non-unique symbol to the module. There are cases...
madhavi [Wed, 11 Mar 2009 16:10:43 +0000 (11:10 -0500)]
In Object-elf, we were not adding a non-unique symbol to the module. There are cases where the symbol name will be not be unique - for example, header file included by multiple files. But, we still want to add the symbol to the Module

11 years agoMinor modification to sparc Makefile - to include CFLAGS that is configured depending...
madhavi [Wed, 11 Mar 2009 16:06:07 +0000 (11:06 -0500)]
Minor modification to sparc Makefile - to include CFLAGS that is configured depending on the host to include fpic or Kpic.

11 years agoRemoved print statements from sol_proc.C which produced undesirable output when a...
madhavi [Wed, 11 Mar 2009 15:57:27 +0000 (10:57 -0500)]
Removed print statements from sol_proc.C which produced undesirable output when a valid mutatee process doesnt exist for attaching. Instead we should just return an error code that will be handled by the mutator.

11 years agoFix for (1) power deadlock problem due to incorrect lock implementation. We now use...
madhavi [Wed, 11 Mar 2009 15:53:35 +0000 (10:53 -0500)]
Fix for (1) power deadlock problem due to incorrect lock implementation. We now use dyn_pthread_self to get threadID instead of DYNINSTthreadSelf (2) Sparc test1_33 failure. plt calls are incorrectly categorized as non returning which causes problem with CFG analysis.

11 years agoUse fixpoint analysis correctly.
Andrew Bernat [Mon, 9 Mar 2009 22:45:47 +0000 (17:45 -0500)]
Use fixpoint analysis correctly.

11 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Mon, 9 Mar 2009 21:23:28 +0000 (16:23 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

11 years agoThe DDG code now uses the annotation interface to store the DDG at a function level...
Andrew Bernat [Mon, 9 Mar 2009 21:23:15 +0000 (16:23 -0500)]
The DDG code now uses the annotation interface to store the DDG at a function level whenever it is created.

Also includes misc. bugfixes.

11 years agoWindows fix: with IA32 decoding getting consolidated in IAPI, we need to export the...
Bill Williams [Mon, 9 Mar 2009 20:32:15 +0000 (15:32 -0500)]
Windows fix: with IA32 decoding getting consolidated in IAPI, we need to export the functions that are still used by legacy code in Dyninst.

11 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
madhavi [Fri, 6 Mar 2009 17:18:40 +0000 (11:18 -0600)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

11 years agoCouple of build error fixes (1) polito build error - changed std::vector to pdvector...
madhavi [Fri, 6 Mar 2009 17:18:20 +0000 (11:18 -0600)]
Couple of build error fixes (1) polito build error - changed std::vector to pdvector for performInstrumentation (2) Solaris native compiler build error - because we were overwriting MUTATEE_CFLAGS_NATIVE. In make.module.tmpl, now MUTATEE_CFLAGS_NATIVE ?= ~(CFLAGS)

11 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Thu, 5 Mar 2009 23:09:32 +0000 (17:09 -0600)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

11 years agoRemoved incorrect assert from generating long branches on power
Matthew Legendre [Thu, 5 Mar 2009 23:08:46 +0000 (17:08 -0600)]
Removed incorrect assert from generating long branches on power

11 years agoCompensate for InstructionAPI shared_ptr limitations.
Andrew Bernat [Thu, 5 Mar 2009 22:54:43 +0000 (16:54 -0600)]
Compensate for InstructionAPI shared_ptr limitations.

11 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Thu, 5 Mar 2009 22:23:08 +0000 (16:23 -0600)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

11 years agoHandle aliasing correctly (in theory; pending bug fixes)
Andrew Bernat [Thu, 5 Mar 2009 22:22:56 +0000 (16:22 -0600)]
Handle aliasing correctly (in theory; pending bug fixes)

11 years agoCorrectly promote 64-bit registers that may show up in 32-bit mode.
Andrew Bernat [Thu, 5 Mar 2009 22:22:42 +0000 (16:22 -0600)]
Correctly promote 64-bit registers that may show up in 32-bit mode.

11 years agoFix dumb bug introduced yesterday; expand debugging output.
Andrew Bernat [Thu, 5 Mar 2009 22:22:23 +0000 (16:22 -0600)]
Fix dumb bug introduced yesterday; expand debugging output.

11 years agoFix for parseThat failures. While relocating functions, we also relocate functions...
madhavi [Thu, 5 Mar 2009 20:05:17 +0000 (14:05 -0600)]
Fix for parseThat failures. While relocating functions, we also relocate functions that share code with the function being relocated. We did not install these dependent functions correctly. This commit generates, installs and links functions which share code with relocated functions.

11 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Wed, 4 Mar 2009 23:01:06 +0000 (17:01 -0600)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

11 years agoUpdate to new Graph::printDOT interface
Andrew Bernat [Wed, 4 Mar 2009 22:59:53 +0000 (16:59 -0600)]
Update to new Graph::printDOT interface

11 years agoImplement aliasing in the DDG.
Andrew Bernat [Wed, 4 Mar 2009 21:28:18 +0000 (15:28 -0600)]
Implement aliasing in the DDG.

11 years agoFix for incomplete parsing in the event of failures in parseDwarf.C. This commit...
madhavi [Wed, 4 Mar 2009 21:38:30 +0000 (15:38 -0600)]
Fix for incomplete parsing in the event of failures in parseDwarf.C. This commit fixes test5_* failures on x86, x86_64 platforms

11 years agoAdded real FP liveness tracking to AMD64. This fixes test1_20.
Bill Williams [Tue, 3 Mar 2009 22:12:12 +0000 (16:12 -0600)]
Added real FP liveness tracking to AMD64.  This fixes test1_20.
This also includes several instruction cracking bug fixes for bugs that came to light along the way.

11 years agoInstructionAPI documentation updates: properly integrated into make system, produces...
Bill Williams [Mon, 2 Mar 2009 16:49:18 +0000 (10:49 -0600)]
InstructionAPI documentation updates: properly integrated into make system, produces consistently named PDF with other manuals.

11 years agoReally delete mutatees.
Andrew Bernat [Tue, 3 Mar 2009 22:48:20 +0000 (16:48 -0600)]
Really delete mutatees.

11 years agoAdd debugging print statement (DYNINST_DEBUG_STACKANALYSIS) for new stack analysis...
Andrew Bernat [Tue, 3 Mar 2009 22:32:27 +0000 (16:32 -0600)]
Add debugging print statement (DYNINST_DEBUG_STACKANALYSIS) for new stack analysis code.

11 years agoRemove compiler warning by initializing pointer to NULL.
Andrew Bernat [Tue, 3 Mar 2009 22:32:10 +0000 (16:32 -0600)]
Remove compiler warning by initializing pointer to NULL.

11 years agoReplace prototype "getContainingReg" with "promote".
Andrew Bernat [Tue, 3 Mar 2009 20:24:11 +0000 (14:24 -0600)]
Replace prototype "getContainingReg" with "promote".

11 years agoDDG updates:
Andrew Bernat [Tue, 3 Mar 2009 20:21:57 +0000 (14:21 -0600)]
DDG updates:

1) Updates to handle stack slots as abslocs. Depends on the stack depth analysis in dyninstAPI/src/stackanalysis.[Ch]

2) Add "print graph in DOT format" call.

TODO: handle calls, intra-instruction use/def, aliasing.

11 years agoTwo new methods in the image_func and int_function class hierarchies:
Andrew Bernat [Fri, 27 Feb 2009 17:54:27 +0000 (11:54 -0600)]
Two new methods in the image_func and int_function class hierarchies:

Add a method to get a vector of InstructionAPI instances, represented
by (Instruction, Offset) pairs. This parallels the BPatch_basicBlock
method.

Add a conversion function from int_function Address to image_func Offset.

11 years agoAdd prototype stack depth analysis derived from Matt's initial
Andrew Bernat [Fri, 27 Feb 2009 17:53:40 +0000 (11:53 -0600)]
Add prototype stack depth analysis derived from Matt's initial
implementation. This analysis depends on the InstructionAPI and currently
has x86/AMD-64 specific logic that is unimplemented for other platforms.

Input: an image_func

Output: two interval trees (see earlier commit). The first tree contains
intervals of stack heights (see below) and presence (existence) of a stack
frame.

Stack height: the height of the stack is represented by a
StackAnalysis::StackHeight object. This object has the following methods:
  height() - returns the height of the stack if defined; MINLONG (if
  unknown/bottom); MAXLONG (if uninitialized/top)
  isBottom(), isTop() - determine whether the stack height is unknown
    due to lack of analysis (top) or more than one possible height (bottom)
  Also, there are constant StackHeight::top and StackHeight::bottom
  definitions.

Debugging output should be made with stanalysis_printf.

11 years agoUse stl::queue instead of stl::list for worklist data structure.
Andrew Bernat [Fri, 27 Feb 2009 17:48:02 +0000 (11:48 -0600)]
Use stl::queue instead of stl::list for worklist data structure.

11 years agoAdd a new "Interval Tree" type. This is a templated version of our
Andrew Bernat [Fri, 27 Feb 2009 17:43:46 +0000 (11:43 -0600)]
Add a new "Interval Tree" type. This is a templated version of our
codeRangeTree data structure used in Dyninst.

IntervalTree<class K, class V>

K is the datatype for lower and upper bounds. It must have a <, >, and
== operator defined. The ranges are stored as [lB..ub).

V is the value. It must have a default and copy constructor, as well as
an equality/inequality operator.

This class assumes the incoming ranges are disjoint; very, very, very
weird things will happen if this assumption is not held. It's also
not checked, so be careful in your usage.

One implemented optimization: joint ranges with identical types are
merged.

One exception: overlapping ranges with the same value are allowed
(needed to handle overlapping basic blocks).

11 years agoFix problems with identifying thread starts on x86 based systems
Matthew Legendre [Tue, 3 Mar 2009 18:45:43 +0000 (12:45 -0600)]
Fix problems with identifying thread starts on x86 based systems

11 years agoFix performance issue in SymtabAPI for objects with lots of modules
Matthew Legendre [Mon, 2 Mar 2009 23:29:19 +0000 (17:29 -0600)]
Fix performance issue in SymtabAPI for objects with lots of modules

11 years agoMinor bug fixes to binary rewriter
Michael Lam [Fri, 27 Feb 2009 16:29:25 +0000 (11:29 -0500)]
Minor bug fixes to binary rewriter

- recalculate program headers on x86_64
- initialize .hash section on x86 and x86_64

11 years agoIn process.C, installInstrRequests(), vector of miniTramps was added to preExitInst...
madhavi [Thu, 26 Feb 2009 21:28:34 +0000 (15:28 -0600)]
In process.C, installInstrRequests(), vector of miniTramps was added to preExitInst without being cleared each time. This lead to duplicate entries of miniTramps which eventually caused assertion. This fix clears the vector of miniTramps as soon as it is added to preExitInst vector.

11 years agoEnable Frame pointer location list for all platforms. Previously. only on x86_64...
madhavi [Thu, 26 Feb 2009 18:45:10 +0000 (12:45 -0600)]
Enable Frame pointer location list for all platforms. Previously. only on x86_64, we merged locations lists of frame pointer and variables together to get the final location list of variables. This commit enables all architectures to save location lists of frame pointers and merge it with variable's list if the variable's location is relative to frame pointer. This fixes test1_23,24 and 26 failures on x86.

11 years agoFixed test_instruction_read_write for correctness on AMD64.
Bill Williams [Tue, 24 Feb 2009 16:34:44 +0000 (10:34 -0600)]
Fixed test_instruction_read_write for correctness on AMD64.

11 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Madhavi Krishnan [Tue, 24 Feb 2009 05:13:24 +0000 (23:13 -0600)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

11 years agoFixed bug in checking FP register liveState. anyLiveFPRsAtEntry() returns true if...
Madhavi Krishnan [Tue, 24 Feb 2009 05:12:57 +0000 (23:12 -0600)]
Fixed bug in checking FP register liveState. anyLiveFPRsAtEntry() returns true if the register is dead instead of live! Probably a typo, now fixed. This was causing failures in test1_20 with icc compiler

11 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Mon, 23 Feb 2009 23:00:13 +0000 (17:00 -0600)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

11 years agoCorrectly handle a case when a block contains no instructions that
Andrew Bernat [Mon, 23 Feb 2009 22:59:51 +0000 (16:59 -0600)]
Correctly handle a case when a block contains no instructions that
define registers.

11 years agoConvert incoming registers (from InstructionAPI) to the "canonical"
Andrew Bernat [Mon, 23 Feb 2009 22:59:25 +0000 (16:59 -0600)]
Convert incoming registers (from InstructionAPI) to the "canonical"
containing register.

11 years agoAdd upconverting "getContainingReg" method.
Andrew Bernat [Mon, 23 Feb 2009 22:59:01 +0000 (16:59 -0600)]
Add upconverting "getContainingReg" method.

11 years agoAdd the "Auxiliary carry" flag to the set of ID->name mappings for
Andrew Bernat [Mon, 23 Feb 2009 22:58:10 +0000 (16:58 -0600)]
Add the "Auxiliary carry" flag to the set of ID->name mappings for
IA32/AMD64. Also reorder register IDs to make converting between
8/16/32/64-bit registers easier.

11 years agoBug fix: readsMemory() and writesMemory() were converting an Operand's Expression...
Bill Williams [Mon, 23 Feb 2009 21:37:02 +0000 (15:37 -0600)]
Bug fix: readsMemory() and writesMemory() were converting an Operand's Expression to the wrong type, and thus always returning false.  Fixed.

11 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Mon, 23 Feb 2009 20:22:22 +0000 (14:22 -0600)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

11 years agoAdd necessary methods to get the new DDG component to link with a mutator.
Andrew Bernat [Mon, 23 Feb 2009 20:21:19 +0000 (14:21 -0600)]
Add necessary methods to get the new DDG component to link with a mutator.

I've also added a baby test case in the DDG/test directory. The mutator
takes two arguments: a program name to open and a function to analyze.

11 years agowindows binary rewriter
Min Qiu [Mon, 23 Feb 2009 18:47:54 +0000 (12:47 -0600)]
windows binary rewriter

This commit contains codes for windows binary rewriter, which currently is able to rewrite basic windows executable files. Two new files are added in this commit: emitWin.C and emitWin.h.

11 years agoFix for variables in BSS section in icc. With icc, variables in bss are categorized...
Madhavi Krishnan [Mon, 23 Feb 2009 05:55:35 +0000 (23:55 -0600)]
Fix for variables in BSS section in icc. With icc, variables in bss are categorized as ST_NOTYPE instead of ST_OBJECT. If an object is in BSS section and its size is greater than zero, we can almost always say, it is a variable. We check for this condition and change the type to ST_OBJECT from ST_NOTYPE. This fixes test1_24-28 failures in x86 icc compiler mode

11 years agoBugfix: AMD64 liveness
Bill Williams [Fri, 20 Feb 2009 23:36:21 +0000 (17:36 -0600)]
Bugfix: AMD64 liveness

AMD64 uses the REX byte's B bit to switch between EAX...ESI and R9...R16.  In cases where this register was not directly encoded in the opcode, we decoded this information correctly.  When it was, we didn't.  This fixes that bug.

11 years agoAvoid invalid stl::map iterator usage
Nathan Rosenblum [Fri, 20 Feb 2009 06:48:59 +0000 (00:48 -0600)]
Avoid invalid stl::map iterator usage

stl::map.erase invalidates the iterator of the erased element.
Deleting BPatch_function pointers while iterating over the map
containing them invoked an erase call in the BPatch_function
destructor. This bug was caught with valgrind while investigating
another failure.

11 years agoProperly build block lists of shared functions
Nathan Rosenblum [Thu, 19 Feb 2009 18:40:11 +0000 (12:40 -0600)]
Properly build block lists of shared functions

In some cases, shared code parsing could be triggered over a
partially-built control flow graph (due to recursive traversal
of call targets). This commit detects those situations, and
ensures that all functions built using shared code parsing
eventually contain the correct block lists.

11 years agoAdd additional BPatch_basicBlock::getInstructions<Instruction,Address> to complement
Andrew Bernat [Fri, 20 Feb 2009 02:29:30 +0000 (20:29 -0600)]
Add additional BPatch_basicBlock::getInstructions<Instruction,Address> to complement
BPatch_basicBlock::getInstructions<Instruction>

11 years agoRemove obsolete CVS files
Andrew Bernat [Wed, 18 Feb 2009 17:21:15 +0000 (11:21 -0600)]
Remove obsolete CVS files

11 years agoWorking commit of new DDG component
Andrew Bernat [Wed, 4 Feb 2009 15:37:11 +0000 (09:37 -0600)]
Working commit of new DDG component