dyninst.git
6 years agoFix inconsistency between ROSE and instructionAPI for operands of ASCII
Xiaozhu Meng [Mon, 14 Jul 2014 16:33:24 +0000 (11:33 -0500)]
Fix inconsistency between ROSE and instructionAPI for operands of ASCII
adjustment instructions

6 years ago1. Fix crash caused by deleting an iterator;
Xiaozhu Meng [Thu, 10 Jul 2014 19:32:08 +0000 (14:32 -0500)]
1. Fix crash caused by deleting an iterator;
2. Adjust table base address on windows

6 years agoFix table stride for 2bytes table and handle sign extension table read
Xiaozhu Meng [Tue, 8 Jul 2014 21:38:34 +0000 (16:38 -0500)]
Fix table stride for 2bytes table and handle sign extension table read

6 years agoMissing headers
Xiaozhu Meng [Mon, 7 Jul 2014 16:23:35 +0000 (11:23 -0500)]
Missing headers

6 years agoAdjust table contents on Windows
Xiaozhu Meng [Mon, 7 Jul 2014 03:00:18 +0000 (22:00 -0500)]
Adjust table contents on Windows

6 years agoMerge branch 'v8.2' of git.dyninst.org:/pub/dyninst into IndirectControlFlow
Xiaozhu Meng [Tue, 1 Jul 2014 16:03:46 +0000 (11:03 -0500)]
Merge branch 'v8.2' of git.dyninst.org:/pub/dyninst into IndirectControlFlow

6 years agoKludge the CXX11 checks for cmake 2.6.4
Josh Stone [Tue, 1 Jul 2014 00:09:24 +0000 (17:09 -0700)]
Kludge the CXX11 checks for cmake 2.6.4

6 years agoFix Windows. Again.
Bill Williams [Fri, 27 Jun 2014 14:33:24 +0000 (09:33 -0500)]
Fix Windows. Again.

6 years agoMerge branch 'v8.2' of ssh://git.dyninst.org/pub/dyninst into v8.2
Bill Williams [Fri, 27 Jun 2014 14:06:46 +0000 (09:06 -0500)]
Merge branch 'v8.2' of ssh://git.dyninst.org/pub/dyninst into v8.2

6 years agoFix BGQ build errors
Matthew LeGendre [Wed, 25 Jun 2014 22:53:19 +0000 (15:53 -0700)]
Fix BGQ build errors

6 years agoAdd error returns to syscall tracing
Matthew LeGendre [Wed, 25 Jun 2014 22:52:59 +0000 (15:52 -0700)]
Add error returns to syscall tracing

6 years agoUndo swap to parseAPI data structures, as this is harmful
Bill Williams [Wed, 25 Jun 2014 20:23:30 +0000 (15:23 -0500)]
Undo swap to parseAPI data structures, as this is harmful

6 years agoMerge remote-tracking branch 'bill/v8.2' into IndirectControlFlow
Xiaozhu Meng [Wed, 25 Jun 2014 17:45:44 +0000 (12:45 -0500)]
Merge remote-tracking branch 'bill/v8.2' into IndirectControlFlow

6 years agoMerge branch 'v8.2' of ssh://follis.cs.wisc.edu/p/paradyn/development/bill/head/dynin...
Bill Williams [Wed, 25 Jun 2014 16:50:41 +0000 (11:50 -0500)]
Merge branch 'v8.2' of ssh://follis.cs.wisc.edu/p/paradyn/development/bill/head/dyninst into v8.2

6 years agoFix bad merge
Bill Williams [Wed, 25 Jun 2014 16:47:29 +0000 (11:47 -0500)]
Fix bad merge

6 years agoAdd missing exports
Bill Williams [Fri, 20 Jun 2014 15:29:18 +0000 (10:29 -0500)]
Add missing exports

6 years agoWindows build fixes.
Bill Williams [Wed, 25 Jun 2014 16:41:09 +0000 (11:41 -0500)]
Windows build fixes.

6 years agoMerge branch 'v8.2' of ssh://follis.cs.wisc.edu/p/paradyn/development/bill/head/dynin...
Bill Williams [Wed, 25 Jun 2014 15:46:48 +0000 (10:46 -0500)]
Merge branch 'v8.2' of ssh://follis.cs.wisc.edu/p/paradyn/development/bill/head/dyninst into v8.2

6 years agoDon't double-count exit events; this can lead to double-counting the main thread...
Bill Williams [Wed, 25 Jun 2014 15:41:35 +0000 (10:41 -0500)]
Don't double-count exit events; this can lead to double-counting the main thread's exit.

6 years agoRelax an invalid assert: if we post an RPC to a process that is (for example) exiting...
Bill Williams [Wed, 25 Jun 2014 15:41:02 +0000 (10:41 -0500)]
Relax an invalid assert: if we post an RPC to a process that is (for example) exiting, we may not have any threads available. Bail, don't assert.

6 years agoFix compilation error on windows
Xiaozhu Meng [Tue, 24 Jun 2014 19:14:20 +0000 (14:14 -0500)]
Fix compilation error on windows

6 years agoMerge branch 'v8.2' into IndirectControlFlow
Xiaozhu Meng [Tue, 24 Jun 2014 15:33:42 +0000 (10:33 -0500)]
Merge branch 'v8.2' into IndirectControlFlow

6 years agoMerge branch 'v8.2' into IndirectControlFlow
Xiaozhu Meng [Fri, 20 Jun 2014 20:49:43 +0000 (15:49 -0500)]
Merge branch 'v8.2' into IndirectControlFlow

Conflicts:
parseAPI/src/Function.C
proccontrol/src/int_process.h
proccontrol/src/process.C
symtabAPI/src/dwarfWalker.C

6 years agoFixes ParseAPI block list access in CFGModifier
Mike Lam [Fri, 20 Jun 2014 18:48:18 +0000 (14:48 -0400)]
Fixes ParseAPI block list access in CFGModifier

6 years agoAdd missing exports
Bill Williams [Fri, 20 Jun 2014 15:29:18 +0000 (10:29 -0500)]
Add missing exports

6 years agoHave springboard system use parseapi data structures
Bill Williams [Fri, 20 Jun 2014 15:29:08 +0000 (10:29 -0500)]
Have springboard system use parseapi data structures

6 years agoSome final bits of fixup: keep block counts accurate, and allow blocks that are not...
Bill Williams [Thu, 19 Jun 2014 22:50:39 +0000 (17:50 -0500)]
Some final bits of fixup: keep block counts accurate, and allow blocks that are not in any function to be cannibalized for springboard space.

6 years agoMerge branch 'v8.2' of ssh://git.dyninst.org/pub/dyninst into v8.2
Bill Williams [Thu, 19 Jun 2014 20:34:18 +0000 (15:34 -0500)]
Merge branch 'v8.2' of ssh://git.dyninst.org/pub/dyninst into v8.2

6 years agoAdd alternating entry/exit event mechanism for handling the ppc case
Bill Williams [Thu, 19 Jun 2014 20:04:43 +0000 (15:04 -0500)]
Add alternating entry/exit event mechanism for handling the ppc case

6 years ago1. Check whether the calculated table indexing address is valid
Xiaozhu Meng [Thu, 19 Jun 2014 19:27:33 +0000 (14:27 -0500)]
1. Check whether the calculated table indexing address is valid
2. Do not change the upper bound value in a bound fact if the operation is a subtraction (Assume the minuend can take value zero)

6 years agoFix for proper interaction between full syscall tracing and proper postponing of...
Bill Williams [Mon, 16 Jun 2014 16:02:21 +0000 (11:02 -0500)]
Fix for proper interaction between full syscall tracing and proper postponing of syscall callbacks in normal execution.

6 years agoppc fixes
William Williams [Fri, 13 Jun 2014 20:07:59 +0000 (13:07 -0700)]
ppc fixes

6 years agoGet pre-exit events via proccontrol callback.
Bill Williams [Wed, 11 Jun 2014 18:17:17 +0000 (13:17 -0500)]
Get pre-exit events via proccontrol callback.
Always report pre-exit events as normal exit, as we have an exit code and our best chance at a manipulable process then.
Decode exit code with ptrace's event message on pre-exit.

6 years agoDwarf FrameParsers are not uniquely determined by a DwarfHandle; there may be multipl...
Bill Williams [Wed, 11 Jun 2014 18:14:04 +0000 (13:14 -0500)]
Dwarf FrameParsers are not uniquely determined by a DwarfHandle; there may be multiple architectures present. Use the right one.

6 years agoBug fix for 32/64 operand sizes.
Bill Williams [Wed, 28 May 2014 20:19:16 +0000 (15:19 -0500)]
Bug fix for 32/64 operand sizes.

6 years agoFix crash bug: we need to finalize when we ask for num_blocks.
Bill Williams [Wed, 28 May 2014 20:18:51 +0000 (15:18 -0500)]
Fix crash bug: we need to finalize when we ask for num_blocks.

6 years agoPass size through into generateOptimizedAssignment and don't generate a 32-bit move...
Bill Williams [Mon, 19 May 2014 20:20:22 +0000 (15:20 -0500)]
Pass size through into generateOptimizedAssignment and don't generate a 32-bit move for a 64-bit assignment.

6 years agoWhitespace cleanup
Bill Williams [Fri, 9 May 2014 19:03:11 +0000 (14:03 -0500)]
Whitespace cleanup

6 years agoRemove ParseAPI's per-function vector of blocks, replacing it with a range of iterato...
Bill Williams [Fri, 9 May 2014 19:03:03 +0000 (14:03 -0500)]
Remove ParseAPI's per-function vector of blocks, replacing it with a range of iterators over the values of the addr->block map.

6 years agoDwarf parsing fix
Bill Williams [Fri, 9 May 2014 19:01:08 +0000 (14:01 -0500)]
Dwarf parsing fix

6 years agoDynC build fix
Bill Williams [Fri, 9 May 2014 19:00:53 +0000 (14:00 -0500)]
DynC build fix

6 years agoSyscall events cleanup
Bill Williams [Fri, 9 May 2014 19:00:40 +0000 (14:00 -0500)]
Syscall events cleanup

6 years agoC++11 detection on a per-feature basis via BSD-licensed CMake scripts (that will...
Bill Williams [Wed, 30 Apr 2014 15:51:44 +0000 (10:51 -0500)]
C++11 detection on a per-feature basis via BSD-licensed CMake scripts (that will become part of 2.8.x at some point).

6 years agoInitialize DYNINSTstaticMode=0 from the mutator if present, not from common init...
Bill Williams [Wed, 30 Apr 2014 15:49:22 +0000 (10:49 -0500)]
Initialize DYNINSTstaticMode=0 from the mutator if present, not from common init code.

6 years agoInitial dynC CMakeLists
Bill Williams [Wed, 30 Apr 2014 15:48:44 +0000 (10:48 -0500)]
Initial dynC CMakeLists

6 years agoSyscall merge cleanup
Bill Williams [Wed, 30 Apr 2014 15:48:22 +0000 (10:48 -0500)]
Syscall merge cleanup

6 years agoFix the *other* place where we need to make shdr alignment >= data alignment
Bill Williams [Tue, 25 Mar 2014 21:02:33 +0000 (16:02 -0500)]
Fix the *other* place where we need to make shdr alignment >= data alignment

6 years agoAdded syscalls/ directory with processing script and current unistd.h files
Emily R. Jacobson [Mon, 10 Jun 2013 14:47:03 +0000 (09:47 -0500)]
Added syscalls/ directory with processing script and current unistd.h files

6 years agoInitial implementation of system call events in ProcControlAPI.
Emily R. Jacobson [Mon, 10 Jun 2013 14:42:44 +0000 (09:42 -0500)]
Initial implementation of system call events in ProcControlAPI.

6 years agoIncrease FPOS value.
Ray Chen [Wed, 18 Jun 2014 07:51:26 +0000 (03:51 -0400)]
Increase FPOS value.

Otherwise, the operand semantic may overlap with the semantic flag
value.  For example, s1R2R3R would be equivalent to (fNT << FPOS).

6 years agoAdd entry for SSE cmpsd instruction.
Ray Chen [Wed, 18 Jun 2014 07:45:24 +0000 (03:45 -0400)]
Add entry for SSE cmpsd instruction.

This allows our decoder to correctly differentiate
between the "Compare String" family of instructions
(CMPS/CMPSB/CMPSW/CMPSD/CMPSQ), and the "Compare Scalar
Double-Precision Floating-Point Values" instruction (CMPSD).

6 years agoFix improper use of ia32_locations' REX fields.
Ray Chen [Wed, 18 Jun 2014 07:11:32 +0000 (03:11 -0400)]
Fix improper use of ia32_locations' REX fields.

The rex_[wrxb] fields of class ia32_locations store the unshifted
value of their corresponding bit.  This led to erroneous comparisons
(e.g., rex_w == 0x1) to test for presence.

To reduce confusion, all comparisons involving these fields now use
non-zero as a presence test.

6 years agoChange Symtab::getContainingFunction to use symbols for function lookups rather than...
Matthew LeGendre [Tue, 17 Jun 2014 23:49:43 +0000 (16:49 -0700)]
Change Symtab::getContainingFunction to use symbols for function lookups rather than DWARF ranges, which gives a significant memory/time savings to STAT.

6 years agoFix a compilation error
Xiaozhu Meng [Tue, 17 Jun 2014 04:16:37 +0000 (23:16 -0500)]
Fix a compilation error

6 years agoMerge remote-tracking branch 'bill/v8.2' into IndirectControlFlow
Xiaozhu Meng [Tue, 17 Jun 2014 03:41:01 +0000 (22:41 -0500)]
Merge remote-tracking branch 'bill/v8.2' into IndirectControlFlow

Conflicts:
parseAPI/src/Function.C

6 years ago1. Fix a bug in determining exit blocks
Xiaozhu Meng [Mon, 16 Jun 2014 19:27:57 +0000 (14:27 -0500)]
1. Fix a bug in determining exit blocks
2. Fix bugs in identifying movaps tables

6 years agoFix for proper interaction between full syscall tracing and proper postponing of...
Bill Williams [Mon, 16 Jun 2014 16:02:21 +0000 (11:02 -0500)]
Fix for proper interaction between full syscall tracing and proper postponing of syscall callbacks in normal execution.

6 years ago1. Add code to handle PC thunks
Xiaozhu Meng [Mon, 16 Jun 2014 01:57:46 +0000 (20:57 -0500)]
1. Add code to handle PC thunks
2. Both the table index and the table content can be added or subtracted. Need two variables to track them

6 years agoppc fixes
William Williams [Fri, 13 Jun 2014 20:07:59 +0000 (13:07 -0700)]
ppc fixes

6 years agoThe table stride is not necessarily the adddress width.
Xiaozhu Meng [Fri, 13 Jun 2014 15:09:16 +0000 (10:09 -0500)]
The table stride is not necessarily the adddress width.

6 years agoFix a mapping problem from Dyninst MachRegister to Rose register
Xiaozhu Meng [Thu, 12 Jun 2014 20:00:47 +0000 (15:00 -0500)]
Fix a mapping problem from Dyninst MachRegister to Rose register

6 years agoRecalculate the list of exit blocks after we find more blocks
Xiaozhu Meng [Thu, 12 Jun 2014 19:00:13 +0000 (14:00 -0500)]
Recalculate the list of exit blocks after we find more blocks

6 years agoAdd an upper bound of each slice node to be in the working list to prevent deadlock
Xiaozhu Meng [Thu, 12 Jun 2014 01:42:29 +0000 (20:42 -0500)]
Add an upper bound of each slice node to be in the working list to prevent deadlock

6 years ago1. Assume signed conditional jumps do not bound registers or memory locations
Xiaozhu Meng [Wed, 11 Jun 2014 23:59:20 +0000 (18:59 -0500)]
1. Assume signed conditional jumps do not bound registers or memory locations
2. When reading the value of PC, the value should be address of the next instruction rather than the address of the current instruction

6 years agoGet pre-exit events via proccontrol callback.
Bill Williams [Wed, 11 Jun 2014 18:17:17 +0000 (13:17 -0500)]
Get pre-exit events via proccontrol callback.
Always report pre-exit events as normal exit, as we have an exit code and our best chance at a manipulable process then.
Decode exit code with ptrace's event message on pre-exit.

6 years agoDwarf FrameParsers are not uniquely determined by a DwarfHandle; there may be multipl...
Bill Williams [Wed, 11 Jun 2014 18:14:04 +0000 (13:14 -0500)]
Dwarf FrameParsers are not uniquely determined by a DwarfHandle; there may be multiple architectures present. Use the right one.

6 years agodyninstAPI_RT: fix export consistency for Windows
Josh Stone [Tue, 3 Jun 2014 22:41:03 +0000 (15:41 -0700)]
dyninstAPI_RT: fix export consistency for Windows

6 years agosymtabAPI: Start dwarf type ids at 1
Josh Stone [Thu, 29 May 2014 01:26:42 +0000 (18:26 -0700)]
symtabAPI: Start dwarf type ids at 1

It turns out test_type_info doesn't like ID 0.

6 years agosymtabAPI: Use dyn_hash_map for type IDs, and split on is_info
Josh Stone [Thu, 29 May 2014 01:02:59 +0000 (18:02 -0700)]
symtabAPI: Use dyn_hash_map for type IDs, and split on is_info

A hash map affords faster lookup, especially for such simple keys.

Splitting into two maps, rather than using pair<offset,bool> as before,
also makes an easier key lookup and more optimized storage.

6 years agosymtabAPI: Protect against GNU alt forms
Josh Stone [Thu, 29 May 2014 00:29:41 +0000 (17:29 -0700)]
symtabAPI: Protect against GNU alt forms

Both DW_FORM_GNU_ref_alt and DW_FORM_GNU_strp_alt refer to an alternate
file, specified in .gnu_debugaltlink, which neither libdwarf or symtabAPI
currently understand.  We can at least recognize and skip past them though.

If we encounter a dwarf_diename() with an unhandled form, we now treat that
as if there weren't a name at all.  If we encounter a reference that's not
a normal offset, as with ref_alt, then this is now treated as a quiet
error, noted only in dwarf_printf.

6 years agosymtabAPI: walk partial units too
Josh Stone [Thu, 29 May 2014 00:22:54 +0000 (17:22 -0700)]
symtabAPI: walk partial units too

6 years agosymtabAPI: sanity-check line ranges
Josh Stone [Wed, 28 May 2014 22:20:22 +0000 (15:20 -0700)]
symtabAPI: sanity-check line ranges

Valgrind reported an invalid memory access in getLineInformation, which
turned out to be an index past the end of the srcFiles() vector.  Add a
sanity check to abort bad values.

6 years agoBug fix for 32/64 operand sizes.
Bill Williams [Wed, 28 May 2014 20:19:16 +0000 (15:19 -0500)]
Bug fix for 32/64 operand sizes.

6 years agoFix crash bug: we need to finalize when we ask for num_blocks.
Bill Williams [Wed, 28 May 2014 20:18:51 +0000 (15:18 -0500)]
Fix crash bug: we need to finalize when we ask for num_blocks.

6 years agosymtabAPI: Return a string from Object::getFileName
Josh Stone [Wed, 28 May 2014 19:34:12 +0000 (12:34 -0700)]
symtabAPI: Return a string from Object::getFileName

In Object-elf.C, getFileName was returning mf->filename().c_str(), which
is a use-after-free since mf->filename() is a temporary string.  Change
it to return the string instead, so it has a proper lifetime.

(Found via valgrind memcheck)

6 years agosymtabAPI: Automate context push/pop in DwarfWalker
Josh Stone [Wed, 28 May 2014 19:28:42 +0000 (12:28 -0700)]
symtabAPI: Automate context push/pop in DwarfWalker

In DwarfWalker::parse_int, there are many exit points between context push
and pop, especially for errors.  If the pop is missed, then the whole stack
may get into a bad state.  This patch adds a ContextGuard which manages the
push and pop via object lifetime, so all exit paths will be covered.

6 years agosymtabAPI: improve sig8 identification
Josh Stone [Wed, 28 May 2014 19:15:49 +0000 (12:15 -0700)]
symtabAPI: improve sig8 identification

- Give type units a module name based on the signature.
- Declare type units in dwarf_printf while walking.

6 years agosymtabAPI: Enable DW_FORM_ref_sig8
Josh Stone [Wed, 28 May 2014 00:57:43 +0000 (17:57 -0700)]
symtabAPI: Enable DW_FORM_ref_sig8

DwarfWalker first scans for DW_TAG_type_unit and allocates a type ID for
each signature, so that later DW_FORM_ref_sig8 can look it up later.
When the actual type die is walked, its offset will map to the same ID.

6 years agosymtabAPI: Walk both .debug_types and .debug_info
Josh Stone [Tue, 27 May 2014 23:06:26 +0000 (16:06 -0700)]
symtabAPI: Walk both .debug_types and .debug_info

6 years agosymtabAPI: Add indirection between dwarf offsets and type IDs
Josh Stone [Tue, 27 May 2014 22:22:36 +0000 (15:22 -0700)]
symtabAPI: Add indirection between dwarf offsets and type IDs

The identity mapping between dwarf offsets and int type IDs is
problematic because offsets are actually 64-bit, so they may overflow an
int on 2GB+ files.  Offsets are also relative to their section, which
can be either .debug_info or .debug_types, so that overlap also needs to
be avoided.

The new DwarfWalker::type_ids_ maps between a pair offset,is_info to
typeId_t values incremented on demand.

6 years agosymtabAPI: Remove unused dwarf enclosureMap
Josh Stone [Tue, 27 May 2014 22:06:56 +0000 (15:06 -0700)]
symtabAPI: Remove unused dwarf enclosureMap

6 years agosymtabAPI: Extend recognized DW_LANG constants
Josh Stone [Fri, 23 May 2014 23:32:07 +0000 (16:32 -0700)]
symtabAPI: Extend recognized DW_LANG constants

DW_LANG_C99 has existed since DWARF3, with support in libdwarf too.
DWARF5 will add constants for C++03, C++11, and C11, and we can prepare
for these now with simple #ifdefs.

http://www.dwarfstd.org/ShowIssue.php?issue=120628.1
http://www.dwarfstd.org/ShowIssue.php?issue=140330.1

6 years agosymtabAPI: Add support for DW_AT_linkage_name
Josh Stone [Fri, 23 May 2014 22:47:00 +0000 (15:47 -0700)]
symtabAPI: Add support for DW_AT_linkage_name

The common DW_AT_MIPS_linkage_name extension was added to DWARF4 as
DW_AT_linkage_name, with the exact same meaning.

6 years agosymtabAPI: Switch to .debug_types-aware libdwarf interfaces
Josh Stone [Fri, 23 May 2014 22:28:17 +0000 (15:28 -0700)]
symtabAPI: Switch to .debug_types-aware libdwarf interfaces

There's an is_info parameter in dwarf_offdie_b, dwarf_siblingof_b, and
dwarf_next_cu_header_c which let's callers specify if the context is
.debug_info or .debug_types.  While symtabAPI only bothers with info at
the moment, changing to these functions will prepare for types later.

These interfaces have been in libdwarf since 20111030, and header_c was
already used in a couple places, so the requirements haven't changed.

6 years agosymtabAPI: Don't hardcode the CU header size
Josh Stone [Fri, 23 May 2014 21:41:19 +0000 (14:41 -0700)]
symtabAPI: Don't hardcode the CU header size

DwarfWalker::compile_offset was being set as 11 bytes before the first
die in a cu, but this isn't always correct. (see DWARF sec 7.4 & 7.5.1)
However, we already have the next_cu_header to tells us the offset of
each following cu in the loop.

6 years agoChange to store pointers to BoundValue rather than BoundValue objects in std::map...
Xiaozhu Meng [Thu, 22 May 2014 21:43:17 +0000 (16:43 -0500)]
Change to store pointers to BoundValue rather than BoundValue objects in std::map. This fixes the memory corruption problem.

6 years agodyninstAPI: Find RT in existing libraries by fileDescriptor
Josh Stone [Thu, 22 May 2014 18:21:03 +0000 (11:21 -0700)]
dyninstAPI: Find RT in existing libraries by fileDescriptor

When PCEventHandler::handleLibrary and PCProcess::setupForkedProcess try
to match the RT library, they do so using fileDescriptors.  However, in
PCProcess::createInitialMappedObjects it compared getAbsoluteName, which
won't match if $DYNINSTAPI_RT_LIB was a symlink to the real binary.

Now createInitialMappedObjects uses a fileDescriptor comparison too.

Reported-by: Francis Deslauriers <fdeslaur@gmail.com>
Signed-off-by: Josh Stone <jistone@redhat.com>
6 years agoAdd code to find edges from indirect jumps
Xiaozhu Meng [Thu, 22 May 2014 00:56:59 +0000 (19:56 -0500)]
Add code to find edges from indirect jumps

There is a memory corruption problem

6 years agodyninstAPI_RT: export dyn_sigaction and dyn_signal too
Josh Stone [Wed, 21 May 2014 23:29:50 +0000 (16:29 -0700)]
dyninstAPI_RT: export dyn_sigaction and dyn_signal too

6 years agodyninstAPI_RT: export more symbols to be found by dyninstAPI
Josh Stone [Wed, 21 May 2014 19:02:59 +0000 (12:02 -0700)]
dyninstAPI_RT: export more symbols to be found by dyninstAPI

With -fvisibility=hidden and rpm stripping, some of the symbols in
dyninstAPI_RT can't be found.  This patch adds DLLEXPORT to every name
in the unstripped symbol table which is referenced by string "name" in
libdyninstAPI.so, hopefully allowing all necessary dynamic lookups.

6 years agoExport operator<< for Dyninst::StackAnalysis::Height
Josh Stone [Mon, 19 May 2014 23:47:22 +0000 (16:47 -0700)]
Export operator<< for Dyninst::StackAnalysis::Height

6 years agoPass size through into generateOptimizedAssignment and don't generate a 32-bit move...
Bill Williams [Mon, 19 May 2014 20:20:22 +0000 (15:20 -0500)]
Pass size through into generateOptimizedAssignment and don't generate a 32-bit move for a 64-bit assignment.

6 years agoAdd new indirect control flow analysis code. The code is still using ParseAPI level...
Xiaozhu Meng [Mon, 19 May 2014 16:04:01 +0000 (11:04 -0500)]
Add new indirect control flow analysis code. The code is still using ParseAPI level interface.

6 years agoEnable symbolic evaluation on x86 64-bit binaries
Xiaozhu Meng [Sat, 17 May 2014 17:05:33 +0000 (12:05 -0500)]
Enable symbolic evaluation on x86 64-bit binaries

6 years agoAdd partial support for x86_64 instruction semantics
Xiaozhu Meng [Sat, 17 May 2014 16:52:25 +0000 (11:52 -0500)]
Add partial support for x86_64 instruction semantics

6 years agoproccontrol: Avoid a destructor race on Counter::locks
Josh Stone [Fri, 16 May 2014 22:57:00 +0000 (15:57 -0700)]
proccontrol: Avoid a destructor race on Counter::locks

Previously, if process.C ran its destructors before generator.C, then
Counter::locks would be destroyed before int_cleanup.  The latter is
responsible for ending the handler thread, which may still be trying to
adjust locks.  Boost's mutex throws an exception if you try to acquire a
destroyed lock, which kills the whole process uncleanly.

Now the locks are created as a new[] pointer, and are simply leaked when
the process ends, no real harm done.

6 years agoWhitespace cleanup
Bill Williams [Fri, 9 May 2014 19:03:11 +0000 (14:03 -0500)]
Whitespace cleanup

6 years agoRemove ParseAPI's per-function vector of blocks, replacing it with a range of iterato...
Bill Williams [Fri, 9 May 2014 19:03:03 +0000 (14:03 -0500)]
Remove ParseAPI's per-function vector of blocks, replacing it with a range of iterators over the values of the addr->block map.

6 years agoDwarf parsing fix
Bill Williams [Fri, 9 May 2014 19:01:08 +0000 (14:01 -0500)]
Dwarf parsing fix

6 years agoDynC build fix
Bill Williams [Fri, 9 May 2014 19:00:53 +0000 (14:00 -0500)]
DynC build fix