S2sinstrument: Difference between revisions

From STRIDE Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 22: Line 22:
!width="500pt"|'''Description'''
!width="500pt"|'''Description'''
|-  
|-  
| --im_name=<i><string></i>
| '''--im_name='''<i><string></i>
| The intercept module name. The default is the base name of the databaseFile.
| The intercept module name. The default is the base name of the databaseFile.
|-  
|-  
| --im_suffix=<i><string></i>
| '''--im_suffix='''<i><string></i>
| The intercept module file name suffix. The default is "IM".  
| The intercept module file name suffix. The default is "IM".  
|-  
|-  
| --code_output=<i><path></i>
| '''--code_output='''<i><path></i>
| The location of the generated C or C++ files. The default is the current directory.  
| The location of the generated C or C++ files. The default is the current directory.  
|-
|-
| --header_output=<i><path></i>
| '''--header_output='''<i><path></i>
| The location of the generated header files and text (read me) file. The default is the current directory.
| The location of the generated header files and text (read me) file. The default is the current directory.
|-  
|-  
| --strip_path
| '''--strip_path'''
| When present, the path information from include directives will be striped.
| When present, the path information from include directives will be striped.
|-
|-
| --disable_access_class
| '''--disable_access_class'''
| When present, all interface SUIDs will be explicitly registered instead of using access class registration.
| When present, all interface SUIDs will be explicitly registered instead of using access class registration.
|-  
|-  
| --suppress_exception_handling
| '''--suppress_exception_handling'''
| When present, C++ exceptions would not be handled as errors.
| When present, C++ exceptions would not be handled as errors.
|-
|-
| --prototype=<i><tag></i>
| '''--prototype='''<i><tag></i>
| Generate only prototype header files. <i><tag></i> is a unique tag that would be appended to the prototype header file name.
| Generate only prototype header files. <i><tag></i> is a unique tag that would be appended to the prototype header file name.
|-
|-
| --implement
| '''--implement'''
| Generate only implementation files.
| Generate only implementation files.
|-
|-
| --default_mode=<i><mode></i>[<i>#<group_id></i>]
| '''--default_mode='''<i><mode></i>[<i>'''#'''<group_id></i>]
| Optional. When present, sets the default generation mode. If not present the <i><mode></i> is assumed to be "S" and <i><group_id></i> empty.  
| Optional. When present, sets the default generation mode. If not present the <i><mode></i> is assumed to be "S" and <i><group_id></i> empty.  
The format of the <i><mode></i> is "SP[Doued]", where:<br>
The format of the <i><mode></i> is "SP[Doued]", where:<br>
Line 62: Line 62:
To set the default mode to NOP (do nothing) set its value to "#".
To set the default mode to NOP (do nothing) set its value to "#".
|-
|-
| --mode=<mode>[<i>#<group_id></i>] (<i><interface></i>[,<i><interface></i>…])
| '''--mode='''<mode>[<i>'''#'''<group_id></i>] '''('''<i><interface></i>[,<i><interface></i>…]''')'''
| Interface specific generation mode. The <i><mode></i> and <i><group_id></i> are the same as above. The <i><interface></i> is an interface name.<br>
| Interface specific generation mode. The <i><mode></i> and <i><group_id></i> are the same as above. The <i><interface></i> is an interface name.<br>
This option could be repeated as many times as needed. It overrides any '''--default_mode''' option otherwise in effect.<br>
This option could be repeated as many times as needed. It overrides any '''--default_mode''' option otherwise in effect.<br>
To set the mode for a set of functions to NOP (do nothing) set <i><mode></i> to empty.
To set the mode for a set of functions to NOP (do nothing) set <i><mode></i> to empty.
|-
|-
| --options_file=<i><file></i>
| '''--options_file='''<i><file></i>
| A file that contains command line options. The format is the same as the command line with the only addition that it could be split on multiple lines. A line starting with "#" symbol is ignored.
| A file that contains command line options. The format is the same as the command line with the only addition that it could be split on multiple lines. A line starting with "#" symbol is ignored.
This option is necessary if the length of the command line string exceeds system limits. Otherwise it is provided only as a convenience.
This option is necessary if the length of the command line string exceeds system limits. Otherwise it is provided only as a convenience.

Revision as of 00:08, 30 September 2008

The STRIDE Instrumentation Utility

The s2sinstrument.exe executable generates instrumentation code, also known as IM, or intercept module code. It is a command line utility that accepts the following input:

  • database (.sidb) file
  • intercept module name
  • C/C++ code files, output location and C header files output location
  • a set of configuration options

The resulting output files will be generated:

  • a prototype header file <im_name>IM.h
  • implementation files <im_name>IM.c(pp) and <im_name>IMEmtry.h
  • a read-me file <im_name>IMReadMe.txt.

Syntax

s2sinstrument [options] database_file

Options

Option Description
--im_name=<string> The intercept module name. The default is the base name of the databaseFile.
--im_suffix=<string> The intercept module file name suffix. The default is "IM".
--code_output=<path> The location of the generated C or C++ files. The default is the current directory.
--header_output=<path> The location of the generated header files and text (read me) file. The default is the current directory.
--strip_path When present, the path information from include directives will be striped.
--disable_access_class When present, all interface SUIDs will be explicitly registered instead of using access class registration.
--suppress_exception_handling When present, C++ exceptions would not be handled as errors.
--prototype=<tag> Generate only prototype header files. <tag> is a unique tag that would be appended to the prototype header file name.
--implement Generate only implementation files.
--default_mode=<mode>[#<group_id>] Optional. When present, sets the default generation mode. If not present the <mode> is assumed to be "S" and <group_id> empty.

The format of the <mode> is "SP[Doued]", where:

  • "S" - stub
  • "P" – proxy
  • "D" – delegate
  • "o" – owner
  • "u" – user
  • "e" – explicit
  • "d" - dynamic

The <group_id> is the delegate group id.
To set the default mode to NOP (do nothing) set its value to "#".

--mode=<mode>[#<group_id>] (<interface>[,<interface>…]) Interface specific generation mode. The <mode> and <group_id> are the same as above. The <interface> is an interface name.

This option could be repeated as many times as needed. It overrides any --default_mode option otherwise in effect.
To set the mode for a set of functions to NOP (do nothing) set <mode> to empty.

--options_file=<file> A file that contains command line options. The format is the same as the command line with the only addition that it could be split on multiple lines. A line starting with "#" symbol is ignored.

This option is necessary if the length of the command line string exceeds system limits. Otherwise it is provided only as a convenience.

Examples

Refer to the Intercept Module Generation section of the Build Tools Examples.