Contenido principal

Visual Studio Code: Generate Build Options for Polyspace as You Code

Polyspace® as You Code™ checks the source code file that is currently active in your Visual Studio® Code editor for bugs and coding standards violations.

To run the analysis without errors, provide Polyspace as You Code with the details of your build configuration, such as data type sizes and compiler macro definitions. To provide your build configuration information, use one of these methods:

  • Configure Polyspace as You Code to extract the build configuration information from your build task or build command, or JSON compilation database.

  • Manually specify analysis options that emulate your build configuration in an options file. See Options Files for Polyspace Analysis (Polyspace Bug Finder).

  • Import the analysis options from a Polyspace desktop product project file.

Configure Polyspace as You Code to Extract Build Configuration

You can configure Polyspace as You Code to extract build configuration from your build task or the build command. In this method, Polyspace runs the build task or build command and gathers the build options from the executed process. Alternatively, you can extract the build configurations from your JSON compilation database. In this method, Polyspace can read the required build configuration from the compilation database.

Note

On Windows®, if you enable remote development and if any of your project files or folders on the remote machine are on a network drive, provide the UNC path for that network drive. See Configure Polyspace as You Code for Remote Development. The Polyspace as You Code extension cannot resolve the path of a network drive that is mapped to a drive letter when you enable remote development, and the Polyspace: Generate Build Options command can fail.

After extracting the build configuration, Polyspace generates an options file that the Polyspace as You Code analysis engine uses in subsequent analyses. The file contains analysis options that emulate your build configuration.

The generated options file is stored in the .polyspace-configure folder in the workingDirectory/projectName folder or one of its subfolders.

workingDirectory is the Polyspace > Analysis Engine: Result Folder path that you specify in the Polyspace as You Code extension settings. projectName is the name of the top-level folder in the Explorer that contains the files that you are currently analyzing.

Get Build Configuration from Build Task

Visual Studio Code enables you to define tasks so that you can run an external tool from Visual Studio Code. See Integrate with External Tools via Tasks.

If you define a custom task that calls your compiler to perform a full build of your project, Polyspace can extract your build configuration from this build task.

  1. Open the Visual Studio Code settings by pressing Ctrl+Comma (,).

    Enter polyspace.analysisoptions in the settings search bar.

  2. Set these Polyspace > Analysis Options settings:

    SettingValue
    Analysis SetupManual setup
    Manual Setup: BuildGet from build task
    Manual Setup > Build Setting: Build Task

    Specify the name of the build task. This corresponds to the "label" field of the task definition in the tasks.json file. The task that you specify must perform a full build.

    Polyspace supports the use of only these Visual Studio Code predefined variables in task definitions:

    • ${workspaceFolder}

    • ${workspaceFolderBasename}

  3. Open the Command Palette by pressing Ctrl+Shift+P and enter Polyspace: Generate Build Options.

Polyspace runs the build command specified by the task, traces the build to extract the configuration information, and generates an options file. The Polyspace as You Code analysis engine uses the generated options file in subsequent analyses.

Get Build Configuration from Build Command

To extract your build configuration information from your build command:

  1. Open the Visual Studio Code settings by pressing Ctrl+Comma (,).

    Enter polyspace.analysisoptions in the settings search bar.

  2. Set these Polyspace > Analysis Options settings:

    SettingValue
    Analysis SetupManual setup
    Manual Setup: BuildGet from build command
    Manual Setup > Build Setting: Build Command

    Specify your build command. For example:

    gcc -g -o helloworld hello.c main.c

    The command that you specify must perform a full build

  3. Open the Command Palette by pressing Ctrl+Shift+P)and enter Polyspace: Generate Build Options.

Polyspace runs your build command, traces the build to extract the configuration information, and generates an options file. The Polyspace as You Code analysis engine uses the generated options file in subsequent analyses.

Get Build Configuration from JSON Compilation Database

If your build system supports the generation of a JSON compilation database file, use this workflow. The JSON compilation database contains compiler calls for all the translation units in your project. See JSON compilation database.

To extract your build configuration information from the JSON compilation database:

  1. Generate a JSON compilation database file. For an example of how to generate this file, see Create Polyspace Options File from JSON Compilation Database (Polyspace Bug Finder).

    If you use a JSON compilation database that was not generated on your local machine, make sure that the paths listed in the file are accessible from the location where you run Polyspace as You Code.

  2. Open the Visual Studio Code settings by pressing Ctrl+Comma (,).

    Enter polyspace.analysisoptions in the settings search bar.

  3. Set these Polyspace > Analysis Options settings:

    SettingValue
    Analysis SetupManual setup
    Manual Setup: BuildGet from JSON Compilation Database file
    Manual Setup > Build Setting: JSON Compilation Database File

    Specify the full path to the file that you generated in step 1. The file is typically named compile_commands.json.

Polyspace automatically extracts the build configuration information from the compilation database and generates an options file. The Polyspace as You Code analysis engine uses the generated options file in subsequent analyses.

Update Generated Build Options File

If you make changes to your build configuration, such as adding a source file to your project or workspace or renaming an existing file, update the generated options file to reflect those changes. Before you update the options file, make sure that your build completes successfully with the new configuration.

To update the options file, Open the Command Palette by pressing Ctrl+Shift+P and enter Polyspace: Generate Build Options.

If you extract your build information from a JSON compilation database file, regenerate the compilation database before you update the build options file.

See also Troubleshoot Failed Analysis or Unexpected Results in Polyspace as You Code.

Specify Analysis Options Manually

Specify analysis options manually in an options file that you create if:

  • You know the details of your build system and you want to specify the Polyspace analysis options that emulate your build configuration in an options file. See Options Files for Polyspace Analysis (Polyspace Bug Finder).

    For a list of available analysis options, see Configuration (Polyspace Bug Finder).

  • You reuse a Polyspace options file that you or someone else on your team has configured for your build system.

    If you reuse an options file that was not configured or generated on your local machine, make sure that the paths listed in the file are accessible from the location where you run Polyspace as You Code.

To specify an analysis options file:

  1. Open the Visual Studio Code settings by pressing Ctrl+Comma (,).

    Enter polyspace.analysisoptions in the settings search bar.

  2. Set these Polyspace > Analysis Options settings:

    SettingValue
    Analysis SetupManual setup
    Manual Setup: BuildGet from Polyspace build options file
    Manual Setup > Build Setting: Polyspace Build Options File

    Specify the full path to the Polyspace options file.

The Polyspace as You Code analysis engine uses the specified options file in subsequent analyses.

If you make changes to your build configuration, edit the options file to reflect those changes. See Configure Sources and Build Options in Project for Polyspace Analysis and Testing (Polyspace Bug Finder).

Import Analysis Options from Polyspace Platform Project

If you configure an analysis in the Polyspace Platform user interface, you can use the information from the resulting Polyspace Platform project file (.psprjx) to configure your Polyspace as You Code analysis.

To import the analysis options from a Polyspace Platform project .psprjx file, open a terminal in Visual Studio Code and enter this command:

polyspace-project -generate-launching-script-for <projectPath> -product bug-finder
In this command, <projectPath> is the relative path of the .psprjx file.

The command polyspace-project is located in the folder polyspaceroot\polyspace\bin. Here, polyspaceroot is the location of the Polyspace installation folder in your development environment. If you did not add this installation folder to your PATH environment variable, include the full path of the binary to execute this command.

Polyspace generates an options file options_command.txt and an XML checkers activation file module_projectName_activation_file.xml. The generated files are stored in the same location as the .psprjx file. Open the options_command.txt file and remove the line for -sources-list-file. This line is unnecessary in a Polyspace as You Code analysis because you already specify the file to analyze as an option of the polyspace-as-you-code command.

To complete the configuration of the Polyspace as You Code analysis:

  1. Open the Visual Studio Code settings. Specify polyspace.analysisoptions in the settings search bar.

  2. Set these Polyspace > Analysis Options settings:

    SettingValue
    Analysis SetupManual setup
    Manual Setup: Build

    Build options file not required

    This setting ignores the file specified in the Build Setting: Polyspace Build Options File field.

    Manual Setup: Checkers File

    Full file path of module_projectName_activation_file.xml

    Manual Setup: Other Analysis Options

    Full file path of options_command.txt

The Polyspace as You Code analysis engine uses these files in subsequent analyses.

If you make changes to your build configuration, edit the options file (options_command.txt) to reflect those changes. See Configure Sources and Build Options in Project for Polyspace Analysis and Testing (Polyspace Bug Finder).

See Also

Topics