我正在使用ARM PMU计数器来计算进程在两次系统调用之间执行的指令数。特别是我正在使用" INST_RETIRED"事件,用于计算进程在用户模式下执行的指令数。 Reference: ARMv7 R/A Reference Manual。如果我在自由模式下或在GDB下运行程序,则指令数是一致的。当我尝试使用pthread_create创建线程时出现问题。当我在GDB下运行它时,同一程序在两个系统调用mprotect和clone之间执行的指令数(由函数pthread_create执行)是不同的。这意味着用户程序在调试器下运行时执行一些不同的代码,可能在库libpthread中。我已经看到了pthread_create的源代码,但找不到与trace / debug标志相关的任何内容。 Copuld任何人请指导我从哪里来的这个ambuguity?