从VM外部调用Intel Pin工具会导致错误

时间:2019-02-28 11:27:35

标签: python virtualbox intel-pin

我已经构建了Intel Pin工具,并在pyvbox的帮助下从Python脚本在VM中启动它:

gs = session.console.guest.create_session('win7', '')

time.sleep(45)
process, stdout, stderr = gs.execute('C:\\Windows\\System32\\cmd.exe', ['/C',
        'C:\\Users\\win7\\Documents\\Pin\\pin-3.6-97554-g31f0a167d-msvc-windows\\pin.exe',
        '-t',
        'C:\\Users\\win7\\Documents\\Pin\\pin-3.6-97554-g31f0a167d-msvc-windows\\MyPinTool.dll',
        '-o', outpath + str(fname) + '.out', '-i',
        str(icount),'-f','1', '--',
        'C:\\Users\\win7\\Documents\\folder1\\' + str(
            fname)], timeout_ms=0)
time.sleep(120)
print "STDOUT"
print stdout
print "STDERR"
print stderr

它导致以下输出(这是来自来宾VM的输出,因此在python脚本中不是错误):

  

A:来源\ pin \ pin \ image.cpp:LEVEL_PINCLIENT :: RTN_Name:2027:   断言失败:RTN_Valid(x)

     

没有可用的堆栈跟踪引脚:pin-3.6-97554-31f0a167d版权所有(c)   2003-2017年,英特尔公司。保留所有权利。

由销钉工具创建的文件稍后会成功传输到主机。但是,如果我在来宾VM中从命令行调用等效命令,则不会出现错误消息(根据我的经验,如果Intel Pin发生此类错误,您会在命令行窗口中看到它)。另外,对于某些可执行文件,Pin Tool创建的文件可能会更大一些(但到目前为止,我发现它不会影响存储在文件中的结果),因此它的工作时间更长。

所以我很好奇:是什么原因导致这种行为?是pyvbox调用命令行的方式,还是命令本身导致了这种输出?

但是,如果我将timeout_ms从0更改为例如,有趣的是200或-没有错误发生。但是在pyvbox文档中说,timeout_ms = 0会一直等待,直到过程完成。

0 个答案:

没有答案