Вызов инструмента Intel Pin извне виртуальной машины, вызывающий ошибки - PullRequest
0 голосов
/ 28 февраля 2019

Я собрал инструмент Intel Pin и запускаю его на виртуальной машине из скрипта Python с помощью pyvbox:

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

Это приводит к следующему выводу (это вывод гостевой виртуальной машины,так что это не ошибка в скрипте Python):

A: Source \ pin \ pin \ image.cpp: LEVEL_PINCLIENT :: RTN_Name: 2027: утверждение не выполнено: RTN_Valid (x)

NO STACK TRACE ДОСТУПНЫ Pin: pin-3.6-97554-31f0a167d Copyright (c) 2003-2017, Intel Corporation.Все права защищены.

Файл, созданный программой Pin Tool, позднее успешно передается на хост-компьютер.Однако, если я вызываю эквивалентную команду из командной строки в гостевой виртуальной машине, сообщений об ошибках не возникает (я знаю по своему опыту, что в случае возникновения такой ошибки с Intel Pin - вы увидите это в окне командной строки).Также файл, созданный Pin Tool, может быть немного больше (но пока я вижу, что он не влияет на результаты, хранящиеся в файле) для некоторых исполняемых файлов, поэтому он работает в течение более длительного периода.

Так что мне любопытно: что вызывает такое поведение?Это способ, которым pyvbox выполняет вызов командной строки, или сама команда вызывает такой вывод?

Что интересно, если я изменю timeout_ms с 0 на 200, например, или - ошибок не возникнет.Но в документации pyvbox говорится, что timeout_ms = 0 будет ждать вечно, пока процесс не завершится.

...