Linux系统中strace命令的使用教程

在调试的时候,strace能帮助你追踪到一个程序所执行的系统调用。当你想知道程序和操作系统如何交互的时候,这是极其方便的,比如你想知道执行了哪些系统调用,并且以何种顺序执行。
这个简单而又强大的工具几乎在所有的Linux操作系统上可用,并且可被用来调试大量的程序。
命令用法
让我们看看strace命令如何追踪一个程序的执行情况。
最简单的形式,strace后面可以跟任何命令。它将列出许许多多的系统调用。一开始,我们并不能理解所有的输出,但是如果你正在寻找一些特殊的东西,那么你应该能从输出中发现它。
让我们来看看简单命令ls的系统调用跟踪情况。
代码如下:
raghu@raghu-Linoxide ~ $ strace ls
 这是strace命令输出的前几行。其他输出被截去了。

 上面的输出部分展示了write系统调用,它把当前目录的列表输出到标准输出。
下面的图片展示了使用ls命令列出的目录内容(没有使用strace)。
代码如下:
raghu@raghu-Linoxide ~ $ ls

 选项1 寻找被程序读取的配置文件
Strace 的用法之一(除了调试某些问题以外)是你能找到被一个程序读取的配置文件。例如,
代码如下:
raghu@raghu-Linoxide ~ $ strace php 21 | grep php.ini

 选项2 跟踪指定的系统调用
strace命令的-e选项仅仅被用来展示特定的系统调用(例如,open,write等等)
让我们跟踪一下cat命令的‘open’系统调用。
代码如下:
raghu@raghu-Linoxide ~ $ strace -e open cat dead.letter
 选项3 跟踪进程
strace不但能用在命令上,而且通过使用-p选项能用在运行的进程上。
代码如下:
raghu@raghu-Linoxide ~ $ sudo strace -p 1846

 选项4 strace的统计概要
它包括系统调用的概要,执行时间,错误等等。使用-c选项能够以一种整洁的方式展示:
代码如下:
raghu@raghu-Linoxide ~ $ strace -c ls
 选项5 保存输出结果
通过使用-o选项可以把strace命令的输出结果保存到一个文件中。
代码如下:
raghu@raghu-Linoxide ~ $ sudo strace -o process_strace -p 3229
 之所以以sudo来运行上面的命令,是为了防止用户ID与所查看进程的所有者ID不匹配的情况。
选项6 显示时间戳
使用-t选项,可以在每行的输出之前添加时间戳。
代码如下:
raghu@raghu-Linoxide ~ $ strace -t ls
 选项7 更精细的时间戳
-tt选项可以展示微秒级别的时间戳。
代码如下:
raghu@raghu-Linoxide ~ $ strace -tt ls

 -ttt也可以向上面那样展示微秒级的时间戳,但是它并不是打印当前时间,而是显示自从epoch(译注:1970年1月1日00:00:00 UTC)以来的所经过的秒数。
代码如下:
raghu@raghu-Linoxide ~ $ strace -ttt ls
 选项8 相对时间
-r选项展示系统调用之间的相对时间戳。
代码如下:
raghu@raghu-Linoxide ~ $ strace -r ls

  • linuxstrace鍛戒护璇﹁В
    绛旓細1. 鍩烘湰璇硶锛strace鍛戒护鐨勫熀鏈娉曟槸`strace [閫夐」]... [鍛戒护]`銆傚叾涓紝閫夐」鐢ㄤ簬鎸囧畾璺熻釜鐨勮涓哄拰杈撳嚭鏍煎紡锛屽懡浠ゆ槸瑕佽窡韪殑绋嬪簭銆2. 璺熻釜绯荤粺璋冪敤锛氫娇鐢╯trace鍙互璺熻釜杩涚▼鎵ц杩囩▼涓殑绯荤粺璋冪敤銆傝繖浜涚郴缁熻皟鐢ㄥ寘鎷墦寮鏂囦欢銆佽鍙栨暟鎹佸彂閫佺綉缁滆姹傜瓑銆傞氳繃璺熻釜杩欎簺绯荤粺璋冪敤锛屽彲浠ヤ簡瑙h繘绋嬫槸濡備綍涓庢搷浣滅郴缁...
  • linux strace鍛戒护
    绛旓細璁惧畾 strace杈撳嚭鐨绯荤粺璋冪敤鐨勭粨鏋滈泦.-v 绛変笌 abbrev=none.榛樿涓篴bbrev=all.-e raw=set 灏嗘寚 瀹氱殑绯荤粺璋冪敤鐨勫弬鏁颁互鍗佸叚杩涘埗鏄剧ず.-e signal=set 鎸囧畾璺熻釜鐨勭郴缁熶俊鍙.榛樿涓篴ll.濡 signal=!SIGIO(鎴栬卻ignal=!io),琛ㄧず涓嶈窡韪猄IGIO淇″彿.-e read=set 杈撳嚭浠庢寚瀹氭枃浠朵腑璇诲嚭 鐨勬暟鎹.渚嬪:-e read=3...
  • Linux绯荤粺涓璼trace鍛戒护鐨勪娇鐢ㄦ暀绋
    绛旓細Strace 鐨勭敤娉曚箣涓(闄や簡璋冭瘯鏌愪簺闂浠ュ)鏄綘鑳芥壘鍒拌涓涓▼搴忚鍙栫殑閰嶇疆鏂囦欢銆備緥濡傦紝浠g爜濡備笅:raghu@raghu-Linoxide ~ $ strace php 21 | grep php.ini 閫夐」2 璺熻釜鎸囧畾鐨绯荤粺璋冪敤 strace鍛戒护鐨-e閫夐」浠呬粎琚敤鏉ュ睍绀虹壒瀹氱殑绯荤粺璋冪敤(渚嬪锛宱pen锛寃rite绛夌瓑)璁╂垜浠窡韪竴涓媍at鍛戒护鐨勨榦pen鈥欑郴缁熻皟鐢ㄣ...
  • Linux绯荤粺涓璼trace鍛戒护鐨勪娇鐢ㄦ暀绋
    绛旓細strace鐨勫簲鐢ㄤ笉姝簬姝ゃ傛瘮濡傦紝閫氳繃涓巊rep缁撳悎锛屽彲浠ヨ拷韪猵hp绋嬪簭璇诲彇鐨刾hp.ini閰嶇疆鏂囦欢銆備娇鐢-e閫夐」锛屽彲浠ヨ仛鐒︿簬鐗瑰畾鐨绯荤粺璋冪敤锛屽open鎴杦rite銆傛澶栵紝strace杩樿兘瀵硅繍琛屼腑鐨勮繘绋嬭繘琛岃窡韪紝鎴栬呮彁渚涚郴缁熻皟鐢ㄧ殑缁熻姒傝锛屽寘鎷墽琛屾椂闂淬侀敊璇瓑淇℃伅銆傝緭鍑虹粨鏋滃彲浠ヤ繚瀛樺埌鏂囦欢锛屼究浜庡悗缁垎鏋愩傞夐」涓紝鏃堕棿鎴冲姛鑳戒篃闈...
  • 濡備綍浣跨敤strace璺熻釜骞剁粺璁Linux搴旂敤鐨绯荤粺璋冪敤鏃堕棿?
    绛旓細鍏蜂綋搴旂敤鏃讹紝鎴戜滑鍙互杩欐牱鎿嶄綔锛氳窡韪繘绋28979鐨勬墍鏈绯荤粺璋冪敤锛屽寘鎷墽琛屾椂闂达紝璁板綍鍦╫utput.txt鏂囦欢涓紝浣跨敤鍛戒护 [root@linuxcool ~]# strace -o output.txt -T -tt -e trace=all -p 28979銆傚鏋滆璺熻釜fork鍜寁fork浜х敓鐨勮繘绋嬶紝骞跺皢杈撳嚭淇濆瓨鍒皛/dcop-strace.txt锛屽彲浠ユ墽琛 [root@linuxcool ~]# ...
  • linux鍛戒护瑙f瀽鍣╨inux鍛戒护瑙f瀽
    绛旓細./configure--host=arm-linuxCC=arm-linux-gcc//閰嶇疆configure make//鐢熸垚strace鍛戒护鏂囦欢 鐒跺悗灏唖trace鍛戒护鏂囦欢,鏀惧叆鎴戜滑寮鍙戞澘鐨勬牴鐩綍/bin涓,渚胯兘浣跨敤浜 cpstrace/nfs_root/bin///nfs_root:寮鍙戞澘鐨刵fs绯荤粺鏍圭洰褰 3.strace鍛戒护浣跨敤 甯哥敤鍙傛暟濡備笅鎵绀:-o鎸囧畾璺熻釜淇℃伅鐨勮緭鍑烘枃浠 -t璁板綍璺熻釜淇℃伅鐨...
  • Linux鍛戒护搴旂敤澶ц瘝鍏linux鍛戒护搴旂敤
    绛旓細./configure--host=arm-linuxCC=arm-linux-gcc//閰嶇疆configure make//鐢熸垚strace鍛戒护鏂囦欢 鐒跺悗灏唖trace鍛戒护鏂囦欢,鏀惧叆鎴戜滑寮鍙戞澘鐨勬牴鐩綍/bin涓,渚胯兘浣跨敤浜 cpstrace/nfs_root/bin///nfs_root:寮鍙戞澘鐨刵fs绯荤粺鏍圭洰褰 3.strace鍛戒护浣跨敤 甯哥敤鍙傛暟濡備笅鎵绀:-o鎸囧畾璺熻釜淇℃伅鐨勮緭鍑烘枃浠 -t璁板綍璺熻釜淇℃伅鐨...
  • 鎴戠殑LINUX鏈嶅姟鍣ㄦ病鏈strace鍛戒护,CENTOS 5.6,鎬庝箞瀹夎瀹冨憿
    绛旓細鍙互浣跨敤yum -y install strace鏉ュ畨瑁咃紝centos绯荤粺瀹夎浣跨敤浣跨敤yum鍛戒护銆倅um鍛戒护璇存槑锛歽um鍛戒护鏄湪Fedora鍜孯edHat銆乧entos浠ュ強SUSE涓熀浜巖pm鐨勮蒋浠跺寘绠$悊鍣紝瀹冨彲浠ヤ娇绯荤粺绠$悊浜哄憳浜や簰鍜岃嚜鍔ㄥ寲鍦版洿缁嗕笌绠$悊RPM杞欢鍖咃紝鑳藉浠庢寚瀹氱殑鏈嶅姟鍣ㄨ嚜鍔ㄤ笅杞絉PM鍖呭苟涓斿畨瑁咃紝鍙互鑷姩澶勭悊渚濊禆鎬у叧绯伙紝骞朵笖涓娆″畨瑁呮墍鏈変緷璧栫殑...
  • linux璁板綍鍛戒护鐨勬棩蹇條inux璁板綍鍛戒护
    绛旓細last鍛戒护鍙互鐢ㄤ簬鏄剧ず鐢ㄦ埛鐧诲綍鎯呭喌銆傝繑鍥炵殑缁撴灉涓紝绗竴鍒椾负鐢ㄦ埛鍚嶏紝濡傛灉鐢ㄦ埛鍚嶄负reboot锛屽垯璇存槑鏄噸鍚傚洜姝ゅ彲浠ヨ仈鍚堜娇鐢╣rep鍛戒护杩囨护鍑烘墍鏈夌櫥褰曟儏鍐典腑閲嶅惎鐨勮褰曘傛煡鐪媗inux鐨勯噸鍚褰曪細last|grepreboot涓庝箣绫讳技鍙互鏌ョ湅Linux鐨勫叧鏈鸿褰曪細last|grepshutdown linux绯荤粺鏃ュ織鏀堕泦鍛戒护锛熷懡浠や负var/log/message銆傝褰...
  • Linux鏈変粈涔堣繘绋嬬鐞嗗懡浠
    绛旓細涓嬮潰涓夋潯鍛戒护閮藉彲浠ョ敤鏉ユ煡鐪嬭繘绋嬶細ps -lA 鏄崄鍒嗗父鐢ㄧ殑锛宭鍙傛暟鐢ㄤ簬鏄剧ず杩涚▼鐨勮缁嗕俊鎭紝A鍙傛暟鐢ㄤ簬鏄剧ず鎵鏈夌殑杩涚▼銆傚彲浠ラ厤鍚坓rep鍛戒护鏉ユ煡鎵剧壒瀹氱殑杩涚▼ top 鑳藉鏄剧ずCPU鍜屽唴瀛樼殑鍗犵敤鐜囷紝鐢ㄤ簬鍔ㄦ佺洃瑙嗛珮璧勬簮鍗犵敤 pstree 鐢ㄦ潵鏌ョ湅杩涚▼鐨勭埗瀛愬叧绯
  • 扩展阅读:javascript在线 ... 正版linux系统官网 ... kali linux手机直装版 ... kali linux手机版下载 ... linux系统基础入门教程 ... kali linux系统下载 ... 国外直播sdk ... linux系统游戏下载 ... 支持linux系统的游戏 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网