c++ - gdb 在启动程序期间退出代码 127

标签 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,尝试从不同的目录运行......仍然相同。

你能帮我解决这个问题吗?

最佳答案

/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
    

    您可能有一个指向 /lib/ld-linux.so.2 的 32 位二进制文​​件。在未安装 32 位运行时支持的 64 位系统上。根据您使用的发行版,类似 sudo apt-get install libc6:i386应该做的伎俩。
    file 的最新版本命令还打印解释器:
    file ./a.out 
    ./a.out: ELF 32-bit LSB executable, ... interpreter /lib/ld-linux.so.2, ...
    

    关于c++ - gdb 在启动程序期间退出代码 127,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38021595/

    相关文章:

    debugging - NetLogo调试

    python - 我可以让 pdb 立即开始调试吗?

    linux - "thread apply all bt full"在 GDB 中给出空白

    c++ - 如何包含 mysql header ?

    c++ - malloc() 和虚函数有什么问题?

    java - Eclipse 中大量迭代后循环中的断点

    python - gdb PrettyPrinter 插件例程 StdStringPrinter 在处理 std::basic_string<wchar_t(,.*)?>$ 时崩溃

    c - 通过system()执行外部程序时的GDB断点

    C++ Winapi HWND 获取 WndProc 配置

    c++ - C++ 中的对象实例化类型