dyninst.git
8 years agoCleanup for Elf_X sharing between SymtabAPI, StackwalkerAPI and ProcControlAPI
legendre1 [Tue, 3 Jan 2012 17:57:14 +0000 (09:57 -0800)]
Cleanup for Elf_X sharing between SymtabAPI, StackwalkerAPI and ProcControlAPI

8 years agoFix for StackwalkerAPI lazy parsing
legendre1 [Tue, 3 Jan 2012 17:54:21 +0000 (09:54 -0800)]
Fix for StackwalkerAPI lazy parsing

8 years agoFixed BPatch_frame::findFunctionInt() to look up function by call address
Emily Jacobson [Mon, 19 Dec 2011 15:39:58 +0000 (09:39 -0600)]
Fixed BPatch_frame::findFunctionInt() to look up function by call address
rather than return address.

8 years agoppc64 testsuite
Madhavi Krishnan [Thu, 15 Dec 2011 23:59:13 +0000 (17:59 -0600)]
ppc64 testsuite

8 years agoEnabling ppc64 BGQ testsuite
Madhavi Krishnan [Thu, 15 Dec 2011 21:09:27 +0000 (15:09 -0600)]
Enabling ppc64 BGQ testsuite
- Adding platform ppc64_bgq
- Updating testsuite specification for BGQ tests

8 years agoFix bug in loadLibrary reported by Matt.
Andrew Bernat [Tue, 6 Dec 2011 17:08:23 +0000 (11:08 -0600)]
Fix bug in loadLibrary reported by Matt.

8 years agoFix a bug accessing ESP + x effective addresses
Andrew Bernat [Tue, 29 Nov 2011 20:20:04 +0000 (14:20 -0600)]
Fix a bug accessing ESP + x effective addresses

8 years agoFix broken per-function instruction-level Point creation; we had a boolean test backw...
Andrew Bernat [Mon, 28 Nov 2011 19:26:04 +0000 (13:26 -0600)]
Fix broken per-function instruction-level Point creation; we had a boolean test backwards.

8 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Mon, 21 Nov 2011 16:19:28 +0000 (10:19 -0600)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

8 years agoRevert "Merge branch 'liveness' into master_copy"
Andrew Bernat [Wed, 16 Nov 2011 23:15:33 +0000 (17:15 -0600)]
Revert "Merge branch 'liveness' into master_copy"

This reverts commit ed8228a8117b1fac1f114f25eb79b617a9c228d2.

8 years agoMerge branch 'liveness' into master_copy
Xiaozhu Meng [Wed, 16 Nov 2011 22:07:30 +0000 (16:07 -0600)]
Merge branch 'liveness' into master_copy

Conflicts:
dataflowAPI/src/debug_dataflow.C
dyninstAPI/src/emit-x86.C
dyninstAPI/src/function.C
dyninstAPI/src/inst-x86.C
dyninstAPI/src/mapped_object.C
patchAPI/h/PatchMgr.h
patchAPI/h/Point.h
patchAPI/src/PatchBlock.C
patchAPI/src/PatchFunction.C
patchAPI/src/PatchMgr.C
testsuite/src/patchapi/patch1_2.C
testsuite/src/patchapi/patch2_1.C

8 years agoPrototype of DataflowAPI liveness analysis
Xiaozhu Meng [Tue, 15 Nov 2011 16:50:06 +0000 (10:50 -0600)]
Prototype of DataflowAPI liveness analysis

8 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Wed, 9 Nov 2011 22:46:12 +0000 (16:46 -0600)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

8 years agoAdd declaration of instPoint as necessary to use this header file.
Andrew Bernat [Tue, 1 Nov 2011 21:55:59 +0000 (16:55 -0500)]
Add declaration of instPoint as necessary to use this header file.

8 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Wenbin Fang [Fri, 28 Oct 2011 17:42:01 +0000 (12:42 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

8 years agoFix block_instance::callee() to actually work; previous code was broken.
Andrew Bernat [Fri, 28 Oct 2011 19:46:06 +0000 (14:46 -0500)]
Fix block_instance::callee() to actually work; previous code was broken.

Conflicts:

dyninstAPI/src/block.C
dyninstAPI/src/mapped_object.h

8 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Wenbin Fang [Thu, 27 Oct 2011 21:59:33 +0000 (16:59 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

8 years agoMerge branch 'master' of legendre1@auk60:/home/legendre1/tools/dyninst/sw_debuglink...
Matthew P. Legendre [Fri, 28 Oct 2011 16:51:53 +0000 (09:51 -0700)]
Merge branch 'master' of legendre1@auk60:/home/legendre1/tools/dyninst/sw_debuglink/dyninst

Conflicts:

stackwalk/src/linux-swk.C

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 agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Wenbin Fang [Thu, 27 Oct 2011 14:31:20 +0000 (09:31 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

8 years agoBPatch_addressSpace::finalizeInsertionSet lacked a default value for
Emily Jacobson [Wed, 26 Oct 2011 19:59:09 +0000 (14:59 -0500)]
BPatch_addressSpace::finalizeInsertionSet lacked a default value for
its second parameter, while BPatch_process and BPatch_binaryEdit default
the parameter to NULL.

8 years agoIf inferiorExpandBlock() causes an empty block in the heapFree list,
Emily Jacobson [Tue, 25 Oct 2011 19:50:18 +0000 (14:50 -0500)]
If inferiorExpandBlock() causes an empty block in the heapFree list,
remove the empty block.

Make sure the heapFree list remains in sorted order.

8 years agoFix problem with debug file search picking up directories
Matthew Legendre [Wed, 26 Oct 2011 22:55:51 +0000 (17:55 -0500)]
Fix problem with debug file search picking up directories

8 years agoThis commit is to add an interface: virtual bool PatchAPI::Instrumenter::isInstrument...
Wenbin Fang [Wed, 26 Oct 2011 00:13:26 +0000 (19:13 -0500)]
This commit is to add an interface: virtual bool PatchAPI::Instrumenter::isInstrumentable(PatchFunction*).

Dyninst implement PatchAPI::Instrumenter::isInstrumentable in DynInstrumenter class.
func_instance::isInstrumentable() invokes DynInstrumenter::isInstrumentable.

8 years agoFix spelling error in StackwalkerAPI error message
legendre1 [Fri, 21 Oct 2011 22:32:26 +0000 (15:32 -0700)]
Fix spelling error in StackwalkerAPI error message

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.

8 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.

8 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)

8 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.

8 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

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

8 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.

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

8 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