dyninst.git
3 years agoRemoved debug statements
John Detter [Mon, 25 Jul 2016 21:29:29 +0000 (16:29 -0500)]
Removed debug statements

3 years agoFixes for Ubuntu 16.04
John Detter [Mon, 25 Jul 2016 21:13:12 +0000 (16:13 -0500)]
Fixes for Ubuntu 16.04

3 years agotest_pt_ls passing
John Detter [Mon, 25 Jul 2016 20:25:59 +0000 (15:25 -0500)]
test_pt_ls passing

3 years agoStarted work on dataflowAPI based analysis for findMain
John Detter [Fri, 22 Jul 2016 21:39:03 +0000 (16:39 -0500)]
Started work on dataflowAPI based analysis for findMain

3 years agoMerge pull request #118 from dyninst/release9.2/fixes/liveness-patch 124/head
John Detter [Tue, 12 Jul 2016 21:57:36 +0000 (16:57 -0500)]
Merge pull request #118 from dyninst/release9.2/fixes/liveness-patch

Release9.2/fixes/liveness patch

3 years agoAdded redundant register definitions 118/head
John Detter [Tue, 12 Jul 2016 21:51:39 +0000 (16:51 -0500)]
Added redundant register definitions

3 years agoMerge branch 'master' into release9.2/fixes/liveness-patch
John Detter [Tue, 12 Jul 2016 21:03:11 +0000 (16:03 -0500)]
Merge branch 'master' into release9.2/fixes/liveness-patch

3 years agoFix for #114. Support has been added for 32 bit YMM, ZMM and K mask registers to...
John Detter [Tue, 12 Jul 2016 20:59:28 +0000 (15:59 -0500)]
Fix for #114. Support has been added for 32 bit YMM, ZMM and K mask registers to prevent future similar issues.

3 years agoWhen reaching shared blocks that have been parsed, we still need to invalidate the...
Xiaozhu Meng [Tue, 12 Jul 2016 16:36:34 +0000 (11:36 -0500)]
When reaching shared blocks that have been parsed, we still need to invalidate the cache of the current function as the function should include all the shared blocks

3 years agoMerge branch 'release9.2/fixes/aes-extension' into v9.2_patches
John Detter [Mon, 11 Jul 2016 07:00:48 +0000 (02:00 -0500)]
Merge branch 'release9.2/fixes/aes-extension' into v9.2_patches

3 years agoMerge branch 'release9.2/fixes/modify-data-assert' into v9.2_patches
John Detter [Mon, 11 Jul 2016 07:00:30 +0000 (02:00 -0500)]
Merge branch 'release9.2/fixes/modify-data-assert' into v9.2_patches

3 years agoFix for #116
John Detter [Thu, 7 Jul 2016 21:04:52 +0000 (16:04 -0500)]
Fix for #116

3 years agoRemoved slicing check for "skipRegs".
Matt Morehouse [Thu, 7 Jul 2016 20:34:56 +0000 (15:34 -0500)]
Removed slicing check for "skipRegs".

Instruction displacement updates were being incorrectly calculated
for registers labeled as skipRegs.  Simply labeling such registers
as non-skipRegs fixes the issue.  Fixes #113.

3 years agoAdded missing CRC32 instruction variation 115/head
John Detter [Wed, 6 Jul 2016 21:19:09 +0000 (16:19 -0500)]
Added missing CRC32 instruction variation

3 years agoAES instruction extension complete.
John Detter [Wed, 6 Jul 2016 20:59:06 +0000 (15:59 -0500)]
AES instruction extension complete.

3 years agoAdding support for aes instruction set extension
John Detter [Wed, 6 Jul 2016 20:30:34 +0000 (15:30 -0500)]
Adding support for aes instruction set extension

3 years agoUpdate version numbers and dates in doc manuals v9.2.0
Xiaozhu Meng [Wed, 29 Jun 2016 21:54:14 +0000 (16:54 -0500)]
Update version numbers and dates in doc manuals

3 years agoBump version number and date for dyninstAPI and proccontrol manuals
Xiaozhu Meng [Wed, 29 Jun 2016 21:59:35 +0000 (16:59 -0500)]
Bump version number and date for dyninstAPI and proccontrol manuals

3 years agoAdd dataflow manual.
Bill Williams [Wed, 29 Jun 2016 21:50:18 +0000 (16:50 -0500)]
Add dataflow manual.

3 years agoUpdate manuals and docs target for 9.2.
Bill Williams [Wed, 29 Jun 2016 21:49:44 +0000 (16:49 -0500)]
Update manuals and docs target for 9.2.

3 years agoBump version to 9.2.0 and update README with 9.2 release notes.
Bill Williams [Wed, 29 Jun 2016 21:16:44 +0000 (16:16 -0500)]
Bump version to 9.2.0 and update README with 9.2 release notes.

3 years agoTrack the relationship between base and subregisters.
Matt Morehouse [Wed, 29 Jun 2016 19:17:31 +0000 (14:17 -0500)]
Track the relationship between base and subregisters.

Any modification of a base register (e.g., RAX) has a related
modification on its subregister (e.g., EAX).  The opposite is also
true.  This commit introduces functionality to track that
relationship so that modifying one register in the pair affects the
other register appropriately.

3 years agoRemove flag tracking from StackAnalysis.
Matt Morehouse [Wed, 29 Jun 2016 18:11:09 +0000 (13:11 -0500)]
Remove flag tracking from StackAnalysis.

3 years agoImprove handling of XOR.
Matt Morehouse [Wed, 29 Jun 2016 18:04:41 +0000 (13:04 -0500)]
Improve handling of XOR.

Add memory tracking to StackAnalysis::handleXor() and replace
the default handling with more correct handling.

3 years agoChange representation of delta functions.
Matt Morehouse [Wed, 29 Jun 2016 17:40:13 +0000 (12:40 -0500)]
Change representation of delta functions.

Represent delta functions as "copies with deltas", where the from
and target locations are the same.  This representation simplifies
much of the accumulation logic for deltas.

3 years agoRemove sentinel values from Height and TransferFunc classes.
Matt Morehouse [Wed, 29 Jun 2016 17:25:39 +0000 (12:25 -0500)]
Remove sentinel values from Height and TransferFunc classes.

Use a flag to specify TOP and BOTTOM rather than MAX_LONG and
MIN_LONG.

3 years agoReorganize StackAnalysis header file.
Matt Morehouse [Wed, 29 Jun 2016 17:00:33 +0000 (12:00 -0500)]
Reorganize StackAnalysis header file.

Move some implementation details to the implementation file to
avoid clutter.  Also ensure uniform indentation in both files.

3 years agoAdd function summary capability to StackAnalysis.
Matt Morehouse [Wed, 29 Jun 2016 16:20:45 +0000 (11:20 -0500)]
Add function summary capability to StackAnalysis.

A function summary is a mapping from Abslocs to TransferFuncs. Each
Absloc in the mapping represents an abstract location that is
modified by the function. Each TransferFunc in the mapping
describes how the corresponding Absloc is defined in terms of
function inputs after the function returns. This commit adds the
StackAnalysis::getFunctionSummary() method which generates and
returns function summaries for the specified function.

3 years agoMiscellaneous accumulation logic fixes.
Matt Morehouse [Wed, 29 Jun 2016 00:16:32 +0000 (19:16 -0500)]
Miscellaneous accumulation logic fixes.

3 years agoFix return handling and add memory tracking for leave instructions.
Matt Morehouse [Wed, 29 Jun 2016 00:14:58 +0000 (19:14 -0500)]
Fix return handling and add memory tracking for leave instructions.

3 years agoAdd memory tracking for push/pop instructions.
Matt Morehouse [Wed, 29 Jun 2016 00:05:28 +0000 (19:05 -0500)]
Add memory tracking for push/pop instructions.

3 years agoRename aliasFunc to copyFunc.
Matt Morehouse [Wed, 29 Jun 2016 00:03:45 +0000 (19:03 -0500)]
Rename aliasFunc to copyFunc.

Copying is a more accurate description of the operation that
aliasFunc has been capturing since the copied value can be modified
without changing any of the other copies.

3 years agoAdd check for stack accesses with unknown offsets.
Matt Morehouse [Tue, 28 Jun 2016 23:59:22 +0000 (18:59 -0500)]
Add check for stack accesses with unknown offsets.

3 years agoMerge pull request #112 from dyninst/release9.2/fixes/rewriter_assert
John Detter [Wed, 29 Jun 2016 15:59:17 +0000 (10:59 -0500)]
Merge pull request #112 from dyninst/release9.2/fixes/rewriter_assert

Disabled condition decoding in stack rewriting.

3 years agoDisabled condition decoding in stack rewriting. 112/head
John Detter [Wed, 29 Jun 2016 14:35:33 +0000 (09:35 -0500)]
Disabled condition decoding in stack rewriting.

3 years agoMerge pull request #109 from cuviper/paged-papercuts
Bill Williams [Tue, 28 Jun 2016 21:11:06 +0000 (16:11 -0500)]
Merge pull request #109 from cuviper/paged-papercuts

symtabAPI: Apply corrections for the library_adjust page offset

3 years agoMerge pull request #107 from dyninst/VEX
John Detter [Tue, 28 Jun 2016 20:32:19 +0000 (15:32 -0500)]
Merge pull request #107 from dyninst/VEX

Rewriter fixes, instruction decoding fixes.

3 years agoProperly check the return value of inferior malloc irpc 107/head
Xiaozhu Meng [Tue, 28 Jun 2016 18:34:12 +0000 (13:34 -0500)]
Properly check the return value of inferior malloc irpc

3 years agosymtabAPI: Apply corrections for the library_adjust page offset 109/head
Josh Stone [Tue, 28 Jun 2016 00:44:49 +0000 (17:44 -0700)]
symtabAPI: Apply corrections for the library_adjust page offset

This commit aggregates the incremental fixes that Bill Williams and I
found while investigating issue #93, rewriting libc.so.

- The offsets of new sections need to account for library_adjust when
  placing themselves after the first new section.
- TLS symbol values need *not* be adjusted, as they're section-relative.
- DT_INIT/FINI values need to be adjusted.
- x86 IRELATIVE relocations need their addends adjusted.

Fixes #93.

3 years agoMerge branch 'VEX' of http://github.com/dyninst/dyninst into VEX
John Detter [Tue, 28 Jun 2016 00:26:21 +0000 (19:26 -0500)]
Merge branch 'VEX' of github.com/dyninst/dyninst into VEX

3 years agoFixed Mark Krentel's build issue
John Detter [Mon, 27 Jun 2016 23:47:43 +0000 (18:47 -0500)]
Fixed Mark Krentel's build issue

3 years agoMerge pull request #105 from pefoley2/llvm_travis
Bill Williams [Mon, 27 Jun 2016 21:13:49 +0000 (16:13 -0500)]
Merge pull request #105 from pefoley2/llvm_travis

Don't use broken llvm apt mirror

3 years agoMerge pull request #108 from pefoley2/VEX_win
John Detter [Mon, 27 Jun 2016 16:40:43 +0000 (11:40 -0500)]
Merge pull request #108 from pefoley2/VEX_win

fix dll linkage on windows

3 years agofix dll linkage on windows 108/head
Peter Foley [Fri, 24 Jun 2016 18:00:33 +0000 (14:00 -0400)]
fix dll linkage on windows

3 years agoDon't use broken llvm apt mirror 105/head
Peter Foley [Fri, 24 Jun 2016 13:56:18 +0000 (09:56 -0400)]
Don't use broken llvm apt mirror

3 years agoBuild fix for 32 bit environments 106/head
John Detter [Fri, 24 Jun 2016 15:47:22 +0000 (10:47 -0500)]
Build fix for 32 bit environments

3 years agoBuild fix for 32 bit environments
John Detter [Wed, 22 Jun 2016 18:48:48 +0000 (13:48 -0500)]
Build fix for 32 bit environments

3 years agoFixed test_mem* issues
John Detter [Tue, 21 Jun 2016 23:23:58 +0000 (18:23 -0500)]
Fixed test_mem* issues

3 years agoMerge branch 'master' into VEX
John Detter [Tue, 21 Jun 2016 19:12:11 +0000 (14:12 -0500)]
Merge branch 'master' into VEX

3 years agoMerge pull request #102 from mxz297/master
Xiaozhu Meng [Tue, 21 Jun 2016 17:04:08 +0000 (12:04 -0500)]
Merge pull request #102 from mxz297/master

Fixes for jump table, instruction decoding, windows proccontrol

3 years agoFixes Windows Build 102/head
Xiaozhu Meng [Tue, 21 Jun 2016 16:49:20 +0000 (11:49 -0500)]
Fixes Windows Build

3 years agoAdded missing memory addressing modes from InstructionAPI
John Detter [Tue, 21 Jun 2016 14:24:05 +0000 (09:24 -0500)]
Added missing memory addressing modes from InstructionAPI

3 years agoMerge remote-tracking branch 'upstream/master' into windows
Xiaozhu Meng [Tue, 21 Jun 2016 02:33:21 +0000 (21:33 -0500)]
Merge remote-tracking branch 'upstream/master' into windows

3 years agoFixed a memory decoding issue
John Detter [Mon, 20 Jun 2016 22:04:21 +0000 (17:04 -0500)]
Fixed a memory decoding issue

3 years agoDisabled relocation debugging output
John Detter [Mon, 20 Jun 2016 21:22:39 +0000 (16:22 -0500)]
Disabled relocation debugging output

3 years agoBinary rewriting (IP relative) has been cleaned up and is working again
John Detter [Mon, 20 Jun 2016 21:17:27 +0000 (16:17 -0500)]
Binary rewriting (IP relative) has been cleaned up and is working again

3 years agoUse __thread instead of thread_local on non-windows platforms
Xiaozhu Meng [Mon, 20 Jun 2016 19:14:54 +0000 (14:14 -0500)]
Use __thread instead of thread_local on non-windows platforms

3 years agoFixes for procontrol on Windows including proper locking when deleting
Xiaozhu Meng [Mon, 20 Jun 2016 18:06:43 +0000 (13:06 -0500)]
Fixes for procontrol on Windows including proper locking when deleting
threads and broadcasting the conditional variable when create events
arrive

3 years agoFixed memory addressing assert
John Detter [Mon, 20 Jun 2016 12:40:07 +0000 (07:40 -0500)]
Fixed memory addressing assert

3 years agoBinary rewriting bugs fixed -- still segfault's with Unix benchmarking tool
John Detter [Mon, 20 Jun 2016 12:25:47 +0000 (07:25 -0500)]
Binary rewriting bugs fixed -- still segfault's with Unix benchmarking tool

3 years agoBug fixes for instruction parsing
John Detter [Mon, 20 Jun 2016 07:17:35 +0000 (02:17 -0500)]
Bug fixes for instruction parsing

3 years agoMerge branch 'master' of http://github.com/dyninst/dyninst into VEX
John Detter [Mon, 20 Jun 2016 05:17:31 +0000 (00:17 -0500)]
Merge branch 'master' of github.com/dyninst/dyninst into VEX

3 years agoError checking improvements
John Detter [Mon, 20 Jun 2016 05:17:22 +0000 (00:17 -0500)]
Error checking improvements

3 years agoMake the tramp guard bigger to avoid a glibc bug.
Josh Stone [Sat, 18 Jun 2016 00:28:07 +0000 (17:28 -0700)]
Make the tramp guard bigger to avoid a glibc bug.

Having just one byte of TLS induces glibc bug 14898 with the definition
of FORCED_DYNAMIC_TLS_OFFSET.  Bumping to two bytes avoids this.

Fixes #101

3 years agoImplemented rewriting fix -- testing
John Detter [Fri, 17 Jun 2016 20:02:42 +0000 (15:02 -0500)]
Implemented rewriting fix -- testing

3 years agoRTlib: use static TLS for the tramp guard (#99)
Josh Stone [Fri, 17 Jun 2016 17:51:43 +0000 (10:51 -0700)]
RTlib: use static TLS for the tramp guard (#99)

With dynamic TLS, the call to __tls_get_addr() could reach additional
instrumented code, infinitely recursing back to check the tramp guard.
Static TLS is a limited resource, but this case in RTlib is special
enough to warrant it for safety alone, nevermind performance.

3 years agoPrevent memory corruption: Dwarf_Dbg is a pointer under the hood, so don't take refer...
Bill Williams [Fri, 17 Jun 2016 16:17:11 +0000 (11:17 -0500)]
Prevent memory corruption: Dwarf_Dbg is a pointer under the hood, so don't take references to it.

3 years agoMerge branch 'heap_refactoring' of https://github.com/pefoley2/dyninst into windows
Xiaozhu Meng [Thu, 16 Jun 2016 22:13:17 +0000 (17:13 -0500)]
Merge branch 'heap_refactoring' of https://github.com/pefoley2/dyninst into windows

3 years agoMerge branch 'vs_build_fixes' of https://github.com/pefoley2/dyninst into windows
Xiaozhu Meng [Thu, 16 Jun 2016 21:31:06 +0000 (16:31 -0500)]
Merge branch 'vs_build_fixes' of https://github.com/pefoley2/dyninst into windows

3 years agoFix jump table analysis for 32-bit PIC code
Xiaozhu Meng [Wed, 15 Jun 2016 23:46:37 +0000 (18:46 -0500)]
Fix jump table analysis for 32-bit PIC code

3 years agouse more modern gcc 97/head
Peter Foley [Fri, 6 May 2016 03:30:05 +0000 (23:30 -0400)]
use more modern gcc

3 years agolink windows libraries privately
Peter Foley [Fri, 6 May 2016 03:18:59 +0000 (23:18 -0400)]
link windows libraries privately

3 years agofix Mutex undefined reference
Peter Foley [Fri, 6 May 2016 02:52:45 +0000 (22:52 -0400)]
fix Mutex undefined reference

3 years agodon't build parseThat on windows
Peter Foley [Fri, 6 May 2016 19:53:33 +0000 (15:53 -0400)]
don't build parseThat on windows

3 years agoVisual Studio build fixes
Peter Foley [Fri, 6 May 2016 17:41:35 +0000 (13:41 -0400)]
Visual Studio build fixes

3 years agoCleanup _snprintf logic
Peter Foley [Fri, 6 May 2016 00:19:28 +0000 (20:19 -0400)]
Cleanup _snprintf logic

Fix building dyninstAPI_RT with VS 2015.
Remove unnecessary overriding of _snprintf in favor of a centralized
definition.

3 years agouse thread_local for VS compatibility
Peter Foley [Fri, 6 May 2016 00:47:15 +0000 (20:47 -0400)]
use thread_local for VS compatibility

3 years agoBuild DyninstAPI_RT on Windows
Peter Foley [Wed, 15 Jun 2016 17:27:08 +0000 (13:27 -0400)]
Build DyninstAPI_RT on Windows

3 years agoRefactor RTheap to avoid doing arithmetic with void* 95/head
Peter Foley [Wed, 15 Jun 2016 17:52:23 +0000 (13:52 -0400)]
Refactor RTheap to avoid doing arithmetic with void*

Only causes a warning with gcc, but a fatal error with VS 2015.

3 years agodon't build docs by default under VS
Peter Foley [Mon, 30 May 2016 17:46:44 +0000 (13:46 -0400)]
don't build docs by default under VS

3 years agobundle cvconst.h
Peter Foley [Fri, 6 May 2016 03:21:47 +0000 (23:21 -0400)]
bundle cvconst.h

3 years agodelete generated vs files
Peter Foley [Thu, 5 May 2016 23:29:11 +0000 (19:29 -0400)]
delete generated vs files

3 years agoMerge branch 'VEX' of http://github.com/dyninst/dyninst into VEX
John Detter [Tue, 14 Jun 2016 21:20:30 +0000 (16:20 -0500)]
Merge branch 'VEX' of github.com/dyninst/dyninst into VEX

3 years agoFixed documentation typo #41
John Detter [Tue, 14 Jun 2016 21:19:48 +0000 (16:19 -0500)]
Fixed documentation typo #41

3 years agoMerge pull request #91 from mxz297/master
Xiaozhu Meng [Tue, 14 Jun 2016 20:53:31 +0000 (15:53 -0500)]
Merge pull request #91 from mxz297/master

Latest fix for rice folks

3 years agoSimplify v + v * c = v * (c + 1), where v is a variable and c is a constant 91/head
Xiaozhu Meng [Tue, 14 Jun 2016 18:41:53 +0000 (13:41 -0500)]
Simplify v + v * c = v * (c + 1), where v is a variable and c is a constant

3 years agoFixed build issue in common/src/arch-x86.C
John Detter [Tue, 14 Jun 2016 17:48:17 +0000 (12:48 -0500)]
Fixed build issue in common/src/arch-x86.C

3 years agoAdded the last missing instructions from John Mellor-Crummey's binaries
John Detter [Tue, 14 Jun 2016 17:21:52 +0000 (12:21 -0500)]
Added the last missing instructions from John Mellor-Crummey's binaries

3 years agoMerge branch 'VEX' of https://github.com/dyninst/dyninst into dyninst-VEX
Xiaozhu Meng [Tue, 14 Jun 2016 14:51:19 +0000 (09:51 -0500)]
Merge branch 'VEX' of https://github.com/dyninst/dyninst into dyninst-VEX

Conflicts:
common/src/arch-x86.C

3 years ago64 bit translate issue fixed
John Detter [Tue, 14 Jun 2016 14:00:11 +0000 (09:00 -0500)]
64 bit translate issue fixed

3 years agoSeveral SSE instructions fixed, one VEX instruction fixed.
John Detter [Tue, 14 Jun 2016 13:38:59 +0000 (08:38 -0500)]
Several SSE instructions fixed, one VEX instruction fixed.

3 years agoMerge branch 'VEX' of http://github.com/dyninst/dyninst into VEX
John Detter [Tue, 14 Jun 2016 13:00:24 +0000 (08:00 -0500)]
Merge branch 'VEX' of github.com/dyninst/dyninst into VEX

3 years agoAdded support for xbegin, xabort
John Detter [Tue, 14 Jun 2016 12:58:48 +0000 (07:58 -0500)]
Added support for xbegin, xabort

3 years agoDecrease jump table analysis bound
Xiaozhu Meng [Tue, 14 Jun 2016 02:18:26 +0000 (21:18 -0500)]
Decrease jump table analysis bound

3 years agoMerge branch 'master' of github.com:dyninst/dyninst
Xiaozhu Meng [Tue, 14 Jun 2016 00:52:26 +0000 (19:52 -0500)]
Merge branch 'master' of github.com:dyninst/dyninst

3 years agoCorrectly decode movsxd instruction operand sizes
Xiaozhu Meng [Tue, 14 Jun 2016 00:51:36 +0000 (19:51 -0500)]
Correctly decode movsxd instruction operand sizes

3 years agoMerge branch 'VEX' of github.com:dyninst/dyninst
Xiaozhu Meng [Mon, 13 Jun 2016 22:23:32 +0000 (17:23 -0500)]
Merge branch 'VEX' of github.com:dyninst/dyninst

3 years agoFixed instruction semantic assert issue
John Detter [Mon, 13 Jun 2016 22:22:21 +0000 (17:22 -0500)]
Fixed instruction semantic assert issue

3 years agoMerge branch 'VEX' of http://github.com/dyninst/dyninst into VEX
John Detter [Mon, 13 Jun 2016 22:16:07 +0000 (17:16 -0500)]
Merge branch 'VEX' of github.com/dyninst/dyninst into VEX

3 years agoInstruction movlsq->movsx mnumonic and operand fix
John Detter [Mon, 13 Jun 2016 22:13:52 +0000 (17:13 -0500)]
Instruction movlsq->movsx mnumonic and operand fix