我有一个使用此命令正常运行的pintool:
../../../pin -injection child -t obj-intel64/mypintool.so -- obj-intel64/myexcecutable
我想在myexcecutable
的位置放置一个使用此命令运行的docker program:
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?
答案 0 :(得分:1)
我不是码头专家,但是以这种方式运行它确实会使pin仪器成为docker exec。您需要将pin放在docker实例中并在piner下的docker实例中运行可执行文件。也就是说,命令行应该如下所示:
docker -run <docker arguments> pin <pin arguments> --myexecutable <executable arguments>