libptrace: An event driven multi-core process debugging, tracing, and manipulation framework