gdb偵錯工具

來源:互聯網
上載者:User
文章目錄
  • 1. 查看寄存器
  • 2. 查看彙編
  • 3. 去除GCC的Buffer Overflow Protect
  • 4. 查看記憶體中的值
  • 5. gdb執行一般流程
1. 查看寄存器

info registers
查看寄存器的情況。(除了浮點寄存器)
info all-registers
查看所有寄存器的情況。(包括浮點寄存器)
info registers ebp

查看所指定的寄存器的情況。

2. 查看彙編

disassemble func

3. 去除GCC的Buffer Overflow Protect

gcc -g -fno-stack-protector test.c -o test

4. 查看記憶體中的值

 

用gdb查看記憶體

格式: x /nfu <addr>

說明
x 是 examine 的縮寫

n表示要顯示的記憶體單元的個數

f表示顯示方式, 可取如下值
x 按十六進位格式顯示變數。
d 按十進位格式顯示變數。
u 按十進位格式顯示無符號整型。
o 按八進位格式顯示變數。
t 按二進位格式顯示變數。
a 按十六進位格式顯示變數。
i 指令地址格式
c 按字元格式設定顯示變數。
f 按浮點數格式顯示變數。

u表示一個地址單元的長度
b表示單位元組,
h表示雙位元組,
w表示四位元組,
g表示八位元組

5. gdb執行一般流程

$gcc -g test.c -o test          -- 調試編譯

$gdb                                 -- 啟動gdb

(gdb)file test                    -- 開啟被調試檔案test

(gdb)b 10                         -- 在第10行設定斷點

(gdb)b func                      -- 在函數func處設定斷點

(gdb)clear                         -- 清除所有斷點

(gdb)r                                -- 運行

(gdb)c                                -- 繼續運行

(gdb)n                                -- 執行下一條語句

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.