Попытка запустить отладку в gdb завершается с кодом 1

Пытаюсь освоить gdb по туториалу из книжки.
Написал простейший helloworld на C, скомпилил GCC без дополнительных аргументов.

Запускаю, gdb -q ./a.out, Затем когда я делаю

(gdb) b main 
Breakpoint 1 at 0x113d
(gdb) run
Starting program: /run/media/source/a.out 
exec: The term 'exec' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
During startup program exited with code 1.

Тут явно ошибка, связанная с тем что что-то в gdb запускается в powershell а не bash (у меня дефолтный шелл - powershell, но дело происходит на linux). Однако эта ошибка точно так же воспроизводится и при запуске из bash. Как её решить?


Ответы (1 шт):

Автор решения: Fat-Zer

Как мельком замечается в документации gdb (вольный перевод):

На Unix-системах GDB запускает ваши программы с помощью оболочки, указанной в переменной среды SHELL, если она задана (или /bin/sh в противном случае).

т.о. для корректной работы при запуске gdb в переменной среды SHELL должна быть указана маломальски posix-совместимая оболочка. это можно сделать, запустив gdb как-то так:

SHELL=/bin/bash gdb -q ./a.out
→ Ссылка