2004-04-24 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
[mono.git] / man / mono.1
index 012f56d0bd4ef1309111e36c9aec58d17f6a0967..5160fd99310b5b60800b4e91316965c52613ee85 100644 (file)
@@ -46,6 +46,19 @@ This option is used to precompile the CIL code in the specified
 assembly to native code.  The generated code is stored in a file with
 the extension .so.  This file will be automatically picked up by the
 runtime when the assembly is executed.  
+.Sp 
+Ahead-of-Time compilation is most useful if you use it in combination
+with the -O=all,-shared flag which enables all of the optimizations in
+the code generator to be performed.  Some of those optimizations are
+not practical for Just-in-Time compilation since they might be very
+time consuming.
+.Sp
+Unlike the .NET Framework, Ahead-of-Time compilation will not generate
+domain independent code: it generates the same code that the
+Just-in-Time compiler would produce.   Since most applications use a
+single domain, this is fine.   If you want to optimize the generated
+code for use in multi-domain applications, consider using the
+-O=shared flag.
 .Sp
 This pre-compiles the methods, but the original assembly is still
 required to execute as this one contains the metadata and exception
@@ -115,8 +128,9 @@ Instructs the runtime to collect profiling information about execution
 times and memory allocation, and dump it at the end of the execution.
 If a profiler is not specified, the default profiler is used. profiler_args 
 is a profiler-specific string of options for the profiler itself.
-
-
+.PP
+The default profiler accepts -time and -alloc to options to disable
+the time profiling or the memory allocation profilng.
 .SH JIT MAINTAINER OPTIONS
 The maintainer options are only used by those developing the runtime
 itself, and not typically of interest to runtime users or developers.
@@ -135,7 +149,7 @@ This generates a postscript file with a graph with the details about
 the specified method (namespace.name:methodname).  This requires `dot'
 and ghostview to be installed (it expects Ghostview to be called
 "gv"). 
-.TP
+.PP
 The following graphs are available:
 .nf
           cfg        Control Flow Graph (CFG)
@@ -167,10 +181,57 @@ breakpoint on the application's main method.
 Inserts a breakpoint on exceptions.  This allows you to debug your
 application with a native debugger when an exception is thrown.
 .TP
-.I "--trace"
-Shows method names as they are invoked.
+.I "--trace[=expression]"
+Shows method names as they are invoked.  By default all methods are
+traced. 
+.PP
+The trace can be customized to include or exclude methods, classes or
+assemblies.  A trace expression is a comma separated list of targets,
+each target can be prefixed with a minus sign to turn off a particular
+target.  The words `program' and `all' have special meaning.
+`program' refers to the main program being executed, and `all' means
+all the method calls. 
+.PP
+Assemblies are specified by their name, for example, to trace all
+calls in the System assembly, use:
+.nf
+
+       mono --trace=System app.exe
+
+.fi
+Classes are specified with the T: prefix.  For example, to trace all
+calls to the System.String class, use:
+.nf
+
+       mono --trace=T:System.String app.exe
+
+.fi
+And individual methods are referenced with the M: prefix, and the
+standar method notation:
+.nf
 
+       mono --trace=M:System.Console.WriteLine app.exe
 
+.fi
+As previously noted, various rules can be specified at once:
+.nf
+
+       mono --trace=T:System.String,T:System.Random app.exe
+
+.fi
+You can exclude pieces, the next example traces calls to
+System.String except for the System.String:Concat method.
+.nf
+
+       mono --trace=T:System.String,-M:System.String:Concat
+
+.fi
+Finally, namespaces can be specified using the N: prefix:
+.nf
+
+       mono --trace=N:System.Xml
+
+.fi
 .SH ENVIRONMENT VARIABLES
 .TP
 .I "GC_DONT_GC"
@@ -182,11 +243,6 @@ Provides a search path to the runtime where to look for library files.
 Directories are separated by the platform path separator (colons on unix). Example:
 .B /home/username/lib:/usr/local/mono/lib
 .TP
-.I "MONO_DISABLE_SHM"
-If this variable is set, it disables the Windows I/O Emulation layer,
-and handles (files, events, mutexes, pipes) will not be shared across
-processes.  This option is only available on Unix.
-.TP
 .I "MONO_CFG_DIR"
 If set, this variable overrides the default system configuration directory
 ($PREFIX/etc). It's used to locate machine.config file.
@@ -195,6 +251,59 @@ If set, this variable overrides the default system configuration directory
 If set, this variable overrides the default runtime configuration file
 ($PREFIX/etc/mono/config). The --config command line options overrides the
 environment variable.
+.TP
+.I "MONO_DEBUG"
+If set, enables some features of the runtime useful for debugging.
+Currently it only makes the runtime display the stack traces for all the
+threads running and exit. It may not exit cleanly. Use at your own risk.
+.TP
+.I "MONO_DISABLE_AIO"
+If set, tells mono NOT to attempt using native asynchronous I/O services. In
+that case, the threadpool is used for asynchronous I/O on files and sockets.
+.TP
+.I "MONO_DISABLE_SHM"
+If this variable is set, it disables the shared memory part of the
+Windows I/O Emulation layer, and handles (files, events, mutexes,
+pipes) will not be shared across processes.  Process creation is also
+disabled.  This option is only available on Unix.
+.TP
+.I "MONO_EXTERNAL_ENCODINGS"
+If set, contains a colon-separated list of text encodings to try when
+turning externally-generated text (e.g. command-line arguments or
+filenames) into Unicode.  The encoding names come from the list
+provided by iconv, and the special case "default_locale" which refers
+to the current locale's default encoding.
+.TP
+When reading externally-generated text strings UTF-8 is tried first,
+and then this list is tried in order with the first successful
+conversion ending the search.  When writing external text (e.g. new
+filenames or arguments to new processes) the first item in this list
+is used, or UTF-8 if the environment variable is not set.
+.TP 
+.I "MONO_SHARED_DIR"
+If set its the directory where the ".wapi" handle state is stored.
+This is the directory where the Windows I/O Emulation layer stores its
+shared state data (files, events, mutexes, pipes).  By default Mono
+will store the ".wapi" directory in the users's home directory.
+.TP
+.I "MONO_UNMANAGED_XSLT"
+If set any value, System.Xml.Xsl.XslTransform uses libxslt-based
+transformation engine (a.k.a Unmanaged XSLT). Unmanaged XSLT has
+long been used for XSLT engine while Managed XSLT engine is so
+new and might have some bugs. Basically we recommend Managed XSLT
+solution, but if it contains some blocking bugs, then you can also
+use traditional libxslt. If you want to use msxsl:script, you have
+to select Managed XSLT.
+.TP
+.I "MONO_MANAGED_WATCHER"
+If set to any value, System.IO.FileSystemWatcher will use the default
+managed implementation (slow). If unset, mono will try to use FAM under
+Unix systems and native API calls on Windows, falling back to the
+managed implementation on error.
+.TP
+.I "MONO_CODEDOM_NODELETE"
+If set to any value, the C# CodeDom compiler will not remove the temporary
+source files generated.
 .SH FILES
 On Unix assemblies are loaded from the installation lib directory.  If you set
 `prefix' to /usr, the assemblies will be located in /usr/lib.  On
@@ -210,6 +319,8 @@ Visit http://mail.ximian.com/mailman/mono-list for details.
 .SH WEB SITE
 Visit: http://www.go-mono.com for details
 .SH SEE ALSO
-.BR mcs(1), mint(1), monodis(1), mono-config(5)
+.BR mcs(1), mint(1), monodis(1), mono-config(5).
+.PP
+For ASP.NET-related documentation, see the xsp(1) manual page