You've already forked linux-packaging-mono
Imported Upstream version 5.12.0.220
Former-commit-id: c477e03582759447177c6d4bf412cd2355aad476
This commit is contained in:
parent
8bd104cef2
commit
8fc30896db
@@ -13,6 +13,7 @@ man_MANS = \
|
||||
genxs.1 \
|
||||
httpcfg.1 \
|
||||
ilasm.1 \
|
||||
illinkanalyzer.1 \
|
||||
lc.1 \
|
||||
macpack.1 \
|
||||
makecert.1 \
|
||||
|
||||
@@ -82,14 +82,14 @@ subdir = man
|
||||
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||
$(top_srcdir)/mkinstalldirs
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
|
||||
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
|
||||
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
|
||||
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \
|
||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
||||
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
|
||||
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
|
||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
@@ -233,6 +233,10 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTL = @INTL@
|
||||
INVARIANT_AOT_OPTIONS = @INVARIANT_AOT_OPTIONS@
|
||||
JEMALLOC_AUTOCONF_FLAGS = @JEMALLOC_AUTOCONF_FLAGS@
|
||||
JEMALLOC_CFLAGS = @JEMALLOC_CFLAGS@
|
||||
JEMALLOC_CPPFLAGS = @JEMALLOC_CPPFLAGS@
|
||||
JEMALLOC_LDFLAGS = @JEMALLOC_LDFLAGS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBC = @LIBC@
|
||||
@@ -261,6 +265,9 @@ MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MONO_CORLIB_VERSION = @MONO_CORLIB_VERSION@
|
||||
MONO_DL_NEED_USCORE = @MONO_DL_NEED_USCORE@
|
||||
MONO_JEMALLOC_ASSERT = @MONO_JEMALLOC_ASSERT@
|
||||
MONO_JEMALLOC_DEFAULT = @MONO_JEMALLOC_DEFAULT@
|
||||
MONO_JEMALLOC_ENABLED = @MONO_JEMALLOC_ENABLED@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGFMT_015 = @MSGFMT_015@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
@@ -399,6 +406,7 @@ man_MANS = \
|
||||
genxs.1 \
|
||||
httpcfg.1 \
|
||||
ilasm.1 \
|
||||
illinkanalyzer.1 \
|
||||
lc.1 \
|
||||
macpack.1 \
|
||||
makecert.1 \
|
||||
|
||||
132
man/illinkanalyzer.1
Normal file
132
man/illinkanalyzer.1
Normal file
@@ -0,0 +1,132 @@
|
||||
.TH illinkanalyzer 1
|
||||
.SH NAME
|
||||
illinkanalyzer \- Mono's linker analyzer tool
|
||||
.SH SYNOPSIS
|
||||
.B illinkanalyzer
|
||||
\fR[\fIoptions\fR] <\fIlinker-dependency-file.xml.gz\fR>
|
||||
.SH DESCRIPTION
|
||||
Linker analyzer is a command line tool to analyze dependencies, which
|
||||
were recorded during linker processing, and led linker to mark an item
|
||||
to keep it in the resulting linked assembly.
|
||||
.PP
|
||||
It works on an oriented graph of dependencies, which are collected and
|
||||
dumped during the linker run. The vertices of this graph are the items
|
||||
of interest like assemblies, types, methods, fields, linker steps,
|
||||
etc. The edges represent the dependencies.
|
||||
.SH HOW TO DUMP DEPENDENCIES
|
||||
The linker analyzer needs a linker dependencies file as an input. It
|
||||
can be retrieved by enabling dependencies dumping during linking of a
|
||||
Xamarin.Android or a Xamarin.iOS project.
|
||||
.PP
|
||||
That can be done on the command line by setting LinkerDumpDependencies
|
||||
property to true and building the project. (make sure the
|
||||
LinkAssemblies task is called, it might require cleaning the project
|
||||
sometimes) Usually it is enough to build the project like this:
|
||||
.PP
|
||||
.nf
|
||||
.RS
|
||||
rm -f obj/Release/link.flag
|
||||
msbuild /p:LinkerDumpDependencies=true /p:Configuration=Release YourAppProject.csproj
|
||||
.RE
|
||||
.fi
|
||||
.PP
|
||||
After a successful build, there will be a linker-dependencies.xml.gz
|
||||
file created, containing the information for the analyzer.
|
||||
.SH OPTIONS
|
||||
.nf
|
||||
.RS
|
||||
-a, --alldeps show all dependencies
|
||||
--csvoutput=VALUE outputs types and optionally size analysis to CSV
|
||||
file
|
||||
-h, --help show this message and exit.
|
||||
-l, --linkedpath=VALUE sets the linked assemblies directory path. Enables
|
||||
displaying size estimates.
|
||||
-r, --rawdeps=VALUE show raw vertex dependencies. Raw vertex VALUE is
|
||||
in the raw format written by linker to the
|
||||
dependency XML file. VALUE can be regular
|
||||
expression
|
||||
--roots show root dependencies.
|
||||
--stat show statistic of loaded dependencies.
|
||||
--tree reduce the dependency graph to the tree.
|
||||
--types show all types dependencies.
|
||||
-t, --typedeps=VALUE show type dependencies. The VALUE can be regular
|
||||
expression
|
||||
-f, --flat show all dependencies per vertex and their distance
|
||||
-v, --verbose be more verbose. Enables stat and roots options.
|
||||
.RE
|
||||
.fi
|
||||
.SH EXAMPLES
|
||||
Let say you would like to know, why a type, Android.App.Activity for
|
||||
example, was marked by the linker. So run the analyzer like this:
|
||||
.PP
|
||||
.nf
|
||||
.RS
|
||||
illinkanalyzer -t Android.App.Activity linker-dependencies.xml.gz
|
||||
.fi
|
||||
.RE
|
||||
.PP
|
||||
Output:
|
||||
.PP
|
||||
.nf
|
||||
.RS
|
||||
Loading dependency tree from: linker-dependencies.xml.gz
|
||||
|
||||
--- Type dependencies: 'Android.App.Activity' -----------------------
|
||||
|
||||
--- TypeDef:Android.App.Activity dependencies -----------------------
|
||||
Dependency #1
|
||||
TypeDef:Android.App.Activity
|
||||
| TypeDef:XA.App.MainActivity [2 deps]
|
||||
| Assembly:XA.App, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null [3 deps]
|
||||
| Other:Mono.Linker.Steps.ResolveFromAssemblyStep
|
||||
.fi
|
||||
.RE
|
||||
.PP
|
||||
The output contains dependencies string(s), starting with the type and
|
||||
continuing with the item of interest, which depends on the type. The
|
||||
dependency could be result of multiple reasons. For example the type
|
||||
was referenced from a method, or the type was listed in the linker xml
|
||||
file to be protected.
|
||||
.PP
|
||||
In our example there is only one dependency string called Dependency
|
||||
#1. It shows us that the type Android.App.Activity was marked during
|
||||
processing of type XA.App.MainActivity by the linker. In this case
|
||||
because the MainActivity type is based on the Activity type and thus
|
||||
the linker marked it and kept it in the linked assembly. We can also
|
||||
see that there are 2 dependencies for the MainActivity class. Note
|
||||
that in the string (above) we see only 1st dependency of the 2, the
|
||||
dependency on the assembly XA.App. And finally the assembly vertex
|
||||
depends on the ResolveFromAssemblyStep vertex. So we see that the
|
||||
assembly was processed in the ResolveFromAssembly linker step.
|
||||
.PP
|
||||
Now we might want to see the MainActivity dependencies. That could be done by the following analyzer run:
|
||||
.PP
|
||||
.nf
|
||||
.RS
|
||||
illinkanalyzer -r TypeDef:XA.App.MainActivity linker-dependencies.xml.gz
|
||||
.fi
|
||||
.RE
|
||||
.PP
|
||||
Output:
|
||||
.PP
|
||||
.nf
|
||||
.RS
|
||||
Loading dependency tree from: linker-dependencies.xml.gz
|
||||
|
||||
--- Raw dependencies: 'TypeDef:XA.App.MainActivity' -----------------
|
||||
|
||||
--- TypeDef:XA.App.MainActivity dependencies ------------------------
|
||||
Dependency #1
|
||||
TypeDef:XA.App.MainActivity
|
||||
| Assembly:XA.App, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null [3 deps]
|
||||
| Other:Mono.Linker.Steps.ResolveFromAssemblyStep
|
||||
Dependency #2
|
||||
TypeDef:XA.App.MainActivity
|
||||
| TypeDef:XA.App.MainActivity/<>c__DisplayClass1_0 [2 deps]
|
||||
| TypeDef:XA.App.MainActivity [2 deps]
|
||||
| Assembly:XA.App, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null [3 deps]
|
||||
| Other:Mono.Linker.Steps.ResolveFromAssemblyStep
|
||||
.fi
|
||||
.RE
|
||||
.SH SEE ALSO
|
||||
\fBmsbuild\fR(1)
|
||||
44
man/mono.1
44
man/mono.1
@@ -65,6 +65,45 @@ and
|
||||
See the description for
|
||||
.B MONO_IOMAP
|
||||
in the environment variables section for more details.
|
||||
.SH METHOD DESCRIPTIONS
|
||||
A number of diagnostic command line options take as argument a method
|
||||
description. A method description is a textual representation that
|
||||
can be used to uniquely identify a method. The syntax is as follows:
|
||||
.nf
|
||||
[namespace]classname:methodname[(arguments)]
|
||||
.fi
|
||||
.PP
|
||||
The values in brackets are optional, like the namespace and the
|
||||
arguments. The arguments themselves are either empty, or a
|
||||
comma-separated list of arguments. Both the
|
||||
\fBclassname\fR
|
||||
and
|
||||
\fBmethodname\fR
|
||||
can be set to the special value '*' to match any values (Unix shell
|
||||
users should escape the argument to avoid the shell interpreting
|
||||
this).
|
||||
.PP
|
||||
The arguments, if present should be a comma separated list of types
|
||||
either a full typename, or for built-in types it should use the
|
||||
low-level ILAsm type names for the built-in types,
|
||||
like 'void', 'char', 'bool', 'byte', 'sbyte', 'uint16', 'int16', 'uint',
|
||||
'int', 'ulong', 'long', 'uintptr', 'intptr', 'single', 'double', 'string', 'object'.
|
||||
.PP
|
||||
Pointer types should be the name of the type, followed by a '*',
|
||||
arrays should be the typename followed by '[' one or more commas (to
|
||||
indicate the rank of the array), and ']'.
|
||||
.PP
|
||||
Generic values should use '<', one or more type names, separated by
|
||||
both a comma and a space and '>'.
|
||||
.PP
|
||||
By-reference arguments should include a "&" after the typename.
|
||||
.PP
|
||||
Examples:
|
||||
.nf
|
||||
*:ctor(int) // All constructors that take an int as an argument
|
||||
*:Main // Methods named Main in any class
|
||||
*:Main(string[]) // Methods named Main that take a string array in any class
|
||||
.fi
|
||||
.SH RUNTIME OPTIONS
|
||||
The following options are available:
|
||||
.TP
|
||||
@@ -1826,7 +1865,10 @@ for example, to see managed frame names on gdb backtraces.
|
||||
\fBMONO_VERBOSE_METHOD\fR
|
||||
Enables the maximum JIT verbosity for the specified method. This is
|
||||
very helpfull to diagnose a miscompilation problems of a specific
|
||||
method.
|
||||
method. This can be a comma-separated list of method names to
|
||||
match. If the name is simple, this applies to any method with that
|
||||
name, otherwise you can use a mono method description (see the section
|
||||
METHOD DESCRIPTIONS).
|
||||
.TP
|
||||
\fBMONO_JIT_DUMP_METHOD\fR
|
||||
Enables sending of the JITs intermediate representation for a specified
|
||||
|
||||
@@ -202,7 +202,7 @@ Specify a parameter for a custom step.
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2007 Novell, Inc (http://www.novell.com)
|
||||
.SH BUGS
|
||||
Bugs report are welcome at http://bugzilla.xamarin.com
|
||||
Bugs report are welcome at https://github.com/mono/linker/issues
|
||||
.PP
|
||||
Product Mono Tools, Component linker.
|
||||
.SH MAILING LISTS
|
||||
|
||||
@@ -515,10 +515,10 @@ The Mono SQL Query Tool is released under the terms of the GNU GPL.
|
||||
Please read the accompanying `COPYING' file for details. Alternative
|
||||
licenses are available from Novell or Daniel Morgan.
|
||||
.SH BUGS
|
||||
To report bugs in the compiler, you can use `bug-buddy', or you can
|
||||
To report bugs in the compiler, you can
|
||||
file bug reports in our bug tracking system:
|
||||
.nf
|
||||
http://bugzilla.xamarin.com.
|
||||
https://github.com/mono/mono/issues
|
||||
.fi
|
||||
.PP
|
||||
.SH MAILING LISTS
|
||||
|
||||
Reference in New Issue
Block a user