gdb在启动程序期间退出,代码为127

hum*_*me1 2 c++ debugging debian gdb

想要在Linux Debian中将gdb用作调试器。尝试运行二进制文件,我得到以下信息:

(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) 
Run Code Online (Sandbox Code Playgroud)

我猜应该是基本的。但是我用谷歌搜索了很多,最常见的答案是

$ export SHELL=/bin/bash
Run Code Online (Sandbox Code Playgroud)

这没有帮助。我还尝试更改二进制执行的PATH,尝试从其他目录运行...仍然相同。

你能帮我吗?

Emp*_*ian 7

/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
Run Code Online (Sandbox Code Playgroud)

您可能/lib/ld-linux.so.2在没有安装32位运行时支持的64位系统上指向32位二进制文​​件。根据您使用的发行版,类似的方法sudo apt-get install libc6:i386可以解决问题。