Настройка среды gdb при ее запуске через emacs

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

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

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

3 ответов


каково твое решение "Сокс"?

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

#!/usr/bin/env bash

source env.sourceme
gdb -i=mi 

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

set environment varname [=value]

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


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

(setenv "FOOBAR" "whatever")

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