unknown [Thu, 29 Jul 2010 13:04:00 +0000 (08:04 -0500)]
fixing stuff
unknown [Tue, 27 Jul 2010 19:00:19 +0000 (14:00 -0500)]
Builds & links on all platforms
Kevin Roundy [Tue, 27 Jul 2010 18:45:51 +0000 (13:45 -0500)]
Another tiny commit, still dealing with SymEval renaming woes
unknown [Tue, 27 Jul 2010 18:38:21 +0000 (13:38 -0500)]
Trivial build-fixes that arose after merging
unknown [Tue, 27 Jul 2010 18:35:08 +0000 (13:35 -0500)]
Merge branch 'working' of ssh://cumin.cs.wisc.edu/p/paradyn/development/bernat/git/dyninst into working
unknown [Tue, 27 Jul 2010 18:34:40 +0000 (13:34 -0500)]
fixes build errors, link error remains
Andrew Bernat [Tue, 27 Jul 2010 18:05:07 +0000 (13:05 -0500)]
Merge branch 'working' of /p/paradyn/development/bernat/git/dyninst/ into working
Conflicts:
dataflowAPI/src/slicing.C
dataflowAPI/src/stackanalysis.C
dyninstAPI/make.module.tmpl
dyninstAPI/src/r_e_GetPC.h
dyninstAPI/src/r_t_EmulateMemory.h
dyninstAPI/src/r_t_Movement-adhoc.h
dyninstAPI/src/r_t_Movement-analysis.C
dyninstAPI/src/r_t_Movement-analysis.h
Andrew Bernat [Tue, 27 Jul 2010 17:59:54 +0000 (12:59 -0500)]
Fix SymEval->DataflowAPI build problems
unknown [Tue, 27 Jul 2010 17:28:16 +0000 (12:28 -0500)]
Merge branch 'working' of ssh://cumin.cs.wisc.edu/p/paradyn/development/bernat/git/dyninst into working
unknown [Tue, 27 Jul 2010 17:28:01 +0000 (12:28 -0500)]
Windows build fixes
Kevin Roundy [Tue, 27 Jul 2010 17:16:14 +0000 (12:16 -0500)]
Fixes several build errors but not all
Still a problem is that some classes were renamed in the
SymbolicEvaluation namespace, variable->variableAST, etc... At least
I think that's what happened.
unknown [Tue, 27 Jul 2010 15:09:37 +0000 (10:09 -0500)]
Removed dead code in parsing
Kevin Roundy [Tue, 27 Jul 2010 14:45:38 +0000 (09:45 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst into working
Madhavi Krishnan [Mon, 26 Jul 2010 16:00:59 +0000 (11:00 -0500)]
Fix for Symtab on AIX
Missed a ELF specific function definition on AIX.
Madhavi Krishnan [Mon, 26 Jul 2010 15:58:54 +0000 (10:58 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Andrew Bernat [Mon, 26 Jul 2010 15:08:03 +0000 (10:08 -0500)]
Fix compile error
Kevin Roundy [Fri, 23 Jul 2010 21:59:23 +0000 (16:59 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst into working
Kevin Roundy [Fri, 23 Jul 2010 21:55:12 +0000 (16:55 -0500)]
Merges DataflowAPI and ParseAPI Visual Studio projects
Does this to build a single dll out of both projects
Andrew Bernat [Fri, 23 Jul 2010 21:19:58 +0000 (16:19 -0500)]
Remove dataflowAPI build directories
Andrew Bernat [Fri, 23 Jul 2010 21:10:57 +0000 (16:10 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Fri, 23 Jul 2010 21:08:00 +0000 (16:08 -0500)]
Fix binary rewriter symbol addition mechanism
Matthew Legendre [Fri, 23 Jul 2010 19:57:46 +0000 (14:57 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Andrew Bernat [Fri, 23 Jul 2010 19:23:05 +0000 (14:23 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst into working
Conflicts:
dataflowAPI/h/Absloc.h
dataflowAPI/src/SymEvalVisitors.h
dataflowAPI/src/debug_dataflow.h
dataflowAPI/src/slicing.C
dyninstAPI/src/registerSpace.C
Madhavi Krishnan [Fri, 23 Jul 2010 19:11:59 +0000 (14:11 -0500)]
Fixes to BGP rewriter
Some changes I missed to commit last time.
Andrew Bernat [Fri, 23 Jul 2010 19:00:58 +0000 (14:00 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Fri, 23 Jul 2010 19:00:50 +0000 (14:00 -0500)]
Don't try to build dataflowAPI by accident; install its headers from parseAPI
Matthew Legendre [Fri, 23 Jul 2010 18:39:00 +0000 (13:39 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Fri, 23 Jul 2010 18:37:03 +0000 (13:37 -0500)]
Remove pthread references from libcommon
Andrew Bernat [Fri, 23 Jul 2010 16:39:01 +0000 (11:39 -0500)]
Build DataflowAPI as part of ParseAPI to remove circular dependency
Andrew Bernat [Fri, 23 Jul 2010 15:12:02 +0000 (10:12 -0500)]
Build DataflowAPI as part of ParseAPI
Nathan Rosenblum [Fri, 23 Jul 2010 15:06:21 +0000 (10:06 -0500)]
Bad logic was preventing parsing of some jump tables.
This only applied where the indirect branch is at the end of the
first block of the function and no calls to that function had been
observed (so the block's sources() vector was empty). This bug
cropped up because functions with unparsed jump tables are now marked
uninstrumentable, and 64-bit libc's printf happens to be just such
a function, causing instrumentation that inserts calls to printf
to break.
Andrew Bernat [Fri, 23 Jul 2010 15:07:19 +0000 (10:07 -0500)]
Move SymEval to production name of DataflowAPI.
Nathan Rosenblum [Thu, 22 Jul 2010 21:38:27 +0000 (16:38 -0500)]
Re-enable new single functions to be created after parsing.
Note that this functionality is orthogonal to the bulk reparsing
in mapped_object::parseNewFunctions, and is there to support creation
of targetted functions like ".init", ".fini" and "main" on Linux/x86
Matthew Legendre [Thu, 22 Jul 2010 21:41:57 +0000 (16:41 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Thu, 22 Jul 2010 21:40:39 +0000 (16:40 -0500)]
Add missed file for StackwalkerAPI BG fixes
Matthew Legendre [Thu, 22 Jul 2010 21:39:42 +0000 (16:39 -0500)]
Restore broken LineInformation interface in SymtabAPI
Matthew Legendre [Thu, 22 Jul 2010 21:38:44 +0000 (16:38 -0500)]
Clean build warnings
Matthew Legendre [Thu, 22 Jul 2010 21:38:11 +0000 (16:38 -0500)]
Fixes for StackwalkerAPI on BlueGene
Madhavi Krishnan [Thu, 22 Jul 2010 21:18:19 +0000 (16:18 -0500)]
Bluegene rewriter changes
In object-elf.C,
We identify the platform as Bluegene using the comment section.
The comment section should contain the string BGP.
In Symtab.C,
We adjust the pagesize of the new PT_LOAD segment (if any) to 1MB
due to compute node restrictions.
In emitElf.C,
We use one of the following mechanisms to
add new loadable section in Bluegene:
1) We either expand BSS section
2) We replace NOTE section with a LOAD section.
Madhavi Krishnan [Thu, 22 Jul 2010 20:16:54 +0000 (15:16 -0500)]
Fixed typo
Madhavi Krishnan [Thu, 22 Jul 2010 20:02:00 +0000 (15:02 -0500)]
Add Function parameter to unresolved_cf callback
Kevin Roundy [Thu, 22 Jul 2010 17:20:49 +0000 (12:20 -0500)]
Removes cyclic dependency between symEval and parseAPI
It turned out that the cyclic dependency I had introduced between
ParseAPI and symEval caused problems on other platforms than Windows.
These build problems only manifested when building from a clean
repository. As of this commit, the parseAPI no-longer depends on
symEval, and we'll work on a way to allow for slicing to be allowed
in the ParseAPI without introducing cyclic library dependencies.
Andrew Bernat [Wed, 21 Jul 2010 20:43:55 +0000 (15:43 -0500)]
Merge branch 'working' of /p/paradyn/development/bernat/git/dyninst/ into working
Andrew Bernat [Wed, 21 Jul 2010 20:43:37 +0000 (15:43 -0500)]
Prototype of the post-call control flow fixup code.
unknown [Wed, 21 Jul 2010 19:17:31 +0000 (14:17 -0500)]
fixed dyninstAPI.vcproj's unbalanced brackets
Andrew Bernat [Wed, 21 Jul 2010 17:02:58 +0000 (12:02 -0500)]
Added post-call padding functionality - it works this time!
Andrew Bernat [Wed, 21 Jul 2010 16:27:00 +0000 (11:27 -0500)]
Fix a huge pile of merge conflicts.
Andrew Bernat [Wed, 21 Jul 2010 14:22:57 +0000 (09:22 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst into working
Conflicts:
dyninstAPI/src/inst-x86.C
parseAPI/src/IA_IAPI.C
symEval/h/SymEval.h
symEval/src/RoseInsnFactory.C
symEval/src/SymEval.C
symEval/src/slicing.C
Andrew Bernat [Wed, 21 Jul 2010 14:16:51 +0000 (09:16 -0500)]
Initial implementation of post-call padding.
Paradyn Account [Tue, 13 Jul 2010 17:03:43 +0000 (12:03 -0500)]
Using symEval in ParseAPI for slicing, added hybrid analysis code
This commit gets hybrid analysis closer to working on Dyninst. As
a part of this effort, I'm using symEval's slicing capabilities
in the ParseAPI so that I can tell if a function tampers with its
call stack to modify its return address. This introduces a cyclic
dependency between ParseAPI and symEval, which is problematic on
Windows binaries, as cyclic dependencies between dlls are not
allowed. The solution I used in this commit was to build a single
dll for the two libraries (other platforms continue to produce
separate shared libraries), which seemed reasonable since neither
library will be used without the other anyway.
Andrew Bernat [Tue, 20 Jul 2010 18:10:59 +0000 (13:10 -0500)]
Add platform "support" for AIX (untested) and Solaris (not built)
Andrew Bernat [Tue, 20 Jul 2010 16:02:46 +0000 (11:02 -0500)]
Initial implementation of post-call padding for control flow interception
Bill Williams [Fri, 16 Jul 2010 19:22:56 +0000 (14:22 -0500)]
For non-IAPI platforms (SPARC), don't try to get the disassembly of an instruction in the test suite.
Bill Williams [Fri, 16 Jul 2010 16:28:13 +0000 (11:28 -0500)]
Fix for bugfix in test 2-14.
Bill Williams [Fri, 16 Jul 2010 16:05:43 +0000 (11:05 -0500)]
Fixes for memory tests:
* Reenable the standard execution path, running mutatees and checking their exit codes
* Disable the explicit continuation of mutatees; the framework handles this
* Enable CPUID checking for SSE/MMX/SSE2/3DNow! on 64-bit x86
* Fix many bugs in code generation of x86 (32 and 64 bit) effective address and byte count snippets
* Remove IA64 platform from test spec
* Fix push, pop, call, return to use correct address widths in memory access instrumentation
Matthew Legendre [Fri, 16 Jul 2010 17:57:32 +0000 (12:57 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Fri, 16 Jul 2010 17:56:54 +0000 (12:56 -0500)]
More fixes for icc on dyn_detail
Emily Jacobson [Fri, 16 Jul 2010 15:16:32 +0000 (10:16 -0500)]
Updated SymEval::expand to ensure that we re-process nodes that were
incomplete during initial passthrough.
Emily Jacobson [Fri, 16 Jul 2010 15:16:05 +0000 (10:16 -0500)]
Initial version of completed backward slicing.
Emily Jacobson [Fri, 16 Jul 2010 15:15:25 +0000 (10:15 -0500)]
symEval fixes to conform to ROSE expectations.
Emily Jacobson [Fri, 16 Jul 2010 15:13:42 +0000 (10:13 -0500)]
Fixed IA_IAPI::isMovAPSTAble() bug that allowed us to accidentally
decode past the end of a section.
Emily Jacobson [Fri, 16 Jul 2010 15:13:07 +0000 (10:13 -0500)]
Added Graph::markAsEntryNode() and Graph::markAsExitNode(),
which were needed for slicing.
Matthew Legendre [Thu, 15 Jul 2010 19:53:59 +0000 (14:53 -0500)]
dyn_detail fix for icc compilers
Andrew Bernat [Mon, 12 Jul 2010 20:36:30 +0000 (15:36 -0500)]
Fix a confusion between find block by offset in functin vs. by parseAPI offset.
Andrew Bernat [Mon, 12 Jul 2010 19:38:32 +0000 (14:38 -0500)]
And the last of the conflict fixes
Andrew Bernat [Mon, 12 Jul 2010 18:54:39 +0000 (13:54 -0500)]
More merge fixes
Andrew Bernat [Mon, 12 Jul 2010 18:31:26 +0000 (13:31 -0500)]
Fix conflicts during merge.
Kevin Roundy [Mon, 12 Jul 2010 18:12:21 +0000 (13:12 -0500)]
Updated Dyninst solution and project files for Windows
Andrew Bernat [Mon, 12 Jul 2010 17:44:09 +0000 (12:44 -0500)]
Kevin/Drew work to do file
Andrew Bernat [Fri, 9 Jul 2010 19:55:07 +0000 (14:55 -0500)]
Fix infinite rebuilding of slicing.C
Andrew Bernat [Fri, 9 Jul 2010 19:54:58 +0000 (14:54 -0500)]
Collected updates
Andrew Bernat [Fri, 9 Jul 2010 19:54:37 +0000 (14:54 -0500)]
Fix a bug where codeGen patches assumed realloc() was never called.
Andrew Bernat [Tue, 6 Jul 2010 21:37:30 +0000 (16:37 -0500)]
Correct (?) implementation over shared blocks.
Andrew Bernat [Tue, 6 Jul 2010 17:34:28 +0000 (12:34 -0500)]
SymEval fixes: localize debugging; fix LEA instruction handling; fix thunk stack analysis; remove compiler warnings on visitor functions.
Andrew Bernat [Tue, 6 Jul 2010 17:33:29 +0000 (12:33 -0500)]
Checkpoint commit: remove thunk override from ParseAPI and handle in CodeMover code.
Andrew Bernat [Mon, 28 Jun 2010 18:42:03 +0000 (13:42 -0500)]
Bugfixes in slicing/stackanalysis code.
Andrew Bernat [Mon, 28 Jun 2010 18:41:51 +0000 (13:41 -0500)]
Cache changes
Andrew Bernat [Mon, 21 Jun 2010 18:23:01 +0000 (13:23 -0500)]
Windows project file updates; also moves to VC 2008
Move to VC 2008
Move to VC 2008
Andrew Bernat [Fri, 18 Jun 2010 14:55:25 +0000 (09:55 -0500)]
Windows build hackery.
Andrew Bernat [Mon, 21 Jun 2010 18:21:39 +0000 (13:21 -0500)]
Ugly, not-to-be-pushed sucking in of all of Boost to get windows to work.
Andrew Bernat [Fri, 21 May 2010 19:34:46 +0000 (14:34 -0500)]
CodeMover prototype
Kevin Roundy [Mon, 12 Jul 2010 17:18:39 +0000 (12:18 -0500)]
Fixes Windows build errors cause by my last commit
In my last commit I failed to merge these fixes;
without them the Windows platform was not building.
The fixes are to code that only triggers on
the Windows platform, with the exception of the
mapped_object::isSystemLib function which I modified
to make it static so that we can determine whether an
object is a system library prior to parsing it.
Bill Williams [Mon, 12 Jul 2010 16:07:59 +0000 (11:07 -0500)]
Fix build error on gcc 4.3.0+
Kevin Roundy [Mon, 12 Jul 2010 04:43:47 +0000 (23:43 -0500)]
Added hybrid analysis modes, not fully functional.
This commit adds three analysis modes, BPatch_normalMode,
which is the default and the only mode to trigger at present,
BPatch_exploratoryMode, which causes runtime instrumentation
of unresolved indirect control transfers and thereby may
discover additional code at runtime (not fully functional
yet), and BPatch_defensiveMode, which assumes that the binary
is defensive, possibly self-unpacking and self-modifying.
Also, this commit should fix the Windows failures that popped
up this weekend after an upgrade to VS2008 project and solution
files.
Andrew Bernat [Fri, 9 Jul 2010 22:26:39 +0000 (17:26 -0500)]
Fix bug related to splitting calls into assignment representations.
Andrew Bernat [Fri, 18 Jun 2010 14:55:25 +0000 (09:55 -0500)]
Move Windows to VC2008; fix SymEval build errors related to Windows
Nathan Rosenblum [Fri, 9 Jul 2010 21:01:12 +0000 (16:01 -0500)]
Bad Makefile definition was copying headers unnecessarily
Nathan Rosenblum [Fri, 9 Jul 2010 19:52:21 +0000 (14:52 -0500)]
properly link unresolvable indirect branches to sink block
Nathan Rosenblum [Mon, 5 Jul 2010 15:40:06 +0000 (10:40 -0500)]
missing constructor
Nathan Rosenblum [Fri, 2 Jul 2010 15:21:50 +0000 (10:21 -0500)]
An error when creating symbols for relocated code and instrumentation
prevented most such symbols from being created.
Nathan Rosenblum [Fri, 2 Jul 2010 14:06:41 +0000 (09:06 -0500)]
Use current block's CodeRegion for lookups and to calculate instruction
decoding regions during parsign; control flow can span multiple regions
Nathan Rosenblum [Wed, 30 Jun 2010 23:22:03 +0000 (18:22 -0500)]
Stop resetting gap parsing iterator after initial reset.
Nathan Rosenblum [Wed, 30 Jun 2010 23:17:23 +0000 (18:17 -0500)]
Premble heuristic-based gap parsing missed code when run on binaries
with no existing functions
Nathan Rosenblum [Wed, 30 Jun 2010 21:59:00 +0000 (16:59 -0500)]
Build fix
Nathan Rosenblum [Wed, 30 Jun 2010 21:45:41 +0000 (16:45 -0500)]
Two tests were testing the wrong test conditions.
Nathan Rosenblum [Wed, 30 Jun 2010 20:54:46 +0000 (15:54 -0500)]
Fix program header rewriting. Ensure that loadable segments and sections
are emitted in the proper order (sorted by virtual address in both cases).
Fixes a bug where emitting existing sections without creating a new
section caused a null pointer dereference.
Ensures that the loadable segment created to hold new sections is placed
such that it won't clobber other loadable segments.
Nathan Rosenblum [Thu, 24 Jun 2010 20:43:46 +0000 (15:43 -0500)]
Be consistent on what constitutes a hash over an entryID regardless of
the GCC version used to compile.
Bill Williams [Tue, 29 Jun 2010 22:19:20 +0000 (17:19 -0500)]
Fix for test 2-14 crash on Windows--don't leave a deleted BPatch_process lying around.
Emily Jacobson [Tue, 29 Jun 2010 20:55:19 +0000 (15:55 -0500)]
Backing out more accidental commit changes.
Emily Jacobson [Tue, 29 Jun 2010 19:24:44 +0000 (14:24 -0500)]
Backed out accidental commit changes.