Ответ 1
Nevermind, я нашел, как это сделать, используя скрипты Python.
Теперь мой файл .gdbinit
:
python
import os
gdb.execute('directory' + os.environ['SOURCES'] + '/package_name/src')
end
show directories
Я хочу настроить путь для исходного кода при отладке с помощью gdb. Я решил сделать это с помощью файла .gdbinit.
В основном, он содержит команду:
directory="/path/to/src".
Однако я хотел бы указать эту команду как:
directory="$SOURCESROOT/src"
где SOURCESROOT
- переменная среды. И, если возможно, возможность сделать это внутри сеанса дедупликации gdb, введя directory=$SOURCESROOT/folder
.
В принципе, я ищу для доступа к внешним переменным среды gdb (или внутри .gdbinit).
Но не среда дебюта (set env и т.д.), а среда самого gdb (т.е. подсказки bash, где я печатаю в первую очередь "gdb-программу" ).
При вводе shell $SOURCESROOT
внутри сеанса gdb отображается содержимое переменной среды, это совершенно бесполезно, поскольку я не могу ввести: directory=shell $SOURCESROOT
.
Nevermind, я нашел, как это сделать, используя скрипты Python.
Теперь мой файл .gdbinit
:
python
import os
gdb.execute('directory' + os.environ['SOURCES'] + '/package_name/src')
end
show directories
Если вы не хотите включать python, это может сработать?
"show environment [varname] Распечатайте значение переменной среды varname, которое будет передано вашей программе при ее запуске. Если вы не укажете varname, напечатайте имена и значения всех переменных среды, которые будут переданы вашей программе. Вы можете сокращать среду как env. "
ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_19.html
Возможно, они могут быть использованы и для условий:
(6 лет спустя!)
Не используйте .gdbinit
для этой цели. Он не расширяет env vars. Вместо этого используйте эту командную строку для запуска gdb:
gdb --init-eval-command="set dir $SOURCESROOT/src"
(gdb) show dir
/path/to/src
FYI этот метод может использоваться для установки других критических переменных, например
gdb --eval-command="set sysroot $SYSROOTDIR"
Что устанавливает sysroot
и solib-absolute-prefix
в gdb