在gdb中顯示原始碼 gdbtui使用方法

2021-06-26 19:11:43 字數 1166 閱讀 6252

gdb除錯一直是乙個讓人頭疼的問題,我這個多年的linux使用者也一直不習慣gdb,主要是因為gdb在除錯的時候不能很好的展示原始碼。gdb裡面可以用list命令顯示原始碼,但是list顯示沒有**高亮,我忍了,可是list這種顯示**的方式,使得我總不能一眼定位到正在執行的那行**。

可以毫不誇張的說,這個問題是阻止我長期使用gdb的最大的障礙。這是如此的不便,以至於gnu都想辦法解決了————使用gdb自帶的gdbtui。

先來看一張效果圖,是我在使用gdbtui除錯mysql時的截圖,這樣看**比使用list命令方便多了吧。

下面正式介紹gdbtui。

最常用的也就是預設使用的方式,也可以通過layout命令來進行選擇自己需要的視窗,可參見help layout.

layout

用以修改視窗布局

help layout

layout src

layout

asmlayout split

winheight

調整各個視窗的高度。

help winheight

winheight src +5

winheight src

-4

space

當前視窗放大或者縮小以後,gdbtui視窗不會發生變化,我們可以通過space 鍵強行重新整理gdbtui視窗。

focus next / prev

在預設設定下,方向鍵和pageup pagedn 都是用來控制gdbtui的src視窗的,所以,我們常用的上下鍵用來顯示前一條命令和後一條命令的功能就沒有了, 不過這個時候我們可以通過ctrl + n / ctrl +p 來獲取這個功能。

ps:當我們通過方向鍵調整了gdbtui 的src 視窗以後,可以通過update命令重新把焦點定位到當前執行的**上。

我們可以通過focus命令來調整焦點位置,預設情況下是在src視窗,通過focus next命令, 焦點就移到cmd視窗了,這時候就可以像以前一樣,通過方向鍵來切換到上一條命令和下一條命令。

help focus

focus cmd

focus src

焦點不在src視窗以後,我們就不同通過方向鍵來瀏覽原始碼了。

在gdb中顯示原始碼 gdbtui使用方法

gdb除錯一直是乙個讓人頭疼的問題,我這個多年的linux使用者也一直不習慣gdb,主要是因為gdb在除錯的時候不能很好的展示原始碼。gdb裡面可以用list命令顯示原始碼,但是list顯示沒有 高亮,我忍了,可是list這種顯示 的方式,使得我總不能一眼定位到正在執行的那行 可以毫不誇張的說,這個...

c gdb 繫結原始碼 GDB列出原始碼

在使用 gdb 除錯程式時,我們會經常需要展示程式中的 但是列印出的 可能和原始檔中的不同,為什麼這麼說呢?我們在 gdb準備除錯階段 章節中講到過 gcc 編譯器允許 g和 o選項同時使用,也就是說 gdb 可以除錯優化後的程式。優化的程式中會在原始檔中的某些地方改變,所以和編寫的檔案和程式執行的...

使用gdb除錯nginx原始碼

葉劍峰 包含鏈結 這裡就不說了,谷歌一搜一堆,這裡推薦一篇文章 gdb 命令詳細解釋 請重點看一下step,run,break,list,info,continue命令 這裡使用nginx 1.0.14 src是源 auto資料夾是configure執行時候的各種命令集合 由於gdb需要gcc的時候...