[xbuild] ImportCollections.TryGetImport and other fixes
[mono.git] / man / mono.1
index aa5ce97ea7861a83e835c1e7b40cb84ebf02534d..eaf464414e446769b831f04faa7b364f5709a3ff 100644 (file)
@@ -1,11 +1,11 @@
 .\" 
 .\" mono manual page.
 .\" Copyright 2003 Ximian, Inc. 
-.\" Copyright 2004-2009 Novell, Inc. 
+.\" Copyright 2004-2011 Novell, Inc. 
 .\" Author:
 .\"   Miguel de Icaza (miguel@gnu.org)
 .\"
-.TH Mono "Mono 2.5"
+.TH Mono "Mono 2.11"
 .SH NAME
 mono \- Mono's ECMA-CLI native code generator (Just-in-Time and Ahead-of-Time)
 .SH SYNOPSIS
@@ -163,11 +163,11 @@ hardware configurations like the cell phones and video gaming
 consoles). 
 .TP
 .I static
-Create an ELF object file (.o) which can be statically linked into an executable
-when embedding the mono runtime. When this option is used, the object file needs to
-be registered with the embedded runtime using the mono_aot_register_module function
-which takes as its argument the mono_aot_module_<ASSEMBLY NAME>_info global symbol 
-from the object file:
+Create an ELF object file (.o) or .s file which can be statically linked into an
+executable when embedding the mono runtime. When this option is used, the object file
+needs to be registered with the embedded runtime using the mono_aot_register_module
+function which takes as its argument the mono_aot_module_<ASSEMBLY NAME>_info global
+symbol from the object file:
 
 .nf
 extern void *mono_aot_module_hello_info;
@@ -175,6 +175,23 @@ extern void *mono_aot_module_hello_info;
 mono_aot_register_module (mono_aot_module_hello_info);
 .fi
 .ne
+.TP
+.I mtriple=<TRIPLE>
+Use the GNU style target triple <TRIPLE> to determine some code generation options, i.e.
+--mtriple=armv7-linux-gnueabi will generate code that targets ARMv7. This is currently
+only supported by the ARM backend. In LLVM mode, this triple is passed on to the LLVM
+llc compiler.
+.TP
+.I tool-prefix=<PREFIX>
+Prepends <PREFIX> to the name of tools ran by the AOT compiler, i.e. 'as'/'ld'. For
+example, --tool=prefix=arm-linux-gnueabi- will make the AOT compiler run
+'arm-linux-gnueabi-as' instead of 'as'.
+.TP
+.I llvm-path=<PREFIX>
+Same for the llvm tools 'opt' and 'llc'.
+.TP
+.I stats
+Print various stats collected during AOT compilation.
 
 .PP
 For more information about AOT, see: http://www.mono-project.com/AOT
@@ -227,6 +244,12 @@ host/port configured with the \fBaddress\fR option.  If you set it to 'y', it
 instructs the Mono runtime to start debugging in server mode, where Mono
 actively waits for the debugger front end to connect to the Mono process.  
 Mono will print out to stdout the IP address and port where it is listening.
+.TP
+.I suspend=[y/n]
+Defaults to yes, with the default option Mono will suspend the vm on startup 
+until it connects successfully to a debugger front end.  If you set it to 'n', in 
+conjunction with \fBserver=y\fR, it instructs the Mono runtime to run as normal, 
+while caching metadata to send to the debugger front end on connection.
 .ne
 .RE
 .TP
@@ -1015,6 +1038,22 @@ the collection finds that the occupancy of a specific heap block type is
 less than this percentage, it will do a copying collection for that block
 type in the next major collection, thereby restoring occupancy to close
 to 100 percent.  A value of 0 turns evacuation off.
+.TP
+\fB(no-)concurrent-sweep\fR
+Enables or disables concurrent sweep for the Mark&Sweep collector.  If
+enabled, the sweep phase of the garbage collection is done in a thread
+concurrently with the application.  Concurrent sweep is disabled by
+default.
+.TP
+\fBstack-mark=\fImark-mode\fR
+Specifies how application threads should be scanned. Options are
+`precise` and `conservative`. Precise marking allow the collector
+to know what values on stack are references and what are not.
+Conservative marking threats all values as potentially references
+and leave them untouched. Precise marking reduces floating garbage
+and can speed up nursery collection and allocation rate, it has
+the downside of requiring a significant extra memory per compiled
+method. The right option, unfortunately, requires experimentation.
 .ne
 .RE
 .TP
@@ -1287,11 +1326,36 @@ trading off the small leaks for the increased performance
 unload the application domains on production systems, it is worth
 using this feature). 
 .TP
+\fBdyn-runtime-invoke\fR
+Instructs the runtime to try to use a generic runtime-invoke wrapper
+instead of creating one invoke wrapper.
+.TP
+\fBgdb\fR 
+Equivalent to setting the \fBMONO_XDEBUG\fR variable, this emits
+symbols into a shared library as the code is JITed that can be loaded
+into GDB to inspect symbols.
+.TP
+\fBgen-seq-points\fR 
+Automatically generates sequence points where the
+IL stack is empty.  These are places where the debugger can set a
+breakpoint.
+.TP
+\fBexplicit-null-checks\fR
+Makes the JIT generate an explicit NULL check on variable dereferences
+instead of depending on the operating system to raise a SIGSEGV or
+another form of trap event when an invalid memory location is
+accessed. 
+.TP
 \fBhandle-sigint\fR
 Captures the interrupt signal (Control-C) and displays a stack trace
 when pressed.  Useful to find out where the program is executing at a
 given point.  This only displays the stack trace of a single thread. 
 .TP
+\fBinit-stacks\FR 
+Instructs the runtime to initialize the stack with
+some known values (0x2a on x86-64) at the start of a method to assist
+in debuggin the JIT engine.
+.TP
 \fBkeep-delegates\fR
 This option will leak delegate trampolines that are no longer
 referenced as to present the user with more information about a
@@ -1315,7 +1379,6 @@ This option will disable the GDB backtrace emitted by the runtime
 after a SIGSEGV or SIGABRT in unmanaged code.
 .TP
 \fBsuspend-on-sigsegv\fR
-
 This option will suspend the program when a native SIGSEGV is received.
 This is useful for debugging crashes which do not happen under gdb,
 since a live process contains more information than a core file.
@@ -1410,7 +1473,7 @@ Mono JIT by default turns this on.
 \fBMONO_XDEBUG\fR
 When the the MONO_XDEBUG env var is set, debugging info for JITted
 code is emitted into a shared library, loadable into gdb. This enables,
-for example, to see managed frame names on gdb backtraces.
+for example, to see managed frame names on gdb backtraces.   
 .TP
 \fBMONO_VERBOSE_METHOD\fR
 Enables the maximum JIT verbosity for the specified method. This is
@@ -1518,7 +1581,7 @@ http://www.mono-project.com
 .SH SEE ALSO
 .PP
 certmgr(1), csharp(1), mcs(1), mdb(1), monocov(1), monodis(1),
-mono-config(5), mozroots(1), pdb2mdb(1), xsp(1), mod_mono(8).
+mono-config(5), mozroots(1), mprof-report(1), pdb2mdb(1), xsp(1), mod_mono(8).
 .PP
 For more information on AOT:
 http://www.mono-project.com/AOT