dyninst.git
17 months agoImplementing indirect load.
Sasha @leela [Tue, 23 Oct 2018 00:01:54 +0000 (19:01 -0500)]
Implementing indirect load.
Now dereferencing, address-of and negative assignment works. test1_25 passes.
Fix multiplication of negative value only for int of 32 bits.

17 months agoMerge branch 'master' into arm64/feature/relocation 367/head
Sasha Nicolas [Fri, 5 Oct 2018 22:40:31 +0000 (17:40 -0500)]
Merge branch 'master' into arm64/feature/relocation

17 months agoFixing update of defined registers after baseTramp is generated.
Sasha @leela [Fri, 5 Oct 2018 22:33:23 +0000 (17:33 -0500)]
Fixing update of defined registers after baseTramp is generated.

During generation of the baseTramp, registers are marked as defined
in the codeGen object, and after that we need to get this info in
order to verify whether we should perform optimizations or regenerate
the baseTramp.

17 months agoMinor fixes to FP Stack Unwinding through Inst Frames
Benjamin Welton [Thu, 4 Oct 2018 21:43:11 +0000 (16:43 -0500)]
Minor fixes to FP Stack Unwinding through Inst Frames

Minor fixes to stack unwinding through instrimentation (applies to First Party stackwalker only).

Added additional comments to the walker to detail how it functions more clearly and what it is looking for to
accept a stack frame.

17 months agoMerge branch 'master' of github.com:dyninst/dyninst
Benjamin Welton [Wed, 3 Oct 2018 22:38:38 +0000 (17:38 -0500)]
Merge branch 'master' of github.com:dyninst/dyninst

17 months agoModification to x86 emitter to support SW out of inst frames.
Benjamin Welton [Thu, 12 Apr 2018 17:32:31 +0000 (12:32 -0500)]
Modification to x86 emitter to support SW out of inst frames.

This patch contains changes to the emitter to support first party stackwalking out of inst's frames. For inst frames to be walkable, instrimentation frames must be enabled.

The following changes were made to support this:

- Insertion of the previous SP into the stack at a known location (2 slots above the FP).
- Insertion of a special word into the stack such that stackwalker can easily identify that this frame is an inst frame (and to select the correct walker). BEEFDEAD is located at +1 slot away from FP.
- The poping of these values from the stack at frame teardown.
- Fixes to the emitter to use scratch registers where hard coded ones were present before.

Total performance impact of this patch is an extra 5 instruction. 3 on frame creation, 2 on destruction.

17 months agoNew walker to walk out of Instrimentation Frames FP
Benjamin Welton [Thu, 12 Apr 2018 17:58:17 +0000 (12:58 -0500)]
New walker to walk out of Instrimentation Frames FP

This patch contains a new walker that can walk out of inst frames in first party stackwalking mode.

For this to work, the emitter fixes located in pull request #451 must be applied. The walker itself creates
a Stackwalker frame based on the information saved by the emitter.

17 months agoMerge pull request #452 from bwelton/sw_instFrameWalker
Benjamin Welton [Tue, 2 Oct 2018 21:43:38 +0000 (16:43 -0500)]
Merge pull request #452 from bwelton/sw_instFrameWalker

New walker to walk out of Instrumentation Frames first party. Build and test suite passes (x64, ubuntu)

17 months agoMerge pull request #460 from bwelton/inst_fix
Benjamin Welton [Tue, 2 Oct 2018 17:05:00 +0000 (12:05 -0500)]
Merge pull request #460 from bwelton/inst_fix

Fix for crashing on relocating at unistrumentable points. Fix checks whether a parameter is NULL or not, if it is NULL it does not perform the instrumentation.

18 months agoImplementing BPatch_xor for ARMv8.
Sasha @leela [Fri, 28 Sep 2018 21:47:57 +0000 (16:47 -0500)]
Implementing BPatch_xor for ARMv8.

18 months agoImplementing BPatch_xor for POWER.
Sasha @poman [Fri, 28 Sep 2018 21:32:28 +0000 (16:32 -0500)]
Implementing BPatch_xor for POWER.

18 months agoSeparate debug info file issue fixed.
Sasha Nicolas [Mon, 24 Sep 2018 22:59:03 +0000 (17:59 -0500)]
Separate debug info file issue fixed.
A DwarfFrameParser object was not being created in the case of separate
debug info file, because libdw does not create Dwarf handles to files
that contain only .eh_frame section without .debug_*. This was causing
AST variable node to assert because the local variables did not get
location list, since .eh_frame reference was never saved for lookup.
The solution was to create a DwarfFrameParser saving not only a possible
Dwarf handle but also an Elf reference, since the .eh_frame section will
be in the main stripped binary, while the Dwarf handle will point to
the separate debug file.

18 months agoMerge branch 'master' into arm64/feature/relocation
Sasha @leela [Thu, 20 Sep 2018 23:24:43 +0000 (18:24 -0500)]
Merge branch 'master' into arm64/feature/relocation

18 months agoadded arithExpr xor
van Hauser [Sat, 24 Mar 2018 12:46:06 +0000 (13:46 +0100)]
added arithExpr xor
(cherry picked from commit eee4b0740bb24e07581af453392220808ac0524c)

18 months agoMerge pull request #485 from dyninst/power8_instrumentation_fix
Xiaozhu Meng [Fri, 7 Sep 2018 16:26:45 +0000 (11:26 -0500)]
Merge pull request #485 from dyninst/power8_instrumentation_fix

Power8 instrumentation fix

18 months agoRemove debugging printf statement 485/head
Xiaozhu Meng [Fri, 7 Sep 2018 16:03:51 +0000 (11:03 -0500)]
Remove debugging printf statement

18 months agoThe fixes for power preamble should not be enabled on other platforms
Xiaozhu Meng [Fri, 7 Sep 2018 15:57:49 +0000 (10:57 -0500)]
The fixes for power preamble should not be enabled on other platforms
and suppress unncessary warning output

18 months agoSetting the default value of pointers encoding
Sasha Nicolas [Thu, 6 Sep 2018 22:14:20 +0000 (17:14 -0500)]
Setting the default value of pointers encoding
in a Frame Description Entry (FDE) to be DW_EH_PE_absptr.

18 months agoFix power rewriter mode
Xiaozhu Meng [Thu, 6 Sep 2018 18:55:58 +0000 (13:55 -0500)]
Fix power rewriter mode

1. there is no longer .opd section in Power 8 binaries. We used to derived TOC for each
   function based on .opd section. Such code is outdated.
2. Fix genearting calls to PLT on power. If the caller and the callee are not in the
   same object, we need a PLT call.
3. Fix getting the same scratch registers

18 months agoFix for test1_30:
Sasha Nicolas [Wed, 5 Sep 2018 17:51:41 +0000 (12:51 -0500)]
Fix for test1_30:
this test would show PASSED but in reality the return value of the
functions getAddressRanges either in BPatch_image or BPatch_module was
false, meaning the ranges weren't being found correctly.
It turns out that the comparison between filenames was wrong.
For this fix, StringTableEntry needed to be changed in other to store the filename
without the path, and thus allow StringTable boost::multi_index_container
to be indexed by "filename" and not only by "/path/filename".

18 months agoTwo more fixes for instrumentation on power. Now all tests in create and attach modes...
Xiaozhu Meng [Wed, 5 Sep 2018 17:49:52 +0000 (12:49 -0500)]
Two more fixes for instrumentation on power. Now all tests in create and attach modes are passing.

1. call site instrumentation point should return the real function rather than the targ function
2. loop tree node should not include targ functions as callee

18 months agoMore fixes for power instrumentation
Xiaozhu Meng [Wed, 5 Sep 2018 13:24:37 +0000 (08:24 -0500)]
More fixes for power instrumentation

1. Do not relocate the power preamble by skipping the first two instructions,
   instead of comparing addresses
2. RelocGraph indexes RelocBlock by block starting address rather than
   block_instance pointers
3. Function entry springboard is now using OffLimits springboard priority,
   as it should have a higher priority than block entry springboard.

18 months ago1. Copy Ben's fix for code gen on power
Xiaozhu Meng [Mon, 3 Sep 2018 17:09:45 +0000 (12:09 -0500)]
1. Copy Ben's fix for code gen on power
2. Make sure we skip the function preamble when genearting springboard
3. Reloc block now can be empty, so should not assert

19 months agoStart to make instrumentation on Power8 work.
Xiaozhu Meng [Thu, 30 Aug 2018 18:42:26 +0000 (13:42 -0500)]
Start to make instrumentation on Power8 work.

The first issue is about the new power ABI, where each function has two entries.
The inter-procedural entry has the function name and the intra-procedural entry
does not, and so is named as targXXXX. We do two things here:
1. We should not relocate targXXXX as it is essentially the same function as the inter-procedural one.
2. The inter-procedural entry contains two preamble to set up the value of r2 (TOC). We should
   not relocate these two instructions. So, when creating a RelocBlock for such entry, we skip
   the first two instructions.

The second issue is about generating long branches. This is related to springboard
and generating function call instrumentation (as function call on power is branch).
For calls, Ben introduces the uses of TAR register to store the target address. The
power manual says TAR register is reserved for system software. We will need to
revisit the use of TAR register. For long springboard, right now we cannot create an
instPoint to do liveness. So, long springboards are now done by traps.

19 months agoPower8 does not necessary have the .opd section
Xiaozhu Meng [Tue, 28 Aug 2018 14:50:15 +0000 (09:50 -0500)]
Power8 does not necessary have the .opd section

19 months agoThe instruction semantics code for push should consider different
Xiaozhu Meng [Mon, 27 Aug 2018 15:29:57 +0000 (10:29 -0500)]
The instruction semantics code for push should consider different
register sizes

19 months agoShould prefer CU level line info parsing over object level line info
Xiaozhu Meng [Fri, 24 Aug 2018 20:31:45 +0000 (15:31 -0500)]
Should prefer CU level line info parsing over object level line info
parsing when there is a seperate debug info file

19 months agoWhen the ".debug_info" section is not present, we do object level line
Xiaozhu Meng [Fri, 24 Aug 2018 16:45:22 +0000 (11:45 -0500)]
When the ".debug_info" section is not present, we do object level line
infomation parsing. However, when we iterate every module in the object,
we will re-parse the line information for the whole object. We should
just parse once and share the parsing results in different modules.

19 months agoFix wrong register operands in x86-64 instruction decoding
Xiaozhu Meng [Thu, 23 Aug 2018 15:51:29 +0000 (10:51 -0500)]
Fix wrong register operands in x86-64 instruction decoding

19 months agoMerge pull request #463 from dyninst/vector_categories
Xiaozhu Meng [Wed, 22 Aug 2018 14:24:34 +0000 (09:24 -0500)]
Merge pull request #463 from dyninst/vector_categories

Vector categories merge into master

19 months ago1. The FULL register size must have value 0 due to the way we calculate 463/head
Xiaozhu Meng [Wed, 22 Aug 2018 00:59:44 +0000 (19:59 -0500)]
1. The FULL register size must have value 0 due to the way we calculate
base registers.
2. Update liveness for the value changes

20 months agoRemoving extra implementation of save/restore register.
Sasha @leela [Wed, 25 Jul 2018 21:21:30 +0000 (16:21 -0500)]
Removing extra implementation of save/restore register.
The goal is to eliminate fully EmitterAARCH64SaveRegs and EmitterAARCH64RestoreRegs,
but they are still being used at other parts.
This commit removes from these classes the function to save and restore register
and adapts insnCodeGen to do the work.

20 months agoadd debugging support to LineInformation
John Mellor-Crummey [Tue, 17 Oct 2017 17:22:44 +0000 (12:22 -0500)]
add debugging support to LineInformation

20 months agoadd debugging support to Symtab interface
John Mellor-Crummey [Tue, 17 Oct 2017 17:19:37 +0000 (12:19 -0500)]
add debugging support to Symtab interface

use new IBSTree dumping functionality to dump function and
module ranges.

20 months agoadd debugging support to IBSTree.h
John Mellor-Crummey [Tue, 17 Oct 2017 16:48:10 +0000 (11:48 -0500)]
add debugging support to IBSTree.h

20 months agocorrect dwarf debug printing
John Mellor-Crummey [Wed, 18 Oct 2017 15:48:34 +0000 (10:48 -0500)]
correct dwarf debug printing

in dwarfWalker::setFuncFromLowest, set the current function
before calling dwarf_printf so that curFunc() in the
dwarf_printf sees the function just found

(cherry picked from commit a786739e5369b79ff6823cf742042c9f2d874765)

20 months agoupdate line map reader based on dwarf_next_lines
John Mellor-Crummey [Sat, 30 Jun 2018 17:58:19 +0000 (12:58 -0500)]
update line map reader based on dwarf_next_lines

integrate changes in master's parseLineMapInfoForCU that
avoid missing line map entries into new line map parser
based on elfutils 0.173 that uses dwarf_next_lines for
binaries that lack a .debug_info section

20 months agoremove old line map parsing code
John Mellor-Crummey [Sat, 30 Jun 2018 16:41:53 +0000 (11:41 -0500)]
remove old line map parsing code

20 months agofix line map parsing to avoid omissions
John Mellor-Crummey [Sat, 30 Jun 2018 16:39:42 +0000 (11:39 -0500)]
fix line map parsing to avoid omissions

20 months agouse dwarf_next_lines to read .debug_line without .debug_info
John Mellor-Crummey [Fri, 29 Jun 2018 19:33:08 +0000 (14:33 -0500)]
use dwarf_next_lines to read .debug_line without .debug_info

20 months agohandle empty DebugSectionMap
John Mellor-Crummey [Sat, 2 Jun 2018 18:06:11 +0000 (13:06 -0500)]
handle empty DebugSectionMap

20 months agoavoid infinite loop on bad DWARF CFI record
John Mellor-Crummey [Fri, 1 Jun 2018 23:35:54 +0000 (18:35 -0500)]
avoid infinite loop on bad DWARF CFI record

20 months agoFixing BaseTramp to save registers as it's done with PowerPC.
Sasha @leela [Tue, 24 Jul 2018 00:46:37 +0000 (19:46 -0500)]
Fixing BaseTramp to save registers as it's done with PowerPC.

Now the BaseTramp reserves a fixed amount of memory for each stack frame,
and the registers are always saved in the same position, in order to be retrieved
if necessary for some functionality such as BPatch_paramExpr.

Test1_13 now passes after this modification.

20 months agoMerge branch 'master' of https://github.com/dyninst/dyninst
Sasha Nicolas [Tue, 10 Jul 2018 17:52:12 +0000 (12:52 -0500)]
Merge branch 'master' of https://github.com/dyninst/dyninst

20 months agoChanging URL of Elfutils to always download the lastest released version.
Sasha Nicolas [Tue, 10 Jul 2018 17:46:04 +0000 (12:46 -0500)]
Changing URL of Elfutils to always download the lastest released version.

20 months agoImplementing rest of relational operators to make test1_7 pass.
Sasha @leela [Tue, 3 Jul 2018 16:23:05 +0000 (11:23 -0500)]
Implementing rest of relational operators to make test1_7 pass.

test1_7 tests less than, equal to, greater than, less than or equal to,
greater than or equal to, not equal, AND, and OR operators, both using
constant values or variables.

21 months agoMerge pull request #469 from rafzi/upstream
Sasha NĂ­colas [Fri, 29 Jun 2018 23:41:55 +0000 (18:41 -0500)]
Merge pull request #469 from rafzi/upstream

symtab: fix memory error in Statement::getFile

21 months agoFixing emitLoad() in the Emitter to check the size of bytes to load.
Sasha @leela [Thu, 28 Jun 2018 23:54:19 +0000 (18:54 -0500)]
Fixing emitLoad() in the Emitter to check the size of bytes to load.
This will make instruction LDR either use w0-w30 or x0-x30 registers.

21 months agoFixing generation of arithmetic expressions:
Sasha @leela [Wed, 20 Jun 2018 01:22:04 +0000 (20:22 -0500)]
Fixing generation of arithmetic expressions:

Addition, subtraction, and multiplication works with constant values and values from variables.
Division only works with constant values.

21 months agosymtab: fix memory error in Statement::getFile 469/head
Rafael Stahl [Tue, 19 Jun 2018 15:24:19 +0000 (17:24 +0200)]
symtab: fix memory error in Statement::getFile

21 months agoFixing BaseTramp generation and Liveness:
Sasha @leela [Mon, 18 Jun 2018 22:31:33 +0000 (17:31 -0500)]
Fixing BaseTramp generation and Liveness:

Correcting ABI sets for aarch64;
Adding registers w0-w30 to register map;
Add insert function to codeGen to allow insert at position;
Implementing indexing mode for STR (immediate);
BaseTramp saving/restoring registers using STR (immediate) without pre-calculating offset;
IRPC register space initialized as savedRegSpace.

21 months agoFix register sizes in InstructionAPI
Xiaozhu Meng [Wed, 6 Jun 2018 20:37:40 +0000 (15:37 -0500)]
Fix register sizes in InstructionAPI

21 months agoMerge branch 'github_master' into vector_categories
Xiaozhu Meng [Wed, 6 Jun 2018 19:40:26 +0000 (14:40 -0500)]
Merge branch 'github_master' into vector_categories

21 months agoFix bit-size for YMM and ZMM registers
Xiaozhu Meng [Wed, 6 Jun 2018 19:39:16 +0000 (14:39 -0500)]
Fix bit-size for YMM and ZMM registers

21 months agoFixing generateAddSubImmediate for ADD and SUB instructions. Wrong bits and wrong...
Sasha Nicolas (arm1) [Wed, 6 Jun 2018 00:26:12 +0000 (19:26 -0500)]
Fixing generateAddSubImmediate for ADD and SUB instructions. Wrong bits and wrong opcode were being set.
Fixing generation of save and restore for registers using the SP register. Previous instruction didn't update SP.
Fixing int_process bug in create().

21 months agoFixing save of GPR to verify liveState and not defined registers bitArray.
Sasha Nicolas (arm1) [Tue, 5 Jun 2018 23:30:53 +0000 (18:30 -0500)]
Fixing save of GPR to verify liveState and not defined registers bitArray.
Fixing alignment of save and restore of FPR for base tramp.
Add assert for SPR save not to have null register.
Fix long branch generate to get a scratch register.
Ssaving X30 for every emitCall.

22 months agoFixing parsing of try/catch blocks.
Sasha Nicolas [Wed, 30 May 2018 01:33:15 +0000 (20:33 -0500)]
Fixing parsing of try/catch blocks.
The FDEs were not necessarily following the CIE, as the format says.
https://refspecs.linuxfoundation.org/LSB_3.0.0/LSB-PDA/LSB-PDA/ehframechpt.html
In the ARM binary, because there were FDEs with different CIEs mixed together
we were ignoring FDEs whose CIE had past or whose CIE's reference had changed.

22 months agoFix: parsing .eh_frame on binaries without .debug_frame.
Sasha Nicolas [Thu, 24 May 2018 01:30:27 +0000 (20:30 -0500)]
Fix: parsing .eh_frame on binaries without .debug_frame.

22 months agoFixing the calculation of offset for FDE augmentation data.
Sasha Nicolas [Fri, 13 Oct 2017 21:16:34 +0000 (16:16 -0500)]
Fixing the calculation of offset for FDE augmentation data.

(cherry picked from commit 0780fb7bd7371acea691110826718f810c1f3dd4)

22 months agoMerge branch 'master' of https://github.com/dyninst/dyninst
Sasha Nicolas [Wed, 23 May 2018 17:46:04 +0000 (12:46 -0500)]
Merge branch 'master' of https://github.com/dyninst/dyninst

22 months agoFixing MOV instruction generation.
Sasha Nicolas (arm1) [Sat, 19 May 2018 00:41:44 +0000 (19:41 -0500)]
Fixing MOV instruction generation.
Implementing store and restore register functions.
Fixed bug of stack pointer alignment.
emitCall - getting into shape.
emitR - first steps.
Some hard-coded values to be fixed, debug code and printing to be removed later.

22 months agoFix for crashing on relocating at unistrumentable points 460/head
Benjamin Welton [Tue, 1 May 2018 15:19:42 +0000 (10:19 -0500)]
Fix for crashing on relocating at unistrumentable points

This fix is to address issue #455. When an unistrimentable point is selected for instrimenation
the behaviour Dyninst will now exhibit is the following:

1. InsertSnippet will return NULL if not in an insertion set and an illegal when parameter is used

2. If in an insertion set, InsertSnippet will return an object to the instrimentation. However when the set
   is closed the insertion of that point will fail. It will either fail and continue to the next point (if
   the insertion set closure is set to continue past errors) or roll back all prior insertions.
.

23 months agoAdding Equal Operation case for emitImm.
Sasha Nicolas (arm1) [Thu, 26 Apr 2018 18:34:34 +0000 (13:34 -0500)]
Adding Equal Operation case for emitImm.
Correcting instruction encoding for ADD and SUB to modify flags register.
Minor fixes.

23 months agoMerge pull request #430 from jmellorcrummey/master
Xiaozhu Meng [Tue, 17 Apr 2018 20:05:03 +0000 (15:05 -0500)]
Merge pull request #430 from jmellorcrummey/master

add missing initialization for flags when Elf_X is a memory image

23 months agoMerge pull request #445 from stanfordcox/irelative
Xiaozhu Meng [Tue, 17 Apr 2018 19:34:08 +0000 (14:34 -0500)]
Merge pull request #445 from stanfordcox/irelative

Remove unused rpc/xdr references.

23 months agoImplementing functions to generate relational instructions,
Sasha Nicolas (arm1) [Tue, 17 Apr 2018 01:18:25 +0000 (20:18 -0500)]
Implementing functions to generate relational instructions,
mainly related to emitRelOp in the arm emitter, conditional branch in instruction class,
and emitV free function.

23 months agoImplementing more instruction generators for div and sub.
Sasha Nicolas (arm1) [Sat, 14 Apr 2018 03:43:26 +0000 (22:43 -0500)]
Implementing more instruction generators for div and sub.
Adding emit-aarch64.C to put aarch64 Emitters implementations.

23 months agoNew walker to walk out of Instrimentation Frames FP 452/head
Benjamin Welton [Thu, 12 Apr 2018 17:58:17 +0000 (12:58 -0500)]
New walker to walk out of Instrimentation Frames FP

This patch contains a new walker that can walk out of inst frames in first party stackwalking mode.

For this to work, the emitter fixes located in pull request #451 must be applied. The walker itself creates
a Stackwalker frame based on the information saved by the emitter.

23 months agoImplementing functions in EmitterAARCH64 class such as emitIf, emitLoadConst,
Sasha Nicolas (arm1) [Wed, 11 Apr 2018 18:19:18 +0000 (13:19 -0500)]
Implementing functions in EmitterAARCH64 class such as emitIf, emitLoadConst,
    emitLoad, emitLoadConst, emitStore, and emitCall.
Making corrections in insnCodeGen::generateLongBranch.
Implementing free functions such as emitVload, emitVstore, and doNotOverflow.

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

2 years 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'

2 years 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.

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years agoRemove unused rpc/xdr references. 445/head
Stan Cox [Wed, 28 Mar 2018 18:06:32 +0000 (14:06 -0400)]
Remove unused rpc/xdr references.

2 years agoMerge remote-tracking branch 'upstream/master' into irelative
Stan Cox [Wed, 28 Mar 2018 18:04:24 +0000 (14:04 -0400)]
Merge remote-tracking branch 'upstream/master' into irelative

2 years 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.

2 years 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.

2 years 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.

2 years agoMerge branch 'master' of https://github.com/dyninst/dyninst
Sasha Nicolas [Tue, 20 Mar 2018 16:43:32 +0000 (11:43 -0500)]
Merge branch 'master' of https://github.com/dyninst/dyninst

2 years 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

2 years 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'

2 years 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

2 years 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

2 years 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.

2 years 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

2 years 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

2 years ago~0 --> ~0u to avoid warnings about left shift of signed value 430/head
John Mellor-Crummey [Thu, 8 Mar 2018 19:50:35 +0000 (13:50 -0600)]
~0 --> ~0u to avoid warnings about left shift of signed value

2 years agocorrect misleading indentation to avoid compiler warnings
John Mellor-Crummey [Thu, 8 Mar 2018 19:49:51 +0000 (13:49 -0600)]
correct misleading indentation to avoid compiler warnings

2 years 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"

2 years agoMerge branch 'master' of https://github.com/dyninst/dyninst
John Mellor-Crummey [Thu, 8 Mar 2018 17:09:22 +0000 (11:09 -0600)]
Merge branch 'master' of https://github.com/dyninst/dyninst

bringing my jmellorcrummey fork up to date with wisconsin.

2 years agoCorrect use of abs.
Sasha @leela [Wed, 7 Mar 2018 19:56:03 +0000 (13:56 -0600)]
Correct use of abs.

2 years agoImplementing enconding function for registerSpace.
Sasha @leela [Wed, 7 Mar 2018 18:45:46 +0000 (12:45 -0600)]
Implementing enconding function for registerSpace.
Implementing calcUsedRegisters for parse_func.
Making sure to test for Call Instruction under modifyJump.
Preparing functions emitCall, emitA, and emitIf.
Fixing some compiling warnings.

2 years 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

(cherry picked from commit 0dbfa36c9cc535f4dd25e657f0e1d2b54df29710)

2 years agoMerge branch 'master' of https://github.com/dyninst/dyninst
Sasha Nicolas [Tue, 6 Mar 2018 20:02:50 +0000 (14:02 -0600)]
Merge branch 'master' of https://github.com/dyninst/dyninst