Imported Upstream version 5.20.1.22
Former-commit-id: 36cfe74fb4a92849aef0326046186dffbc1d4d0e
This commit is contained in:
parent
85eedc5197
commit
8016999e4d
@ -1 +1 @@
|
||||
3006e2a2a7a8cfba468d92a89168a31c18027dfa
|
||||
0a10d7702cce258aa223df527db3d3fee7a708ea
|
@ -1 +1 @@
|
||||
532ef3a00f247ae98241e65ac65352caac56ad72
|
||||
319dfcbd34aa76e21d7ed75404a80d09228b79d1
|
@ -335,6 +335,9 @@ format.
|
||||
.SS Options
|
||||
The AOT profiler supports the following options:
|
||||
.TP
|
||||
\fBduration\fR=\fInum\fR
|
||||
Profile only NUM seconds of runtime and then write the data.
|
||||
.TP
|
||||
\fBhelp\fR
|
||||
Print usage instructions.
|
||||
.TP
|
||||
|
@ -34,7 +34,7 @@ static class Consts
|
||||
// Use these assembly version constants to make code more maintainable.
|
||||
//
|
||||
|
||||
public const string MonoVersion = "5.20.1.19";
|
||||
public const string MonoVersion = "5.20.1.22";
|
||||
public const string MonoCompany = "Mono development team";
|
||||
public const string MonoProduct = "Mono Common Language Infrastructure";
|
||||
public const string MonoCopyright = "(c) Various Mono authors";
|
||||
|
@ -1 +1 @@
|
||||
065959baee82ccf5268cb2244317ee0873c04f09
|
||||
ac652b696075764615aa9b93fa948e13b894e529
|
@ -1 +1 @@
|
||||
d419de537d8d25d6fca28ef5e8fc7f9abae9e883
|
||||
622b80598dbba00a57ad15733364b393c65f9274
|
@ -1 +1 @@
|
||||
126bd535bd0a15f9793c78d1ec0bce7cae623943
|
||||
0422682b6daa776842f1fd227f8de4123a36c56a
|
Binary file not shown.
@ -1 +1 @@
|
||||
b67a9318e1980ab5202015ea42e72f1c647a8588
|
||||
72fcf0d9681ee249a97fbf36c0e31a4230972146
|
@ -1 +1 @@
|
||||
30300aa58f21e5f39eb6e170df359a5ece11efc1
|
||||
391eabaa568cedc999c8831f0ab26c9fb88f7b7b
|
@ -1 +1 @@
|
||||
d3f8b26fc3174e107e87346ddf89d1af89e77a81
|
||||
fb0bb3afc766acff0e70763c085ec83c69b0a324
|
@ -1 +1 @@
|
||||
9ec3b8a1a1d8dc04574811d4ddbd933770bd811b
|
||||
5005d60039f324b50717e6bf945083068cc2ba0c
|
@ -1 +1 @@
|
||||
065959baee82ccf5268cb2244317ee0873c04f09
|
||||
ac652b696075764615aa9b93fa948e13b894e529
|
@ -1 +1 @@
|
||||
d419de537d8d25d6fca28ef5e8fc7f9abae9e883
|
||||
622b80598dbba00a57ad15733364b393c65f9274
|
@ -1 +1 @@
|
||||
126bd535bd0a15f9793c78d1ec0bce7cae623943
|
||||
0422682b6daa776842f1fd227f8de4123a36c56a
|
Binary file not shown.
@ -1 +1 @@
|
||||
b67a9318e1980ab5202015ea42e72f1c647a8588
|
||||
72fcf0d9681ee249a97fbf36c0e31a4230972146
|
@ -1 +1 @@
|
||||
30300aa58f21e5f39eb6e170df359a5ece11efc1
|
||||
391eabaa568cedc999c8831f0ab26c9fb88f7b7b
|
@ -1 +1 @@
|
||||
d3f8b26fc3174e107e87346ddf89d1af89e77a81
|
||||
fb0bb3afc766acff0e70763c085ec83c69b0a324
|
@ -1 +1 @@
|
||||
9ec3b8a1a1d8dc04574811d4ddbd933770bd811b
|
||||
5005d60039f324b50717e6bf945083068cc2ba0c
|
@ -1 +1 @@
|
||||
065959baee82ccf5268cb2244317ee0873c04f09
|
||||
ac652b696075764615aa9b93fa948e13b894e529
|
@ -1 +1 @@
|
||||
d419de537d8d25d6fca28ef5e8fc7f9abae9e883
|
||||
622b80598dbba00a57ad15733364b393c65f9274
|
@ -1 +1 @@
|
||||
126bd535bd0a15f9793c78d1ec0bce7cae623943
|
||||
0422682b6daa776842f1fd227f8de4123a36c56a
|
Binary file not shown.
@ -1 +1 @@
|
||||
b67a9318e1980ab5202015ea42e72f1c647a8588
|
||||
72fcf0d9681ee249a97fbf36c0e31a4230972146
|
@ -1 +1 @@
|
||||
30300aa58f21e5f39eb6e170df359a5ece11efc1
|
||||
391eabaa568cedc999c8831f0ab26c9fb88f7b7b
|
@ -1 +1 @@
|
||||
d3f8b26fc3174e107e87346ddf89d1af89e77a81
|
||||
fb0bb3afc766acff0e70763c085ec83c69b0a324
|
@ -1 +1 @@
|
||||
9ec3b8a1a1d8dc04574811d4ddbd933770bd811b
|
||||
5005d60039f324b50717e6bf945083068cc2ba0c
|
@ -1 +1 @@
|
||||
065959baee82ccf5268cb2244317ee0873c04f09
|
||||
ac652b696075764615aa9b93fa948e13b894e529
|
@ -1 +1 @@
|
||||
d419de537d8d25d6fca28ef5e8fc7f9abae9e883
|
||||
622b80598dbba00a57ad15733364b393c65f9274
|
@ -1 +1 @@
|
||||
126bd535bd0a15f9793c78d1ec0bce7cae623943
|
||||
0422682b6daa776842f1fd227f8de4123a36c56a
|
Binary file not shown.
@ -1 +1 @@
|
||||
b67a9318e1980ab5202015ea42e72f1c647a8588
|
||||
72fcf0d9681ee249a97fbf36c0e31a4230972146
|
@ -1 +1 @@
|
||||
30300aa58f21e5f39eb6e170df359a5ece11efc1
|
||||
391eabaa568cedc999c8831f0ab26c9fb88f7b7b
|
@ -1 +1 @@
|
||||
d3f8b26fc3174e107e87346ddf89d1af89e77a81
|
||||
fb0bb3afc766acff0e70763c085ec83c69b0a324
|
@ -1 +1 @@
|
||||
9ec3b8a1a1d8dc04574811d4ddbd933770bd811b
|
||||
5005d60039f324b50717e6bf945083068cc2ba0c
|
@ -78,7 +78,7 @@ namespace Mono.XBuild.CommandLine
|
||||
if (HasAssemblyInfo (assemblyName))
|
||||
loggerAssembly = Assembly.Load (assemblyName);
|
||||
else if (File.Exists (assemblyName))
|
||||
loggerAssembly = Assembly.LoadFile (assemblyName);
|
||||
loggerAssembly = Assembly.LoadFrom (assemblyName);
|
||||
|
||||
if (loggerAssembly == null)
|
||||
return null;
|
||||
|
@ -1 +1 @@
|
||||
54cd6484f7ed21b57fff42f51598ceece4420a1a
|
||||
adc533df411b0499126cf5805e4f996f249a4559
|
@ -1 +1 @@
|
||||
#define FULL_VERSION "explicit/886c490"
|
||||
#define FULL_VERSION "explicit/e4df5ef"
|
||||
|
@ -10,6 +10,7 @@
|
||||
|
||||
#include "aot.h"
|
||||
|
||||
#include <mono/metadata/object-internals.h>
|
||||
#include <mono/metadata/profiler.h>
|
||||
#include <mono/metadata/tokentype.h>
|
||||
#include <mono/metadata/tabledefs.h>
|
||||
@ -19,6 +20,7 @@
|
||||
#include <mono/mini/jit.h>
|
||||
#include <mono/utils/mono-logger-internals.h>
|
||||
#include <mono/utils/mono-os-mutex.h>
|
||||
#include <mono/utils/mono-threads.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
@ -34,6 +36,7 @@ struct _MonoProfiler {
|
||||
char *outfile_name;
|
||||
mono_mutex_t mutex;
|
||||
gboolean verbose;
|
||||
int duration;
|
||||
};
|
||||
|
||||
static MonoProfiler aot_profiler;
|
||||
@ -47,6 +50,7 @@ prof_jit_done (MonoProfiler *prof, MonoMethod *method, MonoJitInfo *jinfo)
|
||||
return;
|
||||
|
||||
mono_os_mutex_lock (&prof->mutex);
|
||||
if (prof->methods)
|
||||
g_ptr_array_add (prof->methods, method);
|
||||
mono_os_mutex_unlock (&prof->mutex);
|
||||
}
|
||||
@ -57,12 +61,13 @@ prof_shutdown (MonoProfiler *prof);
|
||||
static void
|
||||
usage (void)
|
||||
{
|
||||
mono_profiler_printf ("AOT profiler.\n");
|
||||
mono_profiler_printf ("AOT profiler.");
|
||||
mono_profiler_printf ("Usage: mono --profile=aot[:OPTION1[,OPTION2...]] program.exe\n");
|
||||
mono_profiler_printf ("Options:\n");
|
||||
mono_profiler_printf ("\thelp show this usage info\n");
|
||||
mono_profiler_printf ("\toutput=FILENAME write the data to file FILENAME\n");
|
||||
mono_profiler_printf ("\tverbose print diagnostic info\n");
|
||||
mono_profiler_printf ("Options:");
|
||||
mono_profiler_printf ("\tduration=NUM profile only NUM seconds of runtime and write the data");
|
||||
mono_profiler_printf ("\thelp show this usage info");
|
||||
mono_profiler_printf ("\toutput=FILENAME write the data to file FILENAME");
|
||||
mono_profiler_printf ("\tverbose print diagnostic info");
|
||||
|
||||
exit (0);
|
||||
}
|
||||
@ -94,6 +99,9 @@ parse_arg (const char *arg)
|
||||
|
||||
if (match_option (arg, "help", NULL)) {
|
||||
usage ();
|
||||
} else if (match_option (arg, "duration", &val)) {
|
||||
char *end;
|
||||
aot_profiler.duration = strtoul (val, &end, 10);
|
||||
} else if (match_option (arg, "output", &val)) {
|
||||
aot_profiler.outfile_name = g_strdup (val);
|
||||
} else if (match_option (arg, "verbose", NULL)) {
|
||||
@ -158,6 +166,50 @@ parse_args (const char *desc)
|
||||
g_free (buffer);
|
||||
}
|
||||
|
||||
static void *
|
||||
helper_thread (void *arg)
|
||||
{
|
||||
mono_thread_attach (mono_get_root_domain ());
|
||||
|
||||
MonoInternalThread *internal = mono_thread_internal_current ();
|
||||
|
||||
ERROR_DECL (error);
|
||||
|
||||
MonoString *name_str = mono_string_new_checked (mono_get_root_domain (), "AOT Profiler Helper", error);
|
||||
mono_error_assert_ok (error);
|
||||
mono_thread_set_name_internal (internal, name_str, FALSE, FALSE, error);
|
||||
mono_error_assert_ok (error);
|
||||
|
||||
mono_thread_info_set_flags (MONO_THREAD_INFO_FLAGS_NO_GC | MONO_THREAD_INFO_FLAGS_NO_SAMPLE);
|
||||
|
||||
sleep (aot_profiler.duration);
|
||||
|
||||
prof_shutdown (&aot_profiler);
|
||||
|
||||
mono_thread_info_set_flags (MONO_THREAD_INFO_FLAGS_NONE);
|
||||
mono_thread_detach (mono_thread_current ());
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
start_helper_thread (void)
|
||||
{
|
||||
MonoNativeThreadId thread_id;
|
||||
|
||||
if (!mono_native_thread_create (&thread_id, helper_thread, NULL)) {
|
||||
mono_profiler_printf_err ("Could not start aot profiler helper thread");
|
||||
exit (1);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
runtime_initialized (MonoProfiler *profiler)
|
||||
{
|
||||
if (profiler->duration >= 0)
|
||||
start_helper_thread ();
|
||||
}
|
||||
|
||||
void
|
||||
mono_profiler_init_aot (const char *desc);
|
||||
|
||||
@ -173,6 +225,8 @@ mono_profiler_init_aot (const char *desc)
|
||||
exit (1);
|
||||
}
|
||||
|
||||
aot_profiler.duration = -1;
|
||||
|
||||
parse_args (desc [strlen ("aot")] == ':' ? desc + strlen ("aot") + 1 : "");
|
||||
|
||||
if (!aot_profiler.outfile_name)
|
||||
@ -199,6 +253,7 @@ mono_profiler_init_aot (const char *desc)
|
||||
mono_os_mutex_init (&aot_profiler.mutex);
|
||||
|
||||
MonoProfilerHandle handle = mono_profiler_create (&aot_profiler);
|
||||
mono_profiler_set_runtime_initialized_callback (handle, runtime_initialized);
|
||||
mono_profiler_set_runtime_shutdown_end_callback (handle, prof_shutdown);
|
||||
mono_profiler_set_jit_done_callback (handle, prof_jit_done);
|
||||
}
|
||||
@ -387,13 +442,20 @@ add_method (MonoProfiler *prof, MonoMethod *m)
|
||||
g_free (s);
|
||||
|
||||
if (prof->verbose)
|
||||
mono_profiler_printf ("%s %d\n", mono_method_full_name (m, 1), id);
|
||||
mono_profiler_printf ("%s %d", mono_method_full_name (m, 1), id);
|
||||
}
|
||||
|
||||
/* called at the end of the program */
|
||||
static void
|
||||
prof_shutdown (MonoProfiler *prof)
|
||||
{
|
||||
mono_os_mutex_lock (&prof->mutex);
|
||||
int already_shutdown = prof->methods == NULL;
|
||||
mono_os_mutex_unlock (&prof->mutex);
|
||||
|
||||
if (already_shutdown)
|
||||
return;
|
||||
|
||||
int mindex;
|
||||
char magic [32];
|
||||
|
||||
@ -403,6 +465,7 @@ prof_shutdown (MonoProfiler *prof)
|
||||
emit_int32 (prof, version);
|
||||
|
||||
GHashTable *all_methods = g_hash_table_new (NULL, NULL);
|
||||
mono_os_mutex_lock (&prof->mutex);
|
||||
for (mindex = 0; mindex < prof->methods->len; ++mindex) {
|
||||
MonoMethod *m = (MonoMethod*)g_ptr_array_index (prof->methods, mindex);
|
||||
|
||||
@ -419,9 +482,14 @@ prof_shutdown (MonoProfiler *prof)
|
||||
|
||||
fclose (prof->outfile);
|
||||
|
||||
mono_profiler_printf ("AOT profiler data written to '%s'", prof->outfile_name);
|
||||
|
||||
g_hash_table_destroy (all_methods);
|
||||
g_hash_table_destroy (prof->classes);
|
||||
g_hash_table_destroy (prof->images);
|
||||
g_ptr_array_free (prof->methods, TRUE);
|
||||
g_free (prof->outfile_name);
|
||||
|
||||
prof->methods = NULL;
|
||||
mono_os_mutex_unlock (&prof->mutex);
|
||||
}
|
||||
|
BIN
po/mcs/de.gmo
BIN
po/mcs/de.gmo
Binary file not shown.
@ -1 +1 @@
|
||||
b01efc0db41aa5919b7d18982b6bd50ee0d14ddb
|
||||
49b1d859492b4d5aeb09464bbca50bcf52980a34
|
BIN
po/mcs/es.gmo
BIN
po/mcs/es.gmo
Binary file not shown.
@ -1 +1 @@
|
||||
11777dc18f1d8992701885e6250a753989e650e9
|
||||
7a97f950e10c81750b0f00c426f99247303feb68
|
BIN
po/mcs/ja.gmo
BIN
po/mcs/ja.gmo
Binary file not shown.
@ -1 +1 @@
|
||||
7417f82220e053d41c48961a03eaed2768169d43
|
||||
41c9f8b77b6e38893a89270554c84a0d742f671f
|
@ -6,9 +6,9 @@
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: mono 5.20.1.19\n"
|
||||
"Project-Id-Version: mono 5.20.1.22\n"
|
||||
"Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n"
|
||||
"POT-Creation-Date: 2019-04-10 08:07+0000\n"
|
||||
"POT-Creation-Date: 2019-04-12 08:07+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
BIN
po/mcs/pt_BR.gmo
BIN
po/mcs/pt_BR.gmo
Binary file not shown.
@ -1 +1 @@
|
||||
5f2d40368af77a1d8431e095b4e7b850f6e53586
|
||||
0899c7d6d26873d10d1d97979697b6d6dd901b03
|
Loading…
x
Reference in New Issue
Block a user