fork/exec : 不允许操作 Ubuntu 20.04
fork/exec : operation not permitted Ubuntu 20.04
尝试调试 go 应用程序时,我收到以下类似的错误消息。
我最初尝试使用以下 vscode launch.json:
调试简单的 golang 程序
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}"
}
]
}
我得到的是:
could not launch process: fork/exec /tmp/__debug_bin1874603807: operation not permitted
设置 "debugAdapter": "legacy"
会导致类似的结果:
could not launch process: fork/exec /home/user/test/__debug_bin: operation not permitted
从命令行启动 dlv 有相同的输出:
user@my-machine:~/test$ /home/user/go/bin/dlv debug
could not launch process: fork/exec /home/user/test/__debug_bin: operation not permitted
我测试过 /tmp 中的 运行 个文件是允许的;我尝试在 /etc/sysctl.d/10-ptrace.conf
中设置 kernel.yama.ptrace_scope = 0
因为我能找到的关于这个错误的所有信息都与 ptrace (https://github.com/go-delve/delve/issues/515).
有关
另外值得一提的是,命令以 root 身份运行:
user@my-machine:~/test$ su root
Password:
root@my-machine:/home/user/test# export PATH=$PATH:/usr/local/go/bin
root@my-machine:/home/user/test# go version
go version go1.17.6 linux/amd64
root@my-machine:/home/user/test# ../go/bin/dlv debug
Type 'help' for list of commands.
(dlv) quit
通过删除 dlv 二进制文件和 运行 go install github.com/go-delve/delve/cmd/dlv@latest
重新安装 dlv 没有帮助。我有一个全新的 Ubuntu Server 20.04 安装。
如何修复调试?
我发现设置 kernel.yama.ptrace_scope = 0
出于某种原因不起作用,但是 echo 0 > /proc/sys/kernel/yama/ptrace_scope
有所帮助
尝试调试 go 应用程序时,我收到以下类似的错误消息。
我最初尝试使用以下 vscode launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}"
}
]
}
我得到的是:
could not launch process: fork/exec /tmp/__debug_bin1874603807: operation not permitted
设置 "debugAdapter": "legacy"
会导致类似的结果:
could not launch process: fork/exec /home/user/test/__debug_bin: operation not permitted
从命令行启动 dlv 有相同的输出:
user@my-machine:~/test$ /home/user/go/bin/dlv debug could not launch process: fork/exec /home/user/test/__debug_bin: operation not permitted
我测试过 /tmp 中的 运行 个文件是允许的;我尝试在 /etc/sysctl.d/10-ptrace.conf
中设置 kernel.yama.ptrace_scope = 0
因为我能找到的关于这个错误的所有信息都与 ptrace (https://github.com/go-delve/delve/issues/515).
另外值得一提的是,命令以 root 身份运行:
user@my-machine:~/test$ su root
Password:
root@my-machine:/home/user/test# export PATH=$PATH:/usr/local/go/bin
root@my-machine:/home/user/test# go version
go version go1.17.6 linux/amd64
root@my-machine:/home/user/test# ../go/bin/dlv debug
Type 'help' for list of commands.
(dlv) quit
通过删除 dlv 二进制文件和 运行 go install github.com/go-delve/delve/cmd/dlv@latest
重新安装 dlv 没有帮助。我有一个全新的 Ubuntu Server 20.04 安装。
如何修复调试?
我发现设置 kernel.yama.ptrace_scope = 0
出于某种原因不起作用,但是 echo 0 > /proc/sys/kernel/yama/ptrace_scope
有所帮助