The server thread in frysk.sys.Ptrace should be generally accessable so that arbitrary code can be executed in that thread's context.
Created frysk.sys.Server, and all code refactored to use it: 2007-03-27 Andrew Cagney <cagney@redhat.com> * Ptrace.java: Re-implement using Server.java. (pt): Delete. (getPt): Delete. (requestExecute): Delete. (PtraceThread): Delete. (PtraceRequest): New. (ForkRequest): New. (child): Use RequestFork. (request): New. (peek, poke): Call request. * cni/Ptrace.cxx: Update. (_callPtrace): Delete. (singleStep, cont, sysCall, getEventMsg, peekRegisters, pokeRegisters, setOptions, optionTraceClone): Use request. (reopen): Delete. (child): Delete. (peek, poke): Delete. * Ptrace.java (peek, poke): Change addr type to gnu.gcj.RawData. Make methods package local. * cni/Ptrace.cxx: Update. * cni/PtraceByteBuffer.cxx (peek, poke): Update. * Server.java (Server): Add private constructor. (Op): Delete, use Execute. (exception): Add member. (execute): When exception non-NULL, re-throw. (run): Catch and save RuntimeException-s. TestServer.java: Update. (testThrow): Add. 2007-03-26 Andrew Cagney <cagney@redhat.com> * Server.java: New file. * TestServer.java: New tests.