Видео ролики бесплатно онлайн

Смотреть мультики видео

Официальный сайт rnns 24/7/365

Смотреть видео бесплатно

14.08.09 23:00 h0rr0rr_drag0n

VimИспользование отладчика gdb в Vim’e

При использовании Vim’a как IDE иногда возникает потребность вызвать отладчик для исполняемого файла открытого проекта. Интеграция gdb и vim’а возможна разными способами: путем накладывания патча или использования специального плагина. Я пошел своим путем и сделал простенький скрипт для использования отладчика вместе с вимом.

Скрипт должен быть запущен из вима (:!./script.sh). После запуска он получает список исполняемых файлов в рабочем каталоге (каталог, в котором содержится открытый в vim’е файл) и исключает из этого списка скрипты для шелла и перловые скрипты. Впрочем, если вы владеете языком регулярных выражений, то можете исключить любые другие исполняемые файлы с известным расширением.

Далее, если исполняемый файл только один – он сразу запускается в отладчике. Если файлов несколько – выводится их список и нужно выбрать необходимый исполняемый файл.

Отладчик запускается в отдельном эмуляторе терминала, исполняемый файл которого указывается пользователем в переменной TERMINAL.

Код скрипта gdb.sh:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65


#!/bin/sh

 

# Получаем список исполняемых файлов в текущем каталоге

# не являющихся скриптами

TEMPFILE="/tmp/gdb.tempfile"

find . -executable -type f | egrep -v '.+\.(sh)|(perl)|(bash)' > $TEMPFILE

 

# если файл один - сразу начинаем его дебажить

if [ `cat $TEMPFILE | wc -l` -eq "0" ]; then

        echo "No executable files found!"

        exit 1

elif [ `cat $TEMPFILE | wc -l` -eq "1" ]; then

        FILENAME=`cat $TEMPFILE`

else

        cat -b $TEMPFILE

        echo "Enter number of executable file for debugging:"

        read FILENO

        if [ "`echo $FILENO | perl -ne 'if(m/\d+/) {print}'`" != "`echo $FILENO`" ]; then

                echo "You enter invalid number! Bye."

                exit 2

        fi

        FILENAME=`cat $TEMPFILE | sed -n "$FILENO"'p'`

        if [ ! -n "$FILENAME" ]; then

                echo "You number is not in valid space!"

                exit 3

        fi

fi

 

rm -f $TEMPFILE

TERMINAL=gnome-terminal

$TERMINAL -e "gdb --tui $FILENAME" -t 'VIM: GDB - Debugging'

 


Можно забиндить вызов этого скрипта на любую удобную кнопку в .vimrc
1
2
3
4
5
6
7
8
9


" Запуск дебаггера


imap  :!~/.vim/gdb.sh

nmap  :!~/.vim/gdb.sh

 


Скриншот работы всего этого хозяйства:

По материалам блога Дракон-линуксоид


Теги:

digiwhite 17.08.09 06:47 # +0
Чего-то скриншот то у меня не показывает.
h0rr0rr_drag0n 17.08.09 08:30 # +0
Проблемы с хостингом фотографий.
Вот еще одна ссылка: http://h0rr0rr-drag0n.spb.ru/wp-content/uploads/2009/08/snimok42-300x187.png
h0rr0rr_drag0n 17.08.09 08:31 # +0
Блджад: http://h0rr0rr-drag0n.spb.ru/wp-content/uploads/2009/08/snimok42.png

Лучшие блоги (все 121)
Топ пользователей Топ блогов
Топ пользователей Топ блогов
Элита (все 2120 из 174 городов)
Топ пользователей Топ блогов
В сети: doraneko, shidoh, kote

Новенькие: begemotor, absent, veksha, ebaranov, goganchic
welinux.ru

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн