国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

迅為3399開發板Android系統-使用strace跟蹤系統調用

發布時間:2021-10-9 13:25    發布者:落風
1 什么是 strace
strace 常用來跟蹤進程執行時的系統調用和所接收的信號。在 Linux 世界,進程不能直接訪問硬件設備,當進程需要訪問硬件設備(比如讀取磁盤文件,接收網絡數據等等)時,必須由用戶態模式切換至內核態模式,通過系統調用訪問硬件設備。
strace 可以跟蹤到一個進程產生的系統調用,包括參數,返回值,執行消耗的時間。
2 什么是系統調用
系統調用(英語:system call),又稱為系統呼叫,指運行在用戶空間的程序向操作系統內核請求需要更高權限運行的服務。系統調用提供用戶程序與操作系統之間的接口。操作系統的進程空間分為用戶空間和內核空間:
 操作系統內核直接運行在硬件上,提供設備管理、內存管理、任務調度等功能。
 用戶空間通過 API 請求內核空間的服務來完成其功能——內核提供給用戶空間的這些 API, 就是系統調用
Linux 內核目前有 300 多個系統調用,詳細的列表可以通過 syscalls 手冊頁查看。這些系統調用主要分為幾類:
文件和設備訪問類 比如 open/close/read/write/chmod 等
進程管理類 fork/clone/execve/exit/getpid 等
信號類 signal/sigaction/kill 等
內存管理 brk/mmap/mlock 等
進程間通信 IPC shmget/semget * 信號量,共享內存,消息隊列等
網絡通信 socket/connect/sendto/sendmsg 等
其他
查看系統調用幫助手冊 man 2 函數名,例如下圖所示:


3 strace 的應用場景
基于特定的系統調用或系統調用組進行過濾
通過統計特定系統調用的使用次數,所花費的時間,以及成功和錯誤的數量來分析系統調用的使用。
它跟蹤發送到進程的信號。
通過 pid 附加到任何正在運行的進程。
調試性能問題,查看系統調用的頻率,找出耗時的程序段
查看程序讀取的是哪些文件從而定位比如配置文件加載錯誤問題
當程序出現“Out of memory”時被系統發出的 SIGKILL 信息所 kill
另外因為 strace 拿到的是系統調用相關信息,一般也即是 IO 操作信息,這個對于排查比如 cpu 占用 100%問題是無能為力的。這個時候就可以使用 GDB 工具了。

4 命令參數
我們輸入以下命令,可以查看 strace 命令的參數。
strace -h
-c 統計每一系統調用的所執行的時間,次數和出錯的次數等. -d 輸出 strace 關于標準錯誤的調試信息. -f 跟蹤由 fork 調用所產生的子進程. -ff 如果提供-o filename,則所有進程的跟蹤結果輸出到相應的 filename.pid 中,pid 是各進程的進程號. -F 嘗試跟蹤 vfork 調用.在-f 時,vfork 不被跟蹤. -h 輸出簡要的幫助信息. -i 輸出系統調用的入口指針. -q 禁止輸出關于脫離的消息. -r 打印出相對時間關于,,每一個系統調用. -t 在輸出中的每一行前加上時間信息. -tt 在輸出中的每一行前加上時間信息,微秒級. -ttt 微秒級輸出,以秒了表示時間. -T 顯示每一調用所耗的時間. -v 輸出所有的系統調用.一些調用關于環境變量,狀態,輸入輸出等調用由于使用頻繁,默認不輸出. -V 輸出 strace 的版本信息. -x 以十六進制形式輸出非標準字符串
-xx 所有字符串以十六進制形式輸出. -a column 設置返回值的輸出位置.默認 為 40.

5 實用示例
1 跟蹤已經在運行的進程,使用-p 選項能用在運行的進程上,輸入以下命令:
strace -p 進程號
2 通過 strace 啟動要跟蹤的進程,./hello.sh 是要運行的文件,大家可以根據自己的需求自定義,如下所示:
strace ./hello.sh


本文地址:http://www.4huy16.com/thread-775829-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Microchip第22屆中國技術精英年會——采訪篇
  • 技術熱潮席卷三城,2025 Microchip中國技術精英年會圓滿收官!
  • Microchip第22屆中國技術精英年會上海首站開幕
  • 常見深度學習模型介紹及應用培訓教程
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表