public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
* [SCM]  master: Pass Signal, instead of int sig, to Ptrace.cont et.al.
@ 2008-01-22 19:59 cagney
  0 siblings, 0 replies; only message in thread
From: cagney @ 2008-01-22 19:59 UTC (permalink / raw)
  To: frysk-cvs

The branch, master has been updated
       via  c2200af0df9b4b598a92a1fa29bff2ea33b37525 (commit)
      from  005eb511bce81b206a973829ea98f430ce021684 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit c2200af0df9b4b598a92a1fa29bff2ea33b37525
Author: Andrew Cagney <cagney@redhat.com>
Date:   Tue Jan 22 14:59:01 2008 -0500

    Pass Signal, instead of int sig, to Ptrace.cont et.al.
    
    frysk-core/frysk/proc/live/ChangeLog
    2008-01-22  Andrew Cagney  <cagney@redhat.com>
    
    	* LinuxPtraceTask.java (sendContinue(Signal)): Replace
    	sendContinue(int).
    	(sendSyscallContinue(Signal)): Replace sendSyscallContinue(int).
    	(sendStepInstruction(Signal)): Replace sendStepInstruction(int).
    	(sendDetach(Signal)): Replace sendDetach(int).
    	* LinuxPtraceTaskState.java: Update.
    
    frysk-sys/frysk/sys/ChangeLog
    2008-01-22  Andrew Cagney  <cagney@redhat.com>
    
    	* Ptrace.java (detach(int,int)): Make private.
    	(singleStep(int,Signal)): New.
    	(signalStep(int,int)): Make private.
    	(cont(int,Signal)): New.
    	(cont(int,int)): Make private.
    	(sysCall(int,Signal)): New.
    	(sysCall(int,int)): Make private.
    	* TestPtrace.java: Update.

-----------------------------------------------------------------------

Summary of changes:
 frysk-core/frysk/proc/live/ChangeLog               |    7 +++
 frysk-core/frysk/proc/live/LinuxPtraceTask.java    |   57 ++++++++------------
 .../frysk/proc/live/LinuxPtraceTaskState.java      |   37 ++++++-------
 frysk-sys/frysk/sys/ChangeLog                      |    9 +++
 frysk-sys/frysk/sys/Ptrace.java                    |   22 +++++---
 frysk-sys/frysk/sys/TestPtrace.java                |    6 +-
 6 files changed, 73 insertions(+), 65 deletions(-)

First 500 lines of diff:
diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog
index c847d5d..25c8241 100644
--- a/frysk-core/frysk/proc/live/ChangeLog
+++ b/frysk-core/frysk/proc/live/ChangeLog
@@ -1,5 +1,12 @@
 2008-01-22  Andrew Cagney  <cagney@redhat.com>
 
+	* LinuxPtraceTask.java (sendContinue(Signal)): Replace
+	sendContinue(int).
+	(sendSyscallContinue(Signal)): Replace sendSyscallContinue(int).
+	(sendStepInstruction(Signal)): Replace sendStepInstruction(int).
+	(sendDetach(Signal)): Replace sendDetach(int).
+	* LinuxPtraceTaskState.java: Update.
+
 	* LinuxPtraceTask.java (processSignaledEvent(Signal)): Replace
 	processSignaledEvent(int).
 	(processTerminatingEvent(Signal,int)): Replace
diff --git a/frysk-core/frysk/proc/live/LinuxPtraceTask.java b/frysk-core/frysk/proc/live/LinuxPtraceTask.java
index e22646b..3b10fea 100644
--- a/frysk-core/frysk/proc/live/LinuxPtraceTask.java
+++ b/frysk-core/frysk/proc/live/LinuxPtraceTask.java
@@ -265,49 +265,36 @@ public class LinuxPtraceTask extends LiveTask {
 	    });
     }
 
-    public void sendContinue (int sig)
-    {
+    void sendContinue(Signal sig) {
 	logger.log(Level.FINE, "{0} sendContinue\n", this);
 	sigSendXXX = sig;
         incrementMod();
-	try
-	    {
-		Ptrace.cont(getTid(), sig);
-	    }
-	catch (Errno.Esrch e)
-	    {
-		postDisappearedEvent(e);
-	    }
+	try {
+	    Ptrace.cont(getTid(), sig);
+	} catch (Errno.Esrch e) {
+	    postDisappearedEvent(e);
+	}
     }
-    public void sendSyscallContinue (int sig)
-    {
+    void sendSyscallContinue(Signal sig) {
 	logger.log(Level.FINE, "{0} sendSyscallContinue\n", this);
 	sigSendXXX = sig;
         incrementMod();
-	try
-	    {
-		Ptrace.sysCall(getTid(), sig);
-	    }
-	catch (Errno.Esrch e)
-	    {
-		postDisappearedEvent(e);
-	    }
+	try {
+	    Ptrace.sysCall(getTid(), sig);
+	} catch (Errno.Esrch e) {
+	    postDisappearedEvent(e);
+	}
     }
-
-    public void sendStepInstruction (int sig)
-    {
+    void sendStepInstruction(Signal sig) {
 	logger.log(Level.FINE, "{0} sendStepInstruction\n", this);
 	sigSendXXX = sig;
         incrementMod();
 	syscallSigretXXX = getIsaFIXME().isAtSyscallSigReturn(this);
-	try
-	    {
-		Ptrace.singleStep(getTid(), sig);
-	    }
-	catch (Errno.Esrch e)
-	    {
-		postDisappearedEvent(e);
-	    }
+	try {
+	    Ptrace.singleStep(getTid(), sig);
+	} catch (Errno.Esrch e) {
+	    postDisappearedEvent(e);
+	}
     }
 
     public void sendStop ()
@@ -371,14 +358,14 @@ public class LinuxPtraceTask extends LiveTask {
 	    }
     }
 
-    public void sendDetach(int sig) {
+    void sendDetach(Signal sig) {
 	logger.log(Level.FINE, "{0} sendDetach\n", this);
 	clearIsa();
 	try {
-	    if (Signal.STOP.equals(sig)) {
+	    if (sig == Signal.STOP) {
 		logger.log(Level.FINE, "{0} sendDetach/signal STOP\n", this);
 		Signal.STOP.tkill(getTid());
-		Ptrace.detach(getTid(), 0);
+		Ptrace.detach(getTid(), Signal.NONE);
 	    } else {
 		Ptrace.detach(getTid(), sig);
 	    }
@@ -977,7 +964,7 @@ public class LinuxPtraceTask extends LiveTask {
      *
      * XXX: This should be a state in Linux/PTRACE state machine.
      */
-    public int sigSendXXX;
+    Signal sigSendXXX = Signal.NONE;
 
     /**
      * When the last request to the process was a step request,
diff --git a/frysk-core/frysk/proc/live/LinuxPtraceTaskState.java b/frysk-core/frysk/proc/live/LinuxPtraceTaskState.java
index f19b6ca..7e47b2c 100644
--- a/frysk-core/frysk/proc/live/LinuxPtraceTaskState.java
+++ b/frysk-core/frysk/proc/live/LinuxPtraceTaskState.java
@@ -225,7 +225,7 @@ class LinuxPtraceTaskState extends State {
 		// Save the signal and then re-wait for, hopefully,
 		// the SIGCONT behind it.
 		sigset.add(signal);
-		task.sendContinue(0);
+		task.sendContinue(Signal.NONE);
 		return this;
 	    } else {
 		if (waitForSIGCONT) {
@@ -437,7 +437,7 @@ class LinuxPtraceTaskState extends State {
 		if (shouldRemoveObservers)
 		    task.removeObservers();
 		// XXX: Otherwise check that observers are empty?
-		task.sendDetach(signal.intValue());
+		task.sendDetach(signal);
 		((LinuxPtraceProc)task.getProc()).performTaskDetachCompleted (task);
 		return detached;
 	    }
@@ -481,7 +481,7 @@ class LinuxPtraceTaskState extends State {
 		{
 		    if (task.notifyForkedOffspring () > 0)
 			return StartMainTask.detachBlocked;
-		    task.sendDetach (0);
+		    task.sendDetach(Signal.NONE);
 		    ((LinuxPtraceProc)task.getProc()).performTaskDetachCompleted (task);
 		    return detached;
 		}
@@ -525,7 +525,7 @@ class LinuxPtraceTaskState extends State {
 
 		    if (task.blockers.size () == 0) {
 			// Ya! All the blockers have been removed.
-			task.sendDetach (0);
+			task.sendDetach(Signal.NONE);
 			((LinuxPtraceProc)task.getProc()).performTaskDetachCompleted (task);
 			return detached;
 		    }
@@ -821,7 +821,7 @@ class LinuxPtraceTaskState extends State {
 	  // or there are Instruction observers installed.
 	  if (bp != null
 	      || task.instructionObservers.numberOfObservers() > 0) {
-	      task.sendStepInstruction(sig.intValue());
+	      task.sendStepInstruction(sig);
 	      return stepping;
 	  } else {
 	      // Always reset this, only the first step is important.
@@ -829,10 +829,10 @@ class LinuxPtraceTaskState extends State {
 	      task.justStartedXXX = false;
 	      
 	      if (task.syscallObservers.numberOfObservers() > 0) {
-		  task.sendSyscallContinue(sig.intValue());
+		  task.sendSyscallContinue(sig);
 		  return this;
 	      } else {
-		  task.sendContinue(sig.intValue());
+		  task.sendContinue(sig);
 		  // If we were stepping, but no breakpoint step or instruction
 		  // observers are installed we are running again.
 		  return (this != stepping) ? this : running;
@@ -1191,8 +1191,7 @@ class LinuxPtraceTaskState extends State {
 		return blockedContinue();
 	      
 	    }
-	  else
-	    {
+	  else {
 	      // This is not a trap event generated by us.
 	      
 	      // When we just send a step to the task there are
@@ -1207,7 +1206,7 @@ class LinuxPtraceTaskState extends State {
 	      // would be nice to use to support syscall tracking
 	      // during stepping, but it doesn't happen on all
 	      // architectures).
-	      if ((task.sigSendXXX != 0
+	      if ((task.sigSendXXX != Signal.NONE
 		   || task.syscallSigretXXX
 		   || isa.hasExecutedSpuriousTrap(task)))
 		return sendContinue(task, Signal.NONE);
@@ -1284,7 +1283,7 @@ class LinuxPtraceTaskState extends State {
 		logger.log (Level.FINE, "{0} handleStoppedEvent\n", task); 
 		// This is what should happen, the task stops, the
 		// task is detached.
-		task.sendDetach (0);
+		task.sendDetach(Signal.NONE);
 		((LinuxPtraceProc)task.getProc()).performTaskDetachCompleted (task);
 		return detached;
 	    }
@@ -1298,9 +1297,9 @@ class LinuxPtraceTaskState extends State {
 		// observing this task, no need to notify anything of
 		// this event.
 		if (signal != null)
-		    task.sendContinue(signal.intValue());
+		    task.sendContinue(signal);
 		else
-		    task.sendContinue(0);
+		    task.sendContinue(Signal.NONE);
 		return detaching;
 	    }
 	    LinuxPtraceTaskState handleTerminatedEvent (LinuxPtraceTask task,
@@ -1330,7 +1329,7 @@ class LinuxPtraceTaskState extends State {
 		// event behind it to bubble up.  The owning proc will
 		// have been informed of this via a separate code
 		// path.
-		task.sendContinue (0);
+		task.sendContinue(Signal.NONE);
 		return detaching;
 	    }
 	    LinuxPtraceTaskState handleClonedEvent (LinuxPtraceTask task, LinuxPtraceTask clone)
@@ -1340,7 +1339,7 @@ class LinuxPtraceTaskState extends State {
 		// the stop event behind it to bubble up.  The owning
 		// proc will have been informed of this via a separate
 		// code path.
-		task.sendContinue (0);
+		task.sendContinue(Signal.NONE);
 		// XXX: What about telling the proc that the clone now
 		// exists?
 		return detaching;
@@ -1351,7 +1350,7 @@ class LinuxPtraceTaskState extends State {
 		// Oops, the [main] task did an exec.  Skip that event
 		// allowing the stop event behind it to bubble up (I
 		// hope there's a stop event?).
-		task.sendContinue (0);
+		task.sendContinue(Signal.NONE);
 		return detaching;
 	    }
 	    LinuxPtraceTaskState handleSignaledEvent(LinuxPtraceTask task,
@@ -1359,7 +1358,7 @@ class LinuxPtraceTaskState extends State {
 		logger.log (Level.FINE, "{0} handleSignaledEvent\n", task);
 		// Oops, the task got the wrong signal.  Just continue
 		// so that the stop event behind it can bubble up.
-		task.sendContinue(signal.intValue());
+		task.sendContinue(signal);
 		return detaching;
 	    }
 	    //XXX: why is this needed and why does it mean a syscallExit ?
@@ -1367,7 +1366,7 @@ class LinuxPtraceTaskState extends State {
 	    {
 		logger.log (Level.FINE, "{0} handleSyscalledEvent\n", task); 
 		task.notifySyscallExit ();
-		task.sendContinue (0);
+		task.sendContinue(Signal.NONE);
 		return detaching;
 	    }
 	};
@@ -1432,7 +1431,7 @@ class LinuxPtraceTaskState extends State {
 	    if (shouldRemoveObservers)
 		task.removeObservers();
 	    // XXX: Otherwise check that observers are empty?
-	    task.sendDetach(sig.intValue());
+	    task.sendDetach(sig);
 	    ((LinuxPtraceProc)task.getProc()).performTaskDetachCompleted (task);
 	    return detached;
 	}
diff --git a/frysk-sys/frysk/sys/ChangeLog b/frysk-sys/frysk/sys/ChangeLog
index bdfbd7b..fe04ade 100644
--- a/frysk-sys/frysk/sys/ChangeLog
+++ b/frysk-sys/frysk/sys/ChangeLog
@@ -1,5 +1,14 @@
 2008-01-22  Andrew Cagney  <cagney@redhat.com>
 
+	* Ptrace.java (detach(int,int)): Make private.
+	(singleStep(int,Signal)): New.
+	(signalStep(int,int)): Make private.
+	(cont(int,Signal)): New.
+	(cont(int,int)): Make private.
+	(sysCall(int,Signal)): New.
+	(sysCall(int,int)): Make private.
+	* TestPtrace.java: Update.
+
 	* WaitBuilder.java (terminated(int,Signal,int,boolean)): Replace
 	terminated(int,boolean,int,boolean).
 	(exitEvent(int,Signal,int)): Replace exitEvent(int,boolean,int).
diff --git a/frysk-sys/frysk/sys/Ptrace.java b/frysk-sys/frysk/sys/Ptrace.java
index 4efc1e4..6daac63 100644
--- a/frysk-sys/frysk/sys/Ptrace.java
+++ b/frysk-sys/frysk/sys/Ptrace.java
@@ -59,10 +59,6 @@ public class Ptrace
     /**
      * Detach from the process specified by PID.
      */
-    public static native void detach(int pid, int sig);
-    /**
-     * Detach from the process specified by PID.
-     */
     public static void detach (ProcessIdentifier pid, int sig)
     {
 	detach(pid.hashCode(), sig);
@@ -71,23 +67,33 @@ public class Ptrace
      * Detach from the process specified by PID.
      */
     public static void detach(int pid, Signal sig) {
-	detach (pid, sig.hashCode ());
+	detach(pid, sig.intValue());
     }
+    private static native void detach(int pid, int sig);
     /**
      * Single-step (instruction step) the process specified by PID, if
      * SIG is non-zero, deliver the signal.
      */
-    public static native void singleStep(int pid, int sig);
+    public static void singleStep(int pid, Signal sig) {
+	singleStep(pid, sig.intValue());
+    }
+    private static native void singleStep(int pid, int sig);
     /**
      * Continue the process specified by PID, if SIG is non-zero,
      * deliver the signal.
      */
-    public static native void cont(int pid, int sig);
+    public static void cont(int pid, Signal sig) {
+	cont(pid, sig.intValue());
+    }
+    private static native void cont(int pid, int sig);
     /**
      * Continue the process specified by PID, stopping when there is a
      * system-call; if SIG is non-zero deliver the signal.
      */
-    public static native void sysCall(int pid, int sig);
+    public static void sysCall(int pid, Signal sig) {
+	sysCall(pid, sig.intValue());
+    }
+    private static native void sysCall(int pid, int sig);
     /**
      * Fetch the auxilary information associated with PID's last WAIT
      * event.
diff --git a/frysk-sys/frysk/sys/TestPtrace.java b/frysk-sys/frysk/sys/TestPtrace.java
index 6254e7a..97c016f 100644
--- a/frysk-sys/frysk/sys/TestPtrace.java
+++ b/frysk-sys/frysk/sys/TestPtrace.java
@@ -82,7 +82,7 @@ public class TestPtrace
 		}
 	    });
 
-	Ptrace.singleStep(pid, 0);
+	Ptrace.singleStep(pid, Signal.NONE);
 	Wait.waitAll (pid, new UnhandledWaitBuilder ()
 	    {
 		private final int id = pid;
@@ -96,7 +96,7 @@ public class TestPtrace
 		}
 	    });
 
-	Ptrace.cont(pid, Signal.TERM.intValue());
+	Ptrace.cont(pid, Signal.TERM);
 	Wait.waitAll (pid, new UnhandledWaitBuilder ()
 	    {
 		private final int id = pid;
@@ -143,7 +143,7 @@ public class TestPtrace
 		}
 	    });
 
-	Ptrace.detach (pid, 0);
+	Ptrace.detach(pid, Signal.NONE);
 	Errno errno = null;
 	try {
 	    Wait.waitAll (pid, new UnhandledWaitBuilder ()


hooks/post-receive
--
frysk system monitor/debugger


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-01-22 19:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-01-22 19:59 [SCM] master: Pass Signal, instead of int sig, to Ptrace.cont et.al cagney

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).