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

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

  • <strong id="5koa6"></strong>
  • gdb命令簡介

    發表于:2007-05-25來源:作者:點擊數: 標簽:gdb貼在sir以前帖子
    以前貼在sir上的帖子,轉過來。 今天學習使用gdb,現總結如下: 關于斷點的命令: awatch: awatch用來為一個表達式設置觀察點,在表達式的值發生改變時,或者當表達式的值被讀取的時候,程序停止執行。 break: 用于在程序中設置斷點 break + 要設置斷點的行
    以前貼在sir上的帖子,轉過來。

    今天學習使用gdb,現總結如下:
    關于斷點的命令:
    awatch:
    awatch用來為一個表達式設置觀察點,在表達式的值發生改變時,或者當表達式的值被讀取的時候,程序停止執行。
    break:
    用于在程序中設置斷點 break + 要設置斷點的行號
    clear:
    用于清除斷點 clear + 要清除斷點的行號
    commands:
    用于為遇到斷點之后執行特定的指令而設置的 command + 斷點號
    如果commands 之后沒有斷點號,gdb會將最后一個設置的斷點編號作為默認值。
    condition:
    在滿足一定的條件時才在指定的行上設置斷點 condition 斷點編號 條件表達式
    delete:
    用于清除斷點和自動顯示的表達式的命令。與clear的不同之處:clear要給出斷點的行號,delete要給出斷點的編號。用clear命令清除斷點時gdb會給出提示,而用delete清除斷點時gdb不會給出任何提示
    disable:
    讓所設斷點暫時失效。如果要讓多個編號處的斷點失效可將編號之間用空格隔開
    enable:
    與disable 相對
    ignore:
    這條命令在一定范圍內忽略用戶設定的斷點 ignore N CONT
    tbreak:
    用于設置臨時斷點,所謂臨時斷點就是斷點只在設置之后起作用一次。
    watch:
    與awatch類似


    關于數據的命令:
    display:
    該命令用于顯示表達式的值,使用了該命令后,每當程序運行到斷點處都會顯示表達式的值。 display 表達式 如:display 5*j
    info display:
    用于顯示當前所有要顯示值的表達式的有關情況
    delete display:
    用于刪除一個要顯示值的表達式,調用這個命令刪除一個表達式后,被刪除的表達式將不被顯示。 delete display 1
    disable display:
    使一個要顯示的表達式暫時無效??捎衑nable重新使之有效
    enable display:
    反操作disable diplay
    undisplay:
    用于結束某個表達式值的顯示。同delete display功能相似
    whatis:
    顯示某個表達式的數據類型 如:whatis j
    print:
    用于打印表達式的值??梢源蛴却嬷袕哪硞€變量開始的一段區域的內容。$表示給定序號的前一個序號,$$表示給定序號的向前第2個序號。例如給定序號是5,那么$代表4,$$代表3.如果是print $表示 print 1
    print還可用于對變量賦值如print j=8;
    print打印內存中從某個部分開始的一塊連續空間的內容。如print 開始表達式@要打印的連續空間的大小
    ptype:
    用于給出類型的定義。疑問ptype與whatis的區別?
    set:
    set variable 用于為變量賦值 類似print set variable j=9 print j=9

    關于文件的命令
    add-shared-symbol-files:
    該命令用于從動態的連接映射的共享目標文件中裝入符號表。
    add-symbol-file:
    該命令用于從已經動態裝入的文件中裝入負號表。使用格式是:add-symbol-file FILE ADDR其中FILE給出的是動態裝入的文件的名稱,ADDR是文件中正文的起始地址。
    cd:
    改變當前工作目錄。
    core-file:
    使某個文件成為core dump
    directory:
    用來向源文件搜索目錄中添加一個目錄
    file:
    用來裝入待調試程序的命令。
    list:
    list的非空系數的幾種形式:
    LINENUM:當前文件的LINENUM行
    FILE:LINENUM: 指定文件的LINENUM行
    FUNCTION:當前文件的FUNCTION函數
    FILE:FUNCTION
    *ADDRESS列出包含該地址的文件
    list 起始行號 截止行號
    forward:
    用來從列表當前行開始向后查找第一個匹配某個字符串的程序行 forward 匹配的字符串
    load:
    該命令用于動態的向正在調試的程序中裝入文件,并記錄它的符號表,準備聯接
    path:
    該命令用于向目標文件的搜索路徑中增加目錄的,可以使用當前目錄的$cwd
    pwd:
    顯示當前工作路徑
    reverse-search:
    從列表當前行開始向前查找第一個匹配的字符串,查找到的行號保存在$_中
    search:
    同forward
    關于程序運行的命令:
    cont:
    使程序繼續執行
    handle:
    對信號設置處理函數。如:handle 信號 信號處理
    信號可以是符號,也可以是數字。如果用all來作參數,則意味著調試器接受除了(信號SIGTRAP和信號SIGINT)之外的所有信號
    處理函數:
    stop:如果信號發生重新進入調試器,并打印出提示信息;
    print:如果信號發生就打印一條提示信息
    pass:讓程序能看到這個信號發生
    jump:
    指定程序開始調試的指令和地址 jump 行號或是指令地址
    kill:
    結束當前程序的調試。
    next:
    繼續程序的運行,越過子程序調用
    nexti:
    用于單步執行一條語句中的一條指令,它會跟蹤到子程序的內部,next用于單步執行一條語句,而nexti用于單步執行一條指令,一條語句可能有幾條指令構成。
    step:
    用于執行一條語句的,也不越過子過程的調用
    stepi:
    用于執行一條指令的,它不越過子程序的調用,而是跟蹤到子過程的內部

    關于堆棧的命令:
    backtrace:
    用來打印棧偵指針的。backtrace 要打印的棧偵指針的個數
    frame:
    該命令用于打印棧偵的。frame 要打印的編號
    select-frame:
    指定要選擇的棧偵的編號。一般與info frame連用。

    info reg:查看寄存器使用情況。
    info stack:查看棧。
    where:查看當前位置。
    up:跳到上一層函數。
    down:與up相對。
    attach <進程號>:把當前高度的程序粘在某個進程上,用于調試運行中的進程。
    ptype <變量or數據類型>:查看變量或數據類型的定義。

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品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>