Adds the module offset of the interruption point PC to the kernel event marker to record when a signal happened. Refactors raw2trace to check for signals after every insruction and not just every memref, and to look at the offset for correct placement.
Adds a new test application signal_invariants which uses assembly for precise control over tests around signal marker placement. Changes the trace_invariants tests to use this new application. The test uses prefetch instructions as annotations to communicate with the trace_invariants reader. Uses the new test to add several additional invariant checks to trace_invariants: signal placement mid-bb, placement mid-memref, handler resumption, handler immediacy.
Updates the docs to show an example of a signal handler interruption in the view tool.
Documents the multi-memref fault issue (#3958) and the online trace missing instruction issue (#3739 (closed)).
Passes -verbose to the IPC reader for online trace debugging.
Solving signal placement in the middle of online trace instruction bundles is left for future work. Comments in the code and docs make this clear.
Issue: #3937