weichuang02 发表于 2012-10-29 14:12

strace的工作原理是什么?

今天interview被问strace的工作原理是什么,我没弄过linux内核,纯粹只能猜测:

我说: strace可以hook操作系统的函数调用(这个是从windows的经验变了个说法),所以可以跟踪。

但是如果是windows那样的话,hook系统api会导致每次系统api被调用的时候,进入我自己的回调函数,这样其实是会影响系统/进程本身的性能的吧。

Linux的strace实现原理到底是怎么样的?

MMMIX 发表于 2012-10-29 14:12

回复 1# weichuang02


    strace 是純的用戶空間程序,和體系結構相關(不同 arch 的 syscall 不同),但其實現不需要修改 kernel 也不需要修改被 trace 的程序。對其實現感興趣的話就查查它的源碼吧。
页: [1]
查看完整版本: strace的工作原理是什么?