Limitations

This section contains limitations added in both this release and in previous releases.

Limitations for installation, upgrade, and deployment

On Windows, integration build results fail to load to the Server

On Windows, when installing Klocwork, do not choose the Custom setup type and select the Klocwork Servers Only option, because integration build results will fail to load to the Server.

Workaround: Install Klocwork and choose either the Complete setup type that installs all program features. Or, choose the Custom setup type and select the Klocwork Servers and Built Tools option.

Limitations for Checker configuration migration

Note the following limitations with checker configuration files during the upgrade process (via the import process):

  • Only modifications to default checker configuration files are imported. If you had a non-default checker enabled in an earlier installation and it was renamed in a new version, you will not see the checker in new builds. You must manually re-enable the checker in the new version of Klocwork.
  • If a checker that was enabled by default was renamed in the new version of Klocwork, you will not see new codes until the first system build of the new installation.

kwcollect fails on tables generated by new analysis engine

Workaround: If your project has been built with Klocwork 2018's new analysis engine, you must include the, '--all-sources' option on the command-line. This requirement does not apply if your project was built without Klocwork 2018's new analysis engine. To determine if your project was built with the new analysis engine, examine the output of the build process in the build.log, contained in the root of the build's output tables folder. Find the line that begins with 'Selected Engines'. Your project has been built using Klocwork 2018's new analysis engine if 'MODERN' appears between square brackets.

Debian 10.x and later cannot run the license server

Debian no longer supports the Linux Standard Base core (lsb-core) as of version 10.x. Therefore, the license server cannot be run on the Debian 10.x and later platforms.

kwauth doesn't properly set HTTP/1.1 header

Sometimes when the Klocwork Server IP address is associated with multiple host names or located behind a reverse proxy, kwauth does not properly resolve the FDQN of the Klocwork Server.

Workaround: To resolve this problem, we added a conditional host resolution based on a parameter in a specified configuration file. If you set it to 'false', then you can specify FQDN for the URL of the remote server. To set host resolution to 'false', you need to create a configuration file on the client side with the following address:
{client_tools_install_folder}\config\client_config.xml
The file must have the following structure:
<?xml version="1.0" encoding="UTF-8"?><params>   <host resolveHost="false" /></params>

64-bit REPCXX Memory Limitations

With 2020.4 SR1, 64-bit REPCXX (our classic C/C++ analysis engine) by default is capped at using 16 Gigabytes (GB) of memory. An attempt to exceed this limitation will result in the REPCXX process being terminated with exit code 121 and the following message:
"memory: REPCXX has exceeded the memory threshold of 16000000 Kb, mem_usage={0} Kb. 
Memory threshold can be increased by passing a value (in GB) to REPCXX through the 
'--memory-limit=' option or through the 'KW_CLASSIC_ENGINE_MEMORY_LIMIT' environment variable."

Workaround: As the error message indicates, the new --memory-limit REPCXX option or 'KW_CLASSIC_ENGINE_MEMORY_LIMIT' environment variable may be used to override the 16 GB memory limit. For example, to increase the memory limit to 32 GB per REPCXX process, you can run kwbuildproject with option --add-compiler-options '--memory-limit=32'.

As confirmation of the memory limit increase, the following message will be output to the build log when a REPCXX process is initiated:
"REPCXX memory input set to 32 GB (32000000 KB)"

'kwloaddb: Java heap space' error when trying to load a build

During a load or a build from a connected project, or when running kwcheck run, an 'OutOfMemory' exception may occur.

Workaround: To fix this error, you can try to increase the amount of memory for kwloaddb in your java_wrappers_memory.conf file. If you continue to see the error, contact Customer Support.

dbvalidate outputs error(s) when attempting to validate a database that contains streams

For projects with streams, when attempting to run dbvalidate as follows:java -jar /<path-to-server>/class/dbvalidate.jar --projects-root /<path-to-projects-root>/projects_root --project a

dbvalidate will incorrectly output error messages on steps a1, k, and occasionally j and l. These messages can be ignored.

Limitation for kwxsync on streams based projects

When synchronizing issue statuses and comments using kwxsync, the target base project or stream must have at least one build in it. Otherwise, no citing information is synchronized even if builds exist in other streams.

2022.2 version of kwcheck is not supported with 2022.1 and earlier versions of the Klocwork Server

Due to the addition of a new API function, the 2022.2 version of kwcheck is not supported with 2022.1 and earlier versions of the Klocwork Server.

Workaround: If you upgrade to the 2022.2 build tools, upgrade your Klocwork Server to version 2022.2 if you want to use kwcheck.

Using 'sconf' files on Linux and/or Mac does not filter defects in the file specified.

If you are using windows style paths in an 'sconf' file, connected projects can yield inconsistent results.

Workaround: We recommend avoiding use of windows style file paths (For example, 'C:\Checkout\PRs\PR-59822\test.cpp' or 'C:\\Checkout\\PRs\\PR-59822\\test.cpp'). You can use UNIX-style paths across all platforms, for example:

Windows: C:/Checkout/PRs/PR-59822/test.cpp
Linux: /checkout/mydir/test.cpp

Note: Use of the 'C:\Checkout\PRs\PR-59822\test.cpp' format should be avoided on all platforms as it is not supported.

Use of tabs in source code not supported for issue suppression

If your source code uses tabs instead of spaces, macro suppression in C/C++ does not work.

Workaround: Do not use tabs in your source code to avoid this problem.

Limitations for Mac OS support

  • 2020.3.1 and newer versions of IntelliJ IDEA are not supported.
  • Distributed Analysis is not supported.
  • Reprise License Manager is not supported; You should ignore the option to select it in IntelliJ IDEA and Klocwork Desktop (kwgcheck).
  • For developers, plug-in support is provided for Eclipse and IntelliJ IDEA. If your developers are not using Eclipse or IntelliJ IDEA, they need to use Klocwork Desktop Command Line for C/C++ or Java (kwcheck) or Klocwork Desktop to analyze their code and view detected issues. See Fixing issues before check-in with Klocwork Desktop Analysis.
  • System Integrity Protection (SIP) blocks the kwinject command from running properly on Mac OS X 10.10 and later. Kwinject returns the following warning, with error code 1: "System Integrity Protection is enabled. kwinject cannot inject to process." Workaround: Disable SIP on the machine running the Klocwork analysis or see Using kwwrap plus kwinject to generate a build specification.

Limitations for build integration

Cannot load Android 4.4 (KitKat) using the default memory settings for kwloaddb, kwadmin and kwjava

When building the Android platform, you may need to increase the memory settings for certain Klocwork tools on the machine invoking the load process. These values can be modified in the <klocwork_install>/config/java_wrappers_memory.conf file.

Android N Java analysis with Jack toolchain

When building Android N using the Jack compiler, some jar files required for Klocwork Java analysis are not generated during the build process. Therefore, kwbuildproject encounters "Unresolved import", "Unresolved method", and "Unresolved name" semantic errors that affect the accuracy of the analysis results.

Workaround: Open a ticket with Klocwork customer support. Customer support can provide a script that can generate the jar files required for analysis. Run the script after running the kwinject command and before running the kwbuildproject command.

Limitations for C# analysis

The following features are not supported for C# integration projects:

Feature Details
Build integration
Klocwork Static Code Analysis
Distributed analysis
  • Distributed analysis is not supported for C#.

The following features are not supported for C# desktop analysis:

Limitations for Klocwork Static Code Analysis/Validate

In Microsoft Edge, some items may not be clickable

Due to a Microsoft Edge issue, some items in the portal may not be clickable. For more information, see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/5782378/

Workaround: Refresh the page.

CERT C Recommendations section is omitted from Security Report

The 'Cert C Recommendations' section of the Security Report is currently omitted; it is planned to be added in a future release.

Workaround: You can generate the compliance report for this taxonomy if needed. Contact support for more information.

Cannot run Klocwork Server and Validate Windows services at the same time

On Windows, if you install either of the Validate or Klocwork Server installations, and set the Windows services to start automatically, then choose to additionally install the other installation, the services will not start. You can run the Windows services for only one of these installations at a time.

Additionally, make sure if you're installing both installations, their web ports and database ports must differ.

Workaround: If you'd like both to run simultaneously, then at least one of them must start its servers from the command line.

Limitations for Klocwork Desktop Analysis

Analysis is not supported for 'no-resolve' mode in certain scenarios

The "no-resolve" mode was added to support symbolic links to source files on Linux. Symbolic links to directories are not supported.

The Eclipse plug-in supports the "no-resolve" mode only if project is configured to use an external build specification, and that build specification was created by using kwinject with "--no-resolve" option.

For WindRiver Workbench users, you will receive an error message if you attempt to use a project with exterior sources linked to it.

Limitations for QAC

QAC Japanese taxonomies missing translations

The Japanese versions of the QAC taxonomies and helix_qac_c_cpp.xml file included with Klocwork 2022.1 are missing Japanese translations.

Workaround: Download the kw-updated-qac-taxonomies.22.1.zip file from the Klocwork 2022.1 Downloads page and extract the contents of the file into your <server_install> directory. This zip file replaces the Japanese versions of the QAC taxonomies in the <server_install>/taxonomies directory, as well as the helix_qac_c_cpp.xml file in the <server_install>/plugins directory.

Limitations for the Visual Studio extension

'One or more extensions were loaded using deprecated APIs' warning message in Visual Studio 2019

Visual Studio 2019 may give a warning message regarding deprecated APIs. If you select the recommended option to not allow deprecated API usage, this will disable the Klocwork plug-in and you will no longer be able to access the Klocwork tools in VS.

Workaround: Select the 'Don't show this message for current extensions' option to safely ignore this warning and continue to use the Klocwork plug-in.

'Visual Studio stopped responding for X seconds.' warning message in Visual Studio 2019

Visual Studio 2019 may give a warning message regarding slower performance in relation to use of the Klocwork plug-in. If you select the option to 'disable this extension', it will disable the Klocwork plug-in and you will no longer be able to access the Klocwork tools in VS.

Workaround: Select the 'Don't show this message for current extensions' option to safely ignore this warning and continue to use the Klocwork plug-in.

Visual Studio hang

The Klocwork development team is tracking a support request with the Visual Studio Technical Support team where user actions cause Visual Studio to hang under a number of conditions. These Visual Studio hangs occur whether or not the Klocwork VS Extension is installed. For example, when navigating into the definition of a function that is defined in a source file that is not currently open in a tab in Visual Studio, Visual Studio opens that file in a temporary tab. When this temporary tab is open, if you then navigate to the definition of a different function, Visual Studio hangs.

'kwcc' error in Visual Studio after upgrading

If, before 2020.1, you deployed the MISRA checkers to your project using kwdeploy, and have a misra.xml file in your %USERPROFILE%\.klocwork\plugins folder, you might see errors similar to the following:
kwcc: Error: C:\Users\username\.klocwork\plugins\misra.xml:5783:
Trying to describe error 'MISRA.STDLIB.ILLEGAL_WRITE.2012_AMD1' several times. 
Repeated descriptions are ignored

Workaround: To fix this issue, delete the misra.xml file located in your %USERPROFILE%\.klocwork\plugins folder before performing the upgrade.

Help for Klocwork community checkers cannot be accessed directly from Visual Studio

If you attempt to access the help for a community checker by right-clicking the checker and selecting View Checker Documentation, you will get a 'Cannot find requested topic on your computer' error message.

Workaround: Offline help for the community checkers is available by using the Klocwork Portal. Online help is also available.

The filter by severity option in the Microsoft Visual Studio extension may not display custom severities for C++ projects

For C++ projects where you have defined custom severities, the severity filter list may not display the correct items. The list may display default severity names, or in the case where you have a mixed C++ and C# project, the list will display the C# severities. You can still use the filter, but the severity names displayed in the issue tree may not match the items you selected in the list (as the filter is applied by severity number).

For the Microsoft Visual Studio extension, minor performance degradation when working with server issues if connection to server is lost

A lost server connection causes a delay of up to three seconds when working with server issues, for example, when opening or citing a server issue.

Workaround: Work with local issues only by clicking the "Show local issues only" button.

F1 help does not work when you attempt to open help for an issue from the Klocwork Issues window in Visual Studio for the Klocwork extension for Visual Studio

If you click on an issue in the Klocwork Issues window and attempt to open the help for it by pressing F1, the shortcut opens the incorrect help in the Help Viewer.

Workaround: Open the help for the checker by right-clicking on the issue and select View Checker Documentation from the Manage <checker name> Checker menu.

Klocwork server option fails to retrieve projects when you use a hard-coded IP address

If you use a hard-coded IP address in the Klocwork server dialog under the Klocwork options menu, the Klocwork extension for Visual Studio fails to retrieve the list of projects.

Workaround: Use the host name instead of the IP address; if this is not an option, you can add an entry in the hosts file for the IP address.

Limitations for VS Code

Do not add the build specification location to the build command. It will be automatically collected from the 'Build Specification Location' setting.

'Build Specification Generation Command' should not contain the buildspec location (-o <location>) when using the 'Automatically Update Build Specification' option.

Workaround: Specify the location with the Build Specification Location setting.

Build Specification Generation Command cannot contain single quoted arguments.

If you need quoted parameters, it should be double quotes (same as a command prompt/terminal).

Workaround: Ensure your quoted parameters use double quotations.

Citing defects only works when using a connected project.

When your project is not connected and you attempt to cite defects, nothing will happen.

Workaround: Ensure that all 'Connection Settings' (host, port, SSL, license host, port, and Klocwork project) are set, and the Portal instance the settings are pointing to is up and running.

Limitations for Klocwork Desktop

Analysis is not supported with any of the following configurations:

  • When a project with symbolic links is configured with an external build specification that does not have the attribute "no-resolve". If a project uses symbolic links, the user must configure the project using an external build specification, and the external build specification must be created with the "no-resolve" option passed to kwinject.
  • When a project with symbolic links is configured to use the Eclipse CDT toolchain. The Eclipse plug-in does not allow the user to set a "no-resolve" option.
  • When a project contains a symbolic link to a directory. The plug-in supports symbolic links to files only.

Limitation for the Eclipse plug-in

Eclipse 4.16 requires additional software for Klocwork Eclipse plug-in to run

If you are using the 4.16 version of Eclipse, you must install the following software in order to run the Klocwork Eclipse plug-in:
  • Eclipse CDT using Java 11; or, post-installation, update the eclipse.ini file to point to a valid Java 11 installation.
  • Eclipse Java Development Tools by using the Help --> Install New Software command.

Limitation for the IntelliJ IDEA plug-in

Difficult to connect to a project or stream with a long name

If you try to connect to a project or stream that has longer path or name, you might not see the full path of the project or stream because the Klocwork Project dropdown list might be too narrow to display it.

Workaround: You can fix this problem by doing the following:
  1. Launch your IDE with Klocwork installed and open a project; this ensures the .idea folder gets generated in your project.
  2. Close your IDE.
  3. In your project's .idea folder, edit the 'misc.xml' file. Edit the following line, specifying the desired project/stream name in the value parameter (The name should appear as seen in the Portal, with slashes included if its a stream):
    <option name="kwProject" value="project-name/stream-name" />
  4. Start your IDE; if you open your Klocwork Static Analysis settings, you can now verify that you are connected to the correct project and/or stream.

Limitation for the CLion plug-in

'java.sql.SQLException: SQLite.Exception: no such column: in_connected' error

This error occurs if you are trying to use a 2022.1 or newer version of the Klocwork Desktop plugin for CLion with a 2021.4 or older version of the Klocwork tools.
 
Workaround: If you are still using an older version (2021.4 or older) of the Klocwork tools, do not upgrade the Klocwork CLion plugin to 2022.1 or newer to avoid this error.

Limitations for Klocwork extensibility

C/C++ Path checker compilation makefile compatibility

The makefile generated by kwcreatechecker on Unix systems requires GNU make to build the checker. On Windows, the makefile generated by kwcreatechecker requires nmake to build the checker.

Workaround: None.

Checker limitations on Windows

kwcreatechecker.exe creates 64-bit checkers by default. If you want to create 32-bit checkers (that is, checkers compatible with a pre-2020.4 version of Klocwork) you must use the --force-32bit option.

If you use pre-2020.4 KAST / AST checkers or pre-2020.3 PATH checkers, you must add the --force-32bit option to all builds (kwbuildproject, kwcheck, and so on).

If you use pre-2020.4 KAST / AST checkers or pre-2020.3 PATH checkers and want to create new checkers, you must do one of the following:

  • Rebuild all your old checkers by using the 2020.4 version of kwcreatechecker.exe or by using a 64-bit compiler.
  • Build your new checkers in a pre-2020.4 version.
You cannot mix 32-bit and 64-bit checkers:
  • If you build any 32-bit checkers, you can only use them in the 2020.4 Visual Studio plugin if the Force 32-bit Analysis option is enabled.
  • If you build any 64-bit checkers, you can only use them in the 2020.4 Visual Studio plugin if the "Force 32-bit" Analysis option is disabled.
  • If you build any 32-bit checkers, you cannot use them in Eclipse-based plugins.
  • When using 64-bit path checkers, you will get the following warning (note that it is safe to ignore this warning):
    kwcc: Warning: cannot open plugin library 'c:\Klocwork Server\plugins\ix86-pc-win32\&lt;checker>.dll': The specified module could not be found.

Checker limitations on Linux

32-bit backward compatibility for custom checkers is no longer supported and the option '--force-32bit' is deprecated. You must rebuild all of your old checkers by using a 64-bit compiler. Contact support for more information.

Custom checker help is not found when searching in offline help

As of 2022.1, it is not possible to search for custom checker help from the offline documentation accessed from the Klocwork Portal.

Workaround: You can search for custom checker help from the Configuration tab in the Klocwork Portal instead. From your project, click Configuration, select any taxonomy, and use the search box above the checker list. The help for any custom checker appears in the right pane.

Custom checker help cannot be displayed in some IDEs

Custom checker help currently does not display for Eclipse, Klocwork Desktop, IntelliJ IDEA, and Android Studio.

Workaround: You can view custom checker help by accessing it through the Configuration tab in the Klocwork Portal instead. From your project, click Configuration, select any taxonomy, and use the search box above the checker list. The help for any custom checker appears in the right pane.