Start here

Home
About Klocwork
What's new
Fixed issues
Release notes
Installation

Reference

C/C++ checkers
Java checkers
C# checkers
MISRA C 2004 checkers
MISRA C++ 2008 checkers
MISRA C 2012 checkers
MISRA C 2012 checkers with Amendment 1
Commands
Metrics
Troubleshooting
Reference

Product components

C/C++ Integration build analysis
Java Integration build analysis
Desktop analysis
Refactoring
Klocwork Static Code Analysis
Klocwork Code Review
Structure101
Tuning
Custom checkers

Coding environments

Visual Studio
Eclipse for C/C++
Eclipse for Java
IntelliJ IDEA
Other

Administration

Project configuration
Build configuration
Administration
Analysis performance
Server performance
Security/permissions
Licensing
Klocwork Static Code Analysis Web API
Klocwork Code Review Web API

Community

View help online
Visit RogueWave.com
Klocwork Support
Rogue Wave Videos

Legal

Legal information

Kwshell

kwshell monitors your C/C++ build to generate a build specification for kwcheck or for Klocwork Desktop for C/C++. kwshell is installed with the Klocwork Command Line tools.

Usage

kwshell [option...] [<command>] [arg...]

where <command> is a shell program, plus any shell options. The default value is your default shell (the value of the COMSPEC environment variable).

Example

kwshell --project-dir /users/jlee/klocwork_projects/wincvs/.kwlp

Prerequisites

  • Your build system (for example, make or jam) must be dynamically linked. To check that the build system is dynamically linked, use the command ldd on your build mechanism.
  • You must have created a project in Klocwork Desktop or with kwcheck create.

Description

Start kwshell from the directory that contains your local project directory (called .kwlp by default), or specify your local project directory with the -pd option.

When kwshell is running on your local project, you see the [kw] prompt. Use the -N option to suppress the prompt. You do not see the [kw] prompt if you're using the Unix bash shell in non-interactive mode or with the --login or --rcfile options.

Notes

  • kwshell does not work in distributed build environments (for example, Klocwork's distributed analysis, IncrediBuild and Electric Cloud).
  • You can't use the --shell option with the <command> argument.

Options

Name Short name Description
--exclude-prog <pattern> [<pattern>...]   exclude any of the programs that match one of the specified patterns.
--help -h display this help
--ignore-files <pattern> [<pattern>...] -I (UNIX only) ignore source files that match one of the specified patterns. <pattern> may contain the * and ? wildcards. For example, --ignore-files conftest.* specifies that temporary files created by the configure script will be ignored.
-N   suppress Klocwork shell prompt
--no-resolve   do not resolve symbolic links. When --no-resolve option is specified, it does not resolve paths in compiler options.
Note: This command option is supported on Unix only.
--project-dir <dir> -pd specify the local project directory if different from the default directory (.kwlp), and/or location if it's outside the source tree
--restrict-dir <dir> -r ignore source files outside the specified directory
--shell <environment_variable> -s specify (non-default) shell program to start (for example, Bash or Korn (ksh) on Unix, or cmd.exe or the Visual Studio Command Prompt on Windows)
--verbose   print verbose information about program execution, which can help to troubleshoot errors
--version -v display version

Options for handling custom compilers

Use the options below if you are using a compiler with a non-standard name. For more information, see Troubleshooting an incomplete kwinject build specification.

Name Short name Description
--config <file> -c read filter configuration from <file>. Allows you to use a "private" copy of kwfilter.conf to specify your custom compiler information.
--prog <prog>[=<filter>][,<prog>[=<filter]...] -P used to pass your non-standard compiler information "on the fly" to kwinject. Specify the comma-separated list of programs to intercept, along with the appropriate filter to use.