From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10259 invoked by alias); 16 Jan 2008 23:45:01 -0000 Received: (qmail 10207 invoked by uid 367); 16 Jan 2008 23:44:56 -0000 Date: Wed, 16 Jan 2008 23:45:00 -0000 Message-ID: <20080116234456.10192.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Move Task.getRegisterBanks() to sub-classes. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: b411c4502c388f944b97dac30e1cf19e07c881af X-Git-Newrev: bb7902b13a9edce97875a882a4ae5d0bb2b2e443 Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2008-q1/txt/msg00068.txt.bz2 The branch, master has been updated via bb7902b13a9edce97875a882a4ae5d0bb2b2e443 (commit) via c43eaef88bd23c95207dd58854ca96e608018424 (commit) via 9313021e1f57c7cad15a9f776ca9d9c1477016c4 (commit) from b411c4502c388f944b97dac30e1cf19e07c881af (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit bb7902b13a9edce97875a882a4ae5d0bb2b2e443 Author: Andrew Cagney Date: Wed Jan 16 18:27:51 2008 -0500 Move Task.getRegisterBanks() to sub-classes. frysk-core/frysk/proc/ChangeLog 2008-01-16 Andrew Cagney * Task.java (sendrecRegisterBanks()): Delete. (getRegisterBanks()): Make abstract. frysk-core/frysk/proc/dead/ChangeLog 2008-01-16 Andrew Cagney * DeadTask.java (getRegisterBanks()): New; add RegisterBanks to constructor. * LinuxExeTask.java: Update. (constructRegisterBanks(ISA)): Replace sendrecRegisterBanks(). * LinuxCoreTask.java: Update. (simulateRegisterBanks()): Parameterize; return the BankBuffers. (sendrecRegisterBanks()): Delete. frysk-core/frysk/proc/dummy/ChangeLog 2008-01-16 Andrew Cagney * DummyTask.java (getRegisterBanks()): Replace sendrecRegisterBanks(). frysk-core/frysk/proc/live/ChangeLog 2008-01-16 Andrew Cagney * LinuxPtraceTask.java (getRegisterBanks()): Replace sendrecRegisterBanks(). commit c43eaef88bd23c95207dd58854ca96e608018424 Author: Andrew Cagney Date: Wed Jan 16 17:40:04 2008 -0500 Move Task.getIsa() code into sub-classes. frysk-core/frysk/proc/ChangeLog 2008-01-16 Andrew Cagney * Task.java (getISA()): Make abstract. (sendrecISA()): Delete. (hasIsa()): Delete. frysk-core/frysk/proc/dead/ChangeLog 2008-01-16 Andrew Cagney * DeadTask.java (getISA()): New. (DeadTask(Proc,TaskId,ISA)): Replace DeadTask(Proc,TaskId). * LinuxCoreProc.java: Update. (sendrecISA()): Delete. * LinuxCoreTask.java: Update. (sendrecISA()): Delete. * LinuxExeTask.java: Update. (sendrecISA()): Delete. * LinuxExeProc.java: Update. (sendrecISA()): Delete. frysk-core/frysk/proc/dummy/ChangeLog 2008-01-16 Andrew Cagney * DummyTask.java (getISA()): Replace sendrecISA(). frysk-core/frysk/proc/live/ChangeLog 2008-01-16 Andrew Cagney * LinuxPtraceTask.java (getISA()): Replace sendrecISA(). (hasIsa()): New. * TestRuntimeIsa.java (assertHasIsaEquals(Task,boolean)): New. commit 9313021e1f57c7cad15a9f776ca9d9c1477016c4 Author: Andrew Cagney Date: Wed Jan 16 15:52:56 2008 -0500 Move frysk.proc.TestIsa to frysk.proc.live. frysk-core/frysk/proc/ChangeLog 2008-01-16 Andrew Cagney * TestIsa.java: Move to frysk.proc.live.TestRuntimeIsa.java. frysk-core/frysk/proc/live/ChangeLog 2008-01-16 Andrew Cagney * TestRuntimeIsa.java: Move from frysk.proc.TestIsa. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 11 +++++ frysk-core/frysk/proc/Task.java | 25 ++---------- frysk-core/frysk/proc/dead/ChangeLog | 21 ++++++++++ frysk-core/frysk/proc/dead/DeadTask.java | 17 ++++++++- frysk-core/frysk/proc/dead/LinuxCoreProc.java | 13 ++---- frysk-core/frysk/proc/dead/LinuxCoreTask.java | 39 +++++++------------ frysk-core/frysk/proc/dead/LinuxExeProc.java | 9 +--- frysk-core/frysk/proc/dead/LinuxExeTask.java | 41 +++++++++----------- frysk-core/frysk/proc/dummy/ChangeLog | 7 +++ frysk-core/frysk/proc/dummy/DummyTask.java | 4 +- frysk-core/frysk/proc/live/ChangeLog | 11 +++++ frysk-core/frysk/proc/live/LinuxPtraceTask.java | 24 +++++++++--- .../{TestIsa.java => live/TestRuntimeIsa.java} | 34 ++++++++++------ 13 files changed, 151 insertions(+), 105 deletions(-) rename frysk-core/frysk/proc/{TestIsa.java => live/TestRuntimeIsa.java} (90%) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 61ccb8a..1cd3d7a 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,14 @@ +2008-01-16 Andrew Cagney + + * Task.java (sendrecRegisterBanks()): Delete. + (getRegisterBanks()): Make abstract. + + * Task.java (getISA()): Make abstract. + (sendrecISA()): Delete. + (hasIsa()): Delete. + + * TestIsa.java: Move to frysk.proc.live.TestRuntimeIsa.java. + 2008-01-15 Andrew Cagney * Task.java (pendingObservations): Move to LinuxPtraceTask. diff --git a/frysk-core/frysk/proc/Task.java b/frysk-core/frysk/proc/Task.java index dcd37e0..30278d5 100644 --- a/frysk-core/frysk/proc/Task.java +++ b/frysk-core/frysk/proc/Task.java @@ -93,17 +93,7 @@ public abstract class Task { /** * Return's this Task's Instruction Set Architecture. */ - public final ISA getISA() { - if (currentISA == null) - currentISA = sendrecISA(); - return currentISA; - } - private ISA currentISA; - protected abstract ISA sendrecISA(); - - public final boolean hasIsa() { - return (currentISA != null); - } + public abstract ISA getISA(); private SyscallTable syscallTable; public final SyscallTable getSyscallTable() { @@ -331,13 +321,10 @@ public abstract class Task { start, write); } - private RegisterBanks registerBanks; - protected abstract RegisterBanks sendrecRegisterBanks(); - RegisterBanks getRegisterBanks() { - if (registerBanks == null) - registerBanks = sendrecRegisterBanks(); - return registerBanks; - } + /** + * Return this task's register banks. + */ + protected abstract RegisterBanks getRegisterBanks(); /** * Return the machine's register banks as an array of ByteBuffers. @@ -356,8 +343,6 @@ public abstract class Task { public abstract int getMod(); public void clearIsa() { - registerBanks = null; syscallTable = null; - currentISA = null; } } diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index eaf0c11..c152771 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,3 +1,24 @@ +2008-01-16 Andrew Cagney + + * DeadTask.java (getRegisterBanks()): New; add RegisterBanks to + constructor. + * LinuxExeTask.java: Update. + (constructRegisterBanks(ISA)): Replace sendrecRegisterBanks(). + * LinuxCoreTask.java: Update. + (simulateRegisterBanks()): Parameterize; return the BankBuffers. + (sendrecRegisterBanks()): Delete. + + * DeadTask.java (getISA()): New. + (DeadTask(Proc,TaskId,ISA)): Replace DeadTask(Proc,TaskId). + * LinuxCoreProc.java: Update. + (sendrecISA()): Delete. + * LinuxCoreTask.java: Update. + (sendrecISA()): Delete. + * LinuxExeTask.java: Update. + (sendrecISA()): Delete. + * LinuxExeProc.java: Update. + (sendrecISA()): Delete. + 2008-01-16 Phil Muldoon * TestLinuxCore.java (testInsertedBreakpoint): Use TearDownFile. diff --git a/frysk-core/frysk/proc/dead/DeadTask.java b/frysk-core/frysk/proc/dead/DeadTask.java index fb56d8a..4493df0 100644 --- a/frysk-core/frysk/proc/dead/DeadTask.java +++ b/frysk-core/frysk/proc/dead/DeadTask.java @@ -44,6 +44,8 @@ import frysk.proc.Task; import frysk.proc.Proc; import frysk.proc.TaskId; import frysk.proc.TaskObserver; +import frysk.isa.ISA; +import frysk.bank.RegisterBanks; /** * A dead Host/Proc/Task is characterised by its lack of state, and an @@ -52,8 +54,11 @@ import frysk.proc.TaskObserver; */ abstract class DeadTask extends Task { - DeadTask(Proc proc, TaskId taskId) { + DeadTask(Proc proc, TaskId taskId, ISA isa, + RegisterBanks registerBanks) { super(proc, taskId); + this.isa = isa; + this.registerBanks = registerBanks; } protected String getStateFIXME() { @@ -233,4 +238,14 @@ abstract class DeadTask extends Task { public void setPC(long addr) { throw new RuntimeException("setPC: the task is dead"); } + + public ISA getISA() { + return isa; + } + private final ISA isa; + + protected RegisterBanks getRegisterBanks() { + return registerBanks; + } + private final RegisterBanks registerBanks; } diff --git a/frysk-core/frysk/proc/dead/LinuxCoreProc.java b/frysk-core/frysk/proc/dead/LinuxCoreProc.java index 039490c..840aa11 100644 --- a/frysk-core/frysk/proc/dead/LinuxCoreProc.java +++ b/frysk-core/frysk/proc/dead/LinuxCoreProc.java @@ -162,6 +162,8 @@ public class LinuxCoreProc extends DeadProc { elfFPRegs = ElfPrFPRegSet.decode(elfData); elfXFPRegs = ElfPrXFPRegSet.decode(elfData); + ISA isa = ElfMap.getISA(elfData.getParent().getEHeader()); + // Two methods of whether Floating Point note data exists. // In userland generated core-dumps there is no way to test // if floating point data operations have actually occurred, so @@ -186,7 +188,7 @@ public class LinuxCoreProc extends DeadProc { ElfPrXFPRegSet xregSet = null; if (elfXFPRegs.length > 0) xregSet = elfXFPRegs[i]; - newTask = new LinuxCoreTask(LinuxCoreProc.this, elfTasks[i], elfFPRegs[i], xregSet); + newTask = new LinuxCoreTask(LinuxCoreProc.this, elfTasks[i], elfFPRegs[i], xregSet, isa); } else { // Otherwise add only NT_FPREGSET data if pr_fpvalid is > 0. This // value is not reliable on userland kernels (gdb always sets it @@ -201,10 +203,10 @@ public class LinuxCoreProc extends DeadProc { ElfPrXFPRegSet xregSet = null; if (elfXFPRegs.length > 0) xregSet = elfXFPRegs[fpCount]; - newTask = new LinuxCoreTask(LinuxCoreProc.this, elfTasks[i], elfFPRegs[fpCount], xregSet); + newTask = new LinuxCoreTask(LinuxCoreProc.this, elfTasks[i], elfFPRegs[fpCount], xregSet, isa); fpCount++; } else - newTask = new LinuxCoreTask(LinuxCoreProc.this, elfTasks[i], null, null); + newTask = new LinuxCoreTask(LinuxCoreProc.this, elfTasks[i], null, null, isa); } } @@ -256,11 +258,6 @@ public class LinuxCoreProc extends DeadProc { return auxv; } - ISA sendrecISA() { - ElfEHeader header = elfData.getParent().getEHeader(); - return ElfMap.getISA(header); - } - /** * XXX: Meta Data construction functions. * Not really part of the implementation of proc, but has a very diff --git a/frysk-core/frysk/proc/dead/LinuxCoreTask.java b/frysk-core/frysk/proc/dead/LinuxCoreTask.java index 7f7b85f..a422342 100644 --- a/frysk-core/frysk/proc/dead/LinuxCoreTask.java +++ b/frysk-core/frysk/proc/dead/LinuxCoreTask.java @@ -52,9 +52,6 @@ import frysk.isa.RegistersFactory; public class LinuxCoreTask extends DeadTask { - ElfPrstatus elfTask = null; - ElfPrFPRegSet elfFPRegs = null; - ElfPrXFPRegSet elfXFPRegs = null; private final LinuxCoreProc parent; public ByteBuffer getMemory() { @@ -67,11 +64,14 @@ public class LinuxCoreTask extends DeadTask { return parent.getMemory(); } - private ByteBuffer[] simulateRegisterBanks () { - // XXX: Potentially this information should be constructed - // in CorefileRegisterBanksFactory. However that would require the factory to - // know about elf constructs which is not desirable. - + static private RegisterBanks simulateRegisterBanks(ElfPrstatus elfTask, + ElfPrFPRegSet elfFPRegs, + ElfPrXFPRegSet elfXFPRegs, + ISA isa) { + // XXX: Potentially this information should be constructed in + // CorefileRegisterBanksFactory. However that would require + // the factory to know about elf constructs which is not + // desirable. ByteBuffer[] bankBuffers = new ByteBuffer[4]; // Create an empty page @@ -80,8 +80,8 @@ public class LinuxCoreTask extends DeadTask { emptyBuffer[i]=0; // Get ISA specific data - ByteOrder byteOrder = getISA().order(); - int wordSize = getISA().wordSize(); + ByteOrder byteOrder = isa.order(); + int wordSize = isa.wordSize(); // Set GP Registers bankBuffers[0] = new ArrayByteBuffer(elfTask.getRawCoreRegisters()); @@ -114,31 +114,20 @@ public class LinuxCoreTask extends DeadTask { // XXX: Other register banks need to be filled in. bankBuffers[3] = new ArrayByteBuffer(emptyBuffer); - return bankBuffers; - } - protected RegisterBanks sendrecRegisterBanks() { - return CorefileRegisterBanksFactory.create - (getISA(), simulateRegisterBanks()); + return CorefileRegisterBanksFactory.create(isa, bankBuffers); } - /** * Create a new unattached Task. */ LinuxCoreTask(LinuxCoreProc proc, ElfPrstatus elfTask, ElfPrFPRegSet - elfFPRegs, ElfPrXFPRegSet elfXFPRegs) { - super(proc, new TaskId(elfTask.getPrPid())); - this.elfTask = elfTask; - this.elfFPRegs = elfFPRegs; - this.elfXFPRegs = elfXFPRegs; + elfFPRegs, ElfPrXFPRegSet elfXFPRegs, ISA isa) { + super(proc, new TaskId(elfTask.getPrPid()), isa, + simulateRegisterBanks(elfTask, elfFPRegs, elfXFPRegs, isa)); this.parent = proc; } - protected ISA sendrecISA() { - return ((LinuxCoreProc)getProc()).sendrecISA(); - } - public long getPC() { return getRegister(RegistersFactory .getRegisters(getISA()) diff --git a/frysk-core/frysk/proc/dead/LinuxExeProc.java b/frysk-core/frysk/proc/dead/LinuxExeProc.java index 68acc55..1b00342 100644 --- a/frysk-core/frysk/proc/dead/LinuxExeProc.java +++ b/frysk-core/frysk/proc/dead/LinuxExeProc.java @@ -42,7 +42,6 @@ package frysk.proc.dead; import inua.eio.ByteBuffer; import java.util.ArrayList; -import lib.dwfl.ElfEHeader; import lib.dwfl.ElfData; import frysk.isa.ISA; @@ -68,7 +67,8 @@ public class LinuxExeProc extends DeadProc { } public void sendRefresh() { - LinuxExeTask newTask = new LinuxExeTask(this, new TaskId(0)); + ISA isa = ElfMap.getISA(elfData.getParent().getEHeader()); + LinuxExeTask newTask = new LinuxExeTask(this, new TaskId(0), isa); newTask.getClass(); } @@ -96,11 +96,6 @@ public class LinuxExeProc extends DeadProc { return 0; } - ISA sendrecISA() { - ElfEHeader header = elfData.getParent().getEHeader(); - return ElfMap.getISA(header); - } - public MemoryMap[] getMaps() { return (MemoryMap[]) metaData.toArray(new MemoryMap[metaData.size()]); } diff --git a/frysk-core/frysk/proc/dead/LinuxExeTask.java b/frysk-core/frysk/proc/dead/LinuxExeTask.java index ca6fee1..8c212df 100644 --- a/frysk-core/frysk/proc/dead/LinuxExeTask.java +++ b/frysk-core/frysk/proc/dead/LinuxExeTask.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007 Red Hat Inc. +// Copyright 2007, 2008 Red Hat Inc. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -44,18 +44,18 @@ import inua.eio.ByteBuffer; import frysk.bank.RegisterBanks; import frysk.proc.TaskId; import frysk.isa.ISA; - -import lib.dwfl.*; +import lib.dwfl.Elf; +import lib.dwfl.ElfCommand; +import lib.dwfl.ElfEHeader; +import lib.dwfl.ElfException; public class LinuxExeTask extends DeadTask { private final long pc; private final LinuxExeProc proc; - TaskId id = null; - protected LinuxExeTask(LinuxExeProc proc, TaskId id) { - super(proc, id); + protected LinuxExeTask(LinuxExeProc proc, TaskId id, ISA isa) { + super(proc, id, isa, constructRegisterBanks(isa)); this.proc = proc; - this.id = id; // Compute a Fake PC. XXX should be done in Proc instead of // creating Elf object in the Task itself. Elf e = null; @@ -78,25 +78,20 @@ public class LinuxExeTask extends DeadTask { return pc; } - protected ISA sendrecISA() { - return ((LinuxExeProc)getProc()).sendrecISA(); - } - public ByteBuffer getMemory() { return proc.getMemory(); } - protected RegisterBanks sendrecRegisterBanks() { - ByteBuffer[] bankBuffers = new ByteBuffer[4]; - // Create an empty page - byte[] emptyBuffer = new byte[4096]; - for (int i = 0; i < emptyBuffer.length; i++) - emptyBuffer[i] = 0; - bankBuffers[0] = new ArrayByteBuffer(emptyBuffer); - bankBuffers[1] = new ArrayByteBuffer(emptyBuffer); - bankBuffers[2] = new ArrayByteBuffer(emptyBuffer); - bankBuffers[3] = new ArrayByteBuffer(emptyBuffer); - return CorefileRegisterBanksFactory.create - (getISA(), bankBuffers); + private static RegisterBanks constructRegisterBanks(ISA isa) { + ByteBuffer[] bankBuffers = new ByteBuffer[4]; + // Create an empty page + byte[] emptyBuffer = new byte[4096]; + for (int i = 0; i < emptyBuffer.length; i++) + emptyBuffer[i] = 0; + bankBuffers[0] = new ArrayByteBuffer(emptyBuffer); + bankBuffers[1] = new ArrayByteBuffer(emptyBuffer); + bankBuffers[2] = new ArrayByteBuffer(emptyBuffer); + bankBuffers[3] = new ArrayByteBuffer(emptyBuffer); + return CorefileRegisterBanksFactory.create(isa, bankBuffers); } } diff --git a/frysk-core/frysk/proc/dummy/ChangeLog b/frysk-core/frysk/proc/dummy/ChangeLog index f43b7b5..4965c21 100644 --- a/frysk-core/frysk/proc/dummy/ChangeLog +++ b/frysk-core/frysk/proc/dummy/ChangeLog @@ -1,3 +1,10 @@ +2008-01-16 Andrew Cagney + + * DummyTask.java (getRegisterBanks()): Replace + sendrecRegisterBanks(). + + * DummyTask.java (getISA()): Replace sendrecISA(). + 2008-01-15 Andrew Cagney * DummyTask.java (getMemory()): Replace sendrecMemory(). diff --git a/frysk-core/frysk/proc/dummy/DummyTask.java b/frysk-core/frysk/proc/dummy/DummyTask.java index b8ba936..ce57eb1 100644 --- a/frysk-core/frysk/proc/dummy/DummyTask.java +++ b/frysk-core/frysk/proc/dummy/DummyTask.java @@ -54,13 +54,13 @@ public class DummyTask extends Task { public String getStateString() { return "Attached"; } - protected ISA sendrecISA() { + public ISA getISA() { return null; } public ByteBuffer getMemory() { return null; } - protected RegisterBanks sendrecRegisterBanks() { + protected RegisterBanks getRegisterBanks() { return null; } diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index 5a67393..32e979f 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,3 +1,14 @@ +2008-01-16 Andrew Cagney + + * LinuxPtraceTask.java (getRegisterBanks()): Replace + sendrecRegisterBanks(). + + * LinuxPtraceTask.java (getISA()): Replace sendrecISA(). + (hasIsa()): New. + * TestRuntimeIsa.java (assertHasIsaEquals(Task,boolean)): New. + + * TestRuntimeIsa.java: Move from frysk.proc.TestIsa. + 2008-01-15 Andrew Cagney * LinuxPtraceTask.java (pendingObservations): Move here from diff --git a/frysk-core/frysk/proc/live/LinuxPtraceTask.java b/frysk-core/frysk/proc/live/LinuxPtraceTask.java index 9f95ee9..a65aa9d 100644 --- a/frysk-core/frysk/proc/live/LinuxPtraceTask.java +++ b/frysk-core/frysk/proc/live/LinuxPtraceTask.java @@ -134,19 +134,29 @@ public class LinuxPtraceTask extends LiveTask { } private ByteBuffer memory; - protected RegisterBanks sendrecRegisterBanks() { - return PtraceRegisterBanksFactory.create(getISA(), getTid()); + protected RegisterBanks getRegisterBanks() { + if (registerBanks == null) + registerBanks = PtraceRegisterBanksFactory.create(getISA(), getTid()); + return registerBanks; } + private RegisterBanks registerBanks; /** * Return the Task's ISA. * * Can this instead look at AUXV? */ - protected ISA sendrecISA () { - // FIXME: This should use task.proc.getExe(). Only that - // causes wierd failures; take a rain-check :-( - return ElfMap.getISA(new File("/proc/" + getTid() + "/exe")); + public ISA getISA() { + if (currentISA == null) + // FIXME: This should use task.proc.getExe(). Only that + // causes wierd failures; take a rain-check :-( + currentISA = ElfMap.getISA(new File("/proc/" + getTid() + "/exe")); + return currentISA; + } + private ISA currentISA; + + boolean hasIsa() { + return (currentISA != null); } /** @@ -986,6 +996,8 @@ public class LinuxPtraceTask extends LiveTask { super.clearIsa(); pcRegister = null; memory = null; + currentISA = null; + registerBanks = null; } /** diff --git a/frysk-core/frysk/proc/TestIsa.java b/frysk-core/frysk/proc/live/TestRuntimeIsa.java similarity index 90% rename from frysk-core/frysk/proc/TestIsa.java rename to frysk-core/frysk/proc/live/TestRuntimeIsa.java index 171f92c..81fb7a1 100644 --- a/frysk-core/frysk/proc/TestIsa.java +++ b/frysk-core/frysk/proc/live/TestRuntimeIsa.java @@ -37,7 +37,7 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.proc.live; import frysk.isa.ISA; import frysk.testbed.TestLib; @@ -46,10 +46,19 @@ import frysk.testbed.ExecOffspring; import frysk.testbed.SlaveOffspring; import frysk.testbed.ExecCommand; import frysk.testbed.StatState; - -public class TestIsa hooks/post-receive -- frysk system monitor/debugger