• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    使用truss實現在Solaris下定位方法

    發布: 2009-3-20 09:41 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 173次 | 進入軟件測試論壇討論

    領測軟件測試網 在Solaris下面,如果需要跟蹤系統的調用,以便查找和定位問題,truss是一個非常有用的命令,下面就對這個命令做詳細介紹。

    truss 命令
    用途

            跟蹤進程的系統調用、動態裝入的用戶級函數調用、接收的信號和造成的機器故障。

    語法

    truss [ -f] [ -c] [ -a] [ -l ] [ -d ] [ -D ] [ -e] [ -i] [ { -t | -x} [!] Syscall […] ] [ -s [!] Signal […] ] [ { -m }[!] Fault […]] [ { -r | -w} [!] FileDescriptor […] ] [ { -u } [!]LibraryName […]:: [!]FunctionName [ … ] ] [ -o Outfile] {Command| -p pid [. . . .]}

    描述
            truss 命令執行指定命令或附加在列出進程標識上,并產生對系統調用、接收的信號和進程造成的機器故障的跟蹤。每行跟蹤輸出報告 Fault 或 Signal 名稱或 Syscall 名稱和參數及返回值。系統庫定義的子例程對于內核的嚴格系統調用并不是必要的。truss 命令不報告這些子例程,而是報告子例程的基本系統調用。 可能的話,系統調用參數使用有關系統頭文件定義符號顯示。對于路徑名指針參數,truss 顯示指向的字符串。未定義的系統調用缺省顯示系統名稱、所有八個可能的變量及十六進制格式的返回值。

      當 -o 標志與 truss 一起使用,或標準錯誤改指向非終端文件時,truss 忽略掛斷、中斷和信號進程。它促進跟蹤交互式程序從終端獲得 interrupt 和 quit 信號。

            若跟蹤輸出保持指向終端或跟蹤現存過程(使用 -p 標志),truss 對 hangup、interrupt 和 quit 信號做出反應,釋放所有跟蹤進程并退出。它使用戶可終止過多的跟蹤輸出并釋放前現存進程。釋放進程繼續到功能恢復正常。

            對與含有一列變量的選項,名稱 all 可用作指定列表中所有可能成員的簡寫。以 ! 開頭的列表,選項含義是相反的(示例:排除而非跟蹤)。同一選項可能指定為多種表現形式。同一列表的相同名稱,后面的選項(右邊選項)覆蓋前面的選項(左邊選項)。

            除了頁面故障以外的所有機器故障均導致公布信號到發生故障進程。除了進程阻塞信號,每一機器故障報告后立即給出接收的信號報告。

            為避免與其它控制進程沖突,truss 不跟蹤由其檢測到并由帶有 /proc 接口的另一進程控制的進程。

            多進程跟蹤輸出不是按嚴格的時間順序產生。示例:管道讀取可以在相應的寫之前報告。然而每一進程輸出是嚴格按時間排序。跟蹤輸出含有制表符,且每八個位置設置標準制表符停止位。

            系統跟蹤子進程時可運行于每個用戶進程槽之外。這是因為跟蹤多個進程時,truss 作為所跟蹤進程的控制進程運行,將用于所給進程的進程槽數目加倍。運行多進程跟蹤之前應考慮通常系統強制的每個用戶 25 進程的限制。

            處理多個進程時,truss 使用共享內存和信號。例如:在多進程標識下使用 -f 標志和 -p 標志。需要的話,跟蹤可運行于非配置系統中。這些情況下,truss 生成警告消息并繼續跟蹤。然而跟蹤輸出可能斷章取義,-c 標志輸出僅報告頂級命令或第一個進程標識,不計數子進程。

            操作系統為進程跟蹤強加某種安全性限制。必須有跟蹤命令的存取特權。 set-uid 和 set-gid 進程僅可由特權用戶跟蹤。除由特權用戶運行外,truss 命令無法控制執行 set-id 或不可讀對象代碼的進程。這些未跟蹤的進程從執行點保持正常并與 truss 無關。

            truss 輸出提到的輕量級進程(LWP)是真正的內核線程。選項 -l 在每行跟蹤輸出顯示 LWP 標識(即線程標識)。

            AIX 庫的用戶庫函數有靜態和動態兩種裝入函數調用。選項 -u 跟蹤僅用于動態裝入函數調用。

      -u 選項提供動態裝入函數調用的用戶級函數調用跟蹤。此選項產生函數調用的進入/退出跟蹤。

      標志

      -a 顯示在每一執行系統調用中傳遞的參數字符串。

      -c 計數跟蹤系統調用、故障和信號而不是逐行顯示跟蹤結果。跟蹤命令終止或 truss 中斷時生成摘要報告。若還使用 -f 標志,計數包含所有跟蹤的系統調用、故障和子進程信號。

      -d 每行輸出包含時間戳記。時間從跟蹤開始以每秒顯示。跟蹤輸出的第一行顯示測量單個時間戳記的基本時間。缺省不顯示時間戳記。

      -D 每行輸出顯示增量時間。增量時間表示從由該線程引起的最后報告事件起計時引起事件的 LWP 的逝去時間。缺省不顯示增量時間。

     

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: Solaris truss

    41/41234>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>