search
LoginSignup
11

More than 3 years have passed since last update.

posted at

updated at

vimでGDBを使おう

驚いたあまりこの記事を書くことにしました。

頑張ってGDBのプラグインを探してたが、vim単体でGDBを使えるのは感動感激です。

忙しい人のためにvimでGDBを手軽に始める方法をご紹介します。(手抜き記事です)

前提

vimでGDBを使うにはvim 8.1.X以上のバージョンで使えます。

.vimrcに次のように追加します

.vimrc
packadd termdebug 
'マウスを使用
set mouse=a
let g:termdebug_wide = 163

余談ですが、初めてvimのマウス操作が楽しいと思いました。

サンプルコード

一応使ったサンプルのCソースを置いときますね
timmer.c
#include <stdio.h>
#include <time.h>
#include <sys/time.h>

int main() {
    struct timeval myTime;    
    struct tm *time_st;       
    const char weekName[7][4] = {   
        "Sun",
        "Mon",
        "Tue",
        "Wed",
        "Thu",
        "Fri",
        "Sat"
    };
    gettimeofday(&myTime, NULL);    

    for(int i = 0; i < 3; i++){
        time_st = localtime(&myTime.tv_sec);    
        printf("Date : %d/%02d/%02d(%s) %02d:%02d:%02d.%06d\n",     
                time_st->tm_year+1900,     
                time_st->tm_mon+1,         
                time_st->tm_mday,          
                weekName[time_st->tm_wday],
                time_st->tm_hour,          
                time_st->tm_min,           
                time_st->tm_sec,           
                myTime.tv_usec            
              );

    }
}

ソースコードをコンパイルをしてあげます。

gcc -g3 -o timmer timmer.c

実際動作

vimでtimmer.cを開きます。
デバッグを開始するには :Termdebug または :TermdebugCommand に続けてコマン
ド名を入力します。例:
:Termdebug ./timmer

そこからの動作は次のとおりです。
ああ〜〜なんという素晴らしい!!
Peek 2019-03-02 12-51.gif

ちなみにここに書かれている物は日本語ドキュメントに乗っています。
詳しく知りたければ、ご覧ください → https://vim-jp.org/vimdoc-ja/terminal.html#terminal-debug

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
11