J. Baker, A. Cunei, T. Kalibera, F. Pizlo, and J. Vitek, Accurate Garbage Collection in Uncooperative Environments Revisited, Concurr. Comput. : Pract. Exper, vol.21, pp.1572-1606, 2009.

E. Bendersky, , 2019.

D. Brumley, I. Jager, T. Avgerinos, and E. J. Schwartz, BAP: A Binary Analysis Platform, Computer Aided Verification -23rd International Conference, 2011.

C. Cifuentes, Reverse compilation techniques, Ph.D. Dissertation. Queensland University of Technology, 1994.

J. Corbet, DWARF Debugging Information Format version 5. DWARF Debugging Information Format Committee, 2017.

J. He, P. Ivanov, P. Tsankov, V. Raychev, and M. Vechev, Debin: Predicting Debug Information in Stripped Binaries, Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security (CCS '18), pp.1667-1680, 2018.

F. Henderson, Accurate Garbage Collection in an Uncooperative Environment, Proceedings of the 3rd International Symposium on Memory Management (ISMM '02), pp.150-156, 2002.

S. Kell, Towards a Dynamic Object Model Within Unix Processes, 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!), pp.224-239, 2015.

J. Oakley and S. Bratus, Exploiting the Hard-Working DWARF: Trojan and Exploit Techniques with No Native Executable Code, 5th USENIX Workshop on Offensive Technologies, WOOT'11, pp.91-102, 2011.

J. Regehr, Y. Chen, P. Cuoq, E. Eide, C. Ellison et al., Test-case Reduction for C Compiler Bugs, Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '12), pp.335-346, 2012.

F. Siebert, Constant-Time Root Scanning for Deterministic Garbage Collection, Proceedings of the 10th International Conference on Compiler Construction (CC '01), pp.304-318, 2001.

X. Yang, Y. Chen, E. Eide, and J. Regehr, Finding and understanding bugs in C compilers, Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2011, pp.283-294, 2011.

Y. Zhang, Informal semantics of DWARF instructions. Below we report the DWARF instructions used for CFI description, descriptions have been reworded for brevity and clarity. Since we abstract from the underlying file format here, we omit variations differing only on the number of bytes of their operand, 2008.

, ? advance_loc(delta): start a new table row at address prev_loc + delta

, ? def_cfa(reg, offset): sets this row's CFA at (%re? + offset)

, ? def_cfa_register(reg): sets CFA at (%re? + prev_offset)

, ? def_cfa_offset(offset): sets CFA at (%prev_re? + offset)

, ? def_cfa_expression(expr): sets CFA as the result of expr

, ? undefined(reg): sets the register %reg as undefined in this row

, ? same_value(reg): declares that the register %reg hasn't been touched

, ? offset(reg, offset): the value of the register %reg is stored in memory at the address CFA + offset

, ? register(reg, model): the register %reg has

, ? expression(reg, expr): the value of %reg is stored in memory at the address defined by expr

, ? val_expression(reg, expr): %reg has the value of expr