Вопрос:
Хотелось использовать gdb в качестве отладчика в Linux Debian. Пытаясь запустить двоичный файл, я получаю следующее:
(gdb) r Starting program: /usr/local/sbin/test /bin/bash: /usr/local/sbin/test: No such file or directory During startup program exited with code 127. (gdb)
Думаю, это должно быть элементарно. Но я googled много, и наиболее общий ответ
$ export SHELL=/bin/bash
Это не помогает. Я также попытался изменить PATH для выполнения двоичных файлов, попытался запустить из другого каталога… Тем не менее.
Не могли бы вы мне помочь?
Лучший ответ:
/bin/bash: /usr/local/sbin/test: No such file or directory
Это две общие причины:
- файл /usr/local/sbin/test не существует
- файл существует, является динамически связанным исполняемым файлом, а интерпретатор ELF, который он задает, не существует.
Для # 1 ответ очевиден: вам нужен файл для отладки.
Для # 2 вы можете узнать, какой интерпретатор ELF требуется для этого файла так:
readelf -l /usr/local/sbin/test | grep interpreter
Вероятно, у вас есть 32-битный двоичный файл, указывающий на /lib/ld-linux.so.2 в 64-битной системе без установленной 32-битной поддержки. В зависимости от используемого вами дистрибутива, что-то вроде sudo apt-get install libc6:i386 должен делать трюк.
Ответ №1
У меня была такая же проблема на centos7, и я решил ее установить gdb8.1.