Настройка среды GDB при запуске через emacs - PullRequest
7 голосов
/ 12 марта 2012

У меня есть программа, которую я хотел бы отладить с помощью gdb через emacs. Для того, чтобы запустить версии этой программы для разработки, у меня есть сценарий оболочки, который я могу создать, который настраивает вызывающую среду для просмотра нужных библиотек и т. Д. Я не могу разобраться, как попросить emacs / gud получить этот источник. файл перед выполнением GDB.

Я пытался использовать команду типа "source env.sourceme && gdb my_program", но emacs жалуется, что не знает, что означает "источник". Я думаю, что на самом деле GDB не запускается в оболочке, поэтому подобные трюки не сработают.

Итак, как я могу убедить gud / emacs / что угодно запустить gdb в моей пользовательской среде? У меня есть хакерское решение, но я чувствую, что что-то упустил.

Ответы [ 3 ]

5 голосов
/ 13 марта 2012

GDB имеет собственный синтаксис для установки переменных среды :

set environment varname [=value]

Вместо сценария оболочки запишите определения переменных в файл с использованием приведенного выше синтаксиса, а затем source файл из запущенного сеанса GDB. Обратите внимание, что это не встроенная команда bash source, а собственная gdb , поэтому определения переменных среды в стиле bash не будут работать.

3 голосов
/ 12 марта 2012

Какое у вас хакерское решение?

Почему бы вам просто не иметь скрипт-обёртку, который получает env.sourceme и затем запускает gdb?

#!/usr/bin/env bash

source env.sourceme
gdb -i=mi $1
3 голосов
/ 12 марта 2012

Вы можете изменить среду Emacs, используя setenv, в интерактивном режиме (M-x setenv) или программно:

(setenv "FOOBAR" "whatever")

Когда вы запустите gud-gdb, все, что вы установили с помощью setenv, будет переданок процессу gdb.

...