-/*
- * attach.c: Support for attaching to the runtime from other processes.
+/**
+ * \file
+ * Support for attaching to the runtime from other processes.
*
* Author:
* Zoltan Varga (vargaz@gmail.com)
#include <netdb.h>
#include <unistd.h>
-#include <mono/metadata/assembly.h>
+#include <mono/metadata/assembly-internals.h>
#include <mono/metadata/metadata.h>
#include <mono/metadata/class-internals.h>
#include <mono/metadata/object-internals.h>
gpointer pa [1];
MonoImageOpenStatus open_status;
- agent_assembly = mono_assembly_open (agent, &open_status);
+ agent_assembly = mono_assembly_open_predicate (agent, FALSE, FALSE, NULL, NULL, &open_status);
if (!agent_assembly) {
fprintf (stderr, "Cannot open agent assembly '%s': %s.\n", agent, mono_image_strerror (open_status));
g_free (agent);
}
if (args) {
- mono_array_set (main_args, MonoString*, 0, mono_string_new (domain, args));
+ MonoString *args_str = mono_string_new_checked (domain, args, &error);
+ if (!is_ok (&error)) {
+ g_print ("Could not allocate main method arg string due to %s\n", mono_error_get_message (&error));
+ mono_error_cleanup (&error);
+ g_free (agent);
+ return 1;
+ }
+ mono_array_set (main_args, MonoString*, 0, args_str);
}
MonoInternalThread *internal;
internal = mono_thread_internal_current ();
- mono_thread_set_name_internal (internal, mono_string_new (mono_domain_get (), "Attach receiver"), TRUE, FALSE, &error);
+ MonoString *attach_str = mono_string_new_checked (mono_domain_get (), "Attach receiver", &error);
+ mono_error_assert_ok (&error);
+ mono_thread_set_name_internal (internal, attach_str, TRUE, FALSE, &error);
mono_error_assert_ok (&error);
/* Ask the runtime to not abort this thread */
//internal->flags |= MONO_THREAD_FLAG_DONT_MANAGE;