Author: toshok
Date: 2005-03-02 23:14:20 -0500 (Wed, 02 Mar 2005)
New Revision: 41378
Removed:
trunk/debugger/backends/server/Debugger.idl
trunk/debugger/backends/server/debugger-srv.c
trunk/debugger/backends/server/debugger-srv.h
trunk/debugger/backends/server/remote-client.c
trunk/debugger/backends/server/remote-server.c
Modified:
trunk/debugger/ChangeLog
trunk/debugger/backends/server/Makefile.am
trunk/debugger/backends/server/library.c
trunk/debugger/configure.in
Log:
2005-03-02 Chris Toshok <[EMAIL PROTECTED]>
* backends/server/Makefile.am: clean this up substantially, since
we're no longer building the orbit stuff.
* backends/server/library.c (mono_debugger_server_initialize):
remove the MARTIN_HACKS stuff.
* configure.in: remove the MARTIN_HACKS orbit stuff.
* backends/server/remote-server.c,
* backends/server/debugger-srv.c,
backends/server/debugger-srv.h, backends/server/remote-client.c,
backends/server/Debugger.idl: nuke.
Modified: trunk/debugger/ChangeLog
===================================================================
--- trunk/debugger/ChangeLog 2005-03-02 22:29:16 UTC (rev 41377)
+++ trunk/debugger/ChangeLog 2005-03-03 04:14:20 UTC (rev 41378)
@@ -1,3 +1,17 @@
+2005-03-02 Chris Toshok <[EMAIL PROTECTED]>
+
+ * backends/server/Makefile.am: clean this up substantially, since
+ we're no longer building the orbit stuff.
+
+ * backends/server/library.c (mono_debugger_server_initialize):
+ remove the MARTIN_HACKS stuff.
+
+ * configure.in: remove the MARTIN_HACKS orbit stuff.
+
+ * backends/server/remote-server.c, backends/server/debugger-srv.c,
+ backends/server/debugger-srv.h, backends/server/remote-client.c,
+ backends/server/Debugger.idl: nuke.
+
2005-02-25 Chris Toshok <[EMAIL PROTECTED]>
* interfaces/ITargetObject.cs (ITargetObject.TypeInfo): rename
Deleted: trunk/debugger/backends/server/Debugger.idl
===================================================================
--- trunk/debugger/backends/server/Debugger.idl 2005-03-02 22:29:16 UTC (rev
41377)
+++ trunk/debugger/backends/server/Debugger.idl 2005-03-03 04:14:20 UTC (rev
41378)
@@ -1,124 +0,0 @@
-module Debugger
-{
- enum ErrorCondition {
- Unknown,
- NoInferior,
- AlreadyHaveInferior,
- Fork,
- NotStopped,
- AlreadyStopped,
- RecursiveCall,
- NoSuchBreakpoint,
- UnknownRegister,
- MemoryAccess,
- NotImplemented
- };
-
- typedef long long Address;
-
- exception Error {
- ErrorCondition condition;
- };
-
- exception ForkFailed {
- string message;
- };
-
- struct Register {
- long Index;
- Address Value;
- };
-
- struct StackFrame {
- Address Frame;
- Address FrameAddress;
- };
-
- struct TargetInfo {
- short IntSize;
- short LongSize;
- short AddressSize;
- boolean IsBigEndian;
- };
-
- typedef sequence<string> stringList;
- typedef sequence<octet> Blob;
- typedef sequence<Register> RegisterList;
- typedef sequence<StackFrame> StackFrameList;
-
- interface Thread
- {
- long DispatchEvent (in long status, out Address arg,
- out Address data1, out Address data2);
-
- Address GetFrame ()
- raises (Error);
-
- boolean CurrentInsnIsBreakpoint ()
- raises (Error);
-
- void Step ()
- raises (Error);
-
- void Continue ()
- raises (Error);
-
- void Detach ()
- raises (Error);
-
- long PeekWord (in Address address)
- raises (Error);
-
- Blob ReadMemory (in Address address, in long size)
- raises (Error);
-
- void WriteMemory (in Address address, in Blob data)
- raises (Error);
-
- long InsertBreakpoint (in Address address)
- raises (Error);
-
- long InsertHardwareBreakpoint (in long index, in Address
address)
- raises (Error);
-
- void RemoveBreakpoint (in long index)
- raises (Error);
-
- void EnableBreakpoint (in long index)
- raises (Error);
-
- void DisableBreakpoint (in long index)
- raises (Error);
-
- void GetRegisters (inout RegisterList registers)
- raises (Error);
-
- void SetRegisters (inout RegisterList registers)
- raises (Error);
-
- Address GetReturnAddress ()
- raises (Error);
-
- StackFrameList GetBacktrace (in long MaxFrames, in Address
StopAddress)
- raises (Error);
-
- void Stop ()
- raises (Error);
-
- long StopAndWait ()
- raises (Error);
- };
-
- interface Manager
- {
- Thread Spawn (in string workingDirectory,
- in stringList argv, in stringList envp,
- out long pid)
- raises (ForkFailed);
-
- Thread Attach (in long pid, out long tid)
- raises (Error);
-
- TargetInfo GetTargetInfo ();
- };
-};
Modified: trunk/debugger/backends/server/Makefile.am
===================================================================
--- trunk/debugger/backends/server/Makefile.am 2005-03-02 22:29:16 UTC (rev
41377)
+++ trunk/debugger/backends/server/Makefile.am 2005-03-03 04:14:20 UTC (rev
41378)
@@ -12,48 +12,21 @@
i386-ptrace.c \
i386-ptrace.h
-if MARTIN_HACKS
-martin_hack_srclist = \
- remote-client.c \
- Debugger-stubs.c \
- Debugger-common.c
-
-martin_hack_progs = debugger-remote-server
-
-Debugger-stubs.c Debugger-common.c Debugger-skels.c Debugger.h : Debugger.idl
- orbit-idl-2 $(srcdir)/Debugger.idl
-else
-martin_hack_srclist =
-martin_hack_progs =
-endif
-
if PLATFORM_POWERPC
-server_sources = powerpc-darwin.c
+platform_sources = powerpc-darwin.c
else
-server_sources = i386-ptrace.c
+platform_sources = i386-ptrace.c
endif
-libexec_PROGRAMS = \
- $(martin_hack_progs)
-
-debugger_remote_server_SOURCES = \
- remote-server.c \
- debugger-srv.c \
- Debugger-skels.c
-
libmonodebuggerserver_la_SOURCES = \
server.h \
library.c \
- $(martin_hack_srclist) \
- $(server_sources) \
+ $(platform_sources) \
breakpoints.c \
breakpoints.h \
mutex.c \
mutex.h
-debugger_remote_server_LDADD = @SERVER_DEPENDENCIES_LIBS@
libmonodebuggerserver.la
-debugger_remote_server_LDFLAGS = -static
-
libmonodebuggerserver_la_LIBADD = \
@SERVER_DEPENDENCIES_LIBS@ \
../../arch/libmonodebuggerbfdglue.la
Deleted: trunk/debugger/backends/server/debugger-srv.c
===================================================================
--- trunk/debugger/backends/server/debugger-srv.c 2005-03-02 22:29:16 UTC
(rev 41377)
+++ trunk/debugger/backends/server/debugger-srv.c 2005-03-03 04:14:20 UTC
(rev 41378)
@@ -1,373 +0,0 @@
-#include <config.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <debugger-srv.h>
-#include <orbit/poa/orbit-adaptor.h>
-#include <pthread.h>
-
-#if defined(__POWERPC__)
-extern InferiorVTable powerpc_darwin_inferior;
-InferiorVTable *global_vtable = &powerpc_darwin_inferior;
-#else
-extern InferiorVTable i386_ptrace_inferior;
-InferiorVTable *global_vtable = &i386_ptrace_inferior;
-#endif
-
-typedef struct
-{
- POA_Debugger_Thread servant;
- PortableServer_POA poa;
- ServerHandle *handle;
-} impl_POA_Debugger_Thread;
-
-static CORBA_long
-do_dispatch_event (impl_POA_Debugger_Thread *servant, const CORBA_long status,
- Debugger_Address *arg, Debugger_Address *data1,
Debugger_Address *data2,
- CORBA_Environment *ev)
-{
- CHECK_VTABLE_RET (dispatch_event, -1);
-
- return global_vtable->dispatch_event (servant->handle, status, arg,
data1, data2);
-}
-
-static Debugger_Address
-do_get_frame (impl_POA_Debugger_Thread *servant, CORBA_Environment *ev)
-{
- ServerCommandError result;
- guint64 pc;
-
- CHECK_VTABLE_RET (get_pc, -1);
- result = global_vtable->get_pc (servant->handle, &pc);
- CHECK_RESULT_RET (-1);
- return pc;
-}
-
-static CORBA_boolean
-do_current_insn_is_bpt (impl_POA_Debugger_Thread *servant, CORBA_Environment
*ev)
-{
- ServerCommandError result;
- guint32 ret;
-
- CHECK_VTABLE_RET (current_insn_is_bpt, FALSE);
- result = global_vtable->current_insn_is_bpt (servant->handle, &ret);
- CHECK_RESULT_RET (FALSE);
- return ret != 0;
-}
-
-static void
-do_step (impl_POA_Debugger_Thread *servant, CORBA_Environment *ev)
-{
- ServerCommandError result;
-
- CHECK_VTABLE (step);
- result = global_vtable->step (servant->handle);
- CHECK_RESULT;
-}
-
-static void
-do_continue (impl_POA_Debugger_Thread *servant, CORBA_Environment *ev)
-{
- ServerCommandError result;
-
- CHECK_VTABLE (run);
- result = global_vtable->run (servant->handle);
- CHECK_RESULT;
-}
-
-static void
-do_detach (impl_POA_Debugger_Thread *servant, CORBA_Environment *ev)
-{
- ServerCommandError result;
-
- CHECK_VTABLE (detach);
- result = global_vtable->detach (servant->handle);
- CHECK_RESULT;
-}
-
-static CORBA_long
-do_peek_word (impl_POA_Debugger_Thread *servant, const Debugger_Address addr,
- CORBA_Environment *ev)
-{
- ServerCommandError result;
- guint32 word;
-
- CHECK_VTABLE_RET (peek_word, 0);
- result = global_vtable->peek_word (servant->handle, addr, &word);
- CHECK_RESULT_RET (0);
- return word;
-}
-
-static Debugger_Blob *
-do_read_memory (impl_POA_Debugger_Thread *servant, const Debugger_Address
address,
- const CORBA_long size, CORBA_Environment *ev)
-{
- ServerCommandError result;
- Debugger_Blob *blob;
-
- CHECK_VTABLE_RET (read_memory, NULL);
-
- blob = Debugger_Blob__alloc ();
- blob->_length = blob->_maximum = size;
- blob->_buffer = Debugger_Blob_allocbuf (size);
- result = global_vtable->read_memory (servant->handle, address, size,
blob->_buffer);
- if (result != COMMAND_ERROR_NONE)
- CORBA_free (blob);
- CHECK_RESULT_RET (NULL);
- return blob;
-}
-
-static void
-do_write_memory (impl_POA_Debugger_Thread *servant, const Debugger_Address
address,
- const Debugger_Blob *data, CORBA_Environment *ev)
-{
- ServerCommandError result;
-
- CHECK_VTABLE (write_memory);
- result = global_vtable->write_memory (
- servant->handle, address, data->_length, data->_buffer);
- CHECK_RESULT;
-}
-
-static CORBA_long
-do_insert_breakpoint (impl_POA_Debugger_Thread *servant, const
Debugger_Address address,
- CORBA_Environment *ev)
-{
- ServerCommandError result;
- guint32 breakpoint;
-
- CHECK_VTABLE_RET (insert_breakpoint, -1);
- result = global_vtable->insert_breakpoint (servant->handle, address,
&breakpoint);
- CHECK_RESULT_RET (-1);
- return breakpoint;
-}
-
-static CORBA_long
-do_insert_hw_breakpoint (impl_POA_Debugger_Thread *servant, const CORBA_long
index,
- const Debugger_Address address, CORBA_Environment *ev)
-{
- ServerCommandError result;
- guint32 breakpoint;
-
- CHECK_VTABLE_RET (insert_hw_breakpoint, -1);
- result = global_vtable->insert_hw_breakpoint (
- servant->handle, index, address, &breakpoint);
- CHECK_RESULT_RET (-1);
- return breakpoint;
-}
-
-static void
-do_remove_breakpoint (impl_POA_Debugger_Thread *servant, const CORBA_long
index,
- CORBA_Environment * ev)
-{
- ServerCommandError result;
-
- CHECK_VTABLE (remove_breakpoint);
- result = global_vtable->remove_breakpoint (servant->handle, index);
- CHECK_RESULT;
-}
-
-static void
-do_enable_breakpoint (impl_POA_Debugger_Thread *servant, const CORBA_long
index,
- CORBA_Environment * ev)
-{
- ServerCommandError result;
-
- CHECK_VTABLE (enable_breakpoint);
- result = global_vtable->enable_breakpoint (servant->handle, index);
- CHECK_RESULT;
-}
-
-static void
-do_disable_breakpoint (impl_POA_Debugger_Thread *servant, const CORBA_long
index,
- CORBA_Environment * ev)
-{
- ServerCommandError result;
-
- CHECK_VTABLE (disable_breakpoint);
- result = global_vtable->disable_breakpoint (servant->handle, index);
- CHECK_RESULT;
-}
-
-static void
-do_get_registers (impl_POA_Debugger_Thread *servant, Debugger_RegisterList
*list,
- CORBA_Environment *ev)
-{
- ServerCommandError result;
- guint32 *registers;
- guint64 *values;
- int i;
-
- CHECK_VTABLE (get_registers);
- registers = g_new0 (guint32, list->_length);
- values = g_new0 (guint64, list->_length);
- for (i = 0; i < list->_length; i++)
- registers [i] = list->_buffer [i].Index;
-
- result = global_vtable->get_registers (
- servant->handle, list->_length, registers, values);
- if (result != COMMAND_ERROR_NONE) {
- g_free (registers);
- g_free (values);
- }
- CHECK_RESULT;
-
- for (i = 0; i < list->_length; i++)
- list->_buffer [i].Value = values [i];
-
- g_free (registers);
- g_free (values);
-}
-
-static void
-do_set_registers (impl_POA_Debugger_Thread *servant, Debugger_RegisterList
*list,
- CORBA_Environment *ev)
-{
- ServerCommandError result;
- guint32 *registers;
- guint64 *values;
- int i;
-
- CHECK_VTABLE (set_registers);
- registers = g_new0 (guint32, list->_length);
- values = g_new0 (guint64, list->_length);
- for (i = 0; i < list->_length; i++) {
- registers [i] = list->_buffer [i].Index;
- values [i] = list->_buffer [i].Value;
- }
-
- result = global_vtable->set_registers (
- servant->handle, list->_length, registers, values);
- g_free (registers);
- g_free (values);
- CHECK_RESULT;
-}
-
-static Debugger_Address
-do_get_return_addr (impl_POA_Debugger_Thread *servant, CORBA_Environment *ev)
-{
- ServerCommandError result;
- guint64 addr;
-
- CHECK_VTABLE_RET (get_ret_address, -1);
- result = global_vtable->get_ret_address (servant->handle, &addr);
- CHECK_RESULT_RET (-1);
- return addr;
-}
-
-static Debugger_StackFrameList *
-do_get_backtrace (impl_POA_Debugger_Thread *servant, const CORBA_long
MaxFrames,
- const Debugger_Address StopAddress, CORBA_Environment * ev)
-{
- ServerCommandError result;
- Debugger_StackFrameList *list;
- StackFrame *frames = NULL;
- guint32 count, i;
-
- CHECK_VTABLE_RET (get_backtrace, NULL);
- result = global_vtable->get_backtrace (
- servant->handle, MaxFrames, StopAddress, &count, &frames);
- CHECK_RESULT_RET (NULL);
-
- list = Debugger_StackFrameList__alloc ();
- list->_length = list->_maximum = count;
- list->_buffer = Debugger_StackFrameList_allocbuf (count);
-
- for (i = 0; i < count; i++) {
- list->_buffer [i].Frame = frames [i].address;
- list->_buffer [i].FrameAddress = frames [i].frame_address;
- }
-
- g_free (frames);
-
- return list;
-}
-
-static void
-do_stop (impl_POA_Debugger_Thread *servant, CORBA_Environment *ev)
-{
- ServerCommandError result;
-
- CHECK_VTABLE (stop);
- result = global_vtable->stop (servant->handle);
- CHECK_RESULT;
-}
-
-static CORBA_long_long
-do_stop_and_wait (impl_POA_Debugger_Thread *servant, CORBA_Environment *ev)
-{
- ServerCommandError result;
- CORBA_long status;
-
- CHECK_VTABLE_RET (stop_and_wait, -1);
- result = global_vtable->stop_and_wait (servant->handle, &status);
- CHECK_RESULT_RET (-1);
- return status;
-}
-
-static void
-impl_Debugger_Thread__fini (impl_POA_Debugger_Thread *servant,
CORBA_Environment *ev)
-{
- CORBA_Object_release ((CORBA_Object) servant->poa, ev);
-
- global_vtable->finalize (servant->handle);
-
- POA_Debugger_Thread__fini ((PortableServer_Servant) servant, ev);
- g_free (servant);
-}
-
-PortableServer_ServantBase__epv debugger_thread_base_epv = {
- NULL,
- (gpointer) &impl_Debugger_Thread__fini,
- NULL
-};
-
-POA_Debugger_Thread__epv debugger_thread_epv = {
- NULL,
- (gpointer) &do_dispatch_event,
- (gpointer) &do_get_frame,
- (gpointer) &do_current_insn_is_bpt,
- (gpointer) &do_step,
- (gpointer) &do_continue,
- (gpointer) &do_detach,
- (gpointer) &do_peek_word,
- (gpointer) &do_read_memory,
- (gpointer) &do_write_memory,
- (gpointer) &do_insert_breakpoint,
- (gpointer) &do_insert_hw_breakpoint,
- (gpointer) &do_remove_breakpoint,
- (gpointer) &do_enable_breakpoint,
- (gpointer) &do_disable_breakpoint,
- (gpointer) &do_get_registers,
- (gpointer) &do_set_registers,
- (gpointer) &do_get_return_addr,
- (gpointer) &do_get_backtrace,
- (gpointer) &do_stop,
- (gpointer) &do_stop_and_wait
-};
-
-POA_Debugger_Thread__vepv poa_debugger_thread_vepv = {
- &debugger_thread_base_epv, &debugger_thread_epv
-};
-
-Debugger_Thread
-debugger_srv_start_object (ServerHandle *handle, CORBA_Environment *ev)
-{
- impl_POA_Debugger_Thread *newservant;
- PortableServer_ObjectId *objid;
-
- newservant = g_new0 (impl_POA_Debugger_Thread, 1);
- newservant->servant.vepv = &poa_debugger_thread_vepv;
- newservant->poa = (PortableServer_POA) CORBA_Object_duplicate (
- (CORBA_Object) the_poa, ev);
- POA_Debugger_Thread__init ((PortableServer_Servant) newservant, ev);
-
- newservant->handle = handle;
-
- objid = PortableServer_POA_activate_object (the_poa, newservant, ev);
- CORBA_free (objid);
-
- return PortableServer_POA_servant_to_reference (the_poa, newservant,
ev);
-}
-
Deleted: trunk/debugger/backends/server/debugger-srv.h
===================================================================
--- trunk/debugger/backends/server/debugger-srv.h 2005-03-02 22:29:16 UTC
(rev 41377)
+++ trunk/debugger/backends/server/debugger-srv.h 2005-03-03 04:14:20 UTC
(rev 41378)
@@ -1,50 +0,0 @@
-#include <server.h>
-#include <Debugger.h>
-
-G_BEGIN_DECLS
-
-extern CORBA_ORB orb;
-extern PortableServer_POA rootpoa;
-extern PortableServer_POA the_poa;
-extern Debugger_Manager debugger_manager;
-
-extern InferiorVTable *global_vtable;
-
-#define CHECK_VTABLE(name) \
- if (!global_vtable->name) { \
- CORBA_exception_set_system (ev, ex_CORBA_NO_IMPLEMENT,
CORBA_COMPLETED_NO); \
- return; \
- }
-
-#define CHECK_RESULT \
- if (result != COMMAND_ERROR_NONE) { \
- Debugger_Error *ex = Debugger_Error__alloc (); \
- ex->condition = result; \
- CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
ex_Debugger_Error, ex); \
- return; \
- }
-
-#define CHECK_VTABLE_RET(name,ret) \
- if (!global_vtable->name) { \
- CORBA_exception_set_system (ev, ex_CORBA_NO_IMPLEMENT,
CORBA_COMPLETED_NO); \
- return ret; \
- }
-
-#define CHECK_RESULT_RET(ret) \
- if (result != COMMAND_ERROR_NONE) { \
- Debugger_Error *ex = Debugger_Error__alloc (); \
- ex->condition = result; \
- CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
ex_Debugger_Error, ex); \
- return ret; \
- }
-
-Debugger_Thread
-debugger_srv_start_object (ServerHandle *handle, CORBA_Environment *ev);
-
-void
-debugger_srv_finish_object (CORBA_Environment *ev);
-
-void
-debugger_srv_finish_poa (CORBA_Environment *ev);
-
-G_END_DECLS
Modified: trunk/debugger/backends/server/library.c
===================================================================
--- trunk/debugger/backends/server/library.c 2005-03-02 22:29:16 UTC (rev
41377)
+++ trunk/debugger/backends/server/library.c 2005-03-03 04:14:20 UTC (rev
41378)
@@ -19,23 +19,11 @@
extern InferiorVTable i386_ptrace_inferior;
static InferiorVTable *global_vtable = &i386_ptrace_inferior;
#endif
-#if MARTIN_HACKS
-extern InferiorVTable remote_client_inferior;
-#endif
ServerHandle *
mono_debugger_server_initialize (BreakpointManager *breakpoint_manager)
{
-#if MARTIN_HACKS
- const gchar *remote_var = g_getenv ("MONO_DEBUGGER_REMOTE");
-
- if (remote_var)
- global_vtable = &remote_client_inferior;
-
return global_vtable->initialize (breakpoint_manager);
-#else
- return global_vtable->initialize (breakpoint_manager);
-#endif
}
guint64
Deleted: trunk/debugger/backends/server/remote-client.c
===================================================================
--- trunk/debugger/backends/server/remote-client.c 2005-03-02 22:29:16 UTC
(rev 41377)
+++ trunk/debugger/backends/server/remote-client.c 2005-03-03 04:14:20 UTC
(rev 41378)
@@ -1,718 +0,0 @@
-#include <config.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <server.h>
-#include <signal.h>
-#include <unistd.h>
-#include <sys/time.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <Debugger.h>
-
-CORBA_ORB orb;
-Debugger_Manager debugger_manager;
-static int remote_pid = -1, remote_stdin, remote_stdout;
-
-struct InferiorHandle {
- Debugger_Thread debugger_thread;
-};
-
-#define CHECK_RESULT \
- if (ev._major == CORBA_SYSTEM_EXCEPTION) { \
- CORBA_exception_free (&ev); \
- return COMMAND_ERROR_IO; \
- } else if (ev._major) { \
- Debugger_Error *ex = CORBA_exception_value (&ev); \
- ServerCommandError result = ex->condition; \
- CORBA_exception_free (&ev); \
- return result; \
- }
-
-static int
-setup_corba (void)
-{
- const char *argv[3] = { "remoting-client", "--ORBIIOPIPv4=1", NULL };
- char *ssh_argv[6];
- int ssh_argc = 5, argc = 2;
- CORBA_Environment ev;
- gchar *remote_var, *port_pos;
- int len, port = 0;
- GError *error = NULL;
- gboolean ok;
- gchar *ior;
-
- remote_var = g_strdup (g_getenv ("MONO_DEBUGGER_REMOTE"));
- g_assert (remote_var);
-
- port_pos = strchr (remote_var, ':');
- if (port_pos) {
- *port_pos++ = 0;
- port = atoi (port_pos);
- }
- if (!port)
- port = 40857;
-
- ssh_argv [0] = "ssh";
- ssh_argv [1] = "-L";
- ssh_argv [2] = g_strdup_printf ("%d:127.0.0.1:%d", port, port);
- ssh_argv [3] = remote_var;
- ssh_argv [4] = "/Users/martin/INSTALL/libexec/debugger-remote-server";
- ssh_argv [5] = NULL;
-
- ok = g_spawn_async_with_pipes (NULL, ssh_argv, NULL,
G_SPAWN_SEARCH_PATH,
- NULL, NULL, &remote_pid, &remote_stdin,
- &remote_stdout, NULL, &error);
-
- if (!ok) {
- g_warning (G_STRLOC ": %s", error->message);
- return -1;
- }
-
- if (read (remote_stdout, &len, 4) != 4) {
- g_warning (G_STRLOC ": read failed: %s", g_strerror (errno));
- return -1;
- }
-
- len = ntohl (len);
- if (len != MONO_DEBUGGER_REMOTE_MAGIC) {
- g_warning (G_STRLOC ": Received unknown magic %x", len);
- return -1;
- }
-
- if (read (remote_stdout, &len, 4) != 4) {
- g_warning (G_STRLOC ": read failed: %s", g_strerror (errno));
- return -1;
- }
-
- len = ntohl (len);
- if (len != MONO_DEBUGGER_REMOTE_VERSION) {
- g_warning (G_STRLOC ": Received unknown magic %x", len);
- return -1;
- }
-
- len = htonl (port);
- if (write (remote_stdin, &len, 4) != 4) {
- g_warning (G_STRLOC ": write failed: %s", g_strerror (errno));
- return -1;
- }
-
- if (read (remote_stdout, &len, 4) != 4) {
- g_warning (G_STRLOC ": read failed: %s", g_strerror (errno));
- return -1;
- }
-
- len = ntohl (len);
-
- ior = g_malloc0 (len + 1);
- if (read (remote_stdout, ior, len) != len) {
- g_warning (G_STRLOC ": recv failed: %s", g_strerror (errno));
- return -1;
- }
-
- CORBA_exception_init (&ev);
- orb = CORBA_ORB_init (&argc, (char **) argv, "orbit-local-orb", &ev);
-
- debugger_manager = CORBA_ORB_string_to_object (orb, ior, &ev);
- if (ev._major) {
- g_warning (G_STRLOC ": Can't bind to object `%s'", ior);
- return -1;
- }
-
- CORBA_exception_free (&ev);
- return 0;
-}
-
-static ServerHandle *
-remote_server_initialize (BreakpointManager *breakpoint_manager)
-{
- ServerHandle *handle = g_new0 (ServerHandle, 1);
-
- handle->bpm = breakpoint_manager;
-
- if (setup_corba ())
- return NULL;
-
- return handle;
-}
-
-static Debugger_stringList *
-allocate_stringlist (const gchar **array)
-{
- Debugger_stringList *list;
- const gchar **ptr;
- int i, count;
-
- list = Debugger_stringList__alloc ();
- if (!array)
- return list;
-
- for (ptr = array, count = 0; *ptr; ptr++, count++)
- ;
-
- list->_buffer = Debugger_stringList_allocbuf (count);
- list->_maximum = list->_length = count;
-
- for (i = 0; i < count; i++)
- list->_buffer [i] = (CORBA_string) array [i];
-
- return list;
-}
-
-static ServerCommandError
-remote_server_spawn (ServerHandle *handle, const gchar *working_directory,
- const gchar **argv, const gchar **envp, gint *child_pid,
- ChildOutputFunc stdout_handler, ChildOutputFunc
stderr_handler,
- gchar **error)
-{
- Debugger_stringList *corba_argv, *corba_envp;
- CORBA_Environment ev;
- CORBA_long pid;
-
- if (handle->inferior)
- return COMMAND_ERROR_ALREADY_HAVE_INFERIOR;
-
- handle->inferior = g_new0 (InferiorHandle, 1);
-
- CORBA_exception_init (&ev);
-
- corba_argv = allocate_stringlist (argv);
- corba_envp = allocate_stringlist (envp);
-
- handle->inferior->debugger_thread = Debugger_Manager_Spawn (
- debugger_manager, working_directory, corba_argv, corba_envp,
&pid, &ev);
-
- if (!ev._major) {
- *child_pid = pid;
- *error = NULL;
- return COMMAND_ERROR_NONE;
- }
-
- *error = g_strdup (CORBA_exception_id (&ev));
- CORBA_exception_free (&ev);
-
- return COMMAND_ERROR_CANNOT_START_TARGET;
-}
-
-static ServerCommandError
-remote_server_attach (ServerHandle *handle, guint32 pid, guint32 *tid)
-{
- CORBA_Environment ev;
-
- if (handle->inferior)
- return COMMAND_ERROR_ALREADY_HAVE_INFERIOR;
-
- handle->inferior = g_new0 (InferiorHandle, 1);
-
- CORBA_exception_init (&ev);
- handle->inferior->debugger_thread = Debugger_Manager_Attach (
- debugger_manager, pid, tid, &ev);
- CHECK_RESULT;
-
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static void
-remote_server_finalize (ServerHandle *handle)
-{
- CORBA_Environment ev;
-
- if (remote_pid > 0)
- kill (remote_pid, SIGKILL);
- remote_pid = -1;
-
- CORBA_exception_init (&ev);
- CORBA_Object_release (handle->inferior->debugger_thread, &ev);
- CORBA_exception_free (&ev);
-
- g_free (handle->inferior);
- g_free (handle);
-}
-
-static ServerStatusMessageType
-remote_server_dispatch_event (ServerHandle *handle, guint32 status, guint64
*arg,
- guint64 *data1, guint64 *data2)
-{
- CORBA_Environment ev;
- CORBA_long ret;
-
- CORBA_exception_init (&ev);
- ret = Debugger_Thread_DispatchEvent (handle->inferior->debugger_thread,
status, arg, data1, data2, &ev);
- g_assert (!ev._major);
- CORBA_exception_free (&ev);
-
- return ret;
-}
-
-static ServerCommandError
-remote_server_get_target_info (guint32 *target_int_size, guint32
*target_long_size,
- guint32 *target_address_size, guint32
*is_bigendian)
-{
- CORBA_Environment ev;
- Debugger_TargetInfo info;
-
- CORBA_exception_init (&ev);
- info = Debugger_Manager_GetTargetInfo (debugger_manager, &ev);
- CHECK_RESULT;
- CORBA_exception_free (&ev);
-
- *target_int_size = info.IntSize;
- *target_long_size = info.LongSize;
- *target_address_size = info.AddressSize;
- *is_bigendian = info.IsBigEndian;
-
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_get_pc (ServerHandle *handle, guint64 *pc)
-{
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- *pc = Debugger_Thread_GetFrame (handle->inferior->debugger_thread, &ev);
- CHECK_RESULT;
-
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_current_insn_is_bpt (ServerHandle *handle, guint32
*is_breakpoint)
-{
- CORBA_Environment ev;
- CORBA_boolean ret;
-
- CORBA_exception_init (&ev);
- ret = Debugger_Thread_CurrentInsnIsBreakpoint
(handle->inferior->debugger_thread, &ev);
- CHECK_RESULT;
-
- *is_breakpoint = ret;
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_step (ServerHandle *handle)
-{
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- Debugger_Thread_Step (handle->inferior->debugger_thread, &ev);
- CHECK_RESULT;
-
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_continue (ServerHandle *handle)
-{
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- Debugger_Thread_Continue (handle->inferior->debugger_thread, &ev);
- CHECK_RESULT;
-
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_detach (ServerHandle *handle)
-{
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- Debugger_Thread_Detach (handle->inferior->debugger_thread, &ev);
- CHECK_RESULT;
-
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_peek_word (ServerHandle *handle, guint64 start, guint32 *word)
-{
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- *word = Debugger_Thread_PeekWord (handle->inferior->debugger_thread,
start, &ev);
- CHECK_RESULT;
-
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_read_memory (ServerHandle *handle, guint64 start, guint32 size,
gpointer data)
-{
- CORBA_Environment ev;
- Debugger_Blob *blob;
-
- CORBA_exception_init (&ev);
- blob = Debugger_Thread_ReadMemory (handle->inferior->debugger_thread,
start, size, &ev);
- CHECK_RESULT;
-
- memcpy (data, blob->_buffer, size);
- CORBA_free (blob);
-
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_write_memory (ServerHandle *handle, guint64 start, guint32 size,
gconstpointer data)
-{
- CORBA_Environment ev;
- Debugger_Blob *blob;
-
- blob = Debugger_Blob__alloc ();
- blob->_length = blob->_maximum = size;
- blob->_buffer = Debugger_Blob_allocbuf (size);
- memcpy (blob->_buffer, data, size);
-
- CORBA_exception_init (&ev);
- Debugger_Thread_WriteMemory (handle->inferior->debugger_thread, start,
blob, &ev);
- CORBA_free (blob);
- CHECK_RESULT;
-
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_call_method (ServerHandle *handle, guint64 method_address,
- guint64 method_argument1, guint64 method_argument2,
- guint64 callback_argument)
-{
- return COMMAND_ERROR_NOT_IMPLEMENTED;
-}
-
-static ServerCommandError
-remote_server_call_method_1 (ServerHandle *handle, guint64 method_address,
- guint64 method_argument, const gchar
*string_argument,
- guint64 callback_argument)
-{
- return COMMAND_ERROR_NOT_IMPLEMENTED;
-}
-
-static ServerCommandError
-remote_server_call_method_invoke (ServerHandle *handle, guint64 invoke_method,
- guint64 method_argument, guint64
object_argument,
- guint32 num_params, guint64 *param_data,
- guint64 callback_argument)
-{
- return COMMAND_ERROR_NOT_IMPLEMENTED;
-}
-
-static ServerCommandError
-remote_server_insert_breakpoint (ServerHandle *handle, guint64 address,
guint32 *breakpoint)
-{
- CORBA_Environment ev;
- CORBA_long ret;
-
- CORBA_exception_init (&ev);
- ret = Debugger_Thread_InsertBreakpoint
(handle->inferior->debugger_thread, address, &ev);
- CHECK_RESULT;
-
- *breakpoint = ret;
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_insert_hw_breakpoint (ServerHandle *handle, guint32 idx, guint64
address,
- guint32 *breakpoint)
-{
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- *breakpoint = Debugger_Thread_InsertHardwareBreakpoint
(handle->inferior->debugger_thread, idx, address, &ev);
- CHECK_RESULT;
-
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_remove_breakpoint (ServerHandle *handle, guint32 breakpoint)
-{
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- Debugger_Thread_RemoveBreakpoint (handle->inferior->debugger_thread,
breakpoint, &ev);
- CHECK_RESULT;
-
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_enable_breakpoint (ServerHandle *handle, guint32 breakpoint)
-{
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- Debugger_Thread_EnableBreakpoint (handle->inferior->debugger_thread,
breakpoint, &ev);
- CHECK_RESULT;
-
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_disable_breakpoint (ServerHandle *handle, guint32 breakpoint)
-{
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- Debugger_Thread_DisableBreakpoint (handle->inferior->debugger_thread,
breakpoint, &ev);
- CHECK_RESULT;
-
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_get_registers (ServerHandle *handle, guint32 count, guint32
*registers,
- guint64 *values)
-{
- CORBA_Environment ev;
- Debugger_RegisterList *list;
- int i;
-
- list = Debugger_RegisterList__alloc ();
- list->_length = list->_maximum = count;
- list->_buffer = Debugger_RegisterList_allocbuf (count);
-
- for (i = 0; i < count; i++)
- list->_buffer [i].Index = registers [i];
-
- CORBA_exception_init (&ev);
- Debugger_Thread_GetRegisters (handle->inferior->debugger_thread, list,
&ev);
- if (ev._major)
- CORBA_free (list);
- CHECK_RESULT;
-
- for (i = 0; i < count; i++)
- values [i] = list->_buffer [i].Value;
-
- CORBA_free (list);
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_set_registers (ServerHandle *handle, guint32 count, guint32
*registers,
- guint64 *values)
-{
- CORBA_Environment ev;
- Debugger_RegisterList *list;
- int i;
-
- list = Debugger_RegisterList__alloc ();
- list->_length = list->_maximum = count;
- list->_buffer = Debugger_RegisterList_allocbuf (count);
-
- for (i = 0; i < count; i++) {
- list->_buffer [i].Index = registers [i];
- list->_buffer [i].Value = values [i];
- }
-
- CORBA_exception_init (&ev);
- Debugger_Thread_GetRegisters (handle->inferior->debugger_thread, list,
&ev);
- CORBA_free (list);
- CHECK_RESULT;
-
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_get_backtrace (ServerHandle *handle, gint32 max_frames, guint64
stop_address,
- guint32 *count, StackFrame **frames_ret)
-{
- CORBA_Environment ev;
- Debugger_StackFrameList *list;
- StackFrame *frames;
- int i;
-
- CORBA_exception_init (&ev);
- list = Debugger_Thread_GetBacktrace (handle->inferior->debugger_thread,
max_frames, stop_address, &ev);
- CHECK_RESULT;
-
- *count = list->_length;
- frames = g_new0 (StackFrame, list->_length);
- for (i = 0; i < list->_length; i++) {
- frames [i].address = list->_buffer [i].Frame;
- frames [i].frame_address = list->_buffer [i].FrameAddress;
- }
- *frames_ret = frames;
-
- CORBA_free (list);
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_get_ret_address (ServerHandle *handle, guint64 *retval)
-{
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- *retval = Debugger_Thread_GetReturnAddress
(handle->inferior->debugger_thread, &ev);
- CHECK_RESULT;
-
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_stop (ServerHandle *handle)
-{
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- Debugger_Thread_Stop (handle->inferior->debugger_thread, &ev);
- CHECK_RESULT;
-
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static ServerCommandError
-remote_server_stop_and_wait (ServerHandle *handle, guint32 *status)
-{
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
- *status = Debugger_Thread_StopAndWait
(handle->inferior->debugger_thread, &ev);
- CHECK_RESULT;
-
- CORBA_exception_free (&ev);
- return COMMAND_ERROR_NONE;
-}
-
-static guint32
-remote_server_global_wait (guint64 *status)
-{
- guint32 result, status_ret, command = htonl (1);
-
- if (write (remote_stdin, &command, 4) != 4) {
- g_warning (G_STRLOC ": Send failed: %s", g_strerror (errno));
- return -1;
- }
-
- if (read (remote_stdout, &result, 4) != 4) {
- g_warning (G_STRLOC ": Recv failed: %s", g_strerror (errno));
- return -1;
- }
-
- if (read (remote_stdout, &status_ret, 4) != 4) {
- g_warning (G_STRLOC ": Recv failed: %s", g_strerror (errno));
- return -1;
- }
-
- result = ntohl (result);
- status_ret = ntohl (status_ret);
-
- *status = status_ret;
- return result;
-}
-
-static void
-remote_server_global_stop (void)
-{
- guint32 result, command = htonl (2);
-
- if (write (remote_stdout, &command, 4) != 4) {
- g_warning (G_STRLOC ": Send failed: %s", g_strerror (errno));
- return -1;
- }
-}
-
-static ServerCommandError
-remote_server_set_signal (ServerHandle *handle, guint32 sig, guint32 send_it)
-{
- return COMMAND_ERROR_NOT_IMPLEMENTED;
-}
-
-static ServerCommandError
-remote_server_kill (ServerHandle *handle)
-{
- return COMMAND_ERROR_NOT_IMPLEMENTED;
-}
-
-static ServerCommandError
-remote_server_get_signal_info (ServerHandle *handle, SignalInfo *sinfo)
-{
- sinfo->sigkill = SIGKILL;
- sinfo->sigstop = SIGSTOP;
- sinfo->sigint = SIGINT;
- sinfo->sigchld = SIGCHLD;
- sinfo->sigprof = SIGPROF;
-
-#if defined(__POWERPC__)
- sinfo->sigpwr = 0;
- sinfo->sigxcpu = 0;
-#else
- sinfo->sigpwr = SIGPWR;
- sinfo->sigxcpu = SIGXCPU;
-#endif
-
-#if 0
- sinfo->thread_abort = 34;
- sinfo->thread_restart = 33;
- sinfo->thread_debug = 32;
- sinfo->mono_thread_debug = -1;
-#else
- sinfo->thread_abort = 33;
- sinfo->thread_restart = 32;
- sinfo->thread_debug = 34;
- sinfo->mono_thread_debug = 34;
-#endif
-
- return COMMAND_ERROR_NONE;
- return COMMAND_ERROR_NOT_IMPLEMENTED;
-}
-
-InferiorVTable remote_client_inferior = {
- remote_server_initialize,
- remote_server_spawn,
- remote_server_attach,
- remote_server_detach,
- remote_server_finalize,
- remote_server_global_wait,
- remote_server_stop_and_wait,
- remote_server_dispatch_event,
- remote_server_get_target_info,
- remote_server_continue,
- remote_server_step,
- remote_server_get_pc,
- remote_server_current_insn_is_bpt,
- remote_server_peek_word,
- remote_server_read_memory,
- remote_server_write_memory,
- remote_server_call_method,
- remote_server_call_method_1,
- remote_server_call_method_invoke,
- remote_server_insert_breakpoint,
- remote_server_insert_hw_breakpoint,
- remote_server_remove_breakpoint,
- remote_server_enable_breakpoint,
- remote_server_disable_breakpoint,
- NULL,
- remote_server_get_registers,
- remote_server_set_registers,
- remote_server_get_backtrace,
- remote_server_get_ret_address,
- remote_server_stop,
- remote_server_global_stop,
- remote_server_set_signal,
- remote_server_kill,
- remote_server_get_signal_info
-};
Deleted: trunk/debugger/backends/server/remote-server.c
===================================================================
--- trunk/debugger/backends/server/remote-server.c 2005-03-02 22:29:16 UTC
(rev 41377)
+++ trunk/debugger/backends/server/remote-server.c 2005-03-03 04:14:20 UTC
(rev 41378)
@@ -1,340 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <signal.h>
-#include <string.h>
-#include <debugger-srv.h>
-#include <sys/wait.h>
-#include <netinet/in.h>
-#include <pthread.h>
-
-CORBA_ORB orb;
-PortableServer_POA rootpoa;
-PortableServer_POA the_poa;
-Debugger_Manager debugger_manager;
-PortableServer_ObjectId *the_objid;
-static BreakpointManager *bpm;
-static PortableServer_POAManager rootpoa_mgr;
-static const char *the_ior;
-static int the_port;
-
-static GMutex *mutex;
-static GCond *cond;
-static GCond *ready_cond;
-static GMutex *ready_mutex;
-
-typedef struct
-{
- POA_Debugger_Manager servant;
- PortableServer_POA poa;
-} impl_POA_Debugger_Manager;
-
-static gchar **
-copy_stringlist (const Debugger_stringList *list)
-{
- gchar **result = g_new0 (gchar *, list->_length + 1);
- int i;
-
- for (i = 0; i < list->_length; i++)
- result [i] = list->_buffer [i];
-
- return result;
-}
-
-static Debugger_Thread
-do_spawn (impl_POA_Debugger_Manager *servant, const CORBA_char *working_dir,
- const Debugger_stringList *corba_argv, const Debugger_stringList
*corba_envp,
- CORBA_long *child_pid, CORBA_Environment *ev)
-{
- const gchar **argv, **envp;
- ServerCommandError result;
- Debugger_ForkFailed *ex;
- ServerHandle *handle;
- gchar *error;
-
- CHECK_VTABLE_RET (spawn, CORBA_OBJECT_NIL);
-
- argv = (const gchar **) copy_stringlist (corba_argv);
- envp = (const gchar **) copy_stringlist (corba_envp);
-
- handle = global_vtable->initialize (bpm);
-
- result = global_vtable->spawn (
- handle, working_dir, argv, envp, child_pid, NULL, NULL, &error);
-
- if (result != COMMAND_ERROR_NONE) {
- ex = Debugger_ForkFailed__alloc ();
- ex->message = error;
-
- CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
ex_Debugger_ForkFailed, ex);
- return CORBA_OBJECT_NIL;
- }
-
- return debugger_srv_start_object (handle, ev);
-}
-
-static Debugger_Thread
-do_attach (impl_POA_Debugger_Manager *servant, const CORBA_long_long pid,
- CORBA_long *tid, CORBA_Environment *ev)
-{
- ServerCommandError result;
- ServerHandle *handle;
-
- CHECK_VTABLE_RET (attach, CORBA_OBJECT_NIL);
-
- handle = global_vtable->initialize (bpm);
-
- result = global_vtable->attach (handle, pid, tid);
- CHECK_RESULT_RET (CORBA_OBJECT_NIL);
-
- return debugger_srv_start_object (handle, ev);
-}
-
-static Debugger_TargetInfo
-do_get_target_info (impl_POA_Debugger_Manager *servant, CORBA_Environment *ev)
-{
- ServerCommandError result;
- guint32 int_size, long_size, address_size, is_bigendian;
- Debugger_TargetInfo info;
-
- CHECK_VTABLE_RET (get_target_info, info);
- result = global_vtable->get_target_info (
- &int_size, &long_size, &address_size, &is_bigendian);
- CHECK_RESULT_RET (info);
-
- info.IntSize = int_size;
- info.LongSize = long_size;
- info.AddressSize = address_size;
- info.IsBigEndian = is_bigendian != 0;
- return info;
-}
-
-PortableServer_ServantBase__epv base_epv = {
- NULL,
- NULL,
- NULL
-};
-
-POA_Debugger_Manager__epv debugger_manager_epv = {
- NULL,
- (gpointer) &do_spawn,
- (gpointer) &do_attach,
- (gpointer) &do_get_target_info
-};
-POA_Debugger_Manager__vepv poa_debugger_manager_vepv = { &base_epv,
&debugger_manager_epv };
-POA_Debugger_Manager poa_debugger_manager_servant = { NULL,
&poa_debugger_manager_vepv };
-
-static void
-debugger_manager_srv_start_poa (CORBA_Environment *ev)
-{
- const static int MAX_POLICIES = 1;
- CORBA_PolicyList *poa_policies;
-
- poa_policies = CORBA_PolicyList__alloc ();
- poa_policies->_maximum = MAX_POLICIES;
- poa_policies->_length = MAX_POLICIES;
- poa_policies->_buffer = CORBA_PolicyList_allocbuf (MAX_POLICIES);
- CORBA_sequence_set_release (poa_policies, CORBA_TRUE);
-
- poa_policies->_buffer[0] = (CORBA_Policy)
- PortableServer_POA_create_thread_policy (
- rootpoa,
- PortableServer_SINGLE_THREAD_MODEL,
- ev);
-
- the_poa = PortableServer_POA_create_POA (rootpoa,
- "Debugger POA",
- rootpoa_mgr,
- poa_policies,
- ev);
- g_assert (!ev->_major);
-
- CORBA_Policy_destroy (poa_policies->_buffer[0], ev);
- g_assert (!ev->_major);
- CORBA_free (poa_policies);
-}
-
-static void
-lock_bpm (void)
-{ }
-
-static void
-unlock_bpm (void)
-{ }
-
-static void
-debugger_manager_srv_start_object (CORBA_Environment *ev)
-{
- bpm = mono_debugger_breakpoint_manager_new (lock_bpm, unlock_bpm);
-
- POA_Debugger_Manager__init (&poa_debugger_manager_servant, ev);
- g_assert (!ev->_major);
-
- the_objid = PortableServer_POA_activate_object (
- the_poa, &poa_debugger_manager_servant, ev);
- g_assert (!ev->_major);
-
- debugger_manager = PortableServer_POA_servant_to_reference (
- the_poa, &poa_debugger_manager_servant, ev);
- g_assert (!ev->_major);
-}
-
-static void
-debugger_manager_srv_finish_object (CORBA_Environment *ev)
-{
- CORBA_Object_release (debugger_manager, ev);
- g_assert (!ev->_major);
-
- debugger_manager = 0;
- PortableServer_POA_deactivate_object (the_poa, the_objid, ev);
- g_assert (!ev->_major);
-
- CORBA_free (the_objid);
- the_objid = 0;
- POA_Debugger_Manager__fini (&poa_debugger_manager_servant, ev);
- g_assert (!ev->_major);
-}
-
-int
-mono_thread_get_abort_signal (void)
-{
- return -1;
-}
-
-static gpointer
-debugger_thread (gpointer data)
-{
- CORBA_Environment ev;
- char *argv[6] = { "remoting-client", "--ORBIIOPIPv4=1",
"--ORBIIOPUNIX=0",
- "--ORBIIOPIPName=127.0.0.1", "--ORBIIOPIPSock=40860",
- NULL };
- int argc = 5;
-
- argv [4] = g_strdup_printf ("--ORBIIOPIPSock=%d", the_port);
-
- CORBA_exception_init (&ev);
- orb = CORBA_ORB_init (&argc, argv, "orbit-local-mt-orb", &ev);
- g_assert (!ev._major);
-
- rootpoa = (PortableServer_POA)
- CORBA_ORB_resolve_initial_references (orb, "RootPOA", &ev);
- g_assert (!ev._major);
-
- rootpoa_mgr = PortableServer_POA__get_the_POAManager (rootpoa, &ev);
- g_assert (!ev._major);
-
- PortableServer_POAManager_activate (rootpoa_mgr, &ev);
-
- debugger_manager_srv_start_poa (&ev);
- g_assert (!ev._major);
-
- debugger_manager_srv_start_object (&ev);
- the_ior = CORBA_ORB_object_to_string (orb, debugger_manager, &ev);
- g_assert (!ev._major);
-
- g_mutex_lock (ready_mutex);
- g_cond_signal (ready_cond);
- g_mutex_unlock (ready_mutex);
-
- CORBA_ORB_run (orb, &ev);
-
- debugger_manager_srv_finish_object (&ev);
-
- CORBA_Object_release ((CORBA_Object) rootpoa, &ev);
- g_assert (!ev._major);
- rootpoa = 0;
-
- CORBA_ORB_shutdown (orb, FALSE, &ev);
- g_assert (!ev._major);
-
- CORBA_exception_free (&ev);
- return NULL;
-}
-
-static gpointer
-wait_thread (gpointer data)
-{
- for (;;) {
- guint32 ret, status;
-
- g_cond_wait (cond, mutex);
-
- if (!global_vtable || !global_vtable->global_wait)
- continue;
-
- ret = global_vtable->global_wait (&status);
-
- ret = htonl (ret);
- status = htonl (status);
-
- g_assert (write (1, &ret, 4) == 4);
- g_assert (write (1, &status, 4) == 4);
- }
-}
-
-static void
-write_string (const gchar *string)
-{
- guint32 len = htonl (strlen (string));
- g_assert (write (1, &len, 4) == 4);
- g_assert (write (1, string, strlen (string)) == strlen (string));
-}
-
-int
-main (int argc, char **argv)
-{
- int magic;
-
- g_thread_init (NULL);
-
- magic = htonl (MONO_DEBUGGER_REMOTE_MAGIC);
- g_assert (write (1, &magic, 4) == 4);
- magic = htonl (MONO_DEBUGGER_REMOTE_VERSION);
- g_assert (write (1, &magic, 4) == 4);
-
- g_assert (read (0, &the_port, 4) == 4);
- the_port = ntohl (the_port);
-
- mutex = g_mutex_new ();
- cond = g_cond_new ();
-
- ready_mutex = g_mutex_new ();
- ready_cond = g_cond_new ();
-
- g_thread_create (debugger_thread, NULL, TRUE, NULL);
- g_thread_create (wait_thread, NULL, TRUE, NULL);
-
- g_cond_wait (ready_cond, ready_mutex);
-
- write_string (the_ior);
-
- for (;;) {
- guint32 command, len;
-
- len = read (0, &command, 4);
- if (len != 4) {
- g_warning (G_STRLOC ": Cannot recv: %s", g_strerror
(errno));
- exit (1);
- }
-
- command = ntohl (command);
-
- switch (command) {
- case 1:
- g_mutex_lock (mutex);
- g_cond_signal (cond);
- g_mutex_unlock (mutex);
- break;
-
- case 2:
- global_vtable->global_stop ();
- break;
-
- default:
- g_assert_not_reached ();
- }
- }
-
- return 0;
-
-}
Modified: trunk/debugger/configure.in
===================================================================
--- trunk/debugger/configure.in 2005-03-02 22:29:16 UTC (rev 41377)
+++ trunk/debugger/configure.in 2005-03-03 04:14:20 UTC (rev 41378)
@@ -125,16 +125,6 @@
fi
)
-AC_ARG_ENABLE(martin_hacks, [ --enable-martin-hacks This is only for
Martin Baulig], use_martin_hacks=$enableval, use_martin_hacks=no)
-AM_CONDITIONAL(MARTIN_HACKS, test x$use_martin_hacks = xyes)
-
-martin_deps=
-if test x$use_martin_hacks = xyes; then
- martin_deps="ORBit-2.0 >= 2.8.3"
- AC_DEFINE(MARTIN_HACKS,1, [Enable Martin's playground.])
-fi
-
-
## Versions of dependencies
GLIB_REQUIRED_VERSION=2.0.0
MONO_REQUIRED_VERSION=0.96
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches