首页 > 解决方案 > 在 Vagrant Linux 环境中在 gdb 调试器中运行程序导致 Permission Denied 错误 126

问题描述

我有一个在 Linux Ubuntu 18.04 中运行的 Vagrant 虚拟机。我已经编译了一个程序(我们称之为 program1),它有多个文件和几个库。所有的代码、库和编译的可执行文件都在同一个目录中。该代码与我的 make 文件编译得很好,该文件包含它编译的每个文件的“-g”标志。我可以毫无问题地使用命令“./program1”运行 program1。以下是我用来启动调试器的命令:

gdb ./program1
run

执行上面的“运行”命令后,出现以下错误:

/bin/bash: /vagrant/pr1/program1: Permission denied
/bin/bash: line 0: exec: /vagrant/pr1/program1: cannot execute: Permission denied
During startup program exited with code 126

这似乎是一个常见错误,但我尝试了其他推荐的解决方案,但没有奏效:

  1. 我已验证用户有权运行该程序,因为我可以使用“./program1”直接运行它
  2. 我已验证登录的用户帐户具有 root 权限
  3. 我已将目录更改为 .gdbinit 的文件夹并运行 chmod +x .gdbinit
  4. 还尝试在 .gdbinit 中添加“设置自动加载安全路径”

另一个线索是我也尝试使用 Visual Studio 代码运行,但我得到了同样的错误。但是,如果我坐在那里尝试 10 或 20 次,它最终会奏效。

有人知道会发生什么吗?

标签: clinuxubuntugdbvagrant

解决方案


推荐阅读