You've already forked linux-packaging-mono
Imported Upstream version 4.8.0.309
Former-commit-id: 5f9c6ae75f295e057a7d2971f3a6df4656fa8850
This commit is contained in:
parent
ee1447783b
commit
94b2861243
@@ -2,6 +2,7 @@ man_MANS = \
|
||||
al.1 \
|
||||
cert2spc.1 \
|
||||
certmgr.1 \
|
||||
cert-sync.1 \
|
||||
chktrust.1 \
|
||||
cilc.1 \
|
||||
crlupdate.1 \
|
||||
|
||||
@@ -152,6 +152,8 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AOT_BUILD_FLAGS = @AOT_BUILD_FLAGS@
|
||||
AOT_RUN_FLAGS = @AOT_RUN_FLAGS@
|
||||
API_VER = @API_VER@
|
||||
AR = @AR@
|
||||
AS = @AS@
|
||||
@@ -160,6 +162,11 @@ AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BOEHM_DEFINES = @BOEHM_DEFINES@
|
||||
BTLS_ARCH = @BTLS_ARCH@
|
||||
BTLS_CFLAGS = @BTLS_CFLAGS@
|
||||
BTLS_CMAKE_ARGS = @BTLS_CMAKE_ARGS@
|
||||
BTLS_PLATFORM = @BTLS_PLATFORM@
|
||||
BTLS_ROOT = @BTLS_ROOT@
|
||||
BUILD_EXEEXT = @BUILD_EXEEXT@
|
||||
CC = @CC@
|
||||
CCAS = @CCAS@
|
||||
@@ -169,6 +176,7 @@ CCDEPMODE = @CCDEPMODE@
|
||||
CC_FOR_BUILD = @CC_FOR_BUILD@
|
||||
CFLAGS = @CFLAGS@
|
||||
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
|
||||
CMAKE = @CMAKE@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
@@ -189,7 +197,6 @@ ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
ENABLE_PERF_EVENTS = @ENABLE_PERF_EVENTS@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GDKX11 = @GDKX11@
|
||||
@@ -204,10 +211,12 @@ HAVE_MSGFMT = @HAVE_MSGFMT@
|
||||
HOST_CC = @HOST_CC@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_MOBILE_STATIC = @INSTALL_MOBILE_STATIC@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTL = @INTL@
|
||||
INVARIANT_AOT_OPTIONS = @INVARIANT_AOT_OPTIONS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBC = @LIBC@
|
||||
@@ -254,6 +263,7 @@ PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PLATFORM_AOT_SUFFIX = @PLATFORM_AOT_SUFFIX@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
@@ -263,6 +273,7 @@ SHELL = @SHELL@
|
||||
SQLITE = @SQLITE@
|
||||
SQLITE3 = @SQLITE3@
|
||||
STRIP = @STRIP@
|
||||
TEST_PROFILE = @TEST_PROFILE@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
VTUNE_CFLAGS = @VTUNE_CFLAGS@
|
||||
@@ -355,6 +366,7 @@ man_MANS = \
|
||||
al.1 \
|
||||
cert2spc.1 \
|
||||
certmgr.1 \
|
||||
cert-sync.1 \
|
||||
chktrust.1 \
|
||||
cilc.1 \
|
||||
crlupdate.1 \
|
||||
|
||||
52
man/cert-sync.1
Normal file
52
man/cert-sync.1
Normal file
@@ -0,0 +1,52 @@
|
||||
.\"
|
||||
.\" cert-sync manual page.
|
||||
.\" Copyright 2016 Microsoft Corp
|
||||
.\" Author:
|
||||
.\" Jo Shields <joshield@microsoft.com>
|
||||
.\"
|
||||
.TH Mono "cert-sync"
|
||||
.SH NAME
|
||||
cert-sync \- Mono Certificate Store Sync Tool
|
||||
.SH SYNOPSIS
|
||||
.PP
|
||||
.B cert-sync [--quiet] [--user] filename
|
||||
.SH DESCRIPTION
|
||||
This tool allows you to populate a Mono certificate store, from a large
|
||||
concatenated list of certificates in PEM format (commonly provided on most
|
||||
Linux distributions).
|
||||
|
||||
Its use is intended to be automated at Mono install time, by distribution
|
||||
packagers, to seamlessly provide SSL support to Mono applications without
|
||||
further user interaction.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.I "--quiet"
|
||||
Suppress verbose output
|
||||
.TP
|
||||
.I "--user"
|
||||
Populate the per-user store in the user's home directory, instead of the
|
||||
system-wide store.
|
||||
.TP
|
||||
.I "filename.crt"
|
||||
Path to a certificate bundle. The Mono store will have any extra entries
|
||||
removed, and new entries added, to reflect the provided file.
|
||||
|
||||
.SH EXAMPLES
|
||||
.TP
|
||||
.B cert-sync /etc/ssl/certs/ca-certificates.crt
|
||||
Synchronize the machine store, from the Debian cert store location
|
||||
.TP
|
||||
.B cert-sync --user /etc/pki/tls/certs/ca-bundle.crt
|
||||
Synchronize the user store, from the Red Hat cert store location
|
||||
|
||||
.SH AUTHOR
|
||||
Written by Jo Shields
|
||||
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2016 Microsoft Corp
|
||||
.SH MAILING LISTS
|
||||
Visit http://lists.ximian.com/mailman/listinfo/mono-list for details.
|
||||
.SH WEB SITE
|
||||
Visit http://www.mono-project.com for details
|
||||
.SH SEE ALSO
|
||||
.BR certmgr(1)
|
||||
279
man/mkbundle.1
279
man/mkbundle.1
@@ -21,38 +21,237 @@ default only the assemblies specified in the command line will be
|
||||
included in the bundle. To automatically include all of the
|
||||
dependencies referenced, use the "--deps" command line option.
|
||||
.PP
|
||||
There are two modes of operation, the default one uses the
|
||||
C compiler to create a bundle and requires a complete C and Mono SDK
|
||||
to produced executables. The simple mode (enabled when using the
|
||||
"--simple") command line option does not require this, and also allows
|
||||
for cross compilation.
|
||||
There are two modes of operation, one uses an existing Mono binary or
|
||||
a server-hosted list of binaries and is enabled when you use either
|
||||
the
|
||||
.B --cross,
|
||||
.B --sdk
|
||||
or the
|
||||
.B --runtime
|
||||
command line options.
|
||||
.PP
|
||||
An older mechanism creates a small C stub that links against the
|
||||
libmono library to produce a self-contained executable and requires a
|
||||
C compiler. It is described in the "OLD EMBEDDING" section below.
|
||||
.PP
|
||||
For example, to create a bundle for hello world, use the following
|
||||
command:
|
||||
.nf
|
||||
|
||||
$ mkbundle -o hello --simple hello.exe
|
||||
|
||||
.fi
|
||||
.PP
|
||||
You can configure options to be passed to the Mono runtime directly
|
||||
into your executable, for this, use the
|
||||
.I --options
|
||||
flag. For example, the following disables inlining, by passing the
|
||||
"-O=-inline" command line option to the embedded executable:
|
||||
.nf
|
||||
|
||||
$ mkbundle -o hello --options -O=-inline --simple hello.exe
|
||||
|
||||
.PP
|
||||
The simple version allows for cross-compiling, this requires a Mono
|
||||
runtime to be installed in the ~/.mono/targets/TARGET/mono to be
|
||||
available. You can use the "--local-targets" to list all available
|
||||
targets, and the "--cross" argument to specify the target, like this:
|
||||
.nf
|
||||
|
||||
$ mkbundle --local-targets
|
||||
Available targets:
|
||||
default - Current System Mono
|
||||
4.4.0-macosx-x86
|
||||
4.4.0-debian-8-arm64
|
||||
$ mkbundle --cross 4.4.0-debian-8-powerpc hello.exe -o hello-debian
|
||||
|
||||
.fi
|
||||
.PP
|
||||
The above will bundle your native library into hello-debian for
|
||||
a Debian 8 system running on a PowerPC machine.
|
||||
.PP
|
||||
We provide pre-packages binaries for Mono for various architectures,
|
||||
which allow you to cross compile, use the
|
||||
.B --list-targets
|
||||
to get a list of all targets supported, and use the
|
||||
.B --fetch-target
|
||||
flag to retrieve a target that you do not have installed, like this:
|
||||
.nf
|
||||
|
||||
$ mkbundle --list-targets
|
||||
Cross-compilation targets available:
|
||||
4.4.0-linux-libc2.13-amd64
|
||||
4.4.0-linux-libc2.13-armel
|
||||
4.4.0-linux-libc2.13-armhf
|
||||
4.4.0-linux-libc2.13-i386
|
||||
4.4.0-macos-10.7-amd64
|
||||
4.4.0-macos-10.7-i386
|
||||
4.4.2-linux-libc2.13-amd64
|
||||
4.4.2-linux-libc2.13-armel
|
||||
4.4.2-linux-libc2.13-armhf
|
||||
4.4.2-linux-libc2.13-i386
|
||||
4.4.2-macos-10.7-amd64
|
||||
4.4.2-macos-10.7-i386
|
||||
|
||||
$ mkbundle --fetch-target 4.4.2-macos-10.7-i386
|
||||
|
||||
.fi
|
||||
.PP
|
||||
And then you can produce a binary that will run on 32-bit Mono on
|
||||
MacOS:
|
||||
.nf
|
||||
|
||||
$ mkbundle --cross 4.4.2-macos-10.7-i386 hello.exe -o hello-macos
|
||||
|
||||
.fi
|
||||
.PP
|
||||
Downloaded targets are stored
|
||||
.B ~/.mono/targets
|
||||
directory.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.I "--config FILE"
|
||||
Specifies that a machine.config file must be bundled as well.
|
||||
Typically this is $prefix/etc/mono/1.0/machine.config or
|
||||
$prefix/etc/mono/2.0/machine.config depending on the profile that you
|
||||
are using (1.0 or 2.0)
|
||||
.TP
|
||||
.I "--config-dir DIR"
|
||||
When passed, DIR will be set for the MONO_CFG_DIR environment variable
|
||||
.TP
|
||||
.I "--cross target"
|
||||
Use this to request mkbundle generate a cross-compiled binary. It
|
||||
Creates a bundle for the specified target platform. The target must
|
||||
be a directory in ~/.mono/targets/ that contains an SDK installation
|
||||
as produced by the mono-package-runtime tool. You can get a list of
|
||||
the precompiled versions of the runtime using --list-targets and you
|
||||
can fetch a specific target using the --fetch-target command line
|
||||
option.
|
||||
.Sp
|
||||
This flag is mutually exclusive with
|
||||
.I --sdk
|
||||
which is used to specify an absolute path to resolve the Mono runtime
|
||||
from and the --runtime option which is used to manually construct the
|
||||
cross-platform package.
|
||||
.TP
|
||||
.I "--deps"
|
||||
This option will bundle all of the referenced assemblies for the
|
||||
assemblies listed on the command line option. This is useful to
|
||||
distribute a self-contained image.
|
||||
.TP
|
||||
.I "--env KEY=VALUE"
|
||||
Use this to hardcode an environment variable at runtime for KEY to be
|
||||
mapped to VALUE. This is useful in scenarios where you want to
|
||||
enable certain Mono runtime configuration options that are controlled
|
||||
by environment variables.
|
||||
.TP
|
||||
.I "--fetch-target target"
|
||||
Downloads a precompiled runtime for the specified target from the Mono
|
||||
distribution site.
|
||||
.TP
|
||||
.I "--i18n encoding"
|
||||
Specified which encoding tables to ship with the executable. By
|
||||
default, Mono ships the supporting I18N.dll assembly and the
|
||||
I18N.West.dll assembly. If your application will use the
|
||||
System.Text.Encoding.GetEncoding with encodings other than the West
|
||||
encodings, you should specify them here.
|
||||
.Sp
|
||||
You can use the
|
||||
.B none
|
||||
parameter to request that no implicit encodings should be bundled,
|
||||
including the supporting I18N.dll, use this option if you have ran a
|
||||
linker on your own.
|
||||
.Sp
|
||||
You can use the
|
||||
.B all
|
||||
flag to bundle all available encodings.
|
||||
.Sp
|
||||
Or you can use a comma delimited list of the workds CJK, MidWest,
|
||||
Other, Rare and West to specificy which encoding assemblies to distribute.
|
||||
.TP
|
||||
.I "-L path"
|
||||
Adds the `path' do the search list for assemblies. The rules are the
|
||||
same as for the compiler -lib: or -L flags.
|
||||
.TP
|
||||
.I "--library [LIB,]PATH"
|
||||
Embeds the dynamic library file pointed to by `PATH' and optionally
|
||||
give it the name `LIB' into the bundled executable. This is used to
|
||||
ship native library dependencies that are unpacked at startup and
|
||||
loaded from the runtime.
|
||||
.TP
|
||||
.I "--lists-targets"
|
||||
Lists all of the available local cross compilation targets available
|
||||
as precompiled binaries on the Mono distribution server.
|
||||
.TP
|
||||
.I "--local-targets"
|
||||
Lists all of the available local cross compilation targets.
|
||||
.TP
|
||||
.I "--machine-config FILE"
|
||||
Uses the given FILE as the machine.config file for the generated
|
||||
application.
|
||||
.TP
|
||||
.I "--nodeps"
|
||||
This is the default: \fImkbundle\fP will only include the assemblies that
|
||||
were specified on the command line to reduce the size of the resulting
|
||||
image created.
|
||||
.TP
|
||||
.I "-o filename"
|
||||
Places the output on `out'. If the flag -c is specified, this is the
|
||||
C host program. If not, this contains the resulting executable.
|
||||
.TP
|
||||
.I "--options OPTS"
|
||||
Since the resulting executable will be treated as a standalone
|
||||
program, you can use this option to pass configuration options to the
|
||||
Mono runtime and bake those into the resulting executable. These
|
||||
options are specified as
|
||||
.I OPTS.
|
||||
.Sp
|
||||
You can use the above to configure options that you would typically
|
||||
pass on the command line to Mono, before the main program is
|
||||
executed.
|
||||
.Sp
|
||||
Additionally, users of your binary can still configure their own
|
||||
options by setting the
|
||||
.I MONO_ENV_OPTIONS
|
||||
environment variable.
|
||||
.TP
|
||||
.I "--sdk SDK_PATH"
|
||||
Use this flag to specify a path from which mkbundle will resolve the
|
||||
Mono SDK from. The SDK path should be the prefix path that you used
|
||||
to configure a Mono installation. And would typically contain files
|
||||
lik
|
||||
.I SDK_PATH/bin/mono
|
||||
,
|
||||
.I SDK_PATH/lib/mono/4.5
|
||||
and so on.
|
||||
.Sp
|
||||
When this flag is specified,
|
||||
.I mkbundle
|
||||
will resolve the runtime, the framework libraries, unmanaged resources
|
||||
and configuration files from the files located in this directory.
|
||||
.Sp
|
||||
This flag is mutually exlusive with
|
||||
.I --cross
|
||||
.
|
||||
.TP
|
||||
.I "--target-server SERVER"
|
||||
By default the mkbundle tool will download from a Mono server the
|
||||
target runtimes, you can specify a different server to provide
|
||||
cross-compiled runtimes.
|
||||
.SH OLD EMBEDDING
|
||||
.PP
|
||||
The old embedding system compiles a small C stub that embeds the
|
||||
C code and compiles the resulting executable using the system
|
||||
compiler. This requires both a working C compiler installation and
|
||||
only works to bundle binaries for the current host.
|
||||
.PP
|
||||
The feature is still available, but we recommend the simpler, faster
|
||||
and more convenient new mode.
|
||||
.PP
|
||||
For example, to create a bundle for hello world, use the following
|
||||
command:
|
||||
.nf
|
||||
|
||||
$ mkbundle -o hello hello.exe
|
||||
.fi
|
||||
.PP
|
||||
@@ -66,6 +265,7 @@ you want to link additional libraries or control the generated output
|
||||
in more detail. For example, this could be used to link some libraries
|
||||
statically:
|
||||
.nf
|
||||
|
||||
$ mkbundle -c -o host.c -oo bundles.o --deps hello.exe
|
||||
|
||||
$ cc host.c bundles.o /usr/lib/libmono.a -lc -lrt
|
||||
@@ -77,86 +277,40 @@ both the -c and --nomain options. The resulting host.c file will
|
||||
not have a main() function. Call mono_mkbundle_init() before
|
||||
initializing the JIT in your code so that the bundled assemblies
|
||||
are available to the embedded runtime.
|
||||
.SH OPTIONS
|
||||
.SH OLD EMBEDDING OPTIONS
|
||||
These options can only be used instead of using the
|
||||
.B --cross, --runtime
|
||||
or
|
||||
.B --simple
|
||||
options.
|
||||
.TP
|
||||
.I "-c"
|
||||
Produce the stub file, do not compile the resulting stub.
|
||||
.TP
|
||||
.I "--cross target"
|
||||
Creates a bundle for the specified target platform. The target
|
||||
must be a directory in ~/.mono/targets/ that contains a "mono"
|
||||
binary. You can fetch various targets using the --fetch-target
|
||||
command line option.
|
||||
.TP
|
||||
.I "-o filename"
|
||||
Places the output on `out'. If the flag -c is specified, this is the
|
||||
C host program. If not, this contains the resulting executable.
|
||||
.TP
|
||||
.I "-oo filename"
|
||||
Specifies the name to be used for the helper object file that contains
|
||||
the bundle.
|
||||
.TP
|
||||
.I "-L path"
|
||||
Adds the `path' do the search list for assemblies. The rules are the
|
||||
same as for the compiler -lib: or -L flags.
|
||||
.TP "--config FILE"
|
||||
Specifies that a machine.config file must be bundled as well.
|
||||
Typically this is $prefix/etc/mono/1.0/machine.config or
|
||||
$prefix/etc/mono/2.0/machine.config depending on the profile that you
|
||||
are using (1.0 or 2.0)
|
||||
.TP
|
||||
.I "--deps"
|
||||
This option will bundle all of the referenced assemblies for the
|
||||
assemblies listed on the command line option. This is useful to
|
||||
distribute a self-contained image.
|
||||
.TP
|
||||
.I "--fetch-target target"
|
||||
Downloads a precompiled runtime for the specified target from the Mono
|
||||
distribution site.
|
||||
.TP
|
||||
.I "--nodeps"
|
||||
This is the default: \fImkbundle\fP will only include the assemblies that
|
||||
were specified on the command line to reduce the size of the resulting
|
||||
image created.
|
||||
.TP
|
||||
.I "--keeptemp"
|
||||
By default \fImkbundle\fP will delete the temporary files that it uses to
|
||||
produce the bundle. This option keeps the file around.
|
||||
.TP
|
||||
.I "--lists-targets"
|
||||
Lists all of the available local cross compilation targets available
|
||||
as precompiled binaries on the Mono distribution server.
|
||||
.TP
|
||||
.I "--local-targets"
|
||||
Lists all of the available local cross compilation targets.
|
||||
.TP
|
||||
.I "--machine-config FILE"
|
||||
Uses the given FILE as the machine.config file for the generated
|
||||
application.
|
||||
.TP
|
||||
.I "--nomain"
|
||||
With the -c option, generate the host stub without a main() function.
|
||||
.TP
|
||||
.I "--config-dir DIR"
|
||||
When passed, DIR will be set for the MONO_CFG_DIR environment variable
|
||||
.TP
|
||||
.I "--static"
|
||||
By default \fImkbundle\fP dynamically links to mono and glib. This option
|
||||
causes it to statically link instead.
|
||||
.TP
|
||||
.I "--target-server SERVER"
|
||||
By default the mkbundle tool will download from a Mono server the
|
||||
target runtimes, you can specify a different server to provide
|
||||
cross-compiled runtimes.
|
||||
.TP
|
||||
.I "-z"
|
||||
Compresses the assemblies before embedding. This results in smaller
|
||||
executable files, but increases startup time and requires zlib to be
|
||||
installed on the target system.
|
||||
.SH WINDOWS
|
||||
On Windows systems, it it necessary to have Unix-like toolchain to be
|
||||
installed for \fImkbundle\fP to work. You can use cygwin's and install gcc,
|
||||
gcc-mingw and as packages.
|
||||
If you are using the old embedding on Windows systems, it it necessary
|
||||
to have Unix-like toolchain to be installed for \fImkbundle\fP to
|
||||
work. You can use cygwin's and install gcc, gcc-mingw and as
|
||||
packages.
|
||||
.SH ENVIRONMENT VARIABLES
|
||||
.TP
|
||||
.I "AS"
|
||||
@@ -175,7 +329,8 @@ cache.
|
||||
.PP
|
||||
Targets are loaded from ~/.mono/targets/TARGETNAME/mono
|
||||
.SH BUGS
|
||||
The option "--static" is not supported under Windows.
|
||||
The option "--static" is not supported under Windows when using the
|
||||
old embedding.
|
||||
Moreover, a full cygwin environment containing at least "gcc" and "as"
|
||||
is required for the build process. The generated executable does not
|
||||
depend on cygwin.
|
||||
|
||||
26
man/mono.1
26
man/mono.1
@@ -7,7 +7,7 @@
|
||||
.\" Author:
|
||||
.\" Miguel de Icaza (miguel@gnu.org)
|
||||
.\"
|
||||
.TH Mono "Mono 3.0"
|
||||
.TH Mono "Mono 4.7.0"
|
||||
.SH NAME
|
||||
mono \- Mono's ECMA-CLI native code generator (Just-in-Time and Ahead-of-Time)
|
||||
.SH SYNOPSIS
|
||||
@@ -1100,7 +1100,7 @@ a Mono process through the environment. This is useful for example
|
||||
to force all of your Mono processes to use LLVM or SGEN without having
|
||||
to modify any launch scripts.
|
||||
.TP
|
||||
\fBMONO_ENV_OPTIONS\fR
|
||||
\fBMONO_SDB_ENV_OPTIONS\fR
|
||||
Used to pass extra options to the debugger agent in the runtime, as they were passed
|
||||
using --debugger-agent=.
|
||||
.TP
|
||||
@@ -1302,12 +1302,12 @@ statistics when shutting down.
|
||||
.TP
|
||||
\fBcollect-before-allocs\fR
|
||||
.TP
|
||||
\fBcheck-at-minor-collections\fR
|
||||
This performs a consistency check on minor collections and also clears
|
||||
the nursery at collection time, instead of the default, when buffers
|
||||
are allocated (clear-at-gc). The consistency check ensures that
|
||||
there are no major to minor references that are not on the remembered
|
||||
sets.
|
||||
\fBcheck-remset-consistency\fR
|
||||
This performs a remset consistency check at various opportunities, and
|
||||
also clears the nursery at collection time, instead of the default,
|
||||
when buffers are allocated (clear-at-gc). The consistency check
|
||||
ensures that there are no major to minor references that are not on
|
||||
the remembered sets.
|
||||
.TP
|
||||
\fBmod-union-consistency-check\fR
|
||||
Checks that the mod-union cardtable is consistent before each
|
||||
@@ -1732,6 +1732,16 @@ messages for a certain component. You can use multiple masks by comma
|
||||
separating them. For example to see config file messages and assembly loader
|
||||
messages set you mask to "asm,cfg".
|
||||
.TP
|
||||
\fBMONO_LOG_DEST\fR
|
||||
Controls where trace log messages are written. If not set then the messages go to stdout.
|
||||
If set, the string either specifies a path to a file that will have messages appended to
|
||||
it, or the string "syslog" in which case the messages will be written to the system log.
|
||||
Under Windows, this is simulated by writing to a file called "mono.log".
|
||||
\fBMONO_LOG_HEADER\fR
|
||||
Controls whether trace log messages not directed to syslog have the id, timestamp, and
|
||||
pid as the prefix to the log message. To enable a header this environment variable need
|
||||
just be non-null.
|
||||
.TP
|
||||
\fBMONO_TRACE\fR
|
||||
Used for runtime tracing of method calls. The format of the comma separated
|
||||
trace options is:
|
||||
|
||||
@@ -92,7 +92,7 @@ provided by the Mono runtime and write them to a file named
|
||||
\f[I]output.mlpd\f[].
|
||||
When no option is specified, it is equivalent to using:
|
||||
.PP
|
||||
\f[B]--profile=log:calls,alloc,output=output.mlpd,maxframes=8,calldepth=100\f[]
|
||||
\f[B]--profile=log:calls,alloc,output=output.mlpd,maxframes=32,calldepth=100\f[]
|
||||
.PP
|
||||
The following options can be used to modify this default behaviour.
|
||||
Each option is separated from the next by a \f[B],\f[] character,
|
||||
@@ -139,41 +139,16 @@ garbage collections
|
||||
to the control port
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
\f[I]sample[=TYPE[/FREQ]]\f[]: collect statistical samples of the
|
||||
\f[I]sample[=FREQ]\f[]: collect statistical samples of the
|
||||
program behaviour.
|
||||
The default is to collect a 100 times per second (100 Hz) the
|
||||
instruction pointer.
|
||||
This is equivalent to the value \[lq]cycles/100\[rq] for
|
||||
\f[I]TYPE\f[].
|
||||
On some systems, like with recent Linux kernels, it is possible to
|
||||
cause the sampling to happen for other events provided by the
|
||||
performance counters of the cpu.
|
||||
In this case, \f[I]TYPE\f[] can be one of:
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
\f[I]cycles\f[]: processor cycles
|
||||
.IP \[bu] 2
|
||||
\f[I]instr\f[]: executed instructions
|
||||
.IP \[bu] 2
|
||||
\f[I]cacherefs\f[]: cache references
|
||||
.IP \[bu] 2
|
||||
\f[I]cachemiss\f[]: cache misses
|
||||
.IP \[bu] 2
|
||||
\f[I]branches\f[]: executed branches
|
||||
.IP \[bu] 2
|
||||
\f[I]branchmiss\f[]: mispredicted branches
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
\f[I]time=TIMER\f[]: use the TIMER timestamp mode.
|
||||
TIMER can have the following values:
|
||||
.RS 2
|
||||
.IP \[bu] 2
|
||||
\f[I]fast\f[]: a usually faster but possibly more inaccurate timer
|
||||
.RE
|
||||
This is equivalent to the value \[lq]100\[rq].
|
||||
A value of zero for \f[I]FREQ\f[] effectively disables sampling.
|
||||
.IP \[bu] 2
|
||||
\f[I]maxframes=NUM\f[]: when a stack trace needs to be performed,
|
||||
collect \f[I]NUM\f[] frames at the most.
|
||||
The default is 8.
|
||||
The default is 32.
|
||||
.IP \[bu] 2
|
||||
\f[I]maxsamples=NUM\f[]: stop allocating reusable sample events
|
||||
once \f[I]NUM\f[] events have been allocated (a value of zero for
|
||||
@@ -234,16 +209,15 @@ The following commands are available:
|
||||
\f[I]heapshot\f[]: perform a heapshot as soon as possible
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
\f[I]counters\f[]: sample counters values every 1 second. This allow
|
||||
a really lightweight way to have insight in some of the runtime key
|
||||
metrics. Counters displayed in non verbose mode are : Methods from AOT,
|
||||
Methods JITted using mono JIT, Methods JITted using LLVM, Total time
|
||||
spent JITting (sec), User Time, System Time, Total Time, Working Set,
|
||||
Private Bytes, Virtual Bytes, Page Faults and CPU Load Average (1min,
|
||||
5min and 15min).
|
||||
\f[I]nocounters\f[]: disables sampling of runtime and performance
|
||||
counters, which is normally done every 1 second.
|
||||
.IP \[bu] 2
|
||||
\f[I]coverage\f[]: collect code coverage data. This implies enabling
|
||||
the \f[I]calls\f[] option.
|
||||
.IP \[bu] 2
|
||||
\f[I]onlycoverage\f[]: can only be used with \f[I]coverage\f[]. This
|
||||
disables most other events so that the profiler mostly only collects
|
||||
coverage data.
|
||||
.RE
|
||||
.SS Analyzing the profile data
|
||||
.PP
|
||||
@@ -274,10 +248,6 @@ with the \f[I]--maxframes=NUM\f[] option:
|
||||
The stack trace info will be available if method enter/leave events
|
||||
have been recorded or if stack trace collection wasn't explicitly
|
||||
disabled with the \f[I]maxframes=0\f[] profiler option.
|
||||
Note that the profiler will collect up to 8 frames by default at
|
||||
specific events when the \f[I]nocalls\f[] option is used, so in
|
||||
that case, if more stack frames are required in mprof-report, a
|
||||
bigger value for maxframes when profiling must be used, too.
|
||||
.PP
|
||||
The \f[I]--traces\f[] option also controls the reverse reference
|
||||
feature in the heapshot report: for each class it reports how many
|
||||
@@ -487,15 +457,6 @@ option: especially if the managed heap is big, since every object
|
||||
needs to be inspected.
|
||||
The \f[I]MODE\f[] parameter of the \f[I]heapshot\f[] option can be
|
||||
used to reduce the frequency of the heap shots.
|
||||
.IP "\f[I]Reduce the timestamp overhead\f[]" 4
|
||||
.Sp
|
||||
On many operating systems or architectures what actually slows down
|
||||
profiling is the function provided by the system to get timestamp
|
||||
information.
|
||||
The \f[I]time=fast\f[] profiler option can be usually used to speed
|
||||
up this operation, but, depending on the system, time accounting
|
||||
may have some level of approximation (though statistically the data
|
||||
should be still fairly valuable).
|
||||
.SS Dealing with the size of the data files
|
||||
.PP
|
||||
When collecting a lot of information about a profiled program, huge
|
||||
|
||||
Reference in New Issue
Block a user