Macos 如何在docker for mac的centos容器中使用systemtap(stap)

Macos 如何在docker for mac的centos容器中使用systemtap(stap),macos,docker,module,load,systemtap,Macos,Docker,Module,Load,Systemtap,当我使用stap时,它会告诉我这个错误作为图像,我如何修复它 我真的不知道为什么这个问题被否决了一次。当我感到担忧时,downvotter是我在stackoverflow上总是犹豫问问题的原因之一 因此,我对ubuntu下的一个容器也有同样的担忧,这就是我如何修复它:尝试在docker上启动ubuntu bash(不是centos,但步骤应该类似) 然后安装一些库和systemtap apt-get update apt-get --yes install build-essential cma

当我使用stap时,它会告诉我这个错误作为图像,我如何修复它


我真的不知道为什么这个问题被否决了一次。当我感到担忧时,downvotter是我在stackoverflow上总是犹豫问问题的原因之一

因此,我对ubuntu下的一个容器也有同样的担忧,这就是我如何修复它:尝试在docker上启动ubuntu bash(不是centos,但步骤应该类似)

然后安装一些库和systemtap

apt-get update
apt-get --yes install build-essential cmake bc curl diffutils git kmod libcurl4-openssl-dev wget
apt-get --yes install systemtap systemtap-sdt-dev
现在安装内核头(需要时间)

现在运行
stap-l'syscall.*'
。它应该工作并显示:

...
syscall.waitpid
syscall.write
syscall.writev

这是从:

您可以尝试按照下面的步骤进行操作,这里有一些有趣的地方可能会对您有所帮助。如果这是显而易见的,很抱歉,但即使您让systemtap构建模块(完成第4步),mac osx内核也有办法运行它。
export KERNELVER=$(uname -r  | cut -d '-' -f 1)
export KERNELDIR=/linux-$KERNELVER
cd /
curl -o linux-${KERNELVER}.tar.gz https://www.kernel.org/pub/linux/kernel/v4.x/linux-${KERNELVER}.tar.gz
tar zxf linux-${KERNELVER}.tar.gz
cd linux-${KERNELVER}
zcat /proc/1/root/proc/config.gz > .config
make all
make modules_prepare
make headers_install
make modules_install
...
syscall.waitpid
syscall.write
syscall.writev