GDB执行错误:没有那个文件或目录。

3

我有一个可执行文件,我可以从中读取符号(看起来是这样的)。我的问题是:当要运行时,我会遇到以下错误:

(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 无法看到源文件GDB 找不到源文件,以及GDB 无法加载源文件
我找到了这个链接:https://sourceware.org/gdb/download/onlinedocs/gdb/Source-Path.html#Source-Path,并正在尝试更改源文件目录。(源文件不在可执行文件的相同位置,而是分散在许多不同的位置。)除非我弄错了,否则做这件事的方法是输入以下命令:(gdb)directory /home/usr/src/etcetera/etcetera/rootDirectoryForSourcefiles,并让GDB搜索该目录。我甚至尝试进入源目录,然后运行,但仍然要尝试可执行文件所在的位置。
我是否完全错过了一个明显的方法,还是这可能相当晦涩?
4个回答

1
你正在错误的方向上努力。你的问题与源文件没有任何关系,而与你的可执行文件有关。
可能与你的~/.gdbinit~/.bashrc或者调用GDB的方式有关。
你应该从做一个基本的合理性检查开始:
env SHELL=/bin/sh gdb -nx /bin/date
(gdb) run

如果这不奏效,那么您的GDB安装可能出了问题。
如果这奏效了,那么我上面提到的三件事情中很可能有一件是导致您困扰的原因。

1
是的,我的同事检查了一下我的~/.bashrc文件,发现有些问题。非常感谢! - user7396627

0

我曾经遇到过这个问题,后来发现在/etc/passwd文件中shell设置不正确。

为了解决这个问题,我打开了该文件并进行了修改。

sudo vipw

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


0

我曾遇到过同样的问题。当我的

SHELL=/usr/local/bin/tcsh

但是我只有一个文件.cshrc,gdb报告了同样的错误。

当我改变SHELL:

setenv SHELL /bin/csh

然后一切都顺利进行。


0
尝试:
在运行gdb之前,导出SHELL=/bin/sh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接