国产宅男网站在线|亚洲A级性爱免费视频|亚洲中精品级在线|午夜福利AA毛

  • <dd id="gf5jf"><th id="gf5jf"></th></dd>

    <cite id="gf5jf"><label id="gf5jf"></label></cite>
  • <div id="gf5jf"><listing id="gf5jf"></listing></div>
    學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > GDB基本命令從打開文件到調(diào)試結(jié)束的教程

    GDB基本命令從打開文件到調(diào)試結(jié)束的教程

    時間: 志藝942 分享

    GDB基本命令從打開文件到調(diào)試結(jié)束的教程

      基于ARM核的芯片具有低功耗、高性能的特點,廣泛應(yīng)用于嵌入式Linux產(chǎn)品中,系統(tǒng)內(nèi)核調(diào)試是建立系統(tǒng)軟件平臺的一個關(guān)鍵輔助技術(shù)。 接下來是小編為大家收集的GDB基本命令從打開文件到調(diào)試結(jié)束的教程,希望能幫到大家。

      GDB基本命令從打開文件到調(diào)試結(jié)束的教程

      事前準(zhǔn)備

      1 gcc -g -o 將原文件編譯成可以讓gdb調(diào)試的目標(biāo)文件

      2 gdb 打開要調(diào)試的目標(biāo)文件

      3 set args  設(shè)置參數(shù)

      或者run的時候用run 來實現(xiàn)

      4 show args 參看參數(shù)

      5 show environment 查看environment

      5 unset env 清除所有環(huán)境變量

      6 set environment 來設(shè)置一個環(huán)境變量VAR1

      設(shè)置/刪除斷點

      1 info sources 或 list  來查看文件,要不然都不知道應(yīng)該在哪里設(shè)置斷點

      2 查看斷點 info breakpoints

      3 break

      4 tbreak 設(shè)置臨時斷點,到達(dá)后被自動刪除

      5 enable

      enable delete

      enable once

      6 disable

      7 delete breakpoints  刪除斷點

      或單用delete而不加任何參數(shù)來刪除所有斷點

      ->斷點進階

      1 break test.c:5 設(shè)置斷點到指定文件

      2 break 在內(nèi)存某一個位置出暫停

      3 break if  來設(shè)置條件斷點

      4 condition  對已存在的斷點附上條件

      5 command 可以在第n個斷點出設(shè)置命令

      開始調(diào)試

      0 run 程序開始執(zhí)行

      1 step or s 單步執(zhí)行

      2 next or n非進入式單步執(zhí)行,就是說,當(dāng)調(diào)用其他函數(shù)時,不進入那個函數(shù)內(nèi)部

      3 finish 一直運行到函數(shù)返回

      4 until 運行到函數(shù)某一行

      5 continue or cont 執(zhí)行到下一個斷點或程序結(jié)束

      6 return  改變程序流程,直接結(jié)束當(dāng)前函數(shù),并將指定值返回

      設(shè)置變量

      set

      1 set i = 5 改變程序中一個變量的值

      2 set $i =5 來設(shè)置一個pdb環(huán)境里自己的變量,該變量獨立于程序,也就是說只有g(shù)db認(rèn)識

      獲取程序信息

      1 監(jiān)視變量

      print /fmt 打印信息

      fmt格式,有以下幾種

      ------------------------------

      x  十六進制

      ------------------------------

      d  十進制

      ------------------------------

      u 無符號數(shù)

      ------------------------------

      o 八進制

      ------------------------------

      t 二進制

      ------------------------------

      a 十六進制打印

      ------------------------------

      c 字符格式

      ------------------------------

      f 浮點數(shù)

      ------------------------------

      2 追蹤變量

      watch   追蹤被賦值動作 eg. i = 4;

      rwatch   追蹤讀動作 eg. b = i;

      awatch   追蹤所有動作

      del watchpoint .

      info display

      display

      show display

      del display

      3  監(jiān)視內(nèi)存

      x /

      Address可以是內(nèi)存地址或是指針,比如0x8799f000,p,&var

      fmt 由三部分組成 NFU,N表示要查看的長度,U為格式,其中有分為bhwg,分別表示以字節(jié),半字,字,雙字

      來顯示。

      eg.

      (gdb) x argv[0]

      0xbfffff61: 0x6d6f682f

      (gdb) x /10cb argv[0]

      0xbfffff61: 47 '/' 104 'h' 111 'o' 109 'm' 101 'e' 47 '/' 67 'C' 104 'h'

      0xbfffff69: 97 'a' 114 'r'

      (gdb) x /10tb

      12

      0xbfffff6b: 01101100 01100101 01110011 00101111

      01110111 01101111 01110010 01101011

      0xbfffff73: 01110000 01101100

      (gdb) x /10th

      0xbfffff7f:

      0110101101101111 0111010000101111 0110000100000000

      01100010000000110001100000000 0110010000000000 0110010100000000 0110011000000000

      0xbfffff8f: 0110011100000000 0101011000000000

      (gdb)

      4 查看總的frame信息

      backtrace 或者 bt

      說明:frame是函數(shù)調(diào)用時候所產(chǎn)生的堆棧,存儲函數(shù)被調(diào)用的信息

      5 選擇要查看的frame

      frame


    看了“GDB基本命令從打開文件到調(diào)試結(jié)束的教程”還想看:

    1.Linux系統(tǒng)中GDB功能匯總

    2.關(guān)于面試PHP常見的面試試題

    2805381