2002-06-24 Andrew Birkett <adb@tardis.ed.ac.uk>
[mono.git] / man / mono.1
1 .\" 
2 .\" mono manual page.
3 .\" (C) Ximian, Inc. 
4 .\" Author:
5 .\"   Miguel de Icaza (miguel@gnu.org)
6 .\"
7 .TH Mono "Mono 1.0"
8 .SH NAME
9 mono \- Mono ECMA-CLI Just in Time compiler.
10 .SH SYNOPSIS
11 .PP
12 .B mono
13 [\-\-help] [\-d] [\-\-debug-asm] [\-\-debug-forest] [\-\-trace-calls]
14 [\-\-compile name] [\-\-ncompile num]  [\-\-noinline] [\-\-profile]
15 [\-\-debug=[format]] [\-\-debug-args args] [\-\-break name] [\-\-precompile name]
16 [\-\-config filename]
17 program.exe [arguments...]
18 .SH DESCRIPTION
19 The \fImono\fP program is a Just in Time compiler for ECMA CLI byte
20 codes.  It translates dynamically a CIL stream into native code. 
21 .I program.exe
22 and optionally passes
23 the
24 .I arguments
25 to it. 
26 .SH OPTIONS
27 The following options are supported:
28 .TP
29 .I "--help", "-h"
30 Displays usage instructions.
31 .I "--share-code"
32 This mode makes the LoaderOptimization for Application Domains default
33 to sharing code.  This results in slower code, but enables code
34 sharing across application domains.  The default is to maximize for
35 speed, but disallow JITed code sharing across domains.  See
36 System.LoaderOptimization for more information
37 .TP
38 .I "--config filename"
39 Load the specified configuration file instead of the default one(s).
40 The default files are /etc/mono/config and ~/.mono/config or the file
41 specified in the MONO_CONFIG environment variable, if set.
42 .TP
43 .I "--noinline"
44 Disables the code inliner.
45 .SH DEBUGGING OPTIONS
46 The following options are used to debug, or perfomance test the JIT
47 compiler:
48 .TP
49 .I "--trace-calls"
50 Shows method names as they are invoked.
51 .TP
52 .I "--dump-asm"
53 Displays the generated code as methods are invoked.
54 .TP
55 .I "--dump-forest"
56 Displays the basic blocks and the forest of trees that is 
57 created from a stream of CIL opcodes.
58 .TP
59 .I "--compile name"
60 Compiles the method on the given class (namespace.name:methodname) or
61 all classes in the given image (@imagename).
62 .TP
63 .I "--ncompile"
64 Compiles the method a number of times.  If no argument is specified,
65 the method will be compiled a thousand times.
66 .SH DEVELOPMENT OPTIONS
67 The following options are used to debug a JITed application.  They're
68 only useful when running the JIT in a debugger:
69 .TP
70 .I "--debug=[format]"
71 Writes out debug information in the given format or in the default format.
72 See DEBUGGING FORMATS for details.
73 .TP
74 .I "--debug-args args"
75 Comma-separated list of additional arguments for the symbol writer.
76 See DEBUGGING FORMATS for details.
77 .TP
78 .I "--break method"
79 Inserts a breakpoint before the method whose name is `method'
80 (namespace.class:methodname).
81 .TP
82 .I "--precompile name"
83 Compiles the given class (namespace.name), method (namespace.name:methodname)
84 or all classes in the given image (@imagename) before executing the main
85 application.
86 .TP
87 .I "--profile"
88 Collect profiling information and dump it at the end of the process.
89 .SH DEBUGGING FORMATS
90 The following debugging formats are currently supported:
91 .TP
92 .I "stabs"
93 Writes out stabs debug information.
94 .TP
95 .I "dwarf"
96 Writes out dwarf debug information.
97 .TP
98 .I "dwarf-plus"
99 Uses an extended debugging information file which has been generated
100 by MCS.  This extended debugging information will allow you to debug
101 C# source code rather than IL code.  To use it, just run the JIT in
102 your debugger and call "mono_debug_make_symbols" each time the program
103 stops.
104 .PP
105 The "stabs" and "dwarf" formats support the following options:
106 .TP
107 .I "filename=FILENAME"
108 Write debugging information into FILENAME.  This file must be run through
109 the assembler to create an object file.
110 .TP
111 .I "objfile=FILENAME"
112 When automatically assembling the symbol file, write the resulting object
113 file into FILENAME.
114 .TP
115 .I "dont_assemble"
116 Normally, the symbol file is automatically assembled to an object file
117 when you call "mono_debug_make_symbols".  Use this option to disable this
118 behaviour.
119 .TP
120 .I "install_il_files"
121 Put the generated *.il files in the same directory than the assembly they
122 came from.  The default is to put them into the current working directory.
123 .TP
124 .I "dont_update_il_files"
125 Normally, the *.il files are recreated if their assemblies have changed
126 when you call "mono_debug_make_symbols".  Use this option to disable this
127 behaviour.
128 .TP
129 .I "dont_create_il_files"
130 Update the *.il files if their assemblies have changed, but only if the
131 file already exists.
132 .PP
133 The "dwarf-plus" format supports the following options:
134 .TP
135 .I "dont_fallback"
136 Don't fallback to normal dwarf2 if the symbol file cannot be found.
137 .PP
138 .SH FILES
139 Assemblies are lodaed from the installation lib directory.  If you set
140 `prefix' to /usr, the assemblies will be located in /usr/lib.
141 .PP
142 /etc/mono/config, ~/.mono/config
143 .IP
144 Mono runtime configuration file.  See the mono-config(5) manual page
145 for more information.
146 .SH MAILING LISTS
147 Visit http://mail.ximian.com/mailman/mono-list for details.
148 .SH WEB SITE
149 Visit: http://www.go-mono.com for details
150 .SH SEE ALSO
151 .BR mcs(1), mint(1), monodis(1), mono-config(5)
152
153