c - 在 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
这似乎是一个常见错误,但我尝试了其他推荐的解决方案,但没有奏效:
- 我已验证用户有权运行该程序,因为我可以使用“./program1”直接运行它
- 我已验证登录的用户帐户具有 root 权限
- 我已将目录更改为 .gdbinit 的文件夹并运行 chmod +x .gdbinit
- 还尝试在 .gdbinit 中添加“设置自动加载安全路径”
另一个线索是我也尝试使用 Visual Studio 代码运行,但我得到了同样的错误。但是,如果我坐在那里尝试 10 或 20 次,它最终会奏效。
有人知道会发生什么吗?
解决方案
推荐阅读
- python - 如果没有在 django 项目的 html 标记中分配 'action' 值,它仍然会呈现页面并将值提交到数据库,如何?
- java - spring-eureka-common mvn 依赖被替换了吗?
- java - Switch case 算法 Java 问题(需要一个新的 while 循环?)
- scripting - 自动热键中的滚动锁定和数字锁定图标通知 - AHK
- javascript - 在画布上显示 Google 字体
- python - 我如何使用 API 网关详细信息,基本上是与它关联的 lambda 函数内的环境详细信息?
- r - 如何解决 R 中的矢量化问题?
- microsoft-graph-api - 以编程方式在 Outlook.com 中创建日历事件,如 .ics
- sql-server - Update 中 WITH(ROWLOCK) 的使用
- database - DataGrip 中的虚假关系