This is the mail archive of the frysk-cvs@sources.redhat.com mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[SCM] master: Test a crashing hello-world under HPD.


The branch, master has been updated
       via  35c076f3436b95a116cba33f52e0c9a592607dfa (commit)
      from  0189082059eba3c2acfb0b36bb838f01a12fc198 (commit)

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

- Log -----------------------------------------------------------------
commit 35c076f3436b95a116cba33f52e0c9a592607dfa
Author: Andrew Cagney <cagney@redhat.com>
Date:   Wed Mar 19 00:07:56 2008 -0400

    Test a crashing hello-world under HPD.
    
    frysk-core/frysk/hpd/ChangeLog
    2008-03-18  Andrew Cagney  <cagney@redhat.com>
    
    	* CLI.java: Treat a terminating task as stopped.
    	* TestHelloWorld.java: New.
    
    frysk-core/frysk/stepping/ChangeLog
    2008-03-18  Andrew Cagney  <cagney@redhat.com>
    
    	* SteppingEngine.java: Block terminating tasks.

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

Summary of changes:
 frysk-core/frysk/hpd/CLI.java                      |   13 +++++++-
 frysk-core/frysk/hpd/ChangeLog                     |    5 +++
 .../{TestShellCommand.java => TestHelloWorld.java} |   31 +++++++++++++------
 frysk-core/frysk/stepping/ChangeLog                |    4 ++
 frysk-core/frysk/stepping/SteppingEngine.java      |    2 +-
 5 files changed, 42 insertions(+), 13 deletions(-)
 copy frysk-core/frysk/hpd/{TestShellCommand.java => TestHelloWorld.java} (72%)

First 500 lines of diff:
diff --git a/frysk-core/frysk/hpd/CLI.java b/frysk-core/frysk/hpd/CLI.java
index 771898e..1f30bea 100644
--- a/frysk-core/frysk/hpd/CLI.java
+++ b/frysk-core/frysk/hpd/CLI.java
@@ -448,7 +448,7 @@ public class CLI {
 	    // Ensure Ctrl-C handler is set back to fhpd settings
 	    Manager.eventLoop.add(SigIntHandler.fhpd);
             
-	    if (!tse.isAlive()) {
+	    if (!tse.isAlive() && !tse.isTerminating()) {
 		addMessage(tse.getMessage(), Message.TYPE_VERBOSE);
 		tse.setMessage("");
 		flushMessages();
@@ -462,10 +462,19 @@ public class CLI {
 		return;
 	    }
      
-            if (! tse.getState().isStopped()) {
+            if (! tse.isStopped()) {
                 attached = -1;
                 return;
             }
+
+
+	    if (!tse.isAlive() && tse.isTerminating()) {
+		// Report the terminating reason.
+		addMessage(tse.getMessage(), Message.TYPE_VERBOSE);
+		tse.setMessage("");
+		flushMessages();
+	    }
+
             Task task = tse.getTask();
             synchronized (CLI.this) {
                 DebugInfoFrame frame
diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog
index 94bf334..e9dd8d3 100644
--- a/frysk-core/frysk/hpd/ChangeLog
+++ b/frysk-core/frysk/hpd/ChangeLog
@@ -1,3 +1,8 @@
+2008-03-18  Andrew Cagney  <cagney@redhat.com>
+
+	* CLI.java: Treat a terminating task as stopped.
+	* TestHelloWorld.java: New.
+
 2008-03-18  Stan Cox  <scox@redhat.com>
 
 	* TestListCommand.java (testListPC): Set breakpoint via line number.
diff --git a/frysk-core/frysk/hpd/TestShellCommand.java b/frysk-core/frysk/hpd/TestHelloWorld.java
similarity index 72%
copy from frysk-core/frysk/hpd/TestShellCommand.java
copy to frysk-core/frysk/hpd/TestHelloWorld.java
index 2bb44e0..6bf4001 100644
--- a/frysk-core/frysk/hpd/TestShellCommand.java
+++ b/frysk-core/frysk/hpd/TestHelloWorld.java
@@ -40,16 +40,27 @@
 package frysk.hpd;
 
 /**
- * This class tests the "shell" command.
+ * Test debugging a broken hello-world program.
  */
 
-public class TestShellCommand extends TestLib {
-    
-    public void testShellCommand() {
-	e = new HpdTestbed();
-	e.sendCommandExpectPrompt("shell echo $$", ".*[0-9]+.*");
-	e.sendCommandExpectPrompt("shell blahBLAHblah", ".*command not found.*");
-	e.sendCommandExpectPrompt("shell -help", ".*shell <command string>.*");
-	e.close();
+public class TestHelloWorld extends TestLib {
+    public void testHelloWorldTerminating() {
+	e = HpdTestbed.load("funit-hello");
+	e.sendCommandExpectPrompt("run", "Running process [0-9]+\r\n");
+	e.expect("is terminating from signal SIGSEGV\\([0-9]+\\)\r\n");
+	// XXX: Wait a bit extra so the CLI has a chance to catch up
+	// with the terminated process.
+	try { Thread.sleep(100); } catch (Exception e) { }
+	// crashed processs in focus
+	e.sendCommandExpectPrompt("focus",
+				  "\r\n\\[0\\.0\\].*funit-hello\r\n");
+	// backtrace
+	e.sendCommandExpectPrompt("where 1",
+				  "\r\n#0 .*/funit-hello.c#44\r\n\\.\\.\\.\r\n");
+	// listing??
+	
+	// broken variable
+	e.sendCommandExpectPrompt("print what",
+				  "\\(char \\*\\) 0x0 \" < Memory Error > \"\r\n");
     }
-}
\ No newline at end of file
+}
diff --git a/frysk-core/frysk/stepping/ChangeLog b/frysk-core/frysk/stepping/ChangeLog
index 1daf4e8..4c18972 100644
--- a/frysk-core/frysk/stepping/ChangeLog
+++ b/frysk-core/frysk/stepping/ChangeLog
@@ -1,3 +1,7 @@
+2008-03-18  Andrew Cagney  <cagney@redhat.com>
+
+	* SteppingEngine.java: Block terminating tasks.
+
 2008-03-17  Andrew Cagney  <cagney@redhat.com>
 
 	* TestFirstInstruction.java: Update; using
diff --git a/frysk-core/frysk/stepping/SteppingEngine.java b/frysk-core/frysk/stepping/SteppingEngine.java
index 46513f3..2b5d91d 100644
--- a/frysk-core/frysk/stepping/SteppingEngine.java
+++ b/frysk-core/frysk/stepping/SteppingEngine.java
@@ -1188,7 +1188,7 @@ public class SteppingEngine {
 
 	    steppingObserver.notifyNotBlocked(tse);
 
-	    return Action.CONTINUE;
+	    return Action.BLOCK;
 	}
 	
 	public Action updateTerminated(Task task, Signal signal, int value) {


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]