![Ptrace:安装在 Multiarch/Qemu-User-Static Arm64v8/Alpine Docker 容器上的 GDB 中未实现功能](https://linux22.com/image/184250/Ptrace%EF%BC%9A%E5%AE%89%E8%A3%85%E5%9C%A8%20Multiarch%2FQemu-User-Static%20Arm64v8%2FAlpine%20Docker%20%E5%AE%B9%E5%99%A8%E4%B8%8A%E7%9A%84%20GDB%20%E4%B8%AD%E6%9C%AA%E5%AE%9E%E7%8E%B0%E5%8A%9F%E8%83%BD.png)
我想使用安装在 x86_64 16.04 Ubuntu VirtualBox 上的 arm64v8/alpine docker 上的 GDB 来调试 aarch64 ELF,该虚拟机本身安装在我的 Mac 上。特别是,要设置 docker,我使用了说明这里。那是:
sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
sudo docker run --rm -it -v /directory_on_ubuntu:/directory_on_alpine arm64v8/alpine /bin/ash
我安装GDB
在 alpine 容器上,并使用 alpine 中的命令获取进程PID
,在我收到警告时使用它附加到它。我已经阅读了和标签上的帖子,但第一行中的标签不应该照顾泊坞窗的安全方面吗?我还查看了容器和主机上的文件,并将值设置为 0。还值得一提的是,当变量位于主机上时,我在容器上没有找到任何文件。但我觉得没有被实施意味着可能有一个更大的问题与我设置泊坞窗的方式有关。任何有关调试二进制文件的帮助或解决方法都值得赞赏。ELF
ps aux
(gdb) attach PID
ptrace: Function not implemented
--cap-add=SYS_PTRACE
seccomp
privileged
/proc/sys/kernel/yama/ptrace_scope
Ubuntu
/etc/sysctl.d/10-ptrace.conf
alpine
Ubuntu
kernel.yama.ptrace_scope=0
ptrace
GDB