Linux strace

2013-06-08
  • 775
  • 0

Stracelinux操作系统的一个调试工具。

作为一个调试器,你可以看到应用程序做了哪些系统调用,以及他们返回的信息。通常情况下这是非常重要的,因为它告诉你你的应用为什么会出错。你能猜出错在哪里以及如何解决这个问题。Strace使得你得到一个系统调用故障,会返回给你许多有用的信息。

你必须学会区分你的瓶颈在哪里。如果一个程序总的执行时间为8秒,你只花0.05secs系统调用,然后跟踪程序是不会对你多好,问题出在你自己的代码,这通常是一个逻辑问题,或程序实际上需要长时间运行。 

你还可以用它来统计每个系统调用单独执行的时间。虽然这可能不足以解决所有问题,但是它至少会大大缩小你排错范围。

比如说,当发生个http请求的时候,很多时候希望得到这个http请求发生了多少次数据库SELECT操作,是否在同一个mysql connection连接里面完成。这里我们就可以通过strace来跟踪这些MySQL SELECT查询语句。