gdb Во время запуска программа вышла с кодом 127

Вопрос: Хотелось использовать 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 Это не

Вопрос:

Хотелось использовать 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

Это две общие причины:

  1. файл /usr/local/sbin/test не существует
  2. файл существует, является динамически связанным исполняемым файлом, а интерпретатор 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.

Оцените статью
Добавить комментарий