GDB загружает необъяснимый скрипт при запуске оболочки - PullRequest
0 голосов
/ 03 апреля 2019

На моем компьютере при запуске оболочки в GDB она выдает очень стандартную оболочку (выглядит как «bash-4.4 $») - игнорируя большинство переменных моего окружения. Настоящая проблема для меня заключается в том, что я не могу настроить переменную LD_LIBRARY_PATH по этой причине.

Больше постов на SO предлагает проверить .bashrc и .profile, я так и сделал. Я даже создал нового пользователя, и проблема сохраняется. Таким образом, GDB загружает некоторый скрипт, меняя PS1 и сбрасывая LD_LIBRARY_PATH. Тем не менее, я понятия не имею, какой процесс. По какой-то причине у Root такой проблемы нет.

Это работает:

delruej@delxps:~$ export LD_LIBRARY_PATH=Hello
delruej@delxps:~$ bash
delruej@delxps:~$ echo $LD_LIBRARY_PATH
Hello

Однако это не так:

delruej@delxps:~$ export LD_LIBRARY_PATH=Hello
delruej@delxps:~$ gdb
(gdb) shell
bash-4.4$ echo $LD_LIBRARY_PATH


Это должен быть какой-то скрипт, загружаемый каждым пользователем, но не пользователем root.

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

Я удалил GDB, удалил / usr / share / gdb /, переустановил и проблема была исправлена.

0 голосов
/ 04 апреля 2019

Итак, GDB загружает какой-то скрипт, меняя PS1 и сбрасывая LD_LIBRARY_PATH

Нет.GDB просто загружает ваш $SHELL, а ваш $SHELL по какой-то причине отменяет эти переменные среды.

Вам следует взглянуть на значения $SHELL и, возможно, $ENV.

Обратите внимание, что:

  1. Использование LD_LIBRARY_PATH обычно является ошибкой;Вы должны стремиться создавать свои программы так, чтобы они не требовали этого.
  2. Вы можете установить любую переменную окружения внутри GDB (вам не нужно наследовать их от родительской оболочки) с помощью(gdb) set env FOO bar.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...