public inbox for frysk-cvs@sourceware.org help / color / mirror / Atom feed
From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Pass frysk.isa.signals.Signal up through updateSignaled. Date: Thu, 24 Jan 2008 20:50:00 -0000 [thread overview] Message-ID: <20080124205051.5790.qmail@sourceware.org> (raw) The branch, master has been updated via f44baadbb992bcba1baf30048084c1ed94b9d6a9 (commit) from d755696b035c7caf2c63a44df84e687b9ce4aaf9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f44baadbb992bcba1baf30048084c1ed94b9d6a9 Author: Andrew Cagney <cagney@redhat.com> Date: Thu Jan 24 15:49:02 2008 -0500 Pass frysk.isa.signals.Signal up through updateSignaled. frysk-core/frysk/proc/ChangeLog 2008-01-24 Andrew Cagney <cagney@redhat.com> * TaskObserver.java (Signaled): Replace updateSignaled(Task,int) with updateSignaled(Task,Signal). * TestTaskSyscallObserver.java: Update. * StressAttachDetachSignaledTask.java: Update. * SyscallExaminer.java: Update. * TestMemory.java: Update. * TestSyscallSignal.java: Update. * TestTaskObserverDetach.java: Update. * TestTaskObserverInstructionSigReturn.java: Update. frysk-core/frysk/proc/live/ChangeLog 2008-01-24 Andrew Cagney <cagney@redhat.com> * LinuxPtraceTask.java (notifySignaled(int)): Pass a frysk.isa.signals.Signal to the observers; return -1 when there are no observers. * TestTaskObserverCode.java: Update. * TestProcStopped.java: Update. frysk-core/frysk/stepping/ChangeLog 2008-01-24 Andrew Cagney <cagney@redhat.com> * TestSteppingEngine.java: Update to match TaskObserver.Signaled.updateSignaled(Task,Signal). frysk-core/frysk/testbed/ChangeLog 2008-01-24 Andrew Cagney <cagney@redhat.com> * DaemonBlockedAtSignal.java: Update to match TaskObserver.Signaled.updateSignaled(Task,Signal). frysk-core/frysk/util/ChangeLog 2008-01-24 Andrew Cagney <cagney@redhat.com> * TestFCatch.java: Update to match TaskObserver.Signaled.updateSignaled(Task,Signal). * FCatch.java: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 10 +++ .../frysk/proc/StressAttachDetachSignaledTask.java | 10 ++- frysk-core/frysk/proc/SyscallExaminer.java | 8 +- frysk-core/frysk/proc/TaskObserver.java | 9 +-- frysk-core/frysk/proc/TestMemory.java | 12 ++-- frysk-core/frysk/proc/TestSyscallSignal.java | 7 +- frysk-core/frysk/proc/TestTaskObserverDetach.java | 15 ++--- .../proc/TestTaskObserverInstructionSigReturn.java | 18 +++--- frysk-core/frysk/proc/TestTaskSyscallObserver.java | 9 ++- frysk-core/frysk/proc/live/ChangeLog | 6 ++ frysk-core/frysk/proc/live/LinuxPtraceTask.java | 22 ++++-- frysk-core/frysk/proc/live/TestProcStopped.java | 6 +- .../frysk/proc/live/TestTaskObserverCode.java | 43 +++++------- frysk-core/frysk/stepping/ChangeLog | 5 ++ frysk-core/frysk/stepping/TestSteppingEngine.java | 6 +- frysk-core/frysk/testbed/ChangeLog | 3 + .../frysk/testbed/DaemonBlockedAtSignal.java | 5 +- frysk-core/frysk/util/ChangeLog | 4 + frysk-core/frysk/util/FCatch.java | 74 +++----------------- frysk-core/frysk/util/TestFCatch.java | 47 +++++-------- 20 files changed, 143 insertions(+), 176 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 991d561..066d32b 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,15 @@ 2008-01-24 Andrew Cagney <cagney@redhat.com> + * TaskObserver.java (Signaled): Replace updateSignaled(Task,int) + with updateSignaled(Task,Signal). + * TestTaskSyscallObserver.java: Update. + * StressAttachDetachSignaledTask.java: Update. + * SyscallExaminer.java: Update. + * TestMemory.java: Update. + * TestSyscallSignal.java: Update. + * TestTaskObserverDetach.java: Update. + * TestTaskObserverInstructionSigReturn.java: Update. + * Task.java: Update; Register moved to frysk.isa.registers. * LinuxCoreTask.java: Ditto. * TestCoreRegs.java: Ditto. diff --git a/frysk-core/frysk/proc/StressAttachDetachSignaledTask.java b/frysk-core/frysk/proc/StressAttachDetachSignaledTask.java index 73f0746..dec065c 100644 --- a/frysk-core/frysk/proc/StressAttachDetachSignaledTask.java +++ b/frysk-core/frysk/proc/StressAttachDetachSignaledTask.java @@ -182,10 +182,12 @@ public class StressAttachDetachSignaledTask SignalStorm(Action action) { this.action = action; } - public Action updateSignaled(Task task, int signal) { - if (Signal.TERM.equals(signal)) - fail("child aborted"); - assertTrue("signal HUP", Signal.HUP.equals(signal)); + public Action updateSignaled(Task task, + frysk.isa.signals.Signal signal) { + assertTrue("child did not abort", + signal.intValue() != Signal.TERM.intValue()); + assertEquals("signal HUP", Signal.HUP.intValue(), + signal.intValue()); task.requestDeleteSignaledObserver(this); return action; } diff --git a/frysk-core/frysk/proc/SyscallExaminer.java b/frysk-core/frysk/proc/SyscallExaminer.java index 12748e9..23ab4cf 100644 --- a/frysk-core/frysk/proc/SyscallExaminer.java +++ b/frysk-core/frysk/proc/SyscallExaminer.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2005, 2006, 2007, Red Hat Inc. +// Copyright 2005, 2006, 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 @@ -73,8 +73,7 @@ public class SyscallExaminer * missed (giving a mismatch of task created and deleted * notifications.) */ - class TaskEventObserver - extends TaskObserverBase + class TaskEventObserver extends TaskObserverBase implements TaskObserver.Syscalls, TaskObserver.Signaled { public Action updateSyscallEnter (Task task, Syscall syscall) { @@ -85,7 +84,8 @@ public class SyscallExaminer syscallState = 0; return Action.CONTINUE; } - public Action updateSignaled (Task task, int sig) { + public Action updateSignaled (Task task, + frysk.isa.signals.Signal sig) { stoppedTaskEventCount++; return Action.CONTINUE; } diff --git a/frysk-core/frysk/proc/TaskObserver.java b/frysk-core/frysk/proc/TaskObserver.java index 6b2aaaf..4222f6f 100644 --- a/frysk-core/frysk/proc/TaskObserver.java +++ b/frysk-core/frysk/proc/TaskObserver.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2005, 2006, 2007, Red Hat Inc. +// Copyright 2005, 2006, 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 @@ -40,6 +40,7 @@ package frysk.proc; import frysk.isa.syscalls.Syscall; +import frysk.isa.signals.Signal; /** * Observable events generated by a Task. @@ -139,9 +140,7 @@ public interface TaskObserver /** * Interface used to notify that a Task has a pending signal. */ - public interface Signaled - extends TaskObserver - { + public interface Signaled extends TaskObserver { /** * The SIGNAL is pending delivery to the task. Return * Action.BLOCK to block the task's further execution. @@ -155,7 +154,7 @@ public interface TaskObserver * observer to the blocker pool and then require explict * removal. */ - Action updateSignaled (Task task, int signal); + Action updateSignaled(Task task, Signal signal); } /** diff --git a/frysk-core/frysk/proc/TestMemory.java b/frysk-core/frysk/proc/TestMemory.java index cc16552..99e382f 100644 --- a/frysk-core/frysk/proc/TestMemory.java +++ b/frysk-core/frysk/proc/TestMemory.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2005, 2006, 2007, Red Hat Inc. +// Copyright 2005, 2006, 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 @@ -82,14 +82,12 @@ public class TestMemory // created, otherwize the creation of the very first task is // missed (giving a mismatch of task created and deleted // notifications.) - - class TaskEventObserver - extends TaskObserverBase + class TaskEventObserver extends TaskObserverBase implements TaskObserver.Signaled { - public Action updateSignaled (Task task, int sig) - { - if (Signal.SEGV.equals(sig)) { + public Action updateSignaled(Task task, + frysk.isa.signals.Signal sig) { + if (sig.intValue() == Signal.SEGV.intValue()) { ByteBuffer b; long memAddr; long addr; diff --git a/frysk-core/frysk/proc/TestSyscallSignal.java b/frysk-core/frysk/proc/TestSyscallSignal.java index 2655a72..5000765 100644 --- a/frysk-core/frysk/proc/TestSyscallSignal.java +++ b/frysk-core/frysk/proc/TestSyscallSignal.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2006, 2007, Red Hat Inc. +// Copyright 2006, 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 @@ -200,8 +200,9 @@ public class TestSyscallSignal this.sig = sig; } - public Action updateSignaled(Task task, int signal) { - if (sig.equals(signal)) + public Action updateSignaled(Task task, + frysk.isa.signals.Signal signal) { + if (signal.intValue() == sig.intValue()) triggered++; return Action.CONTINUE; } diff --git a/frysk-core/frysk/proc/TestTaskObserverDetach.java b/frysk-core/frysk/proc/TestTaskObserverDetach.java index 496e914..fcae88b 100644 --- a/frysk-core/frysk/proc/TestTaskObserverDetach.java +++ b/frysk-core/frysk/proc/TestTaskObserverDetach.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2005, 2006, 2007, Red Hat Inc. +// Copyright 2005, 2006, 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 @@ -61,19 +61,16 @@ public class TestTaskObserverDetach /** * Co-ordinates a detach in the middle of some over random event. */ - abstract class Detach - extends TaskObserverBase + abstract class Detach extends TaskObserverBase implements TaskObserver.Signaled { - public void addedTo (Object o) - { + public void addedTo (Object o) { Manager.eventLoop.requestStop (); } - public void deletedFrom (Object o) - { + public void deletedFrom (Object o) { } - public Action updateSignaled (Task task, int signal) - { + public Action updateSignaled (Task task, + frysk.isa.signals.Signal signal) { Manager.eventLoop.requestStop (); return Action.CONTINUE; } diff --git a/frysk-core/frysk/proc/TestTaskObserverInstructionSigReturn.java b/frysk-core/frysk/proc/TestTaskObserverInstructionSigReturn.java index 01f6e51..69c7a68 100644 --- a/frysk-core/frysk/proc/TestTaskObserverInstructionSigReturn.java +++ b/frysk-core/frysk/proc/TestTaskObserverInstructionSigReturn.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,11 +44,11 @@ import frysk.sys.Signal; import frysk.testbed.TestLib; public class TestTaskObserverInstructionSigReturn - extends TestLib - implements TaskObserver.Attached, - TaskObserver.Instruction, - TaskObserver.Terminating, - TaskObserver.Signaled + extends TestLib + implements TaskObserver.Attached, + TaskObserver.Instruction, + TaskObserver.Terminating, + TaskObserver.Signaled { // Counter for instruction observer hits. long hit; @@ -132,9 +132,9 @@ public class TestTaskObserverInstructionSigReturn } // TaskObserver.Signaled interface - public Action updateSignaled (Task task, int signal) { - if (!Signal.PROF.equals(signal)) - fail("Wrong signal received: " + signal); + public Action updateSignaled(Task task, frysk.isa.signals.Signal signal) { + assertEquals("correct signal", Signal.PROF.intValue(), + signal.intValue()); signaled++; if (signaled == 1) { Manager.eventLoop.requestStop(); diff --git a/frysk-core/frysk/proc/TestTaskSyscallObserver.java b/frysk-core/frysk/proc/TestTaskSyscallObserver.java index f54fd86..217d606 100644 --- a/frysk-core/frysk/proc/TestTaskSyscallObserver.java +++ b/frysk-core/frysk/proc/TestTaskSyscallObserver.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2005, 2006, 2007, Red Hat Inc. +// Copyright 2005, 2006, 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 @@ -477,7 +477,7 @@ public class TestTaskSyscallObserver // notifications.) class SyscallInterruptObserver extends SyscallObserver - implements TaskObserver.Signaled + implements TaskObserver.Signaled { SyscallInterruptObserver (Task task) { @@ -512,8 +512,9 @@ public class TestTaskSyscallObserver return Action.CONTINUE; } - public Action updateSignaled (Task task, int sig) { - if (Signal.USR1.equals(sig)) + public Action updateSignaled(Task task, + frysk.isa.signals.Signal sig) { + if (sig.intValue() == Signal.USR1.intValue()) sigusr1Count++; return Action.CONTINUE; } diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index 0c92ecf..309e655 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,5 +1,11 @@ 2008-01-24 Andrew Cagney <cagney@redhat.com> + * LinuxPtraceTask.java (notifySignaled(int)): Pass a + frysk.isa.signals.Signal to the observers; return -1 when there + are no observers. + * TestTaskObserverCode.java: Update. + * TestProcStopped.java: Update. + * IsaPowerPC.java: Update; Register moved to frysk.isa.registers. * LinuxIA32.java: Ditto. * LinuxPPC32.java: Ditto. diff --git a/frysk-core/frysk/proc/live/LinuxPtraceTask.java b/frysk-core/frysk/proc/live/LinuxPtraceTask.java index 3786865..3dfe3f5 100644 --- a/frysk-core/frysk/proc/live/LinuxPtraceTask.java +++ b/frysk-core/frysk/proc/live/LinuxPtraceTask.java @@ -795,16 +795,24 @@ public class LinuxPtraceTask extends LiveTask { private final TaskObservable signaledObservers = new TaskObservable(this); /** * Notify all Signaled observers of the signal. Return the number - * of blocking observers. + * of blocking observers. Return -1 if there are no observers. */ int notifySignaled(int sig) { - logger.log(Level.FINE, "{0} notifySignaled(int)\n", this); - for (Iterator i = signaledObservers.iterator(); i.hasNext();) { - TaskObserver.Signaled observer = (TaskObserver.Signaled) i.next(); - if (observer.updateSignaled(this, sig) == Action.BLOCK) - blockers.add(observer); + frysk.isa.signals.Signal signal = getSignalTable().get(sig); + logger.log(Level.FINE, "{0} notifySignaled {1}\n", + new Object[] { this, signal }); + if (signaledObservers.numberOfObservers() > 0) { + for (Iterator i = signaledObservers.iterator(); i.hasNext();) { + TaskObserver.Signaled observer + = (TaskObserver.Signaled) i.next(); + if (observer.updateSignaled(this, signal) == Action.BLOCK) + blockers.add(observer); + } + return blockers.size(); + } else { + return -1; } - return blockers.size(); + } /** * Add TaskObserver.Signaled to the TaskObserver pool. diff --git a/frysk-core/frysk/proc/live/TestProcStopped.java b/frysk-core/frysk/proc/live/TestProcStopped.java index 773cac2..13d0773 100644 --- a/frysk-core/frysk/proc/live/TestProcStopped.java +++ b/frysk-core/frysk/proc/live/TestProcStopped.java @@ -172,8 +172,10 @@ public class TestProcStopped extends TestLib { public void addedTo(Object o) { Signal.CONT.tkill(((Task)o).getTid()); } - public Action updateSignaled(Task task, int signal) { - assertTrue("signal", Signal.TERM.equals(signal)); + public Action updateSignaled(Task task, + frysk.isa.signals.Signal signal) { + assertEquals("signal", Signal.TERM.intValue(), + signal.intValue()); Manager.eventLoop.requestStop(); return Action.CONTINUE; } diff --git a/frysk-core/frysk/proc/live/TestTaskObserverCode.java b/frysk-core/frysk/proc/live/TestTaskObserverCode.java index 6a456b0..68c28b8 100644 --- a/frysk-core/frysk/proc/live/TestTaskObserverCode.java +++ b/frysk-core/frysk/proc/live/TestTaskObserverCode.java @@ -1123,33 +1123,24 @@ public class TestTaskObserverCode extends TestLib } - static class SignaledObserver - implements TaskObserver.Signaled - { - int sig; - - public Action updateSignaled (Task task, int signal) - { - this.sig = signal; - Manager.eventLoop.requestStop(); - return Action.BLOCK; - } - - public void addFailed(Object observable, Throwable w) - { - fail(w.toString()); - } - - public void addedTo(Object observable) - { - Manager.eventLoop.requestStop(); - } - - public void deletedFrom(Object observable) - { - // Ignored + static class SignaledObserver implements TaskObserver.Signaled { + int sig; + public Action updateSignaled (Task task, + frysk.isa.signals.Signal signal) { + this.sig = signal.intValue(); + Manager.eventLoop.requestStop(); + return Action.BLOCK; + } + public void addFailed(Object observable, Throwable w) { + fail(w.toString()); + } + public void addedTo(Object observable) { + Manager.eventLoop.requestStop(); + } + public void deletedFrom(Object observable) { + // Ignored + } } - } class TerminatingObserver implements TaskObserver.Terminating diff --git a/frysk-core/frysk/stepping/ChangeLog b/frysk-core/frysk/stepping/ChangeLog index da4fbd0..d0deeff 100644 --- a/frysk-core/frysk/stepping/ChangeLog +++ b/frysk-core/frysk/stepping/ChangeLog @@ -1,3 +1,8 @@ +2008-01-24 Andrew Cagney <cagney@redhat.com> + + * TestSteppingEngine.java: Update to match + TaskObserver.Signaled.updateSignaled(Task,Signal). + 2008-01-23 Andrew Cagney <cagney@redhat.com> * TestStepping.java (testStepGoto()): Use Integer.toString(int) diff --git a/frysk-core/frysk/stepping/TestSteppingEngine.java b/frysk-core/frysk/stepping/TestSteppingEngine.java index d8aa0c5..2525397 100644 --- a/frysk-core/frysk/stepping/TestSteppingEngine.java +++ b/frysk-core/frysk/stepping/TestSteppingEngine.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 @@ -643,8 +643,8 @@ public class TestSteppingEngine extends TestLib { class SignalObserver implements TaskObserver.Signaled { - public Action updateSignaled(Task task, int sig) { - + public Action updateSignaled(Task task, + frysk.isa.signals.Signal sig) { return Action.CONTINUE; } diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index fe1b168..6879876 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -1,5 +1,8 @@ 2008-01-24 Andrew Cagney <cagney@redhat.com> + * DaemonBlockedAtSignal.java: Update to match + TaskObserver.Signaled.updateSignaled(Task,Signal). + * CorefileFactory.java: Rename CoreFileAtSignal.java. (constructCoreAtSignal(String)): Rename constructCore(String). (constructCoreAtSignal(File)): Rename constructCore(File). diff --git a/frysk-core/frysk/testbed/DaemonBlockedAtSignal.java b/frysk-core/frysk/testbed/DaemonBlockedAtSignal.java index c44e319..48e0a4f 100644 --- a/frysk-core/frysk/testbed/DaemonBlockedAtSignal.java +++ b/frysk-core/frysk/testbed/DaemonBlockedAtSignal.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2005, 2006, 2007, Red Hat Inc. +// Copyright 2005, 2006, 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 @@ -39,6 +39,7 @@ package frysk.testbed; +import frysk.isa.signals.Signal; import frysk.proc.Action; import frysk.proc.TaskObserver; import frysk.proc.Task; @@ -56,7 +57,7 @@ public class DaemonBlockedAtSignal { extends TaskObserverBase implements TaskObserver.Signaled, TaskObserver.Terminated { - public Action updateSignaled (Task task, int value) { + public Action updateSignaled(Task task, Signal value) { Manager.eventLoop.requestStop(); return Action.BLOCK; } diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index 07f2bb1..4a578ed 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,5 +1,9 @@ 2008-01-24 Andrew Cagney <cagney@redhat.com> + * TestFCatch.java: Update to match + TaskObserver.Signaled.updateSignaled(Task,Signal). + * FCatch.java: Ditto. + * TestCommandlineParser.java: Update; CoreFileAtSignal renamed to CorefileFactory. diff --git a/frysk-core/frysk/util/FCatch.java b/frysk-core/frysk/util/FCatch.java index ce10935..f165f7d 100644 --- a/frysk-core/frysk/util/FCatch.java +++ b/frysk-core/frysk/util/FCatch.java hooks/post-receive -- frysk system monitor/debugger
reply other threads:[~2008-01-24 20:50 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20080124205051.5790.qmail@sourceware.org \ --to=cagney@sourceware.org \ --cc=frysk-cvs@sourceware.org \ --cc=frysk@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).