S2sinstrument: Difference between revisions
Line 52: | Line 52: | ||
| Generate only implementation files. | | Generate only implementation files. | ||
|- | |- | ||
| '''--default_mode | | '''--default_mode'''=<mode> | ||
| Optional. When present, sets the default generation mode. If not present the | | Optional. When present, sets the default generation mode. If not present the <mode> is assumed to be "I" for intercept-able functions (see [[scl_function]] for details) and "S" for all others. | ||
The format of the | The format of the <mode> is "SPI[T]", where:<br> | ||
"S" – stub<br> | |||
"P" – proxy<br> | |||
"I" – intercept<br> | |||
"T" – trace | |||
To set the default mode to NOP (do nothing) set its value to "" (empty). | |||
To set the default mode to NOP (do nothing) set its value to " | |||
Allowed combinations: | Allowed combinations: | ||
<table border="1" cellspacing="0" cellpadding="0" width="100%" style="align:center;background-color:#ffffcc;"> | <table border="1" cellspacing="0" cellpadding="0" width="100%" style="align:center;background-color:#ffffcc;"> | ||
<tr><th>S</th><th>P</th><th> | <tr><th>S</th><th>P</th><th>I</th><th>T</th></tr> | ||
<tr><td align="center">x</td><td align="center"> </td><td align="center"> </td><td align="center"> </td> | <tr><td align="center">x</td><td align="center"> </td> | ||
<tr><td align="center"> </td><td align="center">x</td> | <td align="center"> </td><td align="center"> </td> | ||
</tr> | |||
<tr><td align="center"> </td><td align="center">x</td> | |||
<td align="center"> </td><td align="center"> </td> | |||
<tr><td align="center"> </td><td align="center"> </td | </tr> | ||
<tr><td align="center"> </td><td align="center"> </td> | |||
<td align="center">x</td><td align="center"> </td> | |||
<tr | </tr> | ||
<tr><td align="center"> </td><td align="center">x</td> | |||
<td align="center">x</td><td align="center"> </td> | |||
</tr> | |||
<tr | <tr><td align="center"> </td><td align="center"> </td> | ||
<td align="center">x</td><td align="center">x</td> | |||
</tr> | |||
<tr | <tr><td align="center"> </td><td align="center">x</td> | ||
<td align="center">x</td><td align="center">x</td> | |||
</tr> | |||
</table> | </table> | ||
|- | |- | ||
| '''--mode='''<mode> | | '''--mode='''<mode>'''('''<i><interface></i>[,<i><interface></i>…]''')''' | ||
| Interface specific generation mode. The <i><mode></i> | | Interface specific generation mode. The <i><mode></i> is 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. |
Revision as of 23:50, 19 March 2009
The STRIDE Instrumentation Utility
The s2sinstrument 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 (output from s2sbind)
- 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 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
--version | Print version information. | ||||||||||||||||||||||||||||
--im_name=<string> | The intercept module name. The default is the base name of the database file. | ||||||||||||||||||||||||||||
--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> | Optional. When present, sets the default generation mode. If not present the <mode> is assumed to be "I" for intercept-able functions (see scl_function for details) and "S" for all others.
The format of the <mode> is "SPI[T]", where: Allowed combinations:
| ||||||||||||||||||||||||||||
--mode=<mode>(<interface>[,<interface>…]) | Interface specific generation mode. The <mode> is 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. Example: Generate proxy for functions f1 and f2 --mode=P(f1,f2) | ||||||||||||||||||||||||||||
--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.