gdb在启动程序中退出代码127

时间:2016-06-24 20:27:48

标签: c++ debugging gdb debian

想在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) 

我猜它应该是小学的。但我搜索了很多,最常见的答案是

$ export SHELL=/bin/bash

这没有用。我还尝试更改PATH以进行二进制文件执行,尝试从不同的目录运行...仍然相同。

你可以帮帮我吗?

4 个答案:

答案 0 :(得分:5)

  

/bin/bash: /usr/local/sbin/test: No such file or directory

这有两个常见原因:

  1. 文件/usr/local/sbin/test不存在
  2. 该文件确实存在,是一个动态链接的可执行文件,并且它指定的ELF解释器不存在。
  3. 对于#1,答案很明显:你需要一个文件来调试。

    对于#2,您可以找到文件所需的ELF解释器,如下所示:

    readelf -l /usr/local/sbin/test | grep interpreter
    

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

答案 1 :(得分:0)

这对我有用: 出口壳=路径

根据您的情况:

export SHELL = / usr / local / sbin / test

答案 2 :(得分:0)

这可能会对您有所帮助。允许所有用户在gdb之前执行这样的文件。

chmod +x file 

答案 3 :(得分:-2)

我在centos7上遇到了同样的问题,并通过安装gdb8.1解决了这个问题。