In order to implement our model-centric debugger in Python, we extended GDB Python interface to support all of our needs. In particular, we contributed the following patches:
allow Python to detect that multiple breakpoints were hit when the execution stops,
getterto retrieve the process—
inferiorin GDB parlance—currently selected,
add Python notifications when a process exits, or when a shared-library is loaded,
- and finally, the most important patch of the serie was the introduction of the concept of finish breakpoint, crucial to our implementation design.