歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 使用 Linux 的 strace 命令跟蹤/調試程序的常用選項

使用 Linux 的 strace 命令跟蹤/調試程序的常用選項

日期:2017/2/28 14:27:35   编辑:Linux教程

在調試的時候,strace能幫助你追蹤到一個程序所執行的系統調用。當你想知道程序和操作系統如何交互的時候,這是極其方便的,比如你想知道執行了哪些系統調用,並且以何種順序執行。

這個簡單而又強大的工具幾乎在所有的Linux操作系統上可用,並且可被用來調試大量的程序。

命令用法

讓我們看看strace命令如何追蹤一個程序的執行情況。

最簡單的形式,strace後面可以跟任何命令。它將列出許許多多的系統調用。一開始,我們並不能理解所有的輸出,但是如果你正在尋找一些特殊的東西,那麼你應該能從輸出中發現它。

Linux strace命令詳解 http://www.linuxidc.com/Linux/2012-12/75671.htm

Linux strace 跟蹤進程信息 http://www.linuxidc.com/Linux/2012-10/72432.htm

Linux下重量級命令strace使用介紹 http://www.linuxidc.com/Linux/2012-10/71823.htm

Linux strace解決段錯誤 http://www.linuxidc.com/Linux/2011-08/41308.htm

Linux進程控制--strace:追蹤信號和系統調用 http://www.linuxidc.com/Linux/2011-05/35823.htm

Linux中程序執行的流程分析工具——strace http://www.linuxidc.com/Linux/2013-11/93023.htm

讓我們來看看簡單命令ls的系統調用跟蹤情況

  1. raghu@raghu-Linoxide~ $ strace ls

這是strace命令輸出的前幾行。其他輸出被截去了。

上面的輸出部分展示了write系統調用,它把當前目錄的列表輸出到標准輸出。

下面的圖片展示了使用ls命令列出的目錄內容(沒有使用strace)。

  1. raghu@raghu-Linoxide~ $ ls

選項1 尋找被程序讀取的配置文件

Strace 的用法之一(除了調試某些問題以外)是你能找到被一個程序讀取的配置文件。例如,

  1. raghu@raghu-Linoxide~ $ strace php 2>&1| grep php.ini

選項2 跟蹤指定的系統調用

strace命令的-e選項僅僅被用來展示特定的系統調用(例如,open,write等等)

讓我們跟蹤一下cat命令的‘open’系統調用。

  1. raghu@raghu-Linoxide~ $ strace -e open cat dead.letter

選項3 跟蹤進程

strace不但能用在命令上,而且通過使用-p選項能用在運行的進程上。

  1. raghu@raghu-Linoxide~ $ sudo strace -p 1846

選項4 strace的統計概要

它包括系統調用的概要,執行時間,錯誤等等。使用-c選項能夠以一種整潔的方式展示:

  1. raghu@raghu-Linoxide~ $ strace -c ls

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-10/107453p2.htm

Copyright © Linux教程網 All Rights Reserved