dyninst.git
18 months ago1. Clean up CMake files for finding and linking boost and CMake files
Xiaozhu Meng [Wed, 25 Apr 2018 15:51:55 +0000 (10:51 -0500)]
1. Clean up CMake files for finding and linking boost and CMake files
for examples
2. Instruction prefix decoding on x86 should not default to 32-bit
3. m_Suceessors in the InstructionAPI::Instruction class is not copied in the assignment
operator and copy constructor
4. Because InstructionAPI::Instruction objects are now copied by value,
the raw bytes of an instruction may now live on stack and the pointer to
these raw bytes are not persistent.

19 months agoMerge, fix test4_3, fix examples build
Bill Williams [Mon, 16 Apr 2018 17:00:07 +0000 (12:00 -0500)]
Merge, fix test4_3, fix examples build

19 months agoMerge, fix test4_3, fix examples build
Bill Williams [Mon, 16 Apr 2018 16:58:44 +0000 (11:58 -0500)]
Merge, fix test4_3, fix examples build

19 months agoFixes for test crashes
Bill Williams [Thu, 5 Apr 2018 18:54:04 +0000 (13:54 -0500)]
Fixes for test crashes

19 months agoCorrecting declaration of variable for the value of DW_AT_comp_dir of Modules.
Sasha Nicolas [Wed, 4 Apr 2018 22:58:11 +0000 (17:58 -0500)]
Correcting declaration of variable for the value of DW_AT_comp_dir of Modules.

19 months agoMerge branch 'master' into new-parallel-parsing
Bill Williams [Tue, 3 Apr 2018 16:19:36 +0000 (11:19 -0500)]
Merge branch 'master' into new-parallel-parsing

19 months agoMerge branch 'sasha/dwarf-absolute-filenames'
Sasha Nicolas [Sat, 31 Mar 2018 00:42:15 +0000 (19:42 -0500)]
Merge branch 'sasha/dwarf-absolute-filenames'

19 months agoAdding getCompDir method to Module.
Sasha Nicolas [Sat, 31 Mar 2018 00:37:56 +0000 (19:37 -0500)]
Adding getCompDir method to Module.
This method returns the DW_AT_comp_dir of Compilation Units.

19 months agoMerge pull request #446 from mxz297/powerpc_and_loop
Xiaozhu Meng [Thu, 29 Mar 2018 21:28:36 +0000 (16:28 -0500)]
Merge pull request #446 from mxz297/powerpc_and_loop

Fixes for testsuite failures on powerv7 and block boundary aligning for overlapping instructions

19 months agoWhen checking whether an address is consistent with instructionsin a 446/head
Xiaozhu Meng [Thu, 29 Mar 2018 20:55:56 +0000 (15:55 -0500)]
When checking whether an address is consistent with instructionsin a
block, first check whether the address is within the block

19 months agoShould continue to check other CIEs when we cannot find FDE in one of the CIE
Xiaozhu Meng [Thu, 29 Mar 2018 15:11:04 +0000 (10:11 -0500)]
Should continue to check other CIEs when we cannot find FDE in one of the CIE

19 months agoppc32 and ppc64 should use the same formatter
Xiaozhu Meng [Wed, 28 Mar 2018 21:36:00 +0000 (16:36 -0500)]
ppc32 and ppc64 should use the same formatter

19 months agoNeed to flush trap mapping table into the mutatee after instrumentation for registeri...
Xiaozhu Meng [Mon, 26 Mar 2018 21:31:36 +0000 (16:31 -0500)]
Need to flush trap mapping table into the mutatee after instrumentation for registering callbacks

19 months agoWhen dealing with overlapping instructions, we should align block as
Xiaozhu Meng [Thu, 22 Mar 2018 17:14:15 +0000 (12:14 -0500)]
When dealing with overlapping instructions, we should align block as
soon as possible, correctly split blocks, anc create new fall-through
edges

19 months agoAdd instruction semantics for extsw on powerpc
Xiaozhu Meng [Mon, 19 Mar 2018 16:56:34 +0000 (11:56 -0500)]
Add instruction semantics for extsw on powerpc

19 months agoFixing problem of relative paths from libdw.
Sasha Nicolas [Tue, 27 Mar 2018 21:12:12 +0000 (16:12 -0500)]
Fixing problem of relative paths from libdw.
Now all paths coming from libdw dwarf_filesrc() and dwarf_linesrc() are
being checked and converted to be absolute.

20 months agoPrevious commits broke the build. This is to fix the compiling, but the changes done...
Sasha Nicolas [Wed, 21 Mar 2018 22:34:18 +0000 (17:34 -0500)]
Previous commits broke the build. This is to fix the compiling, but the changes done in the commits should be examined.

20 months agoMerge pull request #441 from thomasdullien/master
Bill Williams [Tue, 20 Mar 2018 19:50:43 +0000 (14:50 -0500)]
Merge pull request #441 from thomasdullien/master

Very minor clean-up a particualrly ugly piece of code.

20 months agoFix segfault due to missing arguments in call to parse_printf 441/head
Thomas Dullien [Tue, 20 Mar 2018 15:09:57 +0000 (16:09 +0100)]
Fix segfault due to missing arguments in call to parse_printf

20 months agoMerge remote-tracking branch 'upstream/master'
Thomas Dullien [Tue, 20 Mar 2018 09:28:07 +0000 (10:28 +0100)]
Merge remote-tracking branch 'upstream/master'

20 months agoSW cleanup
Bill Williams [Mon, 19 Mar 2018 20:01:11 +0000 (15:01 -0500)]
SW cleanup

20 months agoMerge pull request #437 from mxz297/ret_crossarch
Xiaozhu Meng [Mon, 19 Mar 2018 16:12:34 +0000 (11:12 -0500)]
Merge pull request #437 from mxz297/ret_crossarch

Fixes for non-returning functions, endianness for cross architecture parsing, and powerpc instruction decoding. In addition, fix failures in testsuite on x86/64

20 months agoFix DWARF parsing for arraies 437/head
Xiaozhu Meng [Mon, 19 Mar 2018 16:09:01 +0000 (11:09 -0500)]
Fix DWARF parsing for arraies

20 months agoVery minor clean-up a particualrly ugly piece of code.
Thomas Dullien [Mon, 19 Mar 2018 11:37:55 +0000 (12:37 +0100)]
Very minor clean-up a particualrly ugly piece of code.

20 months agoIn loop anaylsis, visit blocks according to the starting addresses to
Xiaozhu Meng [Fri, 16 Mar 2018 14:10:52 +0000 (09:10 -0500)]
In loop anaylsis, visit blocks according to the starting addresses to
ensure deterministic results. And ignore catch edges in loop analysis

20 months agoDisable testing code
Bill Williams [Tue, 13 Mar 2018 17:57:21 +0000 (12:57 -0500)]
Disable testing code

20 months agoFix unsafe iteration
Bill Williams [Tue, 13 Mar 2018 17:57:06 +0000 (12:57 -0500)]
Fix unsafe iteration

20 months agoFix for libelf install glob
Bill Williams [Tue, 13 Mar 2018 17:56:50 +0000 (12:56 -0500)]
Fix for libelf install glob

20 months agoParseAPI fixes: test1_1 create now passes
Bill Williams [Tue, 13 Mar 2018 17:56:30 +0000 (12:56 -0500)]
ParseAPI fixes: test1_1 create now passes

20 months agoHandle wait instruction on powerpc and add vrsave SPR
Xiaozhu Meng [Thu, 8 Mar 2018 20:11:24 +0000 (14:11 -0600)]
Handle wait instruction on powerpc and add vrsave SPR

20 months agoFix a few powerpc instruction decoding problems and the endianness issue
Xiaozhu Meng [Thu, 8 Mar 2018 19:15:50 +0000 (13:15 -0600)]
Fix a few powerpc instruction decoding problems and the endianness issue
of code sections that are not named ".text"

20 months agoSymtab fixes for ARM
Bill Williams [Tue, 6 Mar 2018 21:37:37 +0000 (15:37 -0600)]
Symtab fixes for ARM

20 months agoDelete deprecated #ifdef in liveness analysis
Xiaozhu Meng [Thu, 1 Mar 2018 19:41:10 +0000 (13:41 -0600)]
Delete deprecated #ifdef in liveness analysis

20 months agoCheckpoint for ARM testing
Bill Williams [Wed, 21 Feb 2018 19:45:49 +0000 (13:45 -0600)]
Checkpoint for ARM testing

20 months agoMerge John's changes and update test suite.
Bill Williams [Tue, 20 Feb 2018 20:35:23 +0000 (14:35 -0600)]
Merge John's changes and update test suite.

21 months agoShould ignore setting function return status when the function is known
Xiaozhu Meng [Sun, 18 Feb 2018 16:56:06 +0000 (10:56 -0600)]
Should ignore setting function return status when the function is known
as non-returning.

21 months agoHandle data endianness in parsing try/catch blocks, so it can be
Xiaozhu Meng [Sun, 18 Feb 2018 16:18:40 +0000 (10:18 -0600)]
Handle data endianness in parsing try/catch blocks, so it can be
cross-architecture

21 months agoShould delay parsing tail call edges when the return status of the tail
Xiaozhu Meng [Fri, 16 Feb 2018 16:40:11 +0000 (10:40 -0600)]
Should delay parsing tail call edges when the return status of the tail
callee is still UNSET

21 months agoFor known non-returning functions, we should ignore possible conflicting
Xiaozhu Meng [Fri, 16 Feb 2018 16:22:46 +0000 (10:22 -0600)]
For known non-returning functions, we should ignore possible conflicting
non-returning analysis results and still treat them as non-returning.

21 months agoCleanup: remove dead code, use call_once for singleton-style init
Bill Williams [Fri, 9 Feb 2018 17:24:32 +0000 (11:24 -0600)]
Cleanup: remove dead code, use call_once for singleton-style init

21 months agoadd guard around cilk include file 416/head
John Mellor-Crummey [Fri, 9 Feb 2018 02:28:23 +0000 (20:28 -0600)]
add guard around cilk include file

21 months agoavoid initializing c++ object in an inner scope, which requires synchronization
John Mellor-Crummey [Fri, 9 Feb 2018 02:26:58 +0000 (20:26 -0600)]
avoid initializing c++ object in an inner scope, which requires synchronization

21 months agoadjust lazy initialization of rose register semantic to be thread safe using call_once
John Mellor-Crummey [Thu, 8 Feb 2018 21:37:49 +0000 (15:37 -0600)]
adjust lazy initialization of rose register semantic to be thread safe using call_once

21 months agosimplify openmp parallelization in Parser.C
John Mellor-Crummey [Sun, 4 Feb 2018 06:42:42 +0000 (00:42 -0600)]
simplify openmp parallelization in Parser.C

21 months agoMerge pull request #410 from jmellorcrummey/cuda-machine
Bill Williams [Fri, 26 Jan 2018 20:04:10 +0000 (14:04 -0600)]
Merge pull request #410 from jmellorcrummey/cuda-machine

Add basic support for EM_CUDA binary type

21 months agoMerge branch 'new-parallel-parsing' of https://github.com/jmellorcrummey/dyninst...
John Mellor-Crummey [Thu, 25 Jan 2018 05:19:40 +0000 (23:19 -0600)]
Merge branch 'new-parallel-parsing' of https://github.com/jmellorcrummey/dyninst into new-parallel-parsing

Conflicts:
symtabAPI/src/dwarfWalker.C

21 months agobill's changes to parallelize symtab.
John Mellor-Crummey [Thu, 25 Jan 2018 05:15:37 +0000 (23:15 -0600)]
bill's changes to parallelize symtab.

21 months agobill's changes to parallelize symtab.
John Mellor-Crummey [Thu, 25 Jan 2018 05:15:37 +0000 (23:15 -0600)]
bill's changes to parallelize symtab.

21 months agorefine cilk configuration of Parser.C for data race detection
John Mellor-Crummey [Thu, 25 Jan 2018 03:34:38 +0000 (21:34 -0600)]
refine cilk configuration of Parser.C for data race detection

add a lock for cilkscreen that causes a deadlock in openmp.
is this really correct?

fix cilk configuration for lock free queue.

21 months agouse cilk to eliminate a data race in SymtabCodeSource.C
John Mellor-Crummey [Thu, 25 Jan 2018 03:29:26 +0000 (21:29 -0600)]
use cilk to eliminate a data race in SymtabCodeSource.C

add configuration that enables cilk and openmp to coexist
so the programming model can be flipped with a cmake setting

eliminate an inconsequential data race that occurred when
marking an item as "seen" more than once in a tbb concurrent
hash table.

21 months agocorrect the include path for tbb hash map
John Mellor-Crummey [Wed, 24 Jan 2018 22:49:17 +0000 (16:49 -0600)]
correct the include path for tbb hash map

21 months agoConverted more hidden options to proper options.
Bill Williams [Wed, 24 Jan 2018 19:36:56 +0000 (13:36 -0600)]
Converted more hidden options to proper options.

21 months agoParallelize iteration over module DIEs.
Bill Williams [Wed, 24 Jan 2018 19:31:22 +0000 (13:31 -0600)]
Parallelize iteration over module DIEs.

21 months agoadd draft parallelization of parse frames creation
John Mellor-Crummey [Wed, 24 Jan 2018 17:18:51 +0000 (11:18 -0600)]
add draft parallelization of parse frames creation

21 months agoadd debugging support to LockFreeQueue.h
John Mellor-Crummey [Wed, 24 Jan 2018 17:18:20 +0000 (11:18 -0600)]
add debugging support to LockFreeQueue.h

21 months agorefine CodeRegion:;contains so that offset() is not called redundantly
John Mellor-Crummey [Wed, 24 Jan 2018 17:16:59 +0000 (11:16 -0600)]
refine CodeRegion:;contains so that offset() is not called redundantly

21 months agoMerge pull request #427 from nedwill/master
Bill Williams [Mon, 22 Jan 2018 16:55:04 +0000 (10:55 -0600)]
Merge pull request #427 from nedwill/master

Fix sh_info for VERNEED section

22 months agoFix places where we fail to check for empty section headers/no shstrtab section.
Bill Williams [Wed, 17 Jan 2018 20:15:13 +0000 (14:15 -0600)]
Fix places where we fail to check for empty section headers/no shstrtab section.

22 months agoadd openmp parallelism to SymtabCodeSource init_regions and init_hints
John Mellor-Crummey [Mon, 15 Jan 2018 23:29:58 +0000 (17:29 -0600)]
add openmp parallelism to SymtabCodeSource init_regions and init_hints

to avoid serialization in these parallel regions, replaced mutual
exclusion in symtab queries with phase-fair read locks.

22 months agoremove unnecessary mutex guard around C++ demangler
John Mellor-Crummey [Mon, 15 Jan 2018 23:27:51 +0000 (17:27 -0600)]
remove unnecessary mutex guard around C++ demangler

22 months agofirst attempt to add parallelism to symtab code source.
John Mellor-Crummey [Sun, 14 Jan 2018 19:04:37 +0000 (13:04 -0600)]
first attempt to add parallelism to symtab code source.

22 months agoremove unnecessary lock guard in SymtabCodeSource::lookup_region
John Mellor-Crummey [Sat, 13 Jan 2018 03:51:24 +0000 (21:51 -0600)]
remove unnecessary lock guard in SymtabCodeSource::lookup_region

22 months agoShould only check for thunk call when it is a call instruction
Xiaozhu Meng [Fri, 12 Jan 2018 21:54:30 +0000 (15:54 -0600)]
Should only check for thunk call when it is a call instruction

22 months agofix IBSTree-fast: add missing decl and missing unlock on one path
John Mellor-Crummey [Fri, 12 Jan 2018 14:06:00 +0000 (08:06 -0600)]
fix IBSTree-fast: add missing decl and missing unlock on one path

22 months agoFix sh_info for VERNEED section 427/head
Ned Williamson [Fri, 12 Jan 2018 01:41:20 +0000 (17:41 -0800)]
Fix sh_info for VERNEED section

This field used to contain verneednum, but now is hardcoded to 2.
This changes restores the original correct behavior.

22 months agoadjust switches to control cilk vs. openmp support
John Mellor-Crummey [Thu, 11 Jan 2018 22:23:17 +0000 (16:23 -0600)]
adjust switches to control cilk vs. openmp support

22 months agoParseAPI should treat IFUNC type symbols as code
Xiaozhu Meng [Thu, 11 Jan 2018 22:19:13 +0000 (16:19 -0600)]
ParseAPI should treat IFUNC type symbols as code

22 months agoremove lock guard on block map that causes deadlock.
John Mellor-Crummey [Thu, 11 Jan 2018 21:46:48 +0000 (15:46 -0600)]
remove lock guard on block map that causes deadlock.

22 months agoremove dead code in singleton_object_pool.h
John Mellor-Crummey [Thu, 11 Jan 2018 15:51:47 +0000 (09:51 -0600)]
remove dead code in singleton_object_pool.h

22 months agoMove to tbb::scalable_alloc instead of boost::pool for small object allocation in...
John Mellor-Crummey [Thu, 11 Jan 2018 15:38:55 +0000 (09:38 -0600)]
Move to tbb::scalable_alloc instead of boost::pool for small object allocation in InstructionAPI.

resolved conflict with common/src/singleton_object_pool.h by completely replacing old version
resolved build failure by adding tbbmalloc to libraries list in parseAPI/CMakeLists.txt

22 months agoMerge branch 'new-parallel-parsing' of https://github.com/jmellorcrummey/dyninst...
John Mellor-Crummey [Wed, 10 Jan 2018 17:36:05 +0000 (11:36 -0600)]
Merge branch 'new-parallel-parsing' of https://github.com/jmellorcrummey/dyninst into new-parallel-parsing

22 months agofinalize race detector annotations for ParseData
John Mellor-Crummey [Wed, 10 Jan 2018 17:13:29 +0000 (11:13 -0600)]
finalize  race detector annotations for ParseData

remove annotations from IBSTree operations
use TBB concurrent hash map as fake lock protecting its operations
add missing annotations to cover all TBB concurrent hash map operations

22 months agofix indentation in Type.C
John Mellor-Crummey [Mon, 8 Jan 2018 23:31:42 +0000 (17:31 -0600)]
fix indentation in Type.C

22 months agorefined (and final) support for race detection for singleton object pool
John Mellor-Crummey [Mon, 8 Jan 2018 23:26:47 +0000 (17:26 -0600)]
refined (and final) support for race detection for singleton object pool

22 months agoclean up race detection annotations for FuncExtent
John Mellor-Crummey [Mon, 8 Jan 2018 04:42:27 +0000 (22:42 -0600)]
clean up race detection annotations for FuncExtent

22 months agoreplace boost locks with phase-fair reader-writer locks
John Mellor-Crummey [Mon, 8 Jan 2018 04:36:22 +0000 (22:36 -0600)]
replace boost locks with phase-fair reader-writer locks

race detector annotations in phase-fair reader-writer lock suppress
race reports that would occur with boost reader/writer locks.

22 months agoinclude race detector annotations in Symtab.C
John Mellor-Crummey [Mon, 8 Jan 2018 04:19:37 +0000 (22:19 -0600)]
include race detector annotations in Symtab.C

22 months agocorrect precise race detector annotations in phase-fair reader-writer lock
John Mellor-Crummey [Mon, 8 Jan 2018 04:18:58 +0000 (22:18 -0600)]
correct precise race detector annotations in phase-fair reader-writer lock

22 months agorace-free version with specific fake locks.
John Mellor-Crummey [Sun, 7 Jan 2018 21:00:05 +0000 (15:00 -0600)]
race-free version with specific fake locks.

22 months agoFindCilk not needed with icc. Cilk not interesting with icc.
John Mellor-Crummey [Sun, 7 Jan 2018 17:34:33 +0000 (11:34 -0600)]
FindCilk not needed with icc. Cilk not interesting with icc.

22 months agoavoid data races by adding lock_guard to Function::num_blocks and
John Mellor-Crummey [Sat, 6 Jan 2018 01:53:45 +0000 (19:53 -0600)]
avoid data races by adding lock_guard to Function::num_blocks and
Function::retstatus. (Function retstatus could be an atomic to
avoid locks if this is critical for performance.)

22 months agosuppress race reports when accessing region cache
John Mellor-Crummey [Sat, 6 Jan 2018 01:49:37 +0000 (19:49 -0600)]
suppress race reports when accessing region cache
maintained as an atomic in SymtabRegionSource::_lookup_cache

22 months agoafter initializing a Function, scrub its access history before
John Mellor-Crummey [Sat, 6 Jan 2018 01:05:24 +0000 (19:05 -0600)]
after initializing a Function, scrub its access history before
adding the Function to a concurrent data structure to make it
visible to others. this avoids race reports from other threads
who read it after it becomes visible.
making the Function visible to
others.
 and making it visible to others
by adding it to a concurrent data structure,

22 months agoadd race detector annotations to CMakeLists.txt
John Mellor-Crummey [Sat, 6 Jan 2018 00:27:06 +0000 (18:27 -0600)]
add race detector annotations to CMakeLists.txt

22 months agochange SymbolicExpression::cs from a static to a class member to eliminate data races
John Mellor-Crummey [Fri, 5 Jan 2018 23:46:55 +0000 (17:46 -0600)]
change SymbolicExpression::cs from a static to a class member to eliminate data races

prior to this change, data races occurred on "static SymbolicExpression::cs"
when two threads used it concurrently, with each thread reading and writing
the variable.

22 months agoinitialize and use dataflow analysis debugging flags safely
John Mellor-Crummey [Fri, 5 Jan 2018 23:21:32 +0000 (17:21 -0600)]
initialize and use dataflow analysis debugging flags safely

dataflow analysis debugging flags are now set upon demand just before
they are first inspected.  the new interface ensures that they are set
before they are ever inspected.  use of call_once guarantees that they
are only initialized once.  use of race detector annotations suppresses
benign races that arise from the use of the call_once idiom.

22 months agopromote static DummyExpr to global scope
John Mellor-Crummey [Wed, 3 Jan 2018 23:43:28 +0000 (17:43 -0600)]
promote static DummyExpr to global scope
avoid overhead and data race report associated with initialization of
DummyExpr instance inside operator==

22 months agoadd definition of race detector annotations
John Mellor-Crummey [Wed, 3 Jan 2018 21:29:49 +0000 (15:29 -0600)]
add definition of race detector annotations

22 months agoadd race detector annotations to mcs and reader writer locks
John Mellor-Crummey [Wed, 3 Jan 2018 21:29:13 +0000 (15:29 -0600)]
add race detector annotations to mcs and reader writer locks

22 months agoadd race detector annotations implementation
John Mellor-Crummey [Wed, 3 Jan 2018 21:28:13 +0000 (15:28 -0600)]
add race detector annotations implementation

22 months agoadd race detector annotations to singleton pool
John Mellor-Crummey [Wed, 3 Jan 2018 21:26:44 +0000 (15:26 -0600)]
add race detector annotations to singleton pool

22 months agoscrub any stale race detector annotations from newly allocated memory
John Mellor-Crummey [Wed, 3 Jan 2018 21:21:59 +0000 (15:21 -0600)]
scrub any stale race detector annotations from newly allocated memory

22 months agofix data races associated with Symtab error reporting
John Mellor-Crummey [Wed, 3 Jan 2018 21:10:09 +0000 (15:10 -0600)]
fix data races associated with Symtab error reporting
make serr a thread local variable in Symtab class
adjust Symtab files to manipulate serr through a method
add race detector annotation to avoid race reporting for thread local

22 months agoClean unwanted files
Xiaozhu Meng [Fri, 29 Dec 2017 16:33:33 +0000 (10:33 -0600)]
Clean unwanted files

22 months agoAdd unstrip and codeCoverage to the example dir. Will build and install
Xiaozhu Meng [Fri, 29 Dec 2017 16:26:49 +0000 (10:26 -0600)]
Add unstrip and codeCoverage to the example dir. Will build and install
them with Dyninst

23 months agoAdd examples directory and add ParseAPI CFG example as a target.
Bill Williams [Wed, 20 Dec 2017 17:01:00 +0000 (11:01 -0600)]
Add examples directory and add ParseAPI CFG example as a target.

23 months agoPromote cotire usage to an option.
Bill Williams [Fri, 15 Dec 2017 17:48:06 +0000 (11:48 -0600)]
Promote cotire usage to an option.

23 months agoClean up warnings and dead OpenMP checks.
Bill Williams [Fri, 15 Dec 2017 17:47:34 +0000 (11:47 -0600)]
Clean up warnings and dead OpenMP checks.

23 months agoRemove RAJA for pure TBB implementation
Bill Williams [Thu, 14 Dec 2017 22:56:07 +0000 (16:56 -0600)]
Remove RAJA for pure TBB implementation

23 months agoGo from read/write locks to concurrent hash map for auxiliary r/w info
Bill Williams [Wed, 6 Dec 2017 21:14:20 +0000 (15:14 -0600)]
Go from read/write locks to concurrent hash map for auxiliary r/w info