X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=man%2Fmono.1;h=07f7192b75d92f72a8ebaa6a23ee63af3dca2536;hb=a5ea493bdd7a5ccb68c95973befce3bc46e40941;hp=0b0e4235a7aabd2f0cd4e8b1b1af368122103e56;hpb=d24e0ade72ec565b767b1f45abaf1f2001b99d11;p=mono.git diff --git a/man/mono.1 b/man/mono.1 index 0b0e4235a7a..07f7192b75d 100644 --- a/man/mono.1 +++ b/man/mono.1 @@ -119,6 +119,7 @@ If specified, forces the generated AOT files to be bound to the runtime version of the compiling Mono. This will prevent the AOT files from being consumed by a different Mono runtime. .I full +.Sp This is currently an experimental feature as it is not complete. This instructs Mono to precompile code that has historically not been precompiled with AOT. @@ -221,7 +222,7 @@ example, --tool=prefix=arm-linux-gnueabi- will make the AOT compiler run .I write-symbols Instructs the AOT compiler to emit debug symbol information. .PP -For more information about AOT, see: http://www.mono-project.com/AOT +For more information about AOT, see: http://www.mono-project.com/docs/advanced/aot/ .RE .TP \fB--attach=[options]\fR @@ -317,7 +318,7 @@ If the Mono runtime has been compiled with LLVM support (not available in all configurations), Mono will use the LLVM optimization and code generation engine to JIT or AOT compile. .Sp -For more information, consult: http://www.mono-project.com/Mono_LLVM +For more information, consult: http://www.mono-project.com/docs/advanced/mono-llvm/ .TP \fB--nollvm\fR When using a Mono that has been compiled with LLVM support, it forces @@ -400,7 +401,7 @@ e.g. execution of Code Access Security (CAS) or non-CAS demands. .I core-clr Enables the core-clr security system, typically used for Moonlight/Silverlight applications. It provides a much simpler -security system than CAS, see http://www.mono-project.com/Moonlight +security system than CAS, see http://www.mono-project.com/docs/web/moonlight/ for more details and links to the descriptions of this new system. .TP .I validil @@ -736,7 +737,7 @@ shared library `mono-profiler-custom.so'. This profiler module must be on your dynamic linker library path. .PP A list of other third party profilers is available from Mono's web -site (www.mono-project.com/Performance_Tips) +site (www.mono-project.com/docs/advanced/performance-tips/) .PP Custom profiles are written as shared libraries. The shared library must be called `mono-profiler-NAME.so' where `NAME' is the name of @@ -853,6 +854,27 @@ The following is a common use to track down problems with P/Invoke: .fi .PP +.SH DEBUGGING WITH LLDB +If you are using LLDB, you can use the +.B mono.py +script to print some internal data structures with it. To use this, +add this to your +.B $HOME/.lldbinit +file: +.nf +command script import $PREFIX/lib/mono/lldb/mono.py +.fi +.PP +Where $PREFIX is the prefix value that you used when you configured +Mono (typically /usr). +.PP +Once this is done, then you can inspect some Mono Runtime data structures, +for example: +.nf +(lldb) p method + +(MonoMethod *) $0 = 0x05026ac0 [mscorlib]System.OutOfMemoryException:.ctor() +.fi .SH SERIALIZATION Mono's XML serialization engine by default will use a reflection-based approach to serialize which might be slow for continuous processing @@ -937,17 +959,21 @@ Override the automatic cpu detection mechanism. Currently used only on arm. The format of the value is as follows: .nf - "armvV [thumb]" + "armvV [thumb[2]]" .fi where V is the architecture number 4, 5, 6, 7 and the options can be currently be -"thunb". Example: +"thumb" or "thumb2". Example: .nf MONO_CPU_ARCH="armv4 thumb" mono ... .fi .TP +\fBMONO_ARM_FORCE_SOFT_FLOAT\fR +When Mono is built with a soft float fallback on ARM and this variable is set to +"1", Mono will always emit soft float code, even if a VFP unit is detected. +.TP \fBMONO_DISABLE_AIO\fR If set, tells mono NOT to attempt using native asynchronous I/O services. In that case, a default select/poll implementation is used. Currently only epoll() @@ -1075,19 +1101,10 @@ first generation (of two). A larger nursery will usually speed up the program but will obviously use more memory. The default nursery size 4 MB. .TP -\fBmajor=\fIcollector\fR -Specifies which major collector to use. Options are `marksweep' for -the Mark&Sweep collector, `marksweep-conc' for concurrent Mark&Sweep, -`marksweep-par' for parallel Mark&Sweep, `marksweep-fixed' for -Mark&Sweep with a fixed heap, and `marksweep-fixed-par' for parallel -Mark&Sweep with a fixed heap. The Mark&Sweep collector is the default. -.TP -\fBmajor-heap-size=\fIsize\fR -Sets the size of the major heap (not including the large object space) -for the fixed-heap Mark&Sweep collector (i.e. `marksweep-fixed' and -`marksweep-fixed-par'). The size is in bytes, with optional suffixes -`k', `m' and `g' to specify kilo-, mega- and gigabytes, respectively. -The default is 512 megabytes. +\fBmajor=\fIcollector\fR Specifies which major collector to use. +Options are `marksweep' for the Mark&Sweep collector, and +`marksweep-conc' for concurrent Mark&Sweep. The non-concurrent +Mark&Sweep collector is the default. .TP \fBsoft-heap-limit=\fIsize\fR Once the heap size gets larger than this size, ignore what the default @@ -1216,6 +1233,17 @@ is used. Performs a check to make sure that no references are left to an unloaded AppDomain. .TP +\fBclear-at-tlab-creation\fR +Clears the nursery incrementally when the thread local allocation +buffers (TLAB) are created. The default setting clears the whole +nursery at GC time. +.TP +\fBdebug-clear-at-tlab-creation\fR +Clears the nursery incrementally when the thread local allocation +buffers (TLAB) are created, but at GC time fills it with the byte +`0xff`, which should result in a crash more quickly if +`clear-at-tlab-creation` doesn't work properly. +.TP \fBclear-at-gc\fR This clears the nursery at GC time instead of doing it when the thread local allocation buffer (TLAB) is created. The default is to clear @@ -1255,6 +1283,21 @@ work, Mono needs to be compiled with the BINARY_PROTOCOL define on sgen-gc.c. You can then use this command to explore the output .nf sgen-grep-binprot 0x1234 0x5678 < file +.TP +\fBnursery-canaries\fR +If set, objects allocated in the nursery are suffixed with a canary (guard) +word, which is checked on each minor collection. Can be used to detect/debug +heap corruption issues. +.fi +.ne +.RE +.TP +\fBdo-not-finalize\fR +If enabled, finalizers will not be run. Everything else will be +unaffected: finalizable objects will still be put into the +finalization queue where they survive until they're scheduled to +finalize. Once they're not in the queue anymore they will be +collected regularly. .fi .ne .RE @@ -1356,13 +1399,15 @@ loader in subtle ways. Directories are separated by the platform path separator (colons on unix). Example: .B /home/username/lib:/usr/local/mono/lib .Sp +Relative paths are resolved based on the launch-time current directory. +.Sp Alternative solutions to MONO_PATH include: installing libraries into the Global Assembly Cache (see gacutil(1)) or having the dependent libraries side-by-side with the main executable. .Sp For a complete description of recommended practices for application deployment, see -http://www.mono-project.com/Guidelines:Application_Deployment +http://www.mono-project.com/docs/getting-started/application-deployment/ .TP \fBMONO_RTC\fR Experimental RTC support in the statistical profiler: if the user has @@ -1417,9 +1462,9 @@ small embedded systems. The default is 180 seconds. .TP \fBMONO_THREADS_PER_CPU\fR -The maximum number of threads in the general threadpool will be -20 + (MONO_THREADS_PER_CPU * number of CPUs). The default value for this -variable is 10. +The minimum number of threads in the general threadpool will be +MONO_THREADS_PER_CPU * number of CPUs. The default value for this +variable is 1. .TP \fBMONO_XMLSERIALIZER_THS\fR Controls the threshold for the XmlSerializer to produce a custom @@ -1534,6 +1579,12 @@ after a SIGSEGV or SIGABRT in unmanaged code. 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. +.TP +\fBcheck-pinvoke-callconv\fR +This option causes the runtime to check for calling convention +mismatches when using pinvoke, i.e. mixing cdecl/stdcall. It only +works on windows. If a mismatch is detected, an +ExecutionEngineException is thrown. .ne .RE .TP @@ -1638,6 +1689,12 @@ method. \fBMONO_VERBOSE_HWCAP\fR If set, makes the JIT output information about detected CPU features (such as SSE, CMOV, FCMOV, etc) to stdout. +.TP +\fBMONO_CONSERVATIVE_HWCAP\fR +If set, the JIT will not perform any hardware capability detection. This +may be useful to pinpoint the cause of JIT issues. This is the default +when Mono is built as an AOT cross compiler, so that the generated code +will run on most hardware. .SH VALGRIND If you want to use Valgrind, you will find the file `mono.supp' useful, it contains the suppressions for the GC which trigger @@ -1734,7 +1791,7 @@ on this subject see the http://www.mono-project.com/Config_system.web page. .SH MAILING LISTS Mailing lists are listed at the -http://www.mono-project.com/Mailing_Lists +http://www.mono-project.com/community/help/mailing-lists/ .SH WEB SITE http://www.mono-project.com .SH SEE ALSO @@ -1743,6 +1800,6 @@ certmgr(1), csharp(1), mcs(1), mdb(1), monocov(1), monodis(1), 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 +http://www.mono-project.com/docs/advanced/aot/ .PP For ASP.NET-related documentation, see the xsp(1) manual page