日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux vim debugger,Vim 调试:termdebug 入门

發布時間:2024/7/19 linux 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux vim debugger,Vim 调试:termdebug 入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

termdebug 是從 Vim 8.1 開始內置的調試插件,僅支持 GDB。

本教程僅在 Linux 下(Ubuntu 16.04)測試通過。

安裝

將 Vim 升級至 8.1 或以上版本。

GDB 需升級至 7.12 或以上版本。

啟動

默認情況下需手動加載 termdebug 插件:

:packadd termdebug

假設我們有一個簡單的 helloworld.cpp 文件:

#include

using namespace std;

int main() {

cout << "hello world" << endl;

int in;

cin >> in;

cout << "you input " << in << endl;

return 0;

}

我們將其編譯為二進制文件 helloworld:

g++ -g helloworld.cpp -o helloworld

現在,我們在 Vim 中啟動 termdebug 來調試這個程序:

:Termdebug helloworld

這時 termdebug 會為我們開三個窗口。

其中, GDB 窗口提供 GDB 原生操作;程序窗口供被調試程序使用,提供 IO 功能;源碼窗口提供源碼交互。

在 GUI 版本的 Vim (如 gvim)中,源碼窗口還提供交互按鈕:

我們可以通過 按鍵切換不同窗口。

調試程序

我們既可以在 GDB 窗口中調試,也可以在源碼窗口中調試。

GDB 調試常用指令:

- file bin 加載名為 bin 的二進制文件

- CTRL-C 中斷程序

- run/r 運行

- next/n 執行當前行,停在下一行 (step over)

- step/s 執行當前行,進入下一層函數 (step in)

- finish 執行直至離開當前函數

- where 顯示棧

- continue/c 繼續執行

- break/b N 在第 N 行加斷點

- break/b f 在函數 f 處加斷點

- delete 刪除所有斷點

更多 GDB 使用方法請參考官方文檔: https://sourceware.org/gdb/current/onlinedocs/gdb/

在源碼窗口中的調試指令:

:Run [args] 運行程序,可帶參數 [args],或沿用上一次運行的參數

:Arguments {args} 設置下一次運行所用參數

:Break 在當前行加斷點

:Clear 刪除當前行的一個斷點

:Step = gdb "step"

:Over = gdb "next"

:Finish = gdb "finish"

:Continue = gdb "continue"

:Stop 中斷程序

如果覺得手動輸入調試指令太麻煩,可以在個人的 .vimrc 文件中自定義 keymap 來執行這些命令,如用 來添加斷點:

nnoremap :Break

現在我們來演示一下調試上面的已經加載好的 helloworld 程序:

先移動至 GDB 窗口,輸入 b main 以在 main 函數入口處添加斷點;

在 GDB 窗口輸入 r,程序開始運行,并停在 main 函數入口;

在 GDB 窗口輸入 n,程序停在 cout << "hello world" << endl; 這一行;

移動至源碼窗口,輸入 :Continue,程序繼續運行,并在 cin >> in 處等待用戶輸入;

移動至程序窗口(IO窗口),輸入數字 3 并回車,可以看到程序輸出 you input 3,并運行直至結束;

移動至 GDB 窗口,輸入 q,退出調試。

獲取幫助文檔

在 Vim 窗口中輸入 :h terminal-debug 閱讀詳細的幫助文檔。

總結

以上是生活随笔為你收集整理的linux vim debugger,Vim 调试:termdebug 入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。