16
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

vimでGDBを使おう

Last updated at Posted at 2019-03-02

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

頑張って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

16
11
0

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
  3. You can use dark theme
What you can do with signing up
16
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?