Исполняемый файл под GDB вызывает другой встроенный PythonLinux

Anonymous
Исполняемый файл под GDB вызывает другой встроенный Python

Сообщение Anonymous »

У меня есть код, встраивающий Python. Этот встроенный Python использует NumPy, и, следовательно, мне нужно явно загрузить libpython, чтобы NumPy работал.
Ведущий код написан на C++ (тесты в Google Test). Где-то есть ошибка, и я пытаюсь использовать gdb для отладки. Однако происходит что-то странное, поскольку встроенные версии различаются: когда я просто запускаю исполняемый файл и когда я запускаю исполняемый файл под GDB.
Я нахожу путь к libpython путем создания экземпляра модуля sysconfig в инициализированном встроенном Python, а затем с помощью sysconfig.get_config_var("LIBDIR").
Я записываю найденный путь в libpython< /code> затем я просто запускаю исполняемый файл:

Код: Выделить всё

Path to libpython is /home/dima/.conda/envs/um02-open-interfaces/lib
Когда я запускаю тот же исполняемый файл под GDB:

Код: Выделить всё

Path to libpython is /home/linuxbrew/.linuxbrew/opt/python@3.11/lib
Как запретить GDB изменять среду?

Подробнее здесь: https://stackoverflow.com/questions/782 ... ded-python

Вернуться в «Linux»