2017-09-04 56 views
0

当我使用stap时,它将图像告诉我这个错误,我该如何解决它。如何在docker for mac的centos容器中使用systemtap(stap)

screenshot from error

+0

你可以试着遵循https://github.com/draios/sysdig/issues/637 步骤有一些有趣的观点是也许可以帮助你。 – Naremy

+0

对不起,如果这是显而易见的,但即使你得到systemtap来建立一个模块(完成第4遍),mac osx内核也能够运行它。 – fche

回答

0

真的不知道为什么这个问题已经downvotted一次。当我得到关注时,downvotter是我总是毫不犹豫地要求stackoverflow上的东西的原因之一...

因此,得到了与Ubuntu下的容器相同的问题,这是我如何解决它:尝试启动一个Ubuntu在泊坞窗的bash(不CentOS的,但步骤应该是相似的)

docker run -it --cap-add sys_admin ubuntu bash 

然后安装一些图书馆和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 

现在安装内核头文件(需要时间)

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 

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

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

这是摘自:https://github.com/fdebonneval/mobydig/blob/master/resources/build