Andrew Bernat [Thu, 14 Apr 2011 16:17:14 +0000 (11:17 -0500)]
Merge branch 'master' into NewInstpoint
Conflicts:
.gitignore
common/common.vcproj
dyninstAPI/dyninstAPI.vcproj
dyninstAPI/src/codegen-x86.C
dyninstAPI/src/image-sparc.C
dyninstAPI/src/multiTramp.C
dyninstAPI/src/multiTramp.h
dyninstAPI/src/reloc-func.C
dyninstAPI/src/replacedInstruction.C
dyninstAPI_RT/DyninstAPI_RT.vcproj
instructionAPI/instructionAPI.vcproj
parseAPI/parseAPI.vcproj
parseThat/src/config.C
parseThat/src/config.h
parseThat/src/parseThat.C
symtabAPI/src/emitWin.h
symtabAPI/symtabAPI.vcproj
Andrew Bernat [Thu, 14 Apr 2011 15:59:52 +0000 (10:59 -0500)]
Fix test4_4 failure post-master-merge
Andrew Bernat [Wed, 13 Apr 2011 21:55:18 +0000 (16:55 -0500)]
Merge branch 'master' into NewInstpoint
Conflicts:
parseAPI/src/Parser.C
Andrew Bernat [Wed, 13 Apr 2011 21:53:30 +0000 (16:53 -0500)]
More test fixes; x86 test suite runs to completion with two failures (due to post-call implementation missing)
Andrew Bernat [Tue, 12 Apr 2011 18:22:49 +0000 (13:22 -0500)]
Disable test1_35 as it no longer has meaning; replace getSize in test1_30 with a safe call to getAddressRange
Andrew Bernat [Tue, 12 Apr 2011 18:22:20 +0000 (13:22 -0500)]
Fix forking of baseTramps, miniTramps; fixes test_fork_*
Emily Jacobson [Tue, 12 Apr 2011 15:03:53 +0000 (10:03 -0500)]
Provide interface to retrieve Instruction::Ptr from InstructionAdapter.
Fixed a few header file locations.
Andrew Bernat [Mon, 11 Apr 2011 22:14:59 +0000 (17:14 -0500)]
Fix accessing parameters
Andrew Bernat [Mon, 11 Apr 2011 20:44:46 +0000 (15:44 -0500)]
More test fixes
Andrew Bernat [Mon, 11 Apr 2011 20:44:26 +0000 (15:44 -0500)]
Make test2_5 less broken by design
Andrew Bernat [Mon, 11 Apr 2011 20:44:17 +0000 (15:44 -0500)]
Remove dangerous BPatch_function get size methods
Andrew Bernat [Mon, 11 Apr 2011 18:32:30 +0000 (13:32 -0500)]
Fix test 4_2 by implementing fork support
Andrew Bernat [Mon, 11 Apr 2011 18:31:52 +0000 (13:31 -0500)]
Stack analysis fix from Todd
Andrew Bernat [Fri, 8 Apr 2011 18:35:48 +0000 (13:35 -0500)]
Accumulated bugfixes from PASTE '11 work.
Matthew P. Legendre [Mon, 4 Apr 2011 18:18:43 +0000 (11:18 -0700)]
StackwalkerAPI build fixes for BlueGene
David Aeschlimann [Mon, 4 Apr 2011 16:25:45 +0000 (11:25 -0500)]
Updated dynC_API Manual version number, removed draft specification and added beta.
David Aeschlimann [Mon, 4 Apr 2011 15:55:42 +0000 (10:55 -0500)]
Cleans out unnecessary files inadvertently left by previous commit. Fixes a dynC test.
LocalWords: dynC
Matthew Legendre [Fri, 1 Apr 2011 18:02:19 +0000 (13:02 -0500)]
Change ordering of libiberty on parsethat build to fix build error
Matthew P. Legendre [Thu, 31 Mar 2011 21:34:18 +0000 (14:34 -0700)]
Further refinement of parseThat libiberty build parameters
legendre1 [Wed, 30 Mar 2011 21:08:41 +0000 (14:08 -0700)]
Fix dync always re-installing include files
legendre1 [Wed, 30 Mar 2011 21:08:26 +0000 (14:08 -0700)]
Parsethat not building on system without liberty
legendre1 [Wed, 30 Mar 2011 21:07:56 +0000 (14:07 -0700)]
Fix stackwalker not building with prefix
legendre1 [Wed, 30 Mar 2011 21:07:25 +0000 (14:07 -0700)]
Fix dynC not building with prefix argument
Andrew Bernat [Wed, 30 Mar 2011 17:28:01 +0000 (12:28 -0500)]
Fixed several bugs and polished AMD-64 instrumentation optimizations
Andrew Bernat [Fri, 25 Mar 2011 21:49:02 +0000 (16:49 -0500)]
Bugfix for function replacement/call replacement in binary edits; some fork work
Andrew Bernat [Fri, 25 Mar 2011 20:40:34 +0000 (15:40 -0500)]
Add address mapping support for (block, function) pairs
Andrew Bernat [Fri, 25 Mar 2011 20:21:29 +0000 (15:21 -0500)]
Prototype of shared-block relocation system.
This has the infrastructure necessary to share blocks,
although we currently still clone pending a policy decision
about when to relocate block only vs. cloning functions.
Madhavi Krishnan [Wed, 23 Mar 2011 21:50:44 +0000 (16:50 -0500)]
Build fix for stackwalker on ppc64_linux
Madhavi Krishnan [Wed, 23 Mar 2011 20:19:08 +0000 (15:19 -0500)]
Updating stackwalker release version number.
David Aeschlimann [Tue, 22 Mar 2011 21:45:46 +0000 (16:45 -0500)]
Added missing dynC.tab.h file, changed procedure to update autogenerated files for dynC.
Now 'make regenerate' will regenerate dynC.tab.h, dynC.tab.C, and lex.dynC.C.
David Aeschlimann [Tue, 22 Mar 2011 20:37:39 +0000 (15:37 -0500)]
Code clean up.
Ray Chen [Tue, 22 Mar 2011 19:25:08 +0000 (15:25 -0400)]
Update version string in configure script for the 7.0 release.
Andrew Bernat [Tue, 22 Mar 2011 16:10:33 +0000 (11:10 -0500)]
Rename image_* to parse_* and int_* to *_instance
Andrew Bernat [Tue, 22 Mar 2011 15:04:42 +0000 (10:04 -0500)]
Re-initialize baseTramp flags before code generation to ensure consistency.
David Aeschlimann [Tue, 22 Mar 2011 15:03:18 +0000 (10:03 -0500)]
Build fix for dynC on ppc32, ppc64, and AMD64
Bill Williams [Mon, 21 Mar 2011 21:32:07 +0000 (16:32 -0500)]
Better debug output in test 5-8 (expected vs. actual).
Bill Williams [Mon, 21 Mar 2011 21:31:41 +0000 (16:31 -0500)]
Added *esp accesses to [push|pop]a[d?] instructions.
Bill Williams [Mon, 21 Mar 2011 21:29:48 +0000 (16:29 -0500)]
Bug fix for O|SS: decoding garbage no longer asserts.
Andrew Bernat [Mon, 21 Mar 2011 18:49:02 +0000 (13:49 -0500)]
Prototype of new graph transformation-based instrumentation approach.
David Aeschlimann [Mon, 21 Mar 2011 14:55:04 +0000 (09:55 -0500)]
Minor revisions to dynC behavior to align with changes requested in manual review process.
Specifically, added the ability to call dynC_API::createSnippet with an std::string.
David Aeschlimann [Fri, 11 Mar 2011 23:43:54 +0000 (17:43 -0600)]
Added draft of dynC API manual
David Aeschlimann [Mon, 24 Jan 2011 19:04:00 +0000 (13:04 -0600)]
Intermidiate commit for AIX build fix.
Nathan Rosenblum [Thu, 17 Mar 2011 22:26:52 +0000 (17:26 -0500)]
Moving entryIDs.h to dynutil.h to eliminate a bad dependency
Madhavi Krishnan [Thu, 17 Mar 2011 16:11:46 +0000 (11:11 -0500)]
Adding README for symtabAPI
Nathan Rosenblum [Thu, 17 Mar 2011 15:29:27 +0000 (10:29 -0500)]
Spaces after release major version were causing failures building the
build stamp files.
Nathan Rosenblum [Thu, 17 Mar 2011 15:27:51 +0000 (10:27 -0500)]
Add README file for ParseAPI
Madhavi Krishnan [Wed, 16 Mar 2011 16:54:35 +0000 (11:54 -0500)]
Update gitigonre
To exclude patch.h and patch.C but include other patch files.
Madhavi Krishnan [Wed, 16 Mar 2011 16:49:13 +0000 (11:49 -0500)]
Update copyright
Remove Dyninst copyright for rose and external files.
Madhavi Krishnan [Wed, 16 Mar 2011 16:14:53 +0000 (11:14 -0500)]
Update release version
Madhavi Krishnan [Wed, 16 Mar 2011 15:04:51 +0000 (10:04 -0500)]
Update copyright
Ray Chen [Sat, 12 Mar 2011 03:39:15 +0000 (22:39 -0500)]
GCC 4.5.1 compatibility fixes for the 7.0 release.
Todd Frederick [Fri, 11 Mar 2011 22:29:55 +0000 (16:29 -0600)]
Move StackwalkerAPI and SymtabAPI documentation to docs repository
Todd Frederick [Fri, 11 Mar 2011 19:51:14 +0000 (13:51 -0600)]
Finalize SymtabAPI and StackwalkerAPI documentation for release
Todd Frederick [Fri, 11 Mar 2011 18:34:23 +0000 (12:34 -0600)]
Update InstructionAPI manual version to 7.0
Nathan Rosenblum [Fri, 11 Mar 2011 18:29:03 +0000 (12:29 -0600)]
Removed jog in logo, moved to common
Ray Chen [Fri, 11 Mar 2011 01:33:57 +0000 (20:33 -0500)]
Remove libelf dependency from libcommon.
Libraries that require libelf functionality now compile common/Elf_X.C
themselves. Thanks to Matt Legendre for the idea.
Todd Frederick [Thu, 10 Mar 2011 21:05:02 +0000 (15:05 -0600)]
Update StackwalkerAPI manual date
Ray Chen [Thu, 10 Mar 2011 20:24:40 +0000 (15:24 -0500)]
Fix a runTests early exit bug.
After the infinite loop commit, runTests would exit early if an invocation
of test_driver terminated abnormally due to a signal.
Emily Jacobson [Wed, 9 Mar 2011 23:25:03 +0000 (17:25 -0600)]
Cleanup of temporary SymEval fix.
Bill Williams [Wed, 9 Mar 2011 21:23:45 +0000 (15:23 -0600)]
Removed debugging output.
Bill Williams [Wed, 9 Mar 2011 21:23:31 +0000 (15:23 -0600)]
Use the correct version of libelf in libcommon.
Bill Williams [Wed, 9 Mar 2011 19:59:34 +0000 (13:59 -0600)]
Fix for bug 1156: 64-bit power linux parameter lookup for args >8 did not work.
This preserves old behavior on 64-bit AIX, which may also be buggy, but I can't test that right now.
Ray Chen [Wed, 9 Mar 2011 18:06:59 +0000 (13:06 -0500)]
Combined build fixes from the vxWorks/x86 commit.
Madhavi Krishnan [Wed, 9 Mar 2011 16:43:25 +0000 (10:43 -0600)]
Fix for testsuite build failure.
After Ray's changes yesterday, libcommon depends on libelf.
Adding this new dependency to the testsuite Makefile. This
will fix the testsuite build failure.
Madhavi Krishnan [Tue, 8 Mar 2011 23:30:50 +0000 (17:30 -0600)]
Temporary fix for ppc32_linux failures
Previous commit (
7237b6688017860a02a3d9254000e3665f5490c0) added a sort
routine to sort vector of edges. This caused a segfault on ppc32_linux
as the pointers used to sort may be NULL. This is a temporary fix for the
segfault. This fix ensures determinism of the order of the edges. A better
fix may follow in the future.
Madhavi Krishnan [Tue, 8 Mar 2011 23:26:15 +0000 (17:26 -0600)]
vxWorks/x86 commit fix
Since ELf is added as a dependency to common directory,
LIBELF_INC (include directory for libelf.h) should be added to the
include flags in make.module.tmpl
Ray Chen [Tue, 8 Mar 2011 22:14:37 +0000 (17:14 -0500)]
Add missing file to previous vxWorks/x86 commit.
Ray Chen [Tue, 8 Mar 2011 18:48:01 +0000 (13:48 -0500)]
Preliminary support for vxWorks/x86 platform.
Ray Chen [Tue, 8 Mar 2011 18:20:52 +0000 (13:20 -0500)]
Fix inter-library function call replacement on ppc64/Linux
Our generic GPR restore assembly overwrote the new function's return value.
We now consider the return value register "live" after the replacement
function is called.
The generic GPR restore code overwrote the new return value. Fixed.
Ray Chen [Tue, 8 Mar 2011 05:55:08 +0000 (00:55 -0500)]
PPC64/Linux build fix for UMD systems.
Platform makefile still instructed build system to generate 32-bit
libraries. This functionality is not supported yet.
Also includes a typo fix for the testsuite.
Madhavi Krishnan [Mon, 7 Mar 2011 23:13:57 +0000 (17:13 -0600)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Madhavi Krishnan [Mon, 7 Mar 2011 23:13:36 +0000 (17:13 -0600)]
ppc64 OPD offset fix
In ppc64 platform, functions symbols (like _init, _fini etc)
are stored in .opd (Official Procedure Descriptor) section.
We have to find the ELF section where the function actually exists
and set the region for the function correctly. For example, _init will be
in .init section and not .opd section. There was a bug in determining is an
offset exists in an ELF section. This is fixed now.
This bug caused the _fini symbol to point to a wrong ELF section and
hence init_fini_callback test fails on ppc64 (bug 1157).
Daniel McNulty [Mon, 7 Mar 2011 22:10:45 +0000 (16:10 -0600)]
Fix for force loading the RT library on Linux when libc and the loader
are stripped.
Adds a new heuristic to process::loadDYNINSTlib() on both power and x86
that searches for the function __libc_dlopen_mode and uses this function
to function to force load the RT library. According to the comments in
the glibc source, __libc_dlopen_mode is used by libraries that libc
internally dlopen's via its internal mechanisms. Its interface is
the same as the exported dlopen call in libdl.
This heuristic is applied after searching for the exported version of
dlopen and before searching for do_dlopen, which requires that the
loader have symbols.
On x86, we need to add another mode flag that is not available in a
public header to turn off a stack protection check that is usually done
by the exported dlopen function before callling libc's internal dlopen
machinery. When symbols are available, we don't rely on this special
flag (see tryUnprotectStack for more info).
Emily Jacobson [Fri, 4 Mar 2011 20:07:46 +0000 (14:07 -0600)]
Sort nodes in SymEval::expand() so that loop removal is deterministic.
Ray Chen [Fri, 4 Mar 2011 17:44:37 +0000 (12:44 -0500)]
Fix an output typo in the testsuite's database driver.
Andrew Bernat [Fri, 4 Mar 2011 16:26:15 +0000 (10:26 -0600)]
Revert movement of relocation code to PatchAPI so that I can work on it
Andrew Bernat [Tue, 8 Feb 2011 21:39:07 +0000 (15:39 -0600)]
Initial unpeeling of relocation system from Dyninst.
1) Relocation data structures now depend on PatchAPI's CFG, with two "magic" conversion functions
2) instPoint dependence is unresolved
3) Transformers are commented out and need to be ported from addressSpace concepts to PatchAPI concepts
4) We need to construct the PatchAPI CFG
5) Dyninst needs to be reworked to use PatchAPi
Kevin Roundy [Thu, 3 Mar 2011 23:54:05 +0000 (17:54 -0600)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Bill Williams [Thu, 3 Mar 2011 23:38:27 +0000 (17:38 -0600)]
Fix for ppc64 dynamic call site monitoring.
Ray Chen [Thu, 3 Mar 2011 21:29:44 +0000 (16:29 -0500)]
Fix infinite loop upon timeout in testsuite.
The main loop of runTests.C mishandled its state in the case of a timeout
alarm. This would cause runTests to spin in an infinite print loop.
Ray Chen [Thu, 3 Mar 2011 21:26:39 +0000 (16:26 -0500)]
Remove DOS-style line endings.
Ray Chen [Thu, 3 Mar 2011 21:24:32 +0000 (16:24 -0500)]
Enable CPU and memory usage tracking in parseThat and the testsuite.
The -memcpu flag for the testsuite no longer requires a parameter.
Additionally, CPU (user + system) and memory (RSS or maxRSS if available)
is reported for each test regardless of output driver.
The -memcpu flag is also passed to parseThat based tests. In theory, this
should be a more reliable source for historic CPU and memory usage data.
Kevin Roundy [Thu, 3 Mar 2011 17:46:06 +0000 (11:46 -0600)]
Fixes image_basicBlock::isExitBlock, multi-proc Windows compile
Fixes isExitBlock to return true only for return instructions,
tail-calls, and non-returning calls; we were previously also
returning true for blocks ending in normal call instructions.
Changes the Windows project files to allow compilation to use
multiple processes.
Madhavi Krishnan [Thu, 3 Mar 2011 06:13:02 +0000 (00:13 -0600)]
More ppc64_linux testsuite fix.
Adding -ldl flag to ppc64_linux Makefile.
Madhavi Krishnan [Wed, 2 Mar 2011 17:54:06 +0000 (11:54 -0600)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Madhavi Krishnan [Wed, 2 Mar 2011 17:53:04 +0000 (11:53 -0600)]
ppc64_linux testsuite fix
libtestA and libtestB were not using -m64 flags for compilation. Fixed.
Emily Jacobson [Fri, 25 Feb 2011 22:14:26 +0000 (16:14 -0600)]
Fixed emitElf() case that caused a segfault when rewriting a binary
with no changes.
Mike Lam [Wed, 23 Feb 2011 22:41:43 +0000 (17:41 -0500)]
Optimized SymtabAPI::Aggregate::getOffset by caching
Madhavi Krishnan [Thu, 24 Feb 2011 17:37:02 +0000 (11:37 -0600)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Madhavi Krishnan [Thu, 24 Feb 2011 17:36:41 +0000 (11:36 -0600)]
Adding comment for test5_6 fix
Emily Jacobson [Mon, 14 Feb 2011 17:23:55 +0000 (11:23 -0600)]
Add check to ensure we only do static rewriting special
cases IF we've added instrumentation. These checks are
unnecessary (and fail) if we have not added any
instrumentation.
Madhavi Krishnan [Wed, 23 Feb 2011 20:56:53 +0000 (14:56 -0600)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Madhavi Krishnan [Wed, 23 Feb 2011 20:56:28 +0000 (14:56 -0600)]
test5_6 fix
Based on Nate's suggestion:
test 5_6 is broken as currently implemented, given what the parser is
capable of doing to resolve catch blocks---a correctly functioning
parser can't find the catch blocks that test 5_6 seeks to test. One
obvious fix is to make func_that_throws (actually
exception_test::call_cpp) have a path to return, even if it is never
taken (think volatile int a; a = 0; if(!a) { sample_exception(); }
else { return; }). The only other way to fix this would be to rework
the way exception catch blocks are located, which reworking may not
even be feasible.
Daniel McNulty [Mon, 21 Feb 2011 18:54:19 +0000 (12:54 -0600)]
Fix for test_pt_ls
test_pt_ls was always running the create mode tests even when -create was not
specified. This change modifies the test so it only runs the create mode tests
when -create is specified.
This behavior was resulting in failures on FreeBSD where create mode is
currently unsupported.
Todd Frederick [Fri, 18 Feb 2011 22:55:45 +0000 (16:55 -0600)]
Contributed StackwalkerAPI documentation fix
Todd Frederick [Fri, 18 Feb 2011 21:24:24 +0000 (15:24 -0600)]
Update StackwalkerAPI 2.0 documentation
Madhavi Krishnan [Fri, 18 Feb 2011 20:31:44 +0000 (14:31 -0600)]
Disabling ppc64 rewriter tests
Rewriter tests are disabled for ppc64 platform for 7.0 release.
Kevin Roundy [Fri, 18 Feb 2011 17:16:52 +0000 (11:16 -0600)]
Fix warnings in printf statements
Madhavi Krishnan [Tue, 15 Feb 2011 17:44:52 +0000 (11:44 -0600)]
Fix rewriter test failures
In my previous commit, the arguments for rewritten binary included
"-attach" by mistake. This caused the rewriter tests to fail. Fixed.
Kevin Roundy [Mon, 14 Feb 2011 18:55:59 +0000 (12:55 -0600)]
Fixes warnings and linux build errors and merge errors