Branch: refs/heads/master
Home: https://github.com/dyninst/dyninst
Commit: 0665983154cda40a9dcde1ef58aeced47ee03e4a
https://github.com/dyninst/dyninst/commit/0665983154cda40a9dcde1ef58aeced47ee03e4a
Author: Xiaozhu Meng <mxz297@xxxxxxxxx>
Date: 2021-05-27 (Thu, 27 May 2021)
Changed paths:
M dataflowAPI/src/slicing.C
M instructionAPI/src/InstructionDecoder-power.C
M parseAPI/src/Function.C
M parseAPI/src/Parser.C
Log Message:
-----------
Fix data races and asserts discovered on Power (#1038)
* Use thread-safe source and target edge copy methods to iterate edges during finliazation
* Use std::map::find rather than [] to avoid corruption of a power decoding table
* More fixes for parsing Power binaries:
1. convert asserts in slicing to debug logging
2. copy block edge list during finalization when determining function's block list
* Convert asserts to debug logging when setting a function's return status
These asserts indeed represent errors where parsing has gone wrong in some fashion,
but these errors are not necessarily fatal overall.
|