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 Signal, instead of int sig, to Ptrace.cont et.al.
Date: Tue, 22 Jan 2008 19:59:00 -0000	[thread overview]
Message-ID: <20080122195930.14321.qmail@sourceware.org> (raw)

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


                 reply	other threads:[~2008-01-22 19:59 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=20080122195930.14321.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: link
Be 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).