【问题标题】:GDB exec Error: No such file or directoryGDB exec 错误:没有这样的文件或目录
【发布时间】:2018-07-31 11:20:29
【问题描述】:

我有一个可执行文件,我可以从中读取符号(看起来如此)。我的问题是:运行时出现以下错误:

(gdb) run Starting program: /home/usr/src/etcetera/etcetera/bin/theExecutable.exe Cannot exec -c exec /home/usr/src/etcetera/etcetera/bin/theExecutable.exe. Error: No such file or directory During startup program exited with code 127

显然,我在这里编辑了目录。我搜索了如何在 SO 上解决此问题,并尝试了以下一些解决方案:

gdb cannot see source file

GDB can't find source file

gdb can not load source file?

进入此链接:

https://sourceware.org/gdb/download/onlinedocs/gdb/Source-Path.html#Source-Path

并且正在尝试更改源文件目录。 (源文件与可执行文件不在同一位置,而是分布在一系列不同的地方。)除非我弄错了,否则这样做的方法是:

(gdb) directory /home/usr/src/etcetera/etcetera/rootDirectoryForSourcefiles

并让 GDB 搜索此目录。我什至尝试将目录更改为源目录,然后运行,但它仍然想尝试可执行文件所在的位置。

我是否以一种明显的方式完全错过了这里的标记,或者这可能很模糊?

注意如果您想对这个问题投反对票,我希望您能解释一下原因,以便将来改进

谢谢

【问题讨论】:

    标签: c++ linux gdb


    【解决方案1】:

    你找错树了。您的问题与源文件无关,与您的 executable 文件有关。

    它可能与您的~/.gdbinit~/.bashrc 中的某些内容或您调用 GDB 的方式有关。

    您应该首先进行基本的健全性检查:

    env SHELL=/bin/sh gdb -nx /bin/date
    (gdb) run
    

    如果这不起作用,您的 GDB 安装就搞砸了。

    如果这确实有效,那么我上面提到的三件事之一很可能是造成您麻烦的原因。

    【讨论】:

    • 是的,一位同事查看了我的~/.bashrc 并且有一些很奇怪的东西。非常感谢!
    【解决方案2】:

    我遇到了这个问题,结果发现 /etc/passwd 文件中的 shell 设置不正确。

    为了解决这个问题,我打开了文件

    sudo vipw
    

    并在那里将/bin/bash 添加到我的帐户数据中。

    【讨论】:

      【解决方案3】:

      尝试:

      导出 SHELL=/bin/sh

      在运行 gdb 之前

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题。当我的

        SHELL=/usr/local/bin/tcsh
        

        但我只有文件.cshrc,gdb报同样的错误。

        当我更换 SHELL 时:

        setenv SHELL /bin/csh
        

        然后一切顺利。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-03-07
          • 1970-01-01
          • 2020-08-05
          • 2019-09-06
          • 2021-10-31
          • 1970-01-01
          • 2020-04-09
          • 2019-03-04
          相关资源
          最近更新 更多