1

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

../../../pin -injection child -t obj-intel64/mypintool.so -- obj-intel64/myexcecutable

我想myexcecutable放置一个使用此命令运行的docker 程序:

docker run --rm --net spark-net --volumes-from data \
             cloudsuite/graph-analytics \
             --driver-memory 1g --executor-memory 4g \
             --master spark://spark-master:7077

当我尝试简单地用-- obj-intel64/myexecutabledocker 命令替换时,pintool 正常启动但没有正常完成。

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

我是否必须采用不同的方法才能将我的 pintool 正确附加到在 docker 容器中运行的程序中?

4

1 回答 1

1

我不是 docker 专家,但以这种方式运行它确实会使 pin 仪器成为 docker exec。您需要将 pin 放入 docker 实例中并在 pin 下的 docker 实例中运行可执行文件。也就是说,命令行应该是这样的:

 docker -run <docker arguments> pin <pin arguments>  --myexecutable <executable arguments>
于 2016-09-23T12:38:34.060 回答