Bug 4141

Summary: abstract frysk.sys.Ptrace server thread
Product: frysk Reporter: Andrew Cagney <cagney>
Component: generalAssignee: Andrew Cagney <cagney>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: unspecified   
Target Milestone: ---   
Host: Target:
Build: Last reconfirmed:
Project(s) to access: ssh public key:
Bug Depends on:    
Bug Blocks: 3727    

Description Andrew Cagney 2007-03-06 19:32:45 UTC
The server thread in frysk.sys.Ptrace should be generally accessable so that
arbitrary code can be executed in that thread's context.
Comment 1 Andrew Cagney 2007-04-02 21:35:30 UTC
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.