在2012年的hqemu论文里提及到得这篇文章,为了在处理多线程程序里正确地patch优化过的代码,

We use self-branch patching mechanism proposed in [15] to ensure the patching is completed correctly when a multi-thread application is emulated.

Scalable Support for Multithreaded Applications on Dynamic Binary Instrumentation Systems

这篇文章讲的是pin这个软件能够让用户植入一些instrument代码到多线程的用户进程里(在运行时完成,所以叫Dynamic)。大体框架上看就是通过pin来启动用户进程,pin能够截取用户进程的fork、clone、exit等系统调用从而达到各种植入代码的目的。