/* Copyright (c) 1993 Xerox Corporation. All rights reserved. */ /* * PCR_RDbg.h * * Remote debugger procedures. */ #ifndef __PCR_RDbg_h #define __PCR_RDbg_h /* * Client DebugNubProcs */ #define CIRIO_NUB_PROCS_LOW_VERSION 5 #define CIRIO_NUB_PROCS_VERSION 7 typedef void * /* opaque */ PCR_RDbg_Handle; typedef int PCR_RDbg_ProcID; #define PCR_RDbg_ProcID_Null 0 PCR_ERes PCR_RDbg_NullProc( PCR_RDbg_Handle h, unsigned desiredVersion, /* RESULT */ unsigned *bestVersion ); /* Return "best" protocol version supported by the client. */ #define PCR_RDbg_ProcID_GetCallData 1 typedef PCR_ERes PCR_RDbg_GetCallDataProc( PCR_RDbg_Handle h, PCR_Msec timeout, /* RESULT */ PCR_RDbg_CallData ** callData ); /* Wait for debuggee thread to call debugger. (*callData) will be NIL if no call before timeout. */ #define PCR_RDbg_ProcID_RestartCaller 2 typedef PCR_ERes PCR_RDbg_RestartCallerProc( PCR_RDbg_Handle h, PCR_RDbg_RAddr thRAddr, long ans ); /* Restart the thread represented by thRAddr (which must have called the debugger using PCR_Dbg_Call). The result of the debuggee's call to PCR_Dbg_Call() will be ans. */ #define PCR_RDbg_ProcID_GetWorldStopped 3 typedef PCR_ERes PCR_RDbg_GetWorldStoppedProc( PCR_RDbg_Handle h, /* RESULT */ PCR_Bool * stopped ); /* Determine whether debuggee world is stopped. */ #define PCR_RDbg_ProcID_SetWorldStopped 4 typedef PCR_ERes PCR_RDbg_SetWorldStoppedProc( PCR_RDbg_Handle h, PCR_Bool stopped ); /* Set debuggee world stopped or not. If debuggee is local, the debugger thread is not affected. But since the window manager and other important functions have their own private threads, this may not help much. */ #define PCR_RDbg_ProcID_KillWorld 5 typedef PCR_ERes PCR_RDbg_KillWorldProc( PCR_RDbg_Handle h ); /* Kill the debuggee's world. Not advisable locally. */ #define PCR_RDbg_ProcID_GetThRAddrs 6 typedef PCR_ERes PCR_RDbg_GetThRAddrsProc( PCR_RDbg_Handle h, /* RESULT */ PCR_RDbg_RAddr ** resRAddrs /* heap-allocated */ ); #define PCR_RDbg_ProcID_SetThFrozen 7 typedef PCR_ERes PCR_RDbg_SetThFrozenProc( PCR_RDbg_Handle h, PCR_RDbg_RAddr thRAddr, PCR_Bool frozen ); #define PCR_RDbg_ProcID_GetThData 8 typedef PCR_ERes PCR_RDbg_GetThDataProc( PCR_RDbg_Handle h, PCR_RDbg_RAddr thRAddr, /* RESULT */ PCR_RDbg_ThData ** resThData /* heap-allocated */ ); #define PCR_RDbg_ProcID_GetPCData 9 typedef PCR_ERes PCR_RDbg_GetPCDataProc( PCR_RDbg_Handle h, void * pc /* RESULT */ PCR_RDbg_PCData ** resPCData ); ??? IssueThreadCommand ( int threadIndex, bool setFreeze, bool freeze, bool setMsg, int msg PCR_ERes PCR_RDbg_GetFileData( PCR_RDbg_Handle h, PCR_RDbg_RAddr lfRAddr /* RESULT */ PCR_RDbg_FileData ** resFileData ); PCR_ERes PCR_RDbg_GetSegData( PCR_RDbg_Handle h, PCR_RDbg_RAddr lsRAddr /* RESULT */ PCR_RDbg_SegData ** resSegData ); PCR_ERes PCR_RDbg_GetSymDataByPattern( PCR_RDbg_Handle h, const char * pattern, PCR_Bool caseSensitive, unsigned nSkip, /* RESULT */ PCR_RDbg_SymData ** resSymData ); PCR_ERes PCR_RDbg_GetSymDataByValue( PCR_RDbg_Handle h, void * symVal, unsigned nSkip, /* RESULT */ PCR_RDbg_SymData ** resSymData ); PCR_ERes PCR_RDbg_GetSymDataByValueReversed( PCR_RDbg_Handle h, void * symVal, unsigned nSkip, /* RESULT */ PCR_RDbg_SymData ** resSymData ); #define PCR_RDbg_ProcID_GetBlock8 5 typedef PCR_ERes PCR_RDbg_GetBlock8Proc( PCR_RDbg_Handle h, char * addr, PCR_RDbg_RAddr rAddr, unsigned nBytes ); #define PCR_RDbg_ProcID_GetBlock16 6 typedef PCR_ERes PCR_RDbg_GetBlock16Proc( PCR_RDbg_Handle h, short * addr, PCR_RDbg_RAddr rAddr, unsigned nBytes ); #define PCR_RDbg_ProcID_GetBlock32 7 typedef PCR_ERes PCR_RDbg_GetBlock32Proc( PCR_RDbg_Handle h, long * addr, PCR_RDbg_RAddr rAddr, unsigned nBytes ); #define PCR_RDbg_ProcID_GetBlock64 8 typedef PCR_ERes PCR_RDbg_GetBlock64Proc( PCR_RDbg_Handle h, void * addr, PCR_RDbg_RAddr rAddr, unsigned nBytes ); #define PCR_RDbg_ProcID_PutBlock8 9 typedef PCR_ERes PCR_RDbg_PutBlock8Proc( PCR_RDbg_Handle h, PCR_RDbg_RAddr rAddr, char * addr, unsigned nBytes ); #define PCR_RDbg_ProcID_PutBlock16 10 typedef PCR_ERes PCR_RDbg_PutBlock16Proc( PCR_RDbg_Handle h, PCR_RDbg_RAddr rAddr, short * addr, unsigned nBytes ); #define PCR_RDbg_ProcID_PutBlock32 11 typedef PCR_ERes PCR_RDbg_PutBlock32Proc( PCR_RDbg_Handle h, PCR_RDbg_RAddr rAddr, long * addr, unsigned nBytes ); #define PCR_RDbg_ProcID_PutBlock64 12 ??? typedef PCR_ERes PCR_RDbg_PutBlock64Proc( PCR_RDbg_Handle h, PCR_RDbg_RAddr rAddr, void * addr, unsigned nBytes ); PCR_ERes PCR_RDbg_GetDebuggeeData( PCR_RDbg_Handle h, /* RESULT */ PCR_RDbg_DebuggeeData ** debuggeeData ); #endif /* __PCR_DbgNubProcs_h */