[xbuild] GetReferenceAssemblyPaths - add missing license header.
[mono.git] / man / mono.1
index 4922f15d116259033ce9274ba4514d8e8dc16ba2..6a9f86ac9d629836cf203d04f53bf60c5804115d 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
@@ -1021,6 +1038,16 @@ 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
@@ -1293,11 +1320,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
@@ -1321,7 +1373,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.
@@ -1416,7 +1467,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
@@ -1524,7 +1575,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