X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fdebug-helpers.c;h=449895a56106a2a0e3efbbc97230cd3bfe938712;hb=6adffa4edd217ccde7147db2b49424b8c9e30943;hp=f8cbb0744a2d5c19af1ba8eb8cb70219e71b372c;hpb=8c14f0d410a7f2a22852b347a6f55e3162d618e0;p=mono.git diff --git a/mono/metadata/debug-helpers.c b/mono/metadata/debug-helpers.c index f8cbb0744a2..449895a5610 100644 --- a/mono/metadata/debug-helpers.c +++ b/mono/metadata/debug-helpers.c @@ -918,6 +918,7 @@ print_name_space (MonoClass *klass) void mono_object_describe (MonoObject *obj) { + MonoError error; MonoClass* klass; const char* sep; if (!obj) { @@ -926,14 +927,19 @@ mono_object_describe (MonoObject *obj) } klass = mono_object_class (obj); if (klass == mono_defaults.string_class) { - char *utf8 = mono_string_to_utf8 ((MonoString*)obj); - if (strlen (utf8) > 60) { + char *utf8 = mono_string_to_utf8_checked ((MonoString*)obj, &error); + mono_error_cleanup (&error); /* FIXME don't swallow the error */ + if (utf8 && strlen (utf8) > 60) { utf8 [57] = '.'; utf8 [58] = '.'; utf8 [59] = '.'; utf8 [60] = 0; } - g_print ("String at %p, length: %d, '%s'\n", obj, mono_string_length ((MonoString*) obj), utf8); + if (utf8) { + g_print ("String at %p, length: %d, '%s'\n", obj, mono_string_length ((MonoString*) obj), utf8); + } else { + g_print ("String at %p, length: %d, unable to decode UTF16\n", obj, mono_string_length ((MonoString*) obj)); + } g_free (utf8); } else if (klass->rank) { MonoArray *array = (MonoArray*)obj;