我有一个可执行文件,我可以从中读取符号(所以看起来。)我的问题是:当运行时,我收到以下错误:
(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
进入这个链接:
https://sourceware.org/gdb/download/onlinedocs/gdb/Source-Path.html#Source-Path
我正在尝试更改源文件目录。 (源文件与可执行文件不在同一个位置,而是分布在不同的地方。)除非我弄错了,这样做的方法是:
(gdb) directory /home/usr/src/etcetera/etcetera/rootDirectoryForSourcefiles
让GDB搜索此目录。我甚至尝试将目录更改为源目录,然后运行但仍然,它想尝试可执行文件所在的位置。
我是否完全错过了这里的标记,或者这可能是非常模糊的?
注意如果你想对这个问题进行投票,我会很感激为什么这么说,所以我可以为未来做好准备
由于
答案 0 :(得分:1)
你正在咆哮错误的树。您的问题与源文件无关,而且与您的可执行文件文件有关。
它可能与您~/.gdbinit
,~/.bashrc
或您调用GDB的方式有关。
您应该首先进行基本的健全性检查:
env SHELL=/bin/sh gdb -nx /bin/date
(gdb) run
如果这不起作用,你的GDB安装就搞砸了。
如果确实有效,我上面提到的三件事之一很可能是你的麻烦的原因。
答案 1 :(得分:0)
我遇到了这个问题,结果发现shell没有在/etc/passwd
文件中正确设置。
要解决这个问题,我用
打开了文件sudo vipw
并将/bin/bash
添加到我帐户的数据中。
答案 2 :(得分:0)
尝试:
export SHELL = / bin / sh
在运行gdb之前
答案 3 :(得分:0)
我遇到了同样的问题。当我的
SHELL=/usr/local/bin/tcsh
但是我只有文件.cshrc
,gdb报告了相同的错误。
当我更改外壳时:
setenv SHELL /bin/csh
然后一切正常。