dyninst.git
8 years agoFix spelling mistake in error printfs
Matthew P. Legendre [Fri, 28 Oct 2011 16:50:17 +0000 (09:50 -0700)]
Fix spelling mistake in error printfs

8 years agoExpand signal frame parsing to support more structures
Matthew P. Legendre [Fri, 28 Oct 2011 16:48:31 +0000 (09:48 -0700)]
Expand signal frame parsing to support more structures

8 years agoFix problems finding restore_rt due to bad address calculations
Matthew P. Legendre [Fri, 28 Oct 2011 16:48:03 +0000 (09:48 -0700)]
Fix problems finding restore_rt due to bad address calculations

8 years agoUpdate register name printfs in StackwalkerAPI ppc code
Matthew P. Legendre [Fri, 21 Oct 2011 17:44:30 +0000 (10:44 -0700)]
Update register name printfs in StackwalkerAPI ppc code

8 years agoMerge branch 'master' of legendre1@auk60:/home/legendre1/tools/dyninst/sw_debuglink...
Matthew P. Legendre [Fri, 21 Oct 2011 17:30:19 +0000 (10:30 -0700)]
Merge branch 'master' of legendre1@auk60:/home/legendre1/tools/dyninst/sw_debuglink/dyninst

8 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
legendre1 [Fri, 21 Oct 2011 17:29:23 +0000 (10:29 -0700)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

Conflicts:
symtabAPI/src/Object-elf.C

8 years agoFix database output driver being overridden
Bill Williams [Thu, 20 Oct 2011 16:33:27 +0000 (11:33 -0500)]
Fix database output driver being overridden

8 years agoSmall Windows fixes.
bill [Thu, 20 Oct 2011 21:03:55 +0000 (16:03 -0500)]
Small Windows fixes.

8 years agoAdds new functionality to SymtabAPI rewriting that allows
Emily Jacobson [Wed, 19 Oct 2011 16:29:59 +0000 (11:29 -0500)]
Adds new functionality to SymtabAPI rewriting that allows
users to: A) rename existing symbols in the rewritten binary, B) remove
library dependencies in the rewritten binary.

(This commit comes for Matt LeGendre.)

8 years agoPreviously unexercised destructor was buggy
Nathan Rosenblum [Wed, 10 Aug 2011 18:02:12 +0000 (13:02 -0500)]
Previously unexercised destructor was buggy

yarly.

8 years agoFree elf section headers in symtab when finished
Nathan Rosenblum [Wed, 10 Aug 2011 17:05:49 +0000 (12:05 -0500)]
Free elf section headers in symtab when finished

On, you know, all paths.

Also free demangled names.

8 years agoRelease external library (libelf) resources when done.
Nathan Rosenblum [Wed, 10 Aug 2011 16:42:41 +0000 (11:42 -0500)]
Release external library (libelf) resources when done.

(\ /)
(O.o)
(> <) Bunny approves these changes.

8 years agoSymtabAPI::Symbol memory leak squashed.
Nathan Rosenblum [Wed, 10 Aug 2011 16:16:31 +0000 (11:16 -0500)]
SymtabAPI::Symbol memory leak squashed.

Delete Symbols in AObject destructor.

8 years agoFix leak of parsing work elements
Nathan Rosenblum [Wed, 10 Aug 2011 16:04:43 +0000 (11:04 -0500)]
Fix leak of parsing work elements

Creating ParseWorkElems with a NULL "bundle" prevents reclaiming
of that memory. Added a ParseFrame::mkWork method that handles
the tedious business of creating ParseWorkBundles for frames,
when there is no existing bundle to add the work element to.

8 years agoCorrect static initialization for built in & standard types in Symtab
Nathan Rosenblum [Wed, 10 Aug 2011 15:21:54 +0000 (10:21 -0500)]
Correct static initialization for built in & standard types in Symtab

Same issue as in commit 9427fb

8 years agoMachRegister::names construct on first use idiom wasn't.
Nathan Rosenblum [Tue, 9 Aug 2011 21:23:07 +0000 (16:23 -0500)]
MachRegister::names construct on first use idiom wasn't.

Two problems with MachRegister::names static map:

(1) Raw pointer use caused excessive & verbose valgrind
    leak output. The actual leak isn't a problem, but it
    makes looking for other leaks painful.

(2) The construct on use pattern used was incorrect, leaving
    the code at risk for improper static initialization.
    Static initialization of the MachRegister::names pointer
    races with intitialization via init_names() called in
    the header & can lead to duplicate initialization.
    Again, no "incorrect" behavior could result; just leads
    to overuse of memory.

8 years agoBuild fixes for static linked Dyninst components (compute node linux), when linking...
Matthew P. Legendre [Thu, 20 Oct 2011 21:00:44 +0000 (14:00 -0700)]
Build fixes for static linked Dyninst components (compute node linux), when linking SymtabAPI and StackwalkerAPI in the same mutator.

8 years agoSetting UNINST flag from parseAPI to DyninstAPI
Madhavi Krishnan [Thu, 20 Oct 2011 20:10:15 +0000 (15:10 -0500)]
Setting UNINST flag from parseAPI to DyninstAPI

8 years agoBGQ rewriter commit
Madhavi Krishnan [Thu, 20 Oct 2011 19:49:45 +0000 (14:49 -0500)]
BGQ rewriter commit

With this commit, the rewriter works on dynamically linked binaries on BGQ.

8 years agoFix location information in StackwalkerAPI for frames generated by debug info
Matthew P. Legendre [Thu, 20 Oct 2011 01:24:23 +0000 (18:24 -0700)]
Fix location information in StackwalkerAPI for frames generated by debug info

8 years agoFix problems in DWARF expression parsing discovered as part of stackwalking failures.
Matthew P. Legendre [Thu, 20 Oct 2011 00:39:37 +0000 (17:39 -0700)]
Fix problems in DWARF expression parsing discovered as part of stackwalking failures.

8 years agoFix PatchAPI header file install
legendre1 [Wed, 19 Oct 2011 17:58:21 +0000 (10:58 -0700)]
Fix PatchAPI header file install

8 years agoCommiting Aishwarya's work in allowing StackwalkerAPI users to change the system...
legendre1 [Wed, 19 Oct 2011 17:56:41 +0000 (10:56 -0700)]
Commiting Aishwarya's work in allowing StackwalkerAPI users to change the system's symbol reader.

8 years agoMove debuglink location processing from SymtabAPI to Elf_X, so that it's accessible...
legendre1 [Wed, 19 Oct 2011 17:55:10 +0000 (10:55 -0700)]
Move debuglink location processing from SymtabAPI to Elf_X, so that it's accessible to both SymtabAPI and StackwalkerAPI

8 years agoppc64 rewriter commit
Madhavi Krishnan [Tue, 18 Oct 2011 20:20:25 +0000 (15:20 -0500)]
ppc64 rewriter commit

with support for adding instrumentation with function calls.

8 years agoparseThat - new option writehunt
Madhavi Krishnan [Thu, 13 Oct 2011 18:42:57 +0000 (13:42 -0500)]
parseThat - new option writehunt

writehunt can be specified with hunt-low and hunt-high.
It rewrites the binary with low and high instrumentation points
(similar to runhunt but it doesn't execute the rewritten binary).
This option helps with debugging segfaults in rewritten libraries.

8 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew P. Legendre [Fri, 7 Oct 2011 16:59:14 +0000 (09:59 -0700)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

8 years agoRemove debugging prints
Matthew P. Legendre [Fri, 7 Oct 2011 16:58:42 +0000 (09:58 -0700)]
Remove debugging prints

8 years agoFix problem with line info refering to address 0 creating very large line regions
Matthew P. Legendre [Fri, 7 Oct 2011 16:58:18 +0000 (09:58 -0700)]
Fix problem with line info refering to address 0 creating very large line regions

8 years agoFix UMD builds.
Bill Williams [Wed, 5 Oct 2011 14:53:34 +0000 (09:53 -0500)]
Fix UMD builds.

8 years agoAdd missing string.h include
Bill Williams [Tue, 4 Oct 2011 16:10:54 +0000 (11:10 -0500)]
Add missing string.h include

8 years agoAdd missing string.h include.
Bill Williams [Tue, 4 Oct 2011 15:04:20 +0000 (10:04 -0500)]
Add missing string.h include.

8 years agoAdd missing BPatch_image include.
Bill Williams [Tue, 4 Oct 2011 15:03:18 +0000 (10:03 -0500)]
Add missing BPatch_image include.

8 years agoAdd missing stdio.h include.
Bill Williams [Tue, 4 Oct 2011 15:02:17 +0000 (10:02 -0500)]
Add missing stdio.h include.

8 years agoAdd quiet output driver to Windows makefile.
Bill Williams [Mon, 3 Oct 2011 15:50:32 +0000 (10:50 -0500)]
Add quiet output driver to Windows makefile.

8 years agoAdd check-patch target.
Bill Williams [Thu, 29 Sep 2011 15:29:07 +0000 (10:29 -0500)]
Add check-patch target.

8 years ago* Wrapped Dyner's inclusion in a TCL/TK existence check
Bill Williams [Fri, 23 Sep 2011 15:27:10 +0000 (10:27 -0500)]
* Wrapped Dyner's inclusion in a TCL/TK existence check
* Fixed one bug in TCL/TK detection: we depended on TCL_TK_DIR getting set in make.config.local, which is not the case anymore--separate lib and include directories are set there.
* Re-enabled -q option for quieter test output, though it is not 100% working
* Started adding "make check" and "make check-foo" targets that will build and test various components/axes of Dyninst.
  - "make check" will build and run dyninst, symtab, proccontrol, and instructionAPI tests in a quick form.
  - "make check-all" will build and "runTests -all".
  - "make check-$(component)" will build and run tests for $(component)
  - PatchAPI not yet in the component list

8 years agoFix some compilation errors on Windows.
Wenbin Fang [Tue, 20 Sep 2011 21:26:16 +0000 (16:26 -0500)]
Fix some compilation errors on Windows.

8 years agoFix Typo
Madhavi Krishnan [Fri, 16 Sep 2011 20:51:04 +0000 (15:51 -0500)]
Fix Typo

8 years agoTypo fix.
Madhavi Krishnan [Fri, 16 Sep 2011 20:41:40 +0000 (15:41 -0500)]
Typo fix.

8 years agoBGQ initial commit- typo fix
Madhavi Krishnan [Fri, 16 Sep 2011 18:14:04 +0000 (13:14 -0500)]
BGQ initial commit- typo fix

8 years agoBGQ initial commit - missed files
Madhavi Krishnan [Fri, 16 Sep 2011 18:00:15 +0000 (13:00 -0500)]
BGQ initial commit - missed files

8 years agoBGQ rewriter initial commit
Madhavi Krishnan [Fri, 16 Sep 2011 17:59:13 +0000 (12:59 -0500)]
BGQ rewriter initial commit

8 years agoAdded Dyner to core Makefile.
David Aeschlimann [Thu, 15 Sep 2011 17:37:29 +0000 (12:37 -0500)]
Added Dyner to core Makefile.

8 years agoDyner/DynC final commit. Fixes several small issues:
David Aeschlimann [Thu, 18 Aug 2011 19:36:15 +0000 (14:36 -0500)]
Dyner/DynC final commit. Fixes several small issues:

Removed ability to specify a point by file and line number in Dyner due to a feature change in Dyninst.
Removed SaveTheWorld from Dyner as it no longer exists.
Added logging feature to Dyner. Use command line option "-log <filename>" to create a log.
Fixed dynC language conflict involving nested dereferencing.
Code clean up.

8 years agoFix for ppc32 build failure.
Madhavi Krishnan [Fri, 9 Sep 2011 15:57:12 +0000 (10:57 -0500)]
Fix for ppc32 build failure.

8 years agoFix for build error from previous commit.
Madhavi Krishnan [Wed, 7 Sep 2011 19:58:19 +0000 (14:58 -0500)]
Fix for build error from previous commit.

8 years agoppc64 rewriter
Madhavi Krishnan [Tue, 6 Sep 2011 20:17:07 +0000 (15:17 -0500)]
ppc64 rewriter

Initial commit for ppc64 rewriter. This commit
includes changes to emitElf-64 to support
rewriting power binaries. For now, this works
only on inline instrumentation (not with
instrumentation libraries).

8 years agoppc64_linux rewriter
Madhavi Krishnan [Tue, 6 Sep 2011 19:47:37 +0000 (14:47 -0500)]
ppc64_linux rewriter

This is the initial commit for ppc64 rewriter. This
commit has Ray's changes to code generation for emitting
function calls using Table of Contents in ppc64.

8 years agoUpdate the patchAPI manual and change a method name in PatchAPI.
Wenbin Fang [Wed, 31 Aug 2011 18:14:58 +0000 (13:14 -0500)]
Update the patchAPI manual and change a method name in PatchAPI.

Details:
- Update patchAPI manual
  - Update the abstraction figure (Figure 1).
  - Update the changed interfaces after merging Defensive branch.
  - Proofreading and correct some typos.
- Change a method name
  - AddrSpace::getFirstObject => AddrSpace::executable

8 years agoAdd Dyninst->PatchAPI interface calls.
Andrew Bernat [Mon, 29 Aug 2011 18:52:52 +0000 (13:52 -0500)]
Add Dyninst->PatchAPI interface calls.

8 years agoMake the usage of pointer and shared_pointer consistent in PatchAPI, and fix
Wenbin Fang [Sat, 27 Aug 2011 21:13:04 +0000 (16:13 -0500)]
Make the usage of pointer and shared_pointer consistent in PatchAPI, and fix
bugs for PatchAPI::Point::getCallee and PatchAPI::PatchBlock::getCallee.

What's new:

- use raw pointer to PatchAPI's plugins: PatchAPI::CFGMaker,
  PatchAPI::PointMaker, PatchAPI::AddrSpace, PatchAPI::Instrumenter

- in PatchBlock::getCallee and Point::getCallee, pass a relative address to
  CodeObject::findFuncByEntry, instead of passing an absolute address.

- change the order of parameters in PatchMgr::create

- update patchapi document

8 years agoUpdate .gitignore to include patchAPI documentation secondary files
Andrew Bernat [Fri, 26 Aug 2011 19:05:49 +0000 (14:05 -0500)]
Update .gitignore to include patchAPI documentation secondary files

8 years agoPatchAPI documentation updates.
Andrew Bernat [Fri, 26 Aug 2011 19:04:19 +0000 (14:04 -0500)]
PatchAPI documentation updates.

8 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Thu, 25 Aug 2011 19:39:39 +0000 (14:39 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

8 years agoFix calling varargs functions in dynamic instrumentation
Andrew Bernat [Thu, 25 Aug 2011 19:30:44 +0000 (14:30 -0500)]
Fix calling varargs functions in dynamic instrumentation

8 years agoA complete draft of patchapi manual is done.
Wenbin Fang [Wed, 24 Aug 2011 19:30:55 +0000 (14:30 -0500)]
A complete draft of patchapi manual is done.

8 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Wenbin Fang [Tue, 23 Aug 2011 22:49:44 +0000 (17:49 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

8 years agoUpdate patchAPI document.
Wenbin Fang [Tue, 23 Aug 2011 22:48:48 +0000 (17:48 -0500)]
Update patchAPI document.

8 years agoFix bug in instrumenting shared code where we would "cross" function boundaries.
Andrew Bernat [Tue, 23 Aug 2011 20:40:20 +0000 (15:40 -0500)]
Fix bug in instrumenting shared code where we would "cross" function boundaries.

8 years agoMerge branch 'master' into Defensive
Andrew Bernat [Tue, 23 Aug 2011 19:03:28 +0000 (14:03 -0500)]
Merge branch 'master' into Defensive

8 years agoPPC updates
Andrew Bernat [Tue, 23 Aug 2011 18:57:40 +0000 (13:57 -0500)]
PPC updates

8 years agoThe title page shows correctly in patchapi manual
Wenbin Fang [Tue, 23 Aug 2011 16:45:43 +0000 (11:45 -0500)]
The title page shows correctly in patchapi manual

8 years agoDisable broken modification test, fix merge conflicts.
Andrew Bernat [Tue, 23 Aug 2011 16:15:15 +0000 (11:15 -0500)]
Disable broken modification test, fix merge conflicts.

8 years agoA clean framework for writing patchapi document.
Wenbin Fang [Tue, 23 Aug 2011 16:11:46 +0000 (11:11 -0500)]
A clean framework for writing patchapi document.

8 years agoMerge branch 'Defensive'
Andrew Bernat [Tue, 23 Aug 2011 15:20:07 +0000 (10:20 -0500)]
Merge branch 'Defensive'

Conflicts:
dyninstAPI/h/BPatch_addressSpace.h
dyninstAPI/src/BPatch_addressSpace.C
dyninstAPI/src/Relocation/CodeMover.C
dyninstAPI/src/addressSpace.C
dyninstAPI/src/addressSpace.h
dyninstAPI/src/function.C
parseAPI/src/ParserDetails.C
patchAPI/h/PatchCFG.h
patchAPI/h/PatchMgr.h
patchAPI/h/PatchObject.h
patchAPI/h/common.h
patchAPI/make.module.tmpl
symtabAPI/src/Symtab-edit.C
symtabAPI/src/Symtab-lookup.C
symtabAPI/src/Symtab.C
testsuite/amd64-unknown-freebsd7.2/tuples
testsuite/i386-unknown-freebsd7.2/tuples
testsuite/i386-unknown-linux2.4/tuples
testsuite/x86_64-unknown-linux2.4/tuples

8 years agoPatchAPI documentation
Andrew Bernat [Tue, 23 Aug 2011 15:01:41 +0000 (10:01 -0500)]
PatchAPI documentation

8 years agoFunction wrapping implementation and Symtab extensions for undefined symbols
Andrew Bernat [Wed, 10 Aug 2011 17:47:41 +0000 (12:47 -0500)]
Function wrapping implementation and Symtab extensions for undefined symbols

1) I've implemented function wrapping for the binary rewriter. The interface is:

BPatch_addressSpace::wrapFunction(BPatch_function *original, BPatch_function *wrapper, SymtabAPI::Symbol *clone)

where original is replaced by wrapper, and we create a clone matching the symbol provided in clone. We use a symbol
instead of a string to ensure that we get the name correct (including handling mangling).

This is implemented by performing function replacement original->wrapper, and creating a copy of original named with
the information from the clone symbol. It relies on the new instrumenter.

I've also added the appropriate PatchAPI calls to handle function wrapping.

2) Symtab didn't have a clean interface for accessing undefined symbols, which are necessary for the new function
wrapping code. I've added another parameter to findSymbol to include undefined symbols in a name lookup.

9 years agoThis commit is to remove the "#include" of non-public headers in patchAPI's
Wenbin Fang [Mon, 15 Aug 2011 22:04:51 +0000 (17:04 -0500)]
This commit is to remove the "#include" of non-public headers in patchAPI's
public header. In addition, this commit adds a data member user_commands_ in
Instrumenter class of patchAPI, for the ease of implementing instrumentation
engine plugin.

9 years agoExport PatchAPI public includes; fix compile errors; add undefined symbols to Symtab...
Andrew Bernat [Fri, 12 Aug 2011 21:42:48 +0000 (16:42 -0500)]
Export PatchAPI public includes; fix compile errors; add undefined symbols to Symtab tables (seems harmless)

9 years agoChange function wrapping to take a Symbol for the clone rather than a raw string.
Andrew Bernat [Fri, 12 Aug 2011 20:34:36 +0000 (15:34 -0500)]
Change function wrapping to take a Symbol for the clone rather than a raw string.

9 years agoFix bugs introduced in previous commit
Andrew Bernat [Fri, 12 Aug 2011 19:46:03 +0000 (14:46 -0500)]
Fix bugs introduced in previous commit

9 years agoFunction wrapping fixes
Andrew Bernat [Fri, 12 Aug 2011 19:13:01 +0000 (14:13 -0500)]
Function wrapping fixes

9 years agoFix mapping error when an original address can map to multiple emulated instruction...
Andrew Bernat [Fri, 12 Aug 2011 19:12:38 +0000 (14:12 -0500)]
Fix mapping error when an original address can map to multiple emulated instruction trackers.

9 years agoNew function wrapping prototype
Andrew Bernat [Wed, 10 Aug 2011 17:47:41 +0000 (12:47 -0500)]
New function wrapping prototype

9 years agosensitive-mode emulation of calls
Kevin Roundy [Wed, 10 Aug 2011 17:46:33 +0000 (12:46 -0500)]
sensitive-mode emulation of calls

- Fixes bug in the new way we generate code for calls that are emulated
as push-jumps.
- Also, sink edges and sink nodes should not show up in BPatch CFGs
- Added header files to Dyninst project

9 years agoFix compiler warning
Andrew Bernat [Tue, 9 Aug 2011 16:39:45 +0000 (11:39 -0500)]
Fix compiler warning

9 years agoUpdate PatchAPI tests
Andrew Bernat [Tue, 9 Aug 2011 16:39:19 +0000 (11:39 -0500)]
Update PatchAPI tests

9 years agoFix analysis-based code relocation transformer
Andrew Bernat [Tue, 9 Aug 2011 16:39:12 +0000 (11:39 -0500)]
Fix analysis-based code relocation transformer

9 years agoblock & function removal and relocation fixes
Kevin Roundy [Tue, 9 Aug 2011 15:48:28 +0000 (10:48 -0500)]
block & function removal and relocation fixes

- Block & function removal seem to mostly work now, though block removal
is probably more robust than function removal
- We remove points properly now when blocks & points are deleted
- removed incorrect relocation assert

9 years agofunction & block removal
Kevin Roundy [Fri, 5 Aug 2011 23:51:25 +0000 (18:51 -0500)]
function & block removal

- block removal is fixed up and reasonably well tested
- function removal is untested, but much more complete than it was
- point removal is still highly suspect, not clearing
out instPoint to BPatch_point mappings in BPatch_module

9 years agoRe-enable analysis based relocation transformer.
Andrew Bernat [Wed, 3 Aug 2011 18:43:11 +0000 (13:43 -0500)]
Re-enable analysis based relocation transformer.

9 years agobugfixes and missing files in vcproj files
Kevin Roundy [Wed, 3 Aug 2011 15:21:19 +0000 (10:21 -0500)]
bugfixes and missing files in vcproj files

correct instrumentation of returns in non-defensive libraries
adds missing files to parseAPI and PatchAPI projects
adds and fixes export macros in PatchAPI
implements block removal in PatchAPI (not debugged yet)
removes redundant functions

9 years agoThis commit is to fix the bug due to some typos in PatchAPI:
Wenbin Fang [Tue, 2 Aug 2011 21:28:52 +0000 (16:28 -0500)]
This commit is to fix the bug due to some typos in PatchAPI:

In patchAPI/src/PatchMgr.C, wantXXX functions (e.g., wantFuncs, wantCalls ...)
use bitwise-or to test whether the types parameter passed from findPoints includes
a particular point type, which is incorrect. We should use bitwise-and to test.
So I replace all bitwise-or expression in wantXXX functions with the invocation
of a static function Point::TestType that does bitwise-and operation

9 years agovarious fixes that come up only occasionally
Kevin Roundy [Fri, 29 Jul 2011 17:01:14 +0000 (12:01 -0500)]
various fixes that come up only occasionally

BPatch_point::isDynamic fixes
PatchBlock::containsDynamicCall fixes
BPatch_addressSpace::findOrCreateBPPoint - removed default constructor, since
default caused assert failures; now we'll get compile-failures instead of
runtime crashes
garbage instruction heuristic amplified to include pushes of seg reg's

9 years agoMerge branch 'Defensive' of ssh://git.dyninst.org/pub/dyninst into Defensive
Kevin Roundy [Fri, 29 Jul 2011 16:39:33 +0000 (11:39 -0500)]
Merge branch 'Defensive' of ssh://git.dyninst.org/pub/dyninst into Defensive

9 years agoAdd PatchAPI modification capability
Andrew Bernat [Fri, 29 Jul 2011 16:38:53 +0000 (11:38 -0500)]
Add PatchAPI modification capability

9 years agoUpdate ROSE semantics to handle push <segreg> instructions.
Andrew Bernat [Fri, 29 Jul 2011 16:17:24 +0000 (11:17 -0500)]
Update ROSE semantics to handle push <segreg> instructions.

9 years agoMerge branch 'Defensive' of ssh://git.dyninst.org/pub/dyninst into Defensive
Kevin Roundy [Wed, 27 Jul 2011 20:40:31 +0000 (15:40 -0500)]
Merge branch 'Defensive' of ssh://git.dyninst.org/pub/dyninst into Defensive

Conflicts:
dyninstAPI/src/function.C

9 years agoFix a bug where we could create a Call point for a non-call block.
Andrew Bernat [Wed, 27 Jul 2011 20:16:55 +0000 (15:16 -0500)]
Fix a bug where we could create a Call point for a non-call block.

9 years agoMerge branch 'Defensive' of ssh://coriander.cs.wisc.edu/u/r/o/roundy/devel/g0/dyninst...
Kevin Roundy [Wed, 27 Jul 2011 18:42:47 +0000 (13:42 -0500)]
Merge branch 'Defensive' of ssh://coriander.cs.wisc.edu/u/r/o/roundy/devel/g0/dyninst into Defensive

9 years agoVarious fixes, half in defensive-mode code, half not
Kevin Roundy [Wed, 27 Jul 2011 18:42:16 +0000 (13:42 -0500)]
Various fixes, half in defensive-mode code, half not

SymEval edge sort: was using <= compare instead of < compare
BPatch_point::isDynamic: was wrong for certain point types
added PatchAPI->dyninst callbacks for block creation, to update point sets
static CF to invalid targets: fixed a couple of bugs related to this
debugging code: so we can turn on trap-based debugging with env. variables
turned on parseAPI callback batching so ParseAPI finalizes data structures and we can query them
PatchBlock::containsDynamicCall: included static CF with bad targets, didn't include dynamic calls with invalid targets

9 years agoMerge branch 'Defensive' of ssh://git.dyninst.org/pub/dyninst into Defensive
Kevin Roundy [Wed, 27 Jul 2011 18:31:37 +0000 (13:31 -0500)]
Merge branch 'Defensive' of ssh://git.dyninst.org/pub/dyninst into Defensive

Conflicts:
dyninstAPI/src/BPatch_point.C

9 years agoCorrectly handle multiple baseTramps that map to the same original address.
Andrew Bernat [Wed, 27 Jul 2011 18:20:52 +0000 (13:20 -0500)]
Correctly handle multiple baseTramps that map to the same original address.

9 years agofix termination assert in syncRunState
Michael Brim [Tue, 26 Jul 2011 21:36:39 +0000 (16:36 -0500)]
fix termination assert in syncRunState

there was a valid check for forcedTermination, but that flag
wasn't being set early enough in int_process::terminate(.

also enables the proccontrol termination tests

9 years agoRemove debug printf
Madhavi Krishnan [Wed, 20 Jul 2011 19:44:07 +0000 (14:44 -0500)]
Remove debug printf

9 years agoFix for Parsing bug. Mark functions with unparsable indirect edge as UNINSTRUMENTABLE
Madhavi Krishnan [Wed, 20 Jul 2011 04:14:50 +0000 (23:14 -0500)]
Fix for Parsing bug. Mark functions with unparsable indirect edge as UNINSTRUMENTABLE

9 years agoVarious fixes to hybrid & standard dyninst code
Kevin Roundy [Fri, 15 Jul 2011 21:20:55 +0000 (16:20 -0500)]
Various fixes to hybrid & standard dyninst code

- block exit instrumentation didn't work, fixed.
- point::isDynamic failed for all non-call instructions
- dyninst block split callback needed for marking blocks as unresolved
or having abruptEnds
- getCallerBlocks was grabbing blocks linked to function entry by
non-call edges
- hybridInstrumentation had poor efficiency owing to
re-instrumentation that was supposed to make things faster, but happened
too often.
- polyEnE nopJumps re-enabled

9 years agoCheck for instruction existence when creating a BPatch_memoryAccess
Andrew Bernat [Fri, 15 Jul 2011 19:23:01 +0000 (14:23 -0500)]
Check for instruction existence when creating a BPatch_memoryAccess

9 years agoImplement block exit instrumentation.
Andrew Bernat [Fri, 15 Jul 2011 16:33:14 +0000 (11:33 -0500)]
Implement block exit instrumentation.