<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    Linux調試工具strace和gdb常用命令小結

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    strace和gdb是Linux環境下的兩個常用調試工具,這里是個人在使用過程中對這兩個工具常用參數的總結,留作日后查看使用。

    strace調試工具

    strace工具用于跟蹤進程執行時的系統調用和所接收的信號,包括參數、返回值、執行時間。在Linux中,用戶程序要訪問系統設備,必須由用戶態切換到內核態,這是通過系統調用發起并完成的。

    strace常用參數:

    -c  統計每種系統調用執行的時間、調用次數、出錯次數,程序退出時給出報告

    -p pid  跟蹤指定的進程,可以使用多個-p同時跟蹤多個進程

    -o filename  strace默認輸出到stdout,-o可以將輸出寫入到指定的文件

    -f  跟蹤由fork產生的子進程的系統調用

    -ff  常與-o選項一起使用,不同進程(子進程)產生的系統調用輸出到各個filename.pid文件中

    -F  嘗試跟蹤vfork子進程系統調用,注意:與-f同時使用時, vfork不被跟蹤

    -e expr  輸出過濾表達式,可以過濾掉不想輸出的strace結果

    -e trace=set  指定跟蹤set中的系統調用

    -e trace=network  跟蹤與網絡有關的所有系統調用

    -e strace=signal  跟蹤所有與系統信號有關的系統調用

    -e trace=ipc  跟蹤所有與進程通訊有關的系統調用

    -e signal=set  指定跟蹤set中的信號

    -e read=set  輸出從指定文件中讀出的數據,例如-e read=3,5

    -e write=set  輸出寫入到指定文件中的數據,例如-e write=1

    -r  打印每一個系統調用的相對時間

    -t  在輸出中的每一行前加上時間信息

    -tt  在輸出中的每一行前加上時間信息,時間精確到微秒級

    -ttt  在輸出中的每一行前加上時間信息,輸出為相對時間

    -s  指定每一行輸出字符串的長度(默認為32)

    strace使用舉例:

    strace -t whoami  #跟蹤whoami可執行程序,每行輸出結果前打印執行的時間

    strace -p 17151 -p 17152 -p 17153  #同時跟蹤進程17151、17152、17153

    strace -f -e trace=read,write -p 17151 -o log  #跟蹤進程17151及子進程中read和write系統調用,輸出到log文件

    gdb調試工具

    GDB是GNU開源組織發布的一個強大的UNIX下的程序調試工具。gcc編譯時加上-g參數,可以使可執行程序加上gdb調試信息。

    (1)info

    簡寫:i,列出gdb子命令的信息,如info break,info variables,info stack等。

    (2)list [file:]function

    簡寫:l,查看當前行的上下文,默認為10行,也可以設置在某個函數處列出源碼。

    (3)edit [file:]function

    簡寫:e,編輯當前所在的行,也可以編輯某個函數的源碼。

    (4)break [file:]function

    簡寫:b,設置斷點,可以設置在某行或某個函數處。

    (5)run [arglist]

    簡寫:r,運行程序至斷點處停住,run命令之后可以加上調試程序需要的參數。

    (6)next

    簡寫:n,單條語句執行。

    (7)continue

    簡寫:c,繼續運行程序至下一個斷點。

    (8)print

    簡寫:p,打印變量的值。

    (9)bt

    查看函數堆棧信息。

    (10)enter

    回車鍵,重復上一次調試命令。

    (11)help [name]

    顯示指定的gdb命令的幫助信息。

    (12)quit

    簡寫:q,退出gdb。

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全