Ejemplo n.º 1
0
static void
SIG_HANDLER_SIGNATURE (sigquit_signal_handler)
{
	gboolean res;

	GET_CONTEXT;

	/* We use this signal to start the attach agent too */
	res = mono_attach_start ();
	if (res)
		return;

	if (mono_thread_info_new_interrupt_enabled ()) {
		mono_threads_request_thread_dump ();
	} else {
		printf ("Full thread dump:\n");

		mono_threads_request_thread_dump ();

		/*
		 * print_thread_dump () skips the current thread, since sending a signal
		 * to it would invoke the signal handler below the sigquit signal handler,
		 * and signal handlers don't create an lmf, so the stack walk could not
		 * be performed.
		 */
		mono_print_thread_dump (ctx);
	}

	mono_chain_signal (SIG_HANDLER_PARAMS);
}
Ejemplo n.º 2
0
MONO_SIG_HANDLER_FUNC (static, sigquit_signal_handler)
{
	gboolean res;

	/* We use this signal to start the attach agent too */
	res = mono_attach_start ();
	if (res)
		return;

	mono_threads_request_thread_dump ();

	mono_chain_signal (MONO_SIG_HANDLER_PARAMS);
}