Описание ошибки интеграции Intel Parallel Studio Service Pack 1 в Visual Studio 2005/2008




Мы заметили одну ошибку интеграции Intel Parallel Studio Service Pack 1 в Visual Studio 2005/2008, которую хотим здесь описать и подсказать способ ее устранения. Мы преследуем сразу несколько целей. Во-первых, надеемся, что разработчики Intel Parallel Studio заметят эту ошибку и исправят ее. Во-вторых, это может помочь пользователям, использующим Intel Parallel Studio устранить эту или схожие ошибки, если они есть. В-третьих, из-за этой ошибки, некорректно себя ведет разрабатываемый нами анализатор PVS-Studio, который также интегрируется в среду Visual Studio.

В начале, рассмотрим команду автоматизации Visual Studio для отображения окна настроек (см. рисунок 1).

Picture 1

Команда автоматизации доступна через специальный API, предоставляемый Visual Studio подключаемым модулям. Также можно вызывать различные команды, используя окно "Command Window". Это окно можно открыть через "View->Other Windows->Command Window" как показано на рисунке 2.

Picture 1040424

Если в окне "Command Window" написать команду "Tools.Options" (см. рисунок 3), то на экране отобразится окно настроек, показанное на рисунке 1.

Picture 1040355

Обратим на будущее внимание на один момент. Для команд можно назначить горячее сочетание клавиш, воспользовавшись в настройках вкладкой "Keyboard", показанной на рисунке 4.

Picture 1040785

Если мы введем строчку "Tools.Options", то в списке увидим только одну такую же строчку (см. рисунок 5). Это ожидаемо и правильно. Запомним этот момент.

Picture 1039600

Перейдем к установке Intel Parallel Studio. Ниже показана информация, которая была выдана Intel Parallel Studio в процессе установки:

Intel Parallel Studio Service Pack 1
Destination Folder(s)
    C:\Program Files (x86)\Intel\Parallel Studio\Composer\
    C:\Program Files (x86)\Intel\Parallel Studio\Inspector\
    C:\Program Files (x86)\Intel\Parallel Studio\Amplifier\
Components
    Intel Parallel Composer Update 3
        Intel C++ Compiler
            Intel C++ Compiler for applications running on IA-32
            Intel C++ Compiler for applications running on Intel(R) 64
            Integration(s) in Microsoft Visual Studio
            Intel Parallel Debugger Extension
            Integrated Documentation
        Intel Integrated Performance Primitives
            Intel IPP for applications running on IA-32
            Intel IPP for applications running on Intel(R) 64
        Intel Threading Building Blocks
            Intel TBB
    Intel Parallel Inspector Update 2
    Intel Parallel Amplifier Update 2
Configuration Options
    Integration with Microsoft Visual Studio 2005 software
    Integration with Microsoft Visual Studio 2008 software

После установки происходит сбой команды отображения окна настроек. Если теперь в окне "Command Window" мы введем команду "Tools.Options" (см. рисунок 6), то получим сообщение "Command "Tools.Options" is not available.".

Picture 1040502

Аналогичная проблема возникает при попытке воспользоваться API для отображения окна настроек. Пример вызова:
Application.ExecuteDTECommand("Tools.Options");
В результате при обращении к данной функции внутри разрабатываемого нами инструмента PVS-Studio, происходит падение, (см. рисунок 7).

Picture 1040374

Причину данной ошибки мы назвать не можем. Приведем только косвенные данные. Вернемся к настройкам на вкладке "Keyboard". Теперь при вводе строчки "Tools.Options" в списке показывается уже две одинаковых строки (см. рисунок 8).

Picture 1039728

После сброса настроек все ошибки исчезают, и команда открытия окна настроек начинает вести себя прежним образом.



Найдите ошибки в своем C, C++, C# и Java коде

Предлагаем попробовать проверить код вашего проекта с помощью анализатора кода PVS-Studio. Одна найденная в нём ошибка скажет вам о пользе методологии статического анализа кода больше, чем десяток статей.

goto PVS-Studio;


Найденные ошибки

Проверено проектов
363
Собрано ошибок
13 495

А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;