带docker的英特尔pin

带docker的英特尔pin,docker,intel-pin,Docker,Intel Pin,我有一个使用以下命令正常运行的pintool: ../../../pin -injection child -t obj-intel64/mypintool.so -- obj-intel64/myexcecutable docker run --rm --net spark-net --volumes-from data \ cloudsuite/graph-analytics \ --driver-memory 1g --executor

我有一个使用以下命令正常运行的pintool:

../../../pin -injection child -t obj-intel64/mypintool.so -- obj-intel64/myexcecutable
docker run --rm --net spark-net --volumes-from data \
             cloudsuite/graph-analytics \
             --driver-memory 1g --executor-memory 4g \
             --master spark://spark-master:7077
我想在
myexecuctable
的位置放置一个运行此命令的:

../../../pin -injection child -t obj-intel64/mypintool.so -- obj-intel64/myexcecutable
docker run --rm --net spark-net --volumes-from data \
             cloudsuite/graph-analytics \
             --driver-memory 1g --executor-memory 4g \
             --master spark://spark-master:7077
当我试图用docker命令简单地替换
--obj-intel64/myexecutable
时,pintool正常启动,但没有正常完成

我相信我的pintool连接到docker,而不是包含在我的目标应用程序中


为了在docker容器中运行的程序中正确连接我的pintool,我必须遵循不同的方法吗?

我不是docker专家,但这样运行确实会使pin instrument成为docker exec。您需要将pin放在docker实例中,并在pin下运行docker实例中的可执行文件。也就是说,命令行应该如下所示:

 docker -run <docker arguments> pin <pin arguments>  --myexecutable <executable arguments>
docker-run-pin-myexecutable

这就是我问这个问题的原因,这是我第一次尝试。Docker不让我这么做。。。正如我所注意到的,docker使用容器,但不使用可执行文件。这是我真正的问题。我正在试图找到主(服务器)可执行文件,以便通过我的pintool运行它!->在这里你可以看到docker Benchmark我想这就是你想要的: