This is pnettools.info, produced by makeinfo version 4.3 from pnettools.texi. The Portable.NET development tools assist with building and manipulating images in the portable executable format. development. Copyright (C) 2001 Southern Storm Software, Pty Ltd File: pnettools.info, Node: resgen invocation, Next: Resource Format, Prev: Resources, Up: Resources Invoking resgen =============== The general form of the resgen syntax is as follows: resgen [OPTIONS] INPUT ... OUTPUT Resgen can convert multiple input files into a single output file. A number of options are available to specify the format of the input files and the output file. Alternatively, resgen can guess the format of a file from its extension: `.txt' `.text' Text resources. `.resources' Binary resources. `.resx' `.xml' XML resources. `.po' GNU gettext resources. `.exe' `.dll' `.obj' `.o' Binary resources within an IL image (input only). The input filename `-' may be used to specify standard input. If an input format is not specified, standard input is assumed to contain text resources. The output filename `-' may be used to specify standard output. If an output format is not specified, the format of standard output is assumed to be text. `-t' `--text-input' The input files are all assumed to be in text resource format. `-r' `--res-input' The input files are all assumed to be in binary resource format. `-i' `--il-input' The input files are all assumed to be IL image files (i.e. executables, dynamic link libraries, or object files). `-x' `--xml-input' The input files are all assumed to be in XML resource format. `-p' `--po-input' The input files are all assumed to be in GNU gettext .po resource format. `-T' `--text-output' The output format is set to text resources. `-R' `--res-output' The output format is set to binary resources. `-X' `--xml-output' The output format is set to XML resources. `-P' `--po-output' The output format is set to GNU gettext .po resources. `-s' `--sort-names' When writing text resources as output, sort the resources by name. This typically makes it easier for humans to read the output. This option is ignored if the output format is not text. `--help' Print a usage message for the resgen program. `-v' `--version' Print the version of the \fBresgen\fR program. `--' Marks the end of the command-line options, and the beginning of the input filenames. You may need to use this if your filename begins with `-'. e.g. `ilresgen -- -input.txt output.resources'. This is not needed if the input is stdin: `ilresgen - output.resources' is perfectly valid. The exit status is 1 if an error occurred while processing the input. Otherwise the exit status is 0. File: pnettools.info, Node: Resource Format, Next: Resource Examples, Prev: resgen invocation, Up: Resources Text resource file format ========================= Text resource files contain one line for each resource. Each line has the form `name=value', where `name' is the tag name associated with the resource, and `value' is the resource's string value. For example: Arg_InvalidBase=Base must be 2, 8, 10, or 16 Overflow_Byte=Valid Byte values are between 0 and 255, inclusive Comments are lines that begin with a `#' character. Blank lines are also considered comments. Resource string values are assumed to be in the UTF-8 text encoding. No other character sets are currently supported. Values can contain one of the following escape sequences, which indicate special characters: `\n' Newline character, `\u000A'. `\r' Carriage return character, `\u000D'. `\t' TAB character, `\u0009'. `\f' Form feed character, `\u000C'. `\v' Vertical TAB character, `\u000B'. `\0' NUL character, `\u0000'. `\NNN' 8-bit octal Unicode character. `\xHH' 8-bit hexadecimal Unicode character. `\uHHHH' 16-bit hexadecimal Unicode character. `\UHHHHHHHH' 32-bit hexadecimal Unicode character. File: pnettools.info, Node: Resource Examples, Next: ECMA Extensions, Prev: Resource Format, Up: Resources Resource conversion examples ============================ The following command-line converts three text resource input files into a binary resource output file: resgen file1.txt file2.txt file3.txt output.resources If the files did not have extensions whose format can be guessed, then command-line options can be used specify the formats: resgen --text-input --res-output file1 file2 file3 output The default resources within an executable can be extracted to text format on standard output as follows: resgen -s program.exe - The `-s' option was used here to sort the output so that it is more easily digested by the user. File: pnettools.info, Node: ECMA Extensions, Next: Object Files, Prev: Resource Examples, Up: Top ECMA file format extensions *************************** The ECMA Partition II specification for IL binaries is missing some capabilities that a full development toolchain requires. This chapter describes extensions to the ECMA file formats that our development tools use. This information is provided to assist interoperation between free software projects that manipulate IL binaries. * Menu: * Object Files:: Object file format extensions * Debug Symbols:: Debug symbol extensions File: pnettools.info, Node: Object Files, Next: Debug Symbols, Prev: ECMA Extensions, Up: ECMA Extensions Object file format extensions ============================= The ECMA specifications on IL binaries do not define an object file format for incremental compilations. Tools from other vendors typically take an entire set of source files and compile them to either a `.exe' or `.dll' in one hit. Because we wish to support incremental compilation of programs and libraries through the cscc compiler, we have defined an object file format for IL binaries, which is similar to the PE/COFF .obj format on Windows systems. IL object files are PE/COFF images with the following properties: * There is no MS-DOS stub program or PE signature. * The machine type in the PE/COFF header is always 0x014C (386), which also acts as the "magic number" to detect whether a file is an object or an executable/DLL. * There is no optional header after the main PE/COFF header, and the "characteristics" field is set to zero. * The IL runtime header, code, resources, metadata, etc are placed in a read-only section called `.text$il' instead of `.text'. The IL runtime header begins at the start of the section. * Other PE/COFF sections such as `.text', `.rsrc', and `.reloc', can be omitted. If present, they provide information about native code which is outside the scope of this specification. The IL data in the `.text$il' section is formatted in accordance with the normal ECMA conventions for DLL's. At link time, the metadata can be used to combine multiple object files into a single DLL or executable. This format was designed to be as compatible as possible with regular PE/COFF object files. The main distinguishing characteristic is the use of `.text$il' to tag the file as containing IL data. File: pnettools.info, Node: Debug Symbols, Next: Load Errors, Prev: Object Files, Up: ECMA Extensions Debug symbol extensions ======================= The assembler syntax defined in the ECMA specification allows for line number and local variable name information to be inserted into the assembly code stream. This information is typically used by source-level debuggers. However, ECMA does not specify a standard way to represent this debug information in the final IL binary. It leaves it instead to the specific implementations. The following sections describe the format used by our development tools for representing debug information within the IL binary. Requirements ------------ The following requirements were identified for the debug format: * It must be easy to strip from an image file. * It should not impact runtime engines and tools that are unaware of how to handle the debug information. * It must be extensible to new debug data in the future, while retaining forwards and backwards compatibility. * It should be efficient to locate all debug information that is relevant to a metadata token. The `.ildebug' section ---------------------- All debug information for an IL image is placed into a read-only, discardable, data section called `.ildebug'. The contents of `.ildebug' should be the last section within the PE/COFF image file. This allows the debug information to be easily stripped by truncating the image, removing the `.ildebug' entry from the PE/COFF section table, and reducing the total image size in the PE/COFF headers. The section begins with a header consisting of the following fields: Magic 4-byte magic number string `ILDB'. Version 32-bit value indicating the version. This must be 1. IndexOffset 32-bit offset from the start of this header to the beginning of the token index. NumIndexEntries 32-bit value that indicates the number of entries in the token index. StringOffset 32-bit offset from the start of this header to the beginning of the string table. StringLength 32-bit value that indicates the length of the string table. Unless otherwise stated, all numeric quantities will be assumed to be in little-endian order. Token index ----------- The token index consists of 8-byte entries of the following form: Token 32-bit token value. Offset 32-bit offset from the start of the debug section to a block of debug information that is associated with the token. The token index must be sorted into ascending order of "Token", and should be aligned on a 4-byte boundary. There may be multiple entries in the index for the same token. Use the following algorithm to locate all debug information for a token: * Perform a binary search within the index for the token. * Scan backwards in the index until the first entry for the token is found. * Scan forwards in the index until the last entry for the token is found. Because the token index is sorted, multiple debug information blocks for the same token could be in any order. Tools should not rely upon the blocks being in any particular order, and are free to change the order when modifying the debug section. All of the debug information in this document refers to a specific metadata token. However, in the future it may be possible for debug information to pertain to the entire image, or to objects other than metadata tokens. To store debug information for non-tokens, it is first necessary to construct a pseudo-token using the following algorithm: * Pick a unique 4-character string for the item. e.g. `ABCD'. The last character must be 7-bit ASCII. * Convert the string into a little-endian value, where the first character is assumed to be the least significant byte. e.g. `0x44434241'. * Set the high bit of the value to 1. e.g. `0xC4434241'. The result is the pseudo-token value. Because regular metadata tokens cannot have their high bit set, this will result in a value that won't conflict with regular tokens. As an additional requirement, standard pseudo-tokens will use upper case characters in their names. e.g. `ABCD'. Private pseudo-tokens will use lower case characters. e.g. `abcd'. There are no standard pseudo-tokens at present. String table ------------ The string table stores NUL-terminated strings that are referenced by the debug information. In the current version of this document, the strings will typically be filenames and local variable names. Strings are referenced by their index, which is an offset from the beginning of the string table. The string value begins at that offset and continues until the next zero byte is encountered. The last byte in the string table must be zero, which means that the string table can never be empty. This document does not specify any particular character set for the strings. Debug information blocks ------------------------ Each entry in the token index contains an offset of the debug information that is associated with that entry. This debug information begins with the following header: Type The type of debug information. Length The number of bytes of debug information that follow this header. The "Type" and "Length" values are encoded with the same multi-byte "compressed" format used in metadata to encode unsigned 32-bit values: 0-127 Encode as the value itself in a single byte. 128-16383 Encode as `(0x80 | (value >> 8))', `(value & 0xFF)'. Note: 16383 is (2^14 - 1). 16384-536870911 Encode as `(0xC0 | (value >> 24))', `((value >> 16) & 0xFF)', `((value >> 8) & 0xFF)', `(value & 0xFF)'. Note: 536870911 is (2^29 - 1). 536870912-4294967295 Encode as `0xE0', `((value >> 24) & 0xFF)', `((value >> 16) & 0xFF)', `((value >> 8) & 0xFF)', `(value & 0xFF)'. The following debug types are supported, which are further described in the following sections: 1 Line number and column block. 2 Line number and offsets block. 3 Line number, column, and offsets block. 4 Local variables block. 5 Local variables and offsets block. If a debug block type is not understood, it should be silently ignored. This allows future versions of this specification to extend the set of debug block types without affecting existing implementations All of the values described below are encoded using the above multi-byte compressed format. Line number and column block ---------------------------- This block begins with an index into the string table that indicates the name of the file. The rest of the block consists of pairs of line number and column values. A value of zero indicates an unspecified line or column. This block type is typically used for metadata tokens, other than methods, to indicate the line in the source file where the token was declared. Line number and offsets block ----------------------------- This block begins with an index into the string table that indicates the name of the file. The rest of the block consists of pairs of line number and offset values. This block type is typically used for method tokens, to indicate which source file line corresponds to which offset within the method's code. Line number, column, and offsets block -------------------------------------- This block begins with an index into the string table that indicates the name of the file. The rest of the block consists of triples of line number, column, and offset values. A value of zero for the line or column indicates that it is unspecified. This block type is typically used for method tokens, to indicate which source file line corresponds to which offset within the method's code. The previous type is more compact if column numbers are not available. Local variables block --------------------- This block consists of pairs of name and index values. The name value is an offset into the string table and indicates the name of the local variable. The index is the number assigned to the local variable within the method's code. This block type is typically used for method tokens whose local variables extend for the entire scope of the method's body. Local variables and offsets block --------------------------------- This block begins with two offset values, indicating the start and end of a region of code. The rest of the block consists of pairs of name and index values for the local variables. This block is typically used for method tokens where some of the local variables have a scope that does not extend for the entire length of the method's body. Thus, it is possible for the same local variable name to refer to different indices at different points within the code. Multiple local variable blocks for a method do not need to be ordered in any particular way. Debug tools may need to sort the blocks so that names in inner scopes override those in outer scopes. File: pnettools.info, Node: Load Errors, Next: Index, Prev: Debug Symbols, Up: Top Errors while loading IL binaries ******************************** `filename: truncated image' The input file is truncated in some way that prevents it from being read as an IL image. `filename: not a valid PE/COFF image' The input file is not a PE/COFF file. That is, it is not formatted as a Windows executable or dynamic link library, and is also not formatted as an object file. *Note Object Files::, for details on the object file format. `filename: image does not contain IL data (may be an ordinary Windows executable)' The input file is a valid PE/COFF file, but it does not contain an IL binary within it. It is probably an ordinary native Windows executable that cannot be processed by the development tools. `filename: incorrect IL version' The input file is a valid PE/COFF file that contains a valid IL binary, but the IL data is for an unsupported version. `filename: required sections in reverse order' There was something wrong with the order of sections within the file that caused the loader to need to seek backwards. This will normally only happen for IL binaries that have been incorrectly generated or corrupted in some way. `filename: not enough memory to load image' The IL binary was so large that it could not be loaded into memory prior to processing. `filename: bad addresses in image' The PE/COFF file or IL binary within the file contained a "relative virtual address", or RVA, that was invalid. This will normally only happen for IL binaries that have been incorrectly generated or corrupted in some way. `filename: invalid metadata in image' The metadata section was invalid in some way. Usually this indicates a corrupted IL binary. `filename: uses undocumented metadata feature' The metadata section was mostly valid, but it used features for which we do not have sufficient documentation to parse successfully. `filename: unresolved external references' The metadata section was valid, but it referred to types in another file that could not be fully resolved. `metadata error: ...' Depending on how the development tools were built, errors of this kind may appear in addition to the other errors listed above. They provide additional diagnostics that mainly of interest to the authors. If you come across a file that produces such an error, then contact the authors. In addition, any of the usual filesystem-related errors may be produced. For example, `filename: No such file or directory'. File: pnettools.info, Node: Index, Prev: Load Errors, Up: Top Index ***** * Menu: * -3 option (ilalink): ilalink invocation. * -3 option (ilasm): ilasm invocation. * -A option (ilalink): ilalink invocation. * -a option (ilalink): ilalink invocation. * -b option (ildasm): ildasm invocation. * -C option (cscc plug-in): Language Plugins. * -C option (cscc): Preprocessor Options. * -c option (cscc): Overall Options. * -c option (ilalink): ilalink invocation. * -c option (ilasm): ilasm invocation. * -D option (cscc plug-in): Language Plugins. * -D option (cscc): Preprocessor Options. * -d option (ilalink): ilalink invocation. * -d option (ilasm): ilasm invocation. * -d option (ildasm): ildasm invocation. * -D option (ilsize): ilsize invocation. * -d option (ilsize): ilsize invocation. * -debug option (ilasm): ilasm invocation. * -detailed option (ilsize): ilsize invocation. * -dM option (cscc plug-in): Language Plugins. * -dM option (cscc): Preprocessor Options. * -dN option (cscc plug-in): Language Plugins. * -dN option (cscc): Preprocessor Options. * -dump-bytes option (ildasm): ildasm invocation. * -dump-sections option (ildasm): ildasm invocation. * -dumpversion option (cscc): Other Options. * -E option (cscc plug-in): Language Plugins. * -e option (cscc): Linker Options. * -E option (cscc): Overall Options. * -E option (ilalink): ilalink invocation. * -e option (ilalink): ilalink invocation. * -e option (ilasm): ilasm invocation. * -entry-point option (ilalink): ilalink invocation. * -f option (ilfind): ilfind invocation. * -f* option (cscc plug-in): Language Plugins. * -fassembly-name option (ilalink): ilalink invocation. * -fassembly-version option (ilalink): ilalink invocation. * -fby-library option (csdoc2hier): csdoc2hier invocation. * -fchapternewpage option (csdoc2texi): csdoc2texi invocation. * -fchecked option (cscc): Language Options. * -fcombine-members option (csdoc2html): csdoc2html invocation. * -fcopyright option (csdoc2texi): csdoc2texi invocation. * -fdecimal-constants option (cscc): Language Options. * -fdefn-color option (csdoc2html): csdoc2html invocation. * -fdescription option (csdoc2texi): csdoc2texi invocation. * -fembedded option (csdoc2texi): csdoc2texi invocation. * -ffilename option (csdoc2texi): csdoc2texi invocation. * -fframes option (csdoc2html): csdoc2html invocation. * -fhash-algorithm option (ilalink): ilalink invocation. * -fheader-color option (csdoc2html): csdoc2html invocation. * -filasm-path option (cscc): Assembler Options. * -file-regex option (ilfind): ilfind invocation. * -findex option (csdoc2texi): csdoc2texi invocation. * -flatin1-charset option (cscc): Language Options. * -flibrary-name option (csdoc): csdoc invocation. * -fmodule-name option (ilalink): ilalink invocation. * -fmulti-file option (csdoc2html): csdoc2html invocation. * -fnamespace-directories option (csdoc2html): csdoc2html invocation. * -fnewpage option (csdoc2texi): csdoc2texi invocation. * -fno-frames option (csdoc2html): csdoc2html invocation. * -fno-index option (csdoc2texi): csdoc2texi invocation. * -fno-namespace-directories option (csdoc2html): csdoc2html invocation. * -fno-newpage option (csdoc2texi): csdoc2texi invocation. * -fno-peephole option (cscc): Optimization Options. * -fno-short-insns option (cscc): Assembler Options. * -fno-short-insns option (ilasm): ilasm invocation. * -fnostdinc option (cscc): Directory Options. * -fnostdinc++ option (cscc): Directory Options. * -foctal-chars option (cscc): Language Options. * -foctal-constants option (cscc): Language Options. * -format dll option (ilalink): ilalink invocation. * -format dll option (ilasm): ilasm invocation. * -format exe option (ilalink): ilalink invocation. * -format exe option (ilasm): ilasm invocation. * -format obj option (ilalink): ilalink invocation. * -format obj option (ilasm): ilasm invocation. * -fpage-color option (csdoc2html): csdoc2html invocation. * -fparent option (csdoc2texi): csdoc2texi invocation. * -fplugin-KEY-path option (cscc): Other Options. * -fprivate option (csdoc): csdoc invocation. * -fprivate-resources option (ilalink): ilalink invocation. * -fresources option (cscc): Linker Options. * -fresources option (ilalink): ilalink invocation. * -fsave-asm option (cscc): Assembler Options. * -fsemantic-check option (cscc): Language Options. * -fseparate-members option (csdoc2html): csdoc2html invocation. * -fshort-insns option (ilasm): ilasm invocation. * -fsingle-file option (csdoc2html): csdoc2html invocation. * -fstandalone option (csdoc2texi): csdoc2texi invocation. * -fstdlib-name option (cscc): Assembler Options. * -fstdlib-name option (ilalink): ilalink invocation. * -fstdlib-name option (ilasm): ilasm invocation. * -fsyntax-check option (cscc): Language Options. * -ftitle option (csdoc2html): csdoc2html invocation. * -ftitle option (csdoc2texi): csdoc2texi invocation. * -funchecked option (cscc): Language Options. * -funsafe option (cscc): Language Options. * -g option (cscc plug-in): Language Plugins. * -g option (cscc): Debugging Options. * -G option (ilalink): ilalink invocation. * -G option (ilasm): ilasm invocation. * -g option (ilasm): ilasm invocation. * -g option (ilfind): ilfind invocation. * -gnome option (cscc): Linker Options. * -grep-regex option (ilfind): ilfind invocation. * -gtk option (cscc): Linker Options. * -H option (ilalink): ilalink invocation. * -help option (cscc): Other Options. * -help option (csdoc2hier): csdoc2hier invocation. * -help option (csdoc2html): csdoc2html invocation. * -help option (csdoc2texi): csdoc2texi invocation. * -help option (ilalink): ilalink invocation. * -help option (ilasm): ilasm invocation. * -help option (ildasm): ildasm invocation. * -help option (ildd): ildd invocation. * -help option (ilfind): ilfind invocation. * -help option (ilnative): ilnative invocation. * -help option (ilsize): ilsize invocation. * -help option (resgen): resgen invocation. * -I option (cscc plug-in): Language Plugins. * -I option (cscc): Directory Options. * -i option (ilfind): ilfind invocation. * -i option (resgen): resgen invocation. * -ignore-case option (ilfind): ilfind invocation. * -il-input option (resgen): resgen invocation. * -J option (cscc plug-in): Language Plugins. * -j option (ilalink): ilalink invocation. * -J option (ilasm): ilasm invocation. * -j option (ilasm): ilasm invocation. * -K option (cscc plug-in): Language Plugins. * -l option (cscc plug-in): Language Plugins. * -L option (cscc plug-in): Language Plugins. * -l option (cscc): Linker Options. * -L option (cscc): Linker Options. * -L option (ilalink): ilalink invocation. * -l option (ilalink): ilalink invocation. * -L option (ilasm): ilasm invocation. * -l option (ilasm): ilasm invocation. * -library option (ilalink): ilalink invocation. * -library-dir option (ilalink): ilalink invocation. * -M option (cscc plug-in): Language Plugins. * -M option (ilalink): ilalink invocation. * -m* option (cscc plug-in): Language Plugins. * -m32bit-only option (cscc): Linker Options. * -m32bit-only option (ilalink): ilalink invocation. * -m32bit-only option (ilasm): ilasm invocation. * -mcui-subsystem option (cscc): Linker Options. * -mcui-subsystem option (ilalink): ilalink invocation. * -mcui-subsystem option (ilasm): ilasm invocation. * -mgui-subsystem option (cscc): Linker Options. * -mgui-subsystem option (ilalink): ilalink invocation. * -mgui-subsystem option (ilasm): ilasm invocation. * -mjvm option (cscc plug-in): Language Plugins. * -mjvm option (cscc): Assembler Options. * -mjvm option (ilasm): ilasm invocation. * -n option (ilalink): ilalink invocation. * -n option (ilasm): ilasm invocation. * -n option (ildasm): ildasm invocation. * -n option (ilfind): ilfind invocation. * -n option (ilnative): ilnative invocation. * -names-only option (ilnative): ilnative invocation. * -no-debug option (ilasm): ilasm invocation. * -no-il option (ildasm): ildasm invocation. * -no-regex option (ilfind): ilfind invocation. * -no-stdlib option (ilalink): ilalink invocation. * -nostdinc option (cscc plug-in): Language Plugins. * -nostdinc++ option (cscc plug-in): Language Plugins. * -nostdlib option (cscc plug-in): Language Plugins. * -nostdlib option (cscc): Linker Options. * -O option (cscc plug-in): Language Plugins. * -o option (cscc plug-in): Language Plugins. * -O option (cscc): Optimization Options. * -o option (cscc): Overall Options. * -o option (csdoc): csdoc invocation. * -o option (csdoc2hier): csdoc2hier invocation. * -o option (csdoc2html): csdoc2html invocation. * -o option (csdoc2texi): csdoc2texi invocation. * -o option (ilalink): ilalink invocation. * -o option (ilasm): ilasm invocation. * -o option (ildasm): ildasm invocation. * -o option (ilsize): ilsize invocation. * -O0 option (cscc plug-in): Language Plugins. * -O0 option (cscc): Optimization Options. * -O2 option (cscc plug-in): Language Plugins. * -O2 option (cscc): Optimization Options. * -O3 option (cscc plug-in): Language Plugins. * -O3 option (cscc): Optimization Options. * -output option (csdoc2hier): csdoc2hier invocation. * -output option (csdoc2html): csdoc2html invocation. * -output option (csdoc2texi): csdoc2texi invocation. * -output option (ilalink): ilalink invocation. * -output option (ilasm): ilasm invocation. * -output option (ildasm): ildasm invocation. * -P option (cscc plug-in): Language Plugins. * -P option (cscc): Preprocessor Options. * -p option (ilalink): ilalink invocation. * -p option (ilfind): ilfind invocation. * -P option (resgen): resgen invocation. * -p option (resgen): resgen invocation. * -pipe option (cscc plug-in): Language Plugins. * -pipe option (cscc): Overall Options. * -po-input option (resgen): resgen invocation. * -po-output option (resgen): resgen invocation. * -public-only option (ilfind): ilfind invocation. * -q option (ildasm): ildasm invocation. * -quote-names option (ildasm): ildasm invocation. * -R option (ilalink): ilalink invocation. * -r option (ilalink): ilalink invocation. * -r option (ildasm): ildasm invocation. * -R option (resgen): resgen invocation. * -r option (resgen): resgen invocation. * -radix option (ilsize): ilsize invocation. * -real-offsets option (ildasm): ildasm invocation. * -res-input option (resgen): resgen invocation. * -res-output option (resgen): resgen invocation. * -resources-only option (ilalink): ilalink invocation. * -S option (cscc): Overall Options. * -S option (ilalink): ilalink invocation. * -s option (ilasm): ilasm invocation. * -s option (ilfind): ilfind invocation. * -s option (resgen): resgen invocation. * -shared option (cscc): Linker Options. * -shared option (ilalink): ilalink invocation. * -show-tokens option (ildasm): ildasm invocation. * -sort-names option (resgen): resgen invocation. * -static option (cscc): Linker Options. * -static option (ilalink): ilalink invocation. * -sub-string option (ilfind): ilfind invocation. * -t option (ildasm): ildasm invocation. * -T option (resgen): resgen invocation. * -t option (resgen): resgen invocation. * -text-input option (resgen): resgen invocation. * -text-output option (resgen): resgen invocation. * -U option (cscc plug-in): Language Plugins. * -U option (cscc): Preprocessor Options. * -undef option (cscc plug-in): Language Plugins. * -undef option (cscc): Preprocessor Options. * -v option (cscc plug-in): Language Plugins. * -v option (cscc): Overall Options. * -v option (csdoc2hier): csdoc2hier invocation. * -v option (csdoc2html): csdoc2html invocation. * -v option (csdoc2texi): csdoc2texi invocation. * -v option (ilalink): ilalink invocation. * -v option (ilasm): ilasm invocation. * -v option (ildasm): ildasm invocation. * -v option (ildd): ildd invocation. * -v option (ilfind): ilfind invocation. * -v option (ilnative): ilnative invocation. * -V option (ilsize): ilsize invocation. * -v option (ilsize): ilsize invocation. * -v option (resgen): resgen invocation. * -version option (csdoc2hier): csdoc2hier invocation. * -version option (csdoc2html): csdoc2html invocation. * -version option (csdoc2texi): csdoc2texi invocation. * -version option (ilalink): ilalink invocation. * -version option (ilasm): ilasm invocation. * -version option (ildasm): ildasm invocation. * -version option (ildd): ildd invocation. * -version option (ilfind): ilfind invocation. * -version option (ilnative): ilnative invocation. * -version option (ilsize): ilsize invocation. * -version option (resgen): resgen invocation. * -vv option (cscc): Overall Options. * -w option (cscc plug-in): Language Plugins. * -w option (cscc): Warning Options. * -W option (cscc): Warning Options. * -w option (ildasm): ildasm invocation. * -w option (ilfind): ilfind invocation. * -W* option (cscc plug-in): Language Plugins. * -Wall option (cscc plug-in): Language Plugins. * -Wall option (cscc): Warning Options. * -Wempty-input option (cscc): Warning Options. * -Werror option (cscc plug-in): Language Plugins. * -Werror option (cscc): Warning Options. * -whole-file option (ildasm): ildasm invocation. * -whole-string option (ilfind): ilfind invocation. * -Winvalid-utf8 option (cscc): Warning Options. * -Wlarge-unicode-chars option (cscc): Warning Options. * -Wmulti-char-constant option (cscc): Warning Options. * -Wno-* option (cscc plug-in): Language Plugins. * -Woctal-chars option (cscc): Warning Options. * -Woctal-constants option (cscc): Warning Options. * -Wunknown-escapes option (cscc): Warning Options. * -Wunsafe option (cscc): Warning Options. * -x option (cscc): Overall Options. * -x option (ilsize): ilsize invocation. * -X option (resgen): resgen invocation. * -x option (resgen): resgen invocation. * -xml-input option (resgen): resgen invocation. * -xml-output option (resgen): resgen invocation. * .addon directive: Event Members. * .assembly directive: Assembly Declarations. * .assembly extern directive: Assembly References. * .class directive: Class Declarations. * .custom directive: Custom Attributes. * .event directive: Event Declarations. * .field directive: Field Declarations. * .fire directive: Event Members. * .get directive: Property Members. * .ildebug section: Debug Symbols. * .library directive: Class References. * .line directive: Debug Information. * .method directive: Method Declarations. * .module directive: Module Declarations. * .other directive for events: Event Members. * .other directive for properties: Property Members. * .pack directive: Class Layout. * .property directive: Property Declarations. * .removeon directive: Event Members. * .set directive: Property Members. * .size directive: Class Layout. * .text$il section: Object Files. * __arglist keyword: Special Keywords. * __builtin_constant keyword: Special Keywords. * __CSCC__ macro: Pre-defined Macros. * __JVM__ macro: Pre-defined Macros. * __makeref keyword: Special Keywords. * __reftype keyword: Special Keywords. * __refvalue keyword: Special Keywords. * abstract attribute (types): Class Attributes. * ansi attribute (types): Class Attributes. * Assembler: Assembler. * Assembler options for cscc: Assembler Options. * Assembler Syntax: Assembler Syntax. * Assembly Attributes: Assembly Attributes. * Assembly Declarations: Assembly Declarations. * Assembly Members: Assembly Members. * Assembly Reference Members: Assembly Reference Members. * Assembly References: Assembly References. * AssemblyAttribute: Assembly Attributes. * AssemblyDeclaration: Assembly Declarations. * AssemblyMember: Assembly Members. * AssemblyName: Assembly Declarations. * AssemblyRefDeclaration: Assembly References. * AssemblyRefMember: Assembly Reference Members. * auto attribute (types): Class Attributes. * autochar attribute (types): Class Attributes. * beforefieldinit attribute (types): Class Attributes. * Bounds: Type Specifications. * Bytes: Helper Non-Terminals. * C# Compiler: C# Compiler. * C# Differences: Differences. * Calling Conventions: Calling Conventions. * CallingConventions: Calling Conventions. * Class Attributes: Class Attributes. * Class Declarations: Class Declarations. * Class Layout: Class Layout. * Class Members: Class Members. * Class References: Class References. * ClassAttribute: Class Attributes. * ClassDeclaration: Class Declarations. * ClassLayoutDeclaration: Class Layout. * ClassMember: Class Members. * ClassName: Class References. * Compiling to the JVM: Compiling to the JVM. * ComposedString: Helper Non-Terminals. * cscc: C# Compiler. * cscc invocation: cscc invocation. * cscc option summary: Option Summary. * csdoc invocation: csdoc invocation. * csdoc2hier invocation: csdoc2hier invocation. * csdoc2html invocation: csdoc2html invocation. * csdoc2texi invocation: csdoc2texi invocation. * Custom Attributes: Custom Attributes. * CustomAttributeDeclaration: Custom Attributes. * Debug Information: Debug Information. * DEBUG macro: Pre-defined Macros. * Debug Symbols: Debug Symbols. * Debugging options for cscc: Debugging Options. * DebugInformation: Debug Information. * Declaration: Top-Level Declarations. * Dependencies: Dependencies. * Directory options for cscc: Directory Options. * Disassembler: Disassembler. * Documentation: Documentation. * Documentation cross-references: Cross-References. * Documentation markup: Documentation Markup. * Documentation sections: Documentation Sections. * double_epsilon builtin constant: Special Keywords. * double_max builtin constant: Special Keywords. * double_min builtin constant: Special Keywords. * ECMA Extensions: ECMA Extensions. * Event Attributes: Event Attributes. * Event Declarations: Event Declarations. * Event Members: Event Members. * EventAttribute: Event Attributes. * EventDeclaration: Event Declarations. * EventMember: Event Members. * explicit attribute (types): Class Attributes. * Field Attributes: Field Attributes. * Field Declarations: Field Declarations. * Field Initialization: Field Initialization. * Field Layout: Field Layout. * Field References: Field References. * FieldAttribute: Field Attributes. * FieldDeclaration: Field Declarations. * FieldInitialization: Field Initialization. * FieldReference: Field References. * Find: Find. * Float64: Helper Non-Terminals. * float_epsilon builtin constant: Special Keywords. * float_max builtin constant: Special Keywords. * float_min builtin constant: Special Keywords. * Helper Non-Terminals: Helper Non-Terminals. * Identifier: Helper Non-Terminals. * ilalink: Linker. * ilalink invocation: ilalink invocation. * ilasm: Assembler. * ilasm invocation: ilasm invocation. * ildasm: Disassembler. * ildasm invocation: ildasm invocation. * ildd: Dependencies. * ildd invocation: ildd invocation. * ilfind: Find. * ilfind invocation: ilfind invocation. * ilnative: Native. * ilnative invocation: ilnative invocation. * ilsize: Size. * ilsize invocation: ilsize invocation. * Implementation Attributes: Implementation Attributes. * ImplementationAttributes: Implementation Attributes. * import attribute (types): Class Attributes. * ImportScope: Class References. * Integer32: Helper Non-Terminals. * Integer64: Helper Non-Terminals. * interface attribute (types): Class Attributes. * Java Method Members: Java Method Members. * Language options for cscc: Language Options. * Language plugins: Language Plugins. * Lexical tokens: Lexical Tokens. * Linker: Linker. * Linker options for cscc: Linker Options. * Load Errors: Load Errors. * MarshalledType: Type Specifications. * Method Attributes: Method Attributes. * Method Declarations: Method Declarations. * Method Members: Method Members. * Method References: Method References. * Method Signatures: Method Signatures. * MethodAttribute: Method Attributes. * MethodDeclaration: Method Declarations. * MethodMember: Method Members. * MethodName: Method Declarations. * MethodReference: Method References. * Module Declarations: Module Declarations. * ModuleDeclaration: Module Declarations. * Namespace Declarations: Namespace Declarations. * NamespaceDeclaration: Namespace Declarations. * Native: Native. * NativeType: Type Specifications. * nested assembly attribute (types): Class Attributes. * nested famandassem attribute (types): Class Attributes. * nested family attribute (types): Class Attributes. * nested famorassem attribute (types): Class Attributes. * nested private attribute (types): Class Attributes. * nested public attribute (types): Class Attributes. * Object Files: Object Files. * Optimization options for cscc: Optimization Options. * Other Declarations: Other Declarations. * Other options for cscc: Other Options. * Overall options for cscc: Overall Options. * Overview: Overview. * ParameterAttribute: Method Signatures. * PInvoke Methods: PInvoke Methods. * PInvokeAttribute: PInvoke Methods. * PInvokeParameters: PInvoke Methods. * Pre-defined macros: Pre-defined Macros. * Pre-processor syntax: Pre-processor Syntax. * Preprocessor options for cscc: Preprocessor Options. * PrimitiveType: Type Specifications. * private attribute (types): Class Attributes. * Property Attributes: Property Attributes. * Property Declarations: Property Declarations. * Property Members: Property Members. * PropertyAttribute: Property Attributes. * PropertyDeclaration: Property Declarations. * PropertyMember: Property Members. * public attribute (types): Class Attributes. * QualifiedName: Helper Non-Terminals. * RELEASE macro: Pre-defined Macros. * resgen: Resources. * resgen invocation: resgen invocation. * Resource Examples: Resource Examples. * Resource Format: Resource Format. * Resources: Resources. * rtspecialname attribute (types): Class Attributes. * sealed attribute (types): Class Attributes. * sequential attribute (types): Class Attributes. * serializable attribute (types): Class Attributes. * SignatureArgument: Method Signatures. * SignatureArguments: Method Signatures. * Size: Size. * Special Keywords: Special Keywords. * specialname attribute (types): Class Attributes. * Top-Level Declarations: Top-Level Declarations. * TopLevel: Top-Level Declarations. * Type: Type Specifications. * Type Declarations: Class Declarations. * Type Specifications: Type Specifications. * TypeSpecification: Type Specifications. * unicode attribute (types): Class Attributes. * unmanaged attribute (types): Class Attributes. * value attribute (types): Class Attributes. * Warning options for cscc: Warning Options.