Imported Upstream version 4.3.2.467

Former-commit-id: 9c2cb47f45fa221e661ab616387c9cda183f283d
This commit is contained in:
Xamarin Public Jenkins
2016-02-22 11:00:01 -05:00
parent f302175246
commit f3e3aab35a
4097 changed files with 122406 additions and 82300 deletions

View File

@@ -124,6 +124,16 @@ 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.
.TP
.I data-outfile=FILE.dll.aotdata
.Sp
This instructs the AOT code generator to output certain data
constructs into a separate file. This can reduce the executable
images some five to twenty percent. Developers need to then ship the
resulting aotdata as a resource and register a hook to load the data
on demand by using the
.I mono_install_load_aot_data_hook
method.
.TP
.I direct-pinvoke
.Sp
When this option is specified, P/Invoke methods are invoked directly
@@ -139,7 +149,8 @@ only supported by the ARM backend. In LLVM mode, this triple is passed on to the
llc compiler.
.TP
.I nimt-trampolines=[number]
When compiling in full aot mode, the IMT trampolines must be precreated
When compiling in full aot mthis data at startup
usingode, the IMT trampolines must be precreated
in the AOT image. You can add additional method trampolines with this argument.
Defaults to 128.
.TP
@@ -317,6 +328,13 @@ Currently this merely ensures that you are running either the
\fBMONO_ENV_OPTIONS\fR environment variable to force all of your child
processes to use one particular kind of GC with the Mono runtime.
.TP
\fB--arch=32\fR, \fB--arch=64\fR
(Mac OS X only): Selects the bitness of the Mono binary used, if
available. If the binary used is already for the selected bitness, nothing
changes. If not, the execution switches to a binary with the selected
bitness suffix installed side by side (for example, '/bin/mono --arch=64'
will switch to '/bin/mono64' iff '/bin/mono' is a 32-bit build).
.TP
\fB--help\fR, \fB-h\fR
Displays usage instructions.
.TP
@@ -595,6 +613,16 @@ Currently this option is only supported on Linux.
The maintainer options are only used by those developing the runtime
itself, and not typically of interest to runtime users or developers.
.TP
\fB--bisect=optimization:filename\fR
This flag is used by the automatic optimization bug bisector. It
takes an optimization flag and a filename of a file containing a list
of full method names, one per line. When it compiles one of the
methods in the file it will use the optimization given, in addition to
the optimizations that are otherwise enabled. Note that if the
optimization is enabled by default, you should disable it with `-O`,
otherwise it will just apply to every method, whether it's in the file
or not.
.TP
\fB--break method\fR
Inserts a breakpoint before the method whose name is `method'
(namespace.class:methodname). Use `Main' as method name to insert a
@@ -861,7 +889,9 @@ environment variable to limit the extent of the messages you get:
If set, the log mask is changed to the set value. Possible values are
"asm" (assembly loader), "type", "dll" (native library loader), "gc"
(garbage collector), "cfg" (config file loader), "aot" (precompiler),
"security" (e.g. Moonlight CoreCLR support) and "all".
"security" (e.g. Moonlight CoreCLR support), "threadpool" (thread pool generic),
"io-threadpool" (thread pool I/O), "io-layer" (I/O layer - sockets, handles, shared memory etc)
and "all".
The default value is "all". Changing the mask value allows you to display only
messages for a certain component. You can use multiple masks by comma
separating them. For example to see config file messages and assembly loader
@@ -924,7 +954,12 @@ by setting the option
Turns off the garbage collection in Mono. This should be only used
for debugging purposes
.TP
\fBLVM_COUNT\fR
\fBHTTP_PROXY\fR
(Also \fBhttp_proxy\fR) If set, web requests using the Mono
Class Library will be automatically proxied through the given URL.
Not supported on Windows, Mac OS, iOS or Android. See also \fBNO_PROXY\fR.
.TP
\fBLLVM_COUNT\fR
When Mono is compiled with LLVM support, this instructs the runtime to
stop using LLVM after the specified number of methods are JITed.
This is a tool used in diagnostics to help isolate problems in the
@@ -1041,6 +1076,20 @@ For platforms that do not otherwise have a way of obtaining random bytes
this can be set to the name of a file system socket on which an egd or
prngd daemon is listening.
.TP
\fBMONO_ENABLE_COOP\fR
This makes the Mono runtime and the SGen garbage collector run in cooperative
mode as opposed to run on preemptive mode. Preemptive mode is the mode
that Mono has used historically, going back to the Boehm days, where the
garbage collector would run at any point and suspend execution of all
threads as required to perform a garbage collection. The cooperative mode
on the other hand requires the cooperation of all threads to stop at a
safe point. This makes for an easier to debug garbage collector. As
of Mono 4.3.0 it is a work in progress, and while it works, it has not
been used extensively. This option enabled the feature and allows us to
find spots that need to be tuned for this mode of operation. Alternatively,
this mode can be enabled at compile time by using the --with-cooperative-gc
flag when calling configure.
.TP
\fBMONO_ENABLE_SHM\fR
Unix only: Enable support for cross-process handles. Cross-process
handles are used to expose process handles, thread handles, named
@@ -1118,6 +1167,16 @@ separated list of words.
.RS
.ne 8
.TP
\fBmax-heap-size=\fIsize\fR
Sets the maximum size of the heap. The size is specified in bytes and must
be a power of two. The suffixes `k', `m' and `g' can be used to
specify kilo-, mega- and gigabytes, respectively. The limit is the sum
of the nursery, major heap and large object heap. Once the limit is reached
the application will receive OutOfMemoryExceptions when trying to allocate.
Not the full extent of memory set in max-heap-size could be available to
satisfy a single allocation due to internal fragmentation. By default heap
limits is disabled and the GC will try to use all available memory.
.TP
\fBnursery-size=\fIsize\fR
Sets the size of the nursery. The size is specified in bytes and must
be a power of two. The suffixes `k', `m' and `g' can be used to
@@ -1211,6 +1270,12 @@ Valid values are integers between 1 and 14. Default is 2.
Enables or disables cementing. This can dramatically shorten nursery
collection times on some benchmarks where pinned objects are referred
to from the major heap.
.TP
\fBallow-synchronous-major\fR
This forbids the major collector from performing synchronous major collections.
The major collector might want to do a synchronous collection due to excessive
fragmentation. Disabling this might trigger OutOfMemory error in situations that
would otherwise not happen.
.ne
.RE
.TP
@@ -1323,12 +1388,13 @@ word, which is checked on each minor collection. Can be used to detect/debug
heap corruption issues.
.TP
\fBdo-not-finalize\fR
\fBdo-not-finalize(=\fIclasses\fB)\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.
collected regularly. If a list of comma-separated class names is
given, only objects from those classes will not be finalized.
.TP
\fBlog-finalizers\fR
@@ -1514,6 +1580,13 @@ ftps, smtps...). The default is 'nocheck', which performs no revocation check
at all. The other possible values are 'offline', which performs CRL check (not
implemented yet) and 'online' which uses OCSP and CRL to verify the revocation
status (not implemented yet).
.TP
\fBNO_PROXY\fR
(Also \fBno_proxy\fR) If both \fBHTTP_PROXY\fR and \fBNO_PROXY\fR are
set, \fBNO_PROXY\fR will be treated as a comma-separated list of "bypass" domains
which will not be sent through the proxy. Domains in \fBNO_PROXY\fR may contain
wildcards, as in "*.mono-project.com" or "build????.local". Not supported on
Windows, Mac OS, iOS or Android.
.SH ENVIRONMENT VARIABLES FOR DEBUGGING
.TP
\fBMONO_ASPNET_NODELETE\fR
@@ -1528,6 +1601,13 @@ Currently, the following options are supported:
.RS
.ne 8
.TP
\fBalign-small-structs\fR
Enables small structs alignment to 4/8 bytes.
.TP
\fBarm-use-fallback-tls\fR
When this option is set on ARM, a fallback TLS will be used instead
of the default fast TLS.
.TP
\fBbreak-on-unverified\fR
If this variable is set, when the Mono VM runs into a verification
problem, instead of throwing an exception it will break into the
@@ -1538,12 +1618,22 @@ This option can be used to get more detailed information from
InvalidCast exceptions, it will provide information about the types
involved.
.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.
.TP
\fBcollect-pagefault-stats\fR
Collects information about pagefaults. This is used internally to
track the number of page faults produced to load metadata. To display
this information you must use this option with "--stats" command line
option.
.TP
\fBdebug-domain-unload\fR
When this option is set, the runtime will invalidate the domain memory
pool instead of destroying it.
.TP
\fBdont-free-domains\fR
This is an Optimization for multi-AppDomain applications (most
commonly ASP.NET applications). Due to internal limitations Mono,
@@ -1561,6 +1651,12 @@ using this feature).
Instructs the runtime to try to use a generic runtime-invoke wrapper
instead of creating one invoke wrapper.
.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
\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
@@ -1571,11 +1667,11 @@ 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.
\fBgen-compact-seq-points\fR
This option generates sequence points data that maps native offsets to
IL offsets. Sequence point data is used to display IL offset in
stacktraces. Stacktraces with IL offsets can be symbolicated using
mono-symbolicate tool.
.TP
\fBhandle-sigint\fR
Captures the interrupt signal (Control-C) and displays a stack trace
@@ -1595,6 +1691,14 @@ passed to unmanaged code, and no references kept in managed code,
which will garbage collect the code. With this option it is possible
to track down the source of the problems.
.TP
\fBno-gdb-backtrace\fR
This option will disable the GDB backtrace emitted by the runtime
after a SIGSEGV or SIGABRT in unmanaged code.
.TP
\fBpartial-sharing\fR
When this option is set, the runtime can share generated code between
generic types effectively reducing the amount of code generated.
.TP
\fBreverse-pinvoke-exceptions
This option will cause mono to abort with a descriptive message when
during stack unwinding after an exception it reaches a native stack
@@ -1605,20 +1709,25 @@ will skip any native stack frames in the process. This leads to
undefined behaviour (since mono doesn't know how to process native
frames), leaks, and possibly crashes too.
.TP
\fBno-gdb-backtrace\fR
This option will disable the GDB backtrace emitted by the runtime
after a SIGSEGV or SIGABRT in unmanaged code.
\fBsingle-imm-size\fR
This guarantees that each time managed code is compiled the same
instructions and registers are used, regardless of the size of used
values.
.TP
\fBsoft-breakpoints\fR
This option allows using single-steps and breakpoints in hardware
where we cannot do it with signals.
.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.
.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.
\fBsuspend-on-exception\fR
This option will suspend the program when an exception occurs.
.TP
\fBsuspend-on-unhandled\fR
This option will suspend the program when an unhandled exception occurs.
.ne
.RE
.TP
@@ -1682,34 +1791,6 @@ as it forces all of the commands send to X11 server to be done
synchronously. The default mode of operation is asynchronous which
makes it hard to isolate the root of certain problems.
.TP
\fBMONO_GENERIC_SHARING\fR
This environment variable controls the kind of generic sharing used.
This variable is used by internal JIT developers and should not be
changed in production. Do not use it.
.Sp
The variable controls which classes will have generic code sharing
enabled.
.Sp
Permissible values are:
.RS
.TP
.I "all"
All generated code can be shared.
.TP
.I "collections"
Only the classes in System.Collections.Generic will have its code
shared (this is the default value).
.TP
.I "corlib"
Only code in corlib will have its code shared.
.TP
.I "none"
No generic code sharing will be performed.
.RE
.Sp
Generic code sharing by default only applies to collections. The
Mono JIT by default turns this on.
.TP
\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,