Merge branch 'upstream'

Former-commit-id: d7360f4b544e7f4072482ce09aa1e54bd77f52c1
This commit is contained in:
Xamarin Public Jenkins (auto-signing) 2019-02-16 08:31:33 +00:00
commit a0cf792d00
52 changed files with 150 additions and 113 deletions

View File

@ -1 +1 @@
2c86edc3ba8bf7e9989f55c6f637d114fd0b28e1 f0b6e21374ee9752e37831a38c20776e6960cbcd

View File

@ -1 +1 @@
9aa1dfe93df405cbc803ec4dd5c3423e1e1d191f 7d6429e36be0550c81f969db37a1ac1e621f4c30

View File

@ -34,7 +34,7 @@ static class Consts
// Use these assembly version constants to make code more maintainable. // Use these assembly version constants to make code more maintainable.
// //
public const string MonoVersion = "5.20.0.212"; public const string MonoVersion = "5.20.0.216";
public const string MonoCompany = "Mono development team"; public const string MonoCompany = "Mono development team";
public const string MonoProduct = "Mono Common Language Infrastructure"; public const string MonoProduct = "Mono Common Language Infrastructure";
public const string MonoCopyright = "(c) Various Mono authors"; public const string MonoCopyright = "(c) Various Mono authors";

View File

@ -405,15 +405,21 @@ namespace MonoTests.System
} }
#if !MOBILE #if !MOBILE
// Ensure that we can convert a stacktrace to a void NestedStackTraces (int depth)
// telemetry message {
// if (depth == 0)
[Test] throw new ArgumentException ("Depth 0 exception");
[Category("NotOnWindows")]
public void StacktraceToState () try {
NestedStackTraces (depth - 1);
} catch (Exception exc) {
throw new Exception (String.Format ("Depth {0} exception, expect nested", depth), exc);
}
}
void StacktraceToStateTest (int depth)
{ {
try { try {
throw new Exception ("#0"); NestedStackTraces (depth);
} catch (Exception exc) { } catch (Exception exc) {
var monoType = Type.GetType ("Mono.Runtime", false); var monoType = Type.GetType ("Mono.Runtime", false);
var convert = monoType.GetMethod("ExceptionToState", BindingFlags.NonPublic | BindingFlags.Static); var convert = monoType.GetMethod("ExceptionToState", BindingFlags.NonPublic | BindingFlags.Static);
@ -424,59 +430,41 @@ namespace MonoTests.System
var portable_hash = output.Item2; var portable_hash = output.Item2;
var unportable_hash = output.Item3; var unportable_hash = output.Item3;
// To see what we're working with
// Console.WriteLine (dump);
Assert.IsTrue (portable_hash != 0, "#1"); Assert.IsTrue (portable_hash != 0, "#1");
Assert.IsTrue (unportable_hash != 0, "#2"); Assert.IsTrue (unportable_hash != 0, "#2");
Assert.IsTrue (dump.Length > 0, "#3"); Assert.IsTrue (dump.Length > 0, "#3");
// Console.WriteLine (dump);
// dump should look something like:
// {
// "protocol_version" : "0.0.1",
// "configuration" : {
// "version" : "5.19.0 (managed_telemetry_pipeline/d342c73e320 Wed Aug 15 14:40:40 EDT 2018)",
// "tlc" : "normal",
// "sigsgev" : "altstack",
// "notifications" : "kqueue",
// "architecture" : "amd64",
// "disabled_features" : "none",
// "smallconfig" : "disabled",
// "bigarrays" : "disabled",
// "softdebug" : "enabled",
// "interpreter" : "enabled",
// "llvm_support" : "disabled",
// "suspend" : "hybrid"
// },
// "memory" : {
// "Resident Size" : "40693760",
// "Virtual Size" : "4521312256",
// "minor_gc_time" : "216992",
// "major_gc_time" : "0",
// "minor_gc_count" : "6",
// "major_gc_count" : "0",
// "major_gc_time_concurrent" : "0"
// },
// "threads" : [
// {
// "is_managed" : false,
// "managed_thread_ptr" : "0x0",
// "thread_info_addr" : "0x0",
// "native_thread_id" : "0x0",
// "managed_exception_type" : "System.Exception",
// "managed_frames" : [
// {
// "is_managed" : "true",
// "guid" : "43A03618-E657-44B0-B9FA-F63314A3C1B2",
// "token" : "0x60008da",
// "native_offset" : "0xb2",
// "il_offset" : "0x00000"
// }
// ]
// }
// ]
// }
} }
} }
// Ensure that we can convert a stacktrace to a
// telemetry message
//
[Test]
[Category("NotOnWindows")]
public void StacktraceToStateBase ()
{
StacktraceToStateTest (0);
}
[Test]
[Category("NotOnWindows")]
public void StacktraceToStateDeeper ()
{
StacktraceToStateTest (2);
}
[Test]
[Category("NotOnWindows")]
public void StacktraceToStateOverflow ()
{
// We set a limit on 15 nested exceptions. Lets check that we're valid
// when exceeding that limit.
StacktraceToStateTest (20);
}
void DumpSingle () void DumpSingle ()
{ {
var monoType = Type.GetType ("Mono.Runtime", false); var monoType = Type.GetType ("Mono.Runtime", false);

View File

@ -1 +1 @@
d03e66988382cc596efa6e6cd4e15b38dd662e2f bf5efc5447e6f4a911a6ec54f7cf8ad9235fe762

View File

@ -1 +1 @@
1d23d17a634de9fdbb0dc9227c48f23b56a43fca bb36f1a11545bf4a03eb3573bdea38e58f46cccc

View File

@ -1 +1 @@
f23f0206760d2a78d78ca1b09b56c8260a60e065 71b08e4112901e636d98620ac91654b734f56293

View File

@ -1 +1 @@
4627cbb776b126cba78aac2713b8bb3839cb5404 d37cf271f832133dd652fc851bd0f5d7b9169079

View File

@ -1 +1 @@
740601bc775197bb507bcabb8c776613ac0864a8 ed7cb36f1271f2b721d6d6a0d794b726adb4cd5b

View File

@ -1 +1 @@
f86cd4ec65cf6fae7248f3f5e0bc9b4c6561dffc 8000f304b65bd645bc78ec0627662a8cd92b8f36

View File

@ -1 +1 @@
67f2dde2aeb02fb03415a58067ae5d11d45f74ec 2eaa92b92d5c3487575d87df14a4ed6851924590

View File

@ -1 +1 @@
d03e66988382cc596efa6e6cd4e15b38dd662e2f bf5efc5447e6f4a911a6ec54f7cf8ad9235fe762

View File

@ -1 +1 @@
1d23d17a634de9fdbb0dc9227c48f23b56a43fca bb36f1a11545bf4a03eb3573bdea38e58f46cccc

View File

@ -1 +1 @@
f23f0206760d2a78d78ca1b09b56c8260a60e065 71b08e4112901e636d98620ac91654b734f56293

View File

@ -1 +1 @@
4627cbb776b126cba78aac2713b8bb3839cb5404 d37cf271f832133dd652fc851bd0f5d7b9169079

View File

@ -1 +1 @@
740601bc775197bb507bcabb8c776613ac0864a8 ed7cb36f1271f2b721d6d6a0d794b726adb4cd5b

View File

@ -1 +1 @@
f86cd4ec65cf6fae7248f3f5e0bc9b4c6561dffc 8000f304b65bd645bc78ec0627662a8cd92b8f36

View File

@ -1 +1 @@
67f2dde2aeb02fb03415a58067ae5d11d45f74ec 2eaa92b92d5c3487575d87df14a4ed6851924590

View File

@ -1 +1 @@
d03e66988382cc596efa6e6cd4e15b38dd662e2f bf5efc5447e6f4a911a6ec54f7cf8ad9235fe762

View File

@ -1 +1 @@
1d23d17a634de9fdbb0dc9227c48f23b56a43fca bb36f1a11545bf4a03eb3573bdea38e58f46cccc

View File

@ -1 +1 @@
f23f0206760d2a78d78ca1b09b56c8260a60e065 71b08e4112901e636d98620ac91654b734f56293

View File

@ -1 +1 @@
4627cbb776b126cba78aac2713b8bb3839cb5404 d37cf271f832133dd652fc851bd0f5d7b9169079

View File

@ -1 +1 @@
740601bc775197bb507bcabb8c776613ac0864a8 ed7cb36f1271f2b721d6d6a0d794b726adb4cd5b

View File

@ -1 +1 @@
f86cd4ec65cf6fae7248f3f5e0bc9b4c6561dffc 8000f304b65bd645bc78ec0627662a8cd92b8f36

View File

@ -1 +1 @@
67f2dde2aeb02fb03415a58067ae5d11d45f74ec 2eaa92b92d5c3487575d87df14a4ed6851924590

View File

@ -1 +1 @@
d03e66988382cc596efa6e6cd4e15b38dd662e2f bf5efc5447e6f4a911a6ec54f7cf8ad9235fe762

View File

@ -1 +1 @@
1d23d17a634de9fdbb0dc9227c48f23b56a43fca bb36f1a11545bf4a03eb3573bdea38e58f46cccc

View File

@ -1 +1 @@
f23f0206760d2a78d78ca1b09b56c8260a60e065 71b08e4112901e636d98620ac91654b734f56293

View File

@ -1 +1 @@
4627cbb776b126cba78aac2713b8bb3839cb5404 d37cf271f832133dd652fc851bd0f5d7b9169079

View File

@ -1 +1 @@
740601bc775197bb507bcabb8c776613ac0864a8 ed7cb36f1271f2b721d6d6a0d794b726adb4cd5b

View File

@ -1 +1 @@
f86cd4ec65cf6fae7248f3f5e0bc9b4c6561dffc 8000f304b65bd645bc78ec0627662a8cd92b8f36

View File

@ -1 +1 @@
67f2dde2aeb02fb03415a58067ae5d11d45f74ec 2eaa92b92d5c3487575d87df14a4ed6851924590

View File

@ -415,6 +415,13 @@ typedef struct {
MonoArray *out_args; MonoArray *out_args;
} MonoAsyncCall; } MonoAsyncCall;
typedef struct {
MonoObject obj;
MonoArray *frames;
MonoArray *captured_traces;
MonoBoolean debug_info;
} MonoStackTrace;
typedef struct { typedef struct {
MonoObject obj; MonoObject obj;
gint32 il_offset; gint32 il_offset;

View File

@ -556,6 +556,7 @@ mono_set_pending_exception_handle (MonoExceptionHandle exc);
#define MONO_MAX_THREAD_NAME_LEN 140 #define MONO_MAX_THREAD_NAME_LEN 140
#define MONO_MAX_SUMMARY_THREADS 32 #define MONO_MAX_SUMMARY_THREADS 32
#define MONO_MAX_SUMMARY_FRAMES 80 #define MONO_MAX_SUMMARY_FRAMES 80
#define MONO_MAX_SUMMARY_EXCEPTIONS 15
typedef struct { typedef struct {
gboolean is_managed; gboolean is_managed;
@ -584,6 +585,13 @@ typedef struct {
} unmanaged_data; } unmanaged_data;
} MonoFrameSummary; } MonoFrameSummary;
typedef struct {
MonoClass *managed_exc_type;
int num_managed_frames;
MonoFrameSummary managed_frames [MONO_MAX_SUMMARY_FRAMES];
} MonoExcSummary;
typedef struct { typedef struct {
guint64 offset_free_hash; guint64 offset_free_hash;
guint64 offset_rich_hash; guint64 offset_rich_hash;
@ -618,12 +626,13 @@ typedef struct {
int num_unmanaged_frames; int num_unmanaged_frames;
MonoFrameSummary unmanaged_frames [MONO_MAX_SUMMARY_FRAMES]; MonoFrameSummary unmanaged_frames [MONO_MAX_SUMMARY_FRAMES];
int num_exceptions;
MonoExcSummary exceptions [MONO_MAX_SUMMARY_EXCEPTIONS];
MonoStackHash hashes; MonoStackHash hashes;
MonoContext *ctx; MonoContext *ctx;
MonoContext ctx_mem; MonoContext ctx_mem;
MonoClass *managed_exc_type;
} MonoThreadSummary; } MonoThreadSummary;
gboolean gboolean

View File

@ -1 +1 @@
18d8790cce1bc5af5f396123ecf2af224b656d7f 340ce835d465cf9e34de291cdbaed326bb821e69

View File

@ -1 +1 @@
5d2cdc457b989d21bce22f039a63e9a0b790994f 82cfd50fe6fe4d591cf94156aba197f631088b94

View File

@ -1 +1 @@
#define FULL_VERSION "explicit/aa0b580" #define FULL_VERSION "explicit/4c3f26a"

View File

@ -545,14 +545,11 @@ mono_native_state_add_frames (MonoStateWriter *writer, int num_frames, MonoFrame
mono_state_writer_printf(writer, "[\n"); mono_state_writer_printf(writer, "[\n");
// Where you are: everything works but for (int i = 0; i < num_frames; ++i) {
// the add_frame method if (i > 0)
mono_state_writer_printf(writer, ",\n");
mono_native_state_add_frame (writer, &frames [0]); mono_native_state_add_frame (writer, &frames [i]);
for (int i = 1; i < num_frames; ++i) { }
mono_state_writer_printf(writer, ",\n");
mono_native_state_add_frame (writer, &frames [i]);
}
mono_state_writer_printf(writer, "\n"); mono_state_writer_printf(writer, "\n");
mono_state_writer_indent (writer); mono_state_writer_indent (writer);
@ -560,6 +557,45 @@ mono_native_state_add_frames (MonoStateWriter *writer, int num_frames, MonoFrame
mono_state_writer_printf(writer, "]"); mono_state_writer_printf(writer, "]");
} }
static void
mono_native_state_add_managed_exc (MonoStateWriter *writer, MonoExcSummary *exc)
{
mono_state_writer_indent (writer);
mono_state_writer_printf(writer, "{\n");
writer->indent++;
assert_has_space (writer);
mono_state_writer_indent (writer);
mono_state_writer_object_key (writer, "type");
mono_state_writer_printf(writer, "\"%s.%s\",\n", m_class_get_name_space (exc->managed_exc_type), m_class_get_name (exc->managed_exc_type));
mono_native_state_add_frames (writer, exc->num_managed_frames, exc->managed_frames, "managed_frames");
mono_state_writer_indent (writer);
writer->indent--;
mono_state_writer_printf(writer, "}\n");
}
static void
mono_native_state_add_managed_excs (MonoStateWriter *writer, int num_excs, MonoExcSummary *excs)
{
mono_state_writer_indent (writer);
mono_state_writer_object_key (writer, "exceptions");
mono_state_writer_printf(writer, "[\n");
for (int i = 0; i < num_excs; ++i) {
if (i > 0)
mono_state_writer_printf(writer, ",\n");
mono_native_state_add_managed_exc (writer, &excs [i]);
}
mono_state_writer_indent (writer);
writer->indent--;
mono_state_writer_printf(writer, "]");
}
void void
mono_native_state_add_thread (MonoStateWriter *writer, MonoThreadSummary *thread, MonoContext *ctx, gboolean first_thread, gboolean crashing_thread) mono_native_state_add_thread (MonoStateWriter *writer, MonoThreadSummary *thread, MonoContext *ctx, gboolean first_thread, gboolean crashing_thread)
{ {
@ -619,19 +655,16 @@ mono_native_state_add_thread (MonoStateWriter *writer, MonoThreadSummary *thread
mono_state_writer_printf(writer, "\"%s\"", thread->name); mono_state_writer_printf(writer, "\"%s\"", thread->name);
} }
if (thread->managed_exc_type) {
mono_state_writer_printf(writer, ",\n");
assert_has_space (writer);
mono_state_writer_indent (writer);
mono_state_writer_object_key (writer, "managed_exception_type");
mono_state_writer_printf(writer, "\"%s.%s\"", m_class_get_name_space (thread->managed_exc_type), m_class_get_name (thread->managed_exc_type));
}
if (ctx) { if (ctx) {
mono_state_writer_printf(writer, ",\n"); mono_state_writer_printf(writer, ",\n");
mono_native_state_add_ctx (writer, ctx); mono_native_state_add_ctx (writer, ctx);
} }
if (thread->num_exceptions > 0) {
mono_state_writer_printf(writer, ",\n");
mono_native_state_add_managed_excs (writer, thread->num_exceptions, thread->exceptions);
}
if (thread->num_managed_frames > 0) { if (thread->num_managed_frames > 0) {
mono_state_writer_printf(writer, ",\n"); mono_state_writer_printf(writer, ",\n");
mono_native_state_add_frames (writer, thread->num_managed_frames, thread->managed_frames, "managed_frames"); mono_native_state_add_frames (writer, thread->num_managed_frames, thread->managed_frames, "managed_frames");

View File

@ -18,7 +18,7 @@
#include <mono/metadata/threads-types.h> #include <mono/metadata/threads-types.h>
#include <mono/utils/json.h> #include <mono/utils/json.h>
#define MONO_NATIVE_STATE_PROTOCOL_VERSION "0.0.2" #define MONO_NATIVE_STATE_PROTOCOL_VERSION "0.0.3"
typedef enum { typedef enum {
MonoSummaryNone, MonoSummaryNone,

Binary file not shown.

View File

@ -1 +1 @@
809a89236f060daa5b3d86a47711dad28241a998 8527d85061d77a02a5cc5f2bf79e1792eb924620

Binary file not shown.

View File

@ -1 +1 @@
e11216564c47fb88c2196f3c7181e53fec04cca8 4cece26a586a9ca67f8054f740e6079db1bec128

Binary file not shown.

View File

@ -1 +1 @@
c03a63745725aeb6625f978f49ab364a21799c0c bb20b832aaa89eb33068c0a8d05d8f70febc4998

View File

@ -6,9 +6,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: mono 5.20.0.212\n" "Project-Id-Version: mono 5.20.0.216\n"
"Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n" "Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n"
"POT-Creation-Date: 2019-02-15 08:08+0000\n" "POT-Creation-Date: 2019-02-16 08:06+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

Binary file not shown.

View File

@ -1 +1 @@
40da4ad61e5c677486b69139e0c5a64eee7f5aa6 8e5540dd0371f910cac2d287dd1784cde21fea26