Branch: refs/heads/master
Home: https://github.com/dyninst/dyninst
Commit: 29535f22c1a17581107140da3910ccf148b36372
https://github.com/dyninst/dyninst/commit/29535f22c1a17581107140da3910ccf148b36372
Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
Date: 2018-11-05 (Mon, 05 Nov 2018)
Changed paths:
M dataflowAPI/h/slicing.h
M dataflowAPI/rose/semantics/DispatcherARM64.C
M dataflowAPI/src/slicing.C
M dyninstAPI/src/Parsing.C
M instructionAPI/src/InstructionDecoder-aarch64.C
M parseAPI/src/BoundFactCalculator.C
M parseAPI/src/CodeSource.C
M parseAPI/src/Function.C
M parseAPI/src/IA_IAPI.h
M parseAPI/src/IA_aarch64.C
M parseAPI/src/IA_power.C
M parseAPI/src/IA_x86.C
M parseAPI/src/IndirectAnalyzer.C
M parseAPI/src/IndirectAnalyzer.h
M parseAPI/src/JumpTableFormatPred.C
M parseAPI/src/JumpTableFormatPred.h
M parseAPI/src/JumpTableIndexPred.C
M parseAPI/src/JumpTableIndexPred.h
M parseAPI/src/Parser.C
M parseAPI/src/SymtabCodeSource.C
M parseAPI/src/debug_parse.C
Log Message:
-----------
Various bug fixes
1. Jump table analysis
1.1 do not slice backward along indirect edges, which will
make jump table analysis depends on results of previous jump table analysis,
and have cascading wrong analysis results.
1.2 On x86, perform tentative instruction decoding at potential jump targets.
If we find junk instructions at jump target, then we know the jump target is wrong
1.3 Remove jump target checks that relies on the parsing function context.
For jump tables shared by multiple functions, such checks can easily lead to
non-determinisitic results.
2. Tail calls: on x86, if there is a pop to a callee saved register, it means
the function is tearing down the stack frame. So, this jump should be a tail call
3. PLT stubs
3.1 Improve analysis of PLT in .plt.got and fix related instrumentation problems
3.2 Function should use the PLT name at the beginning of the parsing, not at the
end of parsing. Otherwise, for PLT that is known to be non-returning, its caller
may have the wrong retstatus
**NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/
Functionality will be removed from GitHub.com on January 31st, 2019.
|