From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14553 invoked by alias); 19 Mar 2008 04:09:04 -0000 Received: (qmail 14515 invoked by uid 367); 19 Mar 2008 04:08:59 -0000 Date: Wed, 19 Mar 2008 04:09:00 -0000 Message-ID: <20080319040859.14500.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Test a crashing hello-world under HPD. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 0189082059eba3c2acfb0b36bb838f01a12fc198 X-Git-Newrev: 35c076f3436b95a116cba33f52e0c9a592607dfa 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/msg00405.txt.bz2 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 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 * CLI.java: Treat a terminating task as stopped. * TestHelloWorld.java: New. frysk-core/frysk/stepping/ChangeLog 2008-03-18 Andrew Cagney * 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 + + * CLI.java: Treat a terminating task as stopped. + * TestHelloWorld.java: New. + 2008-03-18 Stan Cox * 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 .*"); - 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 + + * SteppingEngine.java: Block terminating tasks. + 2008-03-17 Andrew Cagney * 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