public inbox for frysk-cvs@sourceware.org help / color / mirror / Atom feed
From: moore@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] frysk system monitor/debugger branch, master, updated. 58677c3da1a72166a3aa8a2a2a14a4ffca765b5c Date: Wed, 07 Nov 2007 10:51:00 -0000 [thread overview] Message-ID: <20071107105110.3497.qmail@sourceware.org> (raw) The branch, master has been updated via 58677c3da1a72166a3aa8a2a2a14a4ffca765b5c (commit) from b0fe6a24f1b83254fd0a74c4fad2e72a46b49b26 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 58677c3da1a72166a3aa8a2a2a14a4ffca765b5c Author: Tim Moore <moore@blackbox.bricoworks.com> Date: Tue Nov 6 18:33:43 2007 +0100 Fix errors from breakpoints when rerunning a program frysk-core/frysk/rt/ChangeLog: 2007-11-06 Tim Moore <timoore@redhat.com> * BreakpointManager.java (refreshBreakpoints): Enable breakpoint even if it has no state. frysk-core/frysk/stepping/ChangeLog 2007-11-06 Tim Moore <timoore@redhat.com> * SteppingEngine.java (ThreadLifeObservable.updateTerminated): Clean out the dead task and its siblings if necessary. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/rt/BreakpointManager.java | 2 +- frysk-core/frysk/rt/ChangeLog | 5 ++ frysk-core/frysk/stepping/ChangeLog | 5 ++ frysk-core/frysk/stepping/SteppingEngine.java | 53 +++++++++++++++++------- 4 files changed, 48 insertions(+), 17 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/rt/BreakpointManager.java b/frysk-core/frysk/rt/BreakpointManager.java index 9ebbd99..d1737d8 100644 --- a/frysk-core/frysk/rt/BreakpointManager.java +++ b/frysk-core/frysk/rt/BreakpointManager.java @@ -220,7 +220,7 @@ public class BreakpointManager while (iter.hasNext()) { SourceBreakpoint bpt = (SourceBreakpoint)iter.next(); SourceBreakpoint.State state = bpt.getState(task); - if (state == SourceBreakpoint.DEFERRED) { + if (state == SourceBreakpoint.DEFERRED || state == null) { enableBreakpoint(bpt, task); } } diff --git a/frysk-core/frysk/rt/ChangeLog b/frysk-core/frysk/rt/ChangeLog index 82243e7..f1f42ec 100644 --- a/frysk-core/frysk/rt/ChangeLog +++ b/frysk-core/frysk/rt/ChangeLog @@ -1,3 +1,8 @@ +2007-11-06 Tim Moore <timoore@redhat.com> + + * BreakpointManager.java (refreshBreakpoints): Enable breakpoint + even if it has no state. + 2007-10-26 Andrew Cagney <cagney@redhat.com> * DisplayValue.java: No need to catch catch ParseException. diff --git a/frysk-core/frysk/stepping/ChangeLog b/frysk-core/frysk/stepping/ChangeLog index b5a6454..f643eb3 100644 --- a/frysk-core/frysk/stepping/ChangeLog +++ b/frysk-core/frysk/stepping/ChangeLog @@ -1,3 +1,8 @@ +2007-11-06 Tim Moore <timoore@redhat.com> + + * SteppingEngine.java (ThreadLifeObservable.updateTerminated): + Clean out the dead task and its siblings if necessary. + 2007-10-14 Andrew Cagney <cagney@redhat.com> * TestSteppingEngine.java (testInstructionNext()): Call diff --git a/frysk-core/frysk/stepping/SteppingEngine.java b/frysk-core/frysk/stepping/SteppingEngine.java index 8240dc5..bfadb9a 100644 --- a/frysk-core/frysk/stepping/SteppingEngine.java +++ b/frysk-core/frysk/stepping/SteppingEngine.java @@ -1166,24 +1166,45 @@ public class SteppingEngine { /* Watch for terminating Tasks. Set the stepping state of the task * as terminated and notify the observers of the event. */ - - Integer context = (Integer) SteppingEngine.this.contextMap.get(task - .getProc()); - SteppingEngine.this.contextMap.put(task.getProc(), new Integer( + Proc proc = task.getProc(); + Integer context = (Integer)SteppingEngine.this.contextMap.get(proc); + SteppingEngine.this.contextMap.put(proc, new Integer( context.intValue() - 1)); - TaskStepEngine tse = (TaskStepEngine) SteppingEngine.this.taskStateMap - .get(task); - tse.setState(new StepTerminatedState(task)); - - if (signal) - tse.setMessage(tse.getMessage() + "Task " + task.getTid() - + " terminated from signal " + value); - else - tse.setMessage(tse.getMessage() + "Task " + task.getTid() + " terminated"); - - steppingObserver.notifyNotBlocked(tse); - + TaskStepEngine tse + = (TaskStepEngine)SteppingEngine.this.taskStateMap + .get(task); + // Must have missed the terminating event + if (tse.isAlive()) { + tse.setState(new StepTerminatedState(task)); + + if (signal) + tse.setMessage(tse.getMessage() + "Task " + + task.getTid() + + " terminated from signal " + + value); + else + tse.setMessage(tse.getMessage() + "Task " + + task.getTid() + " terminated"); + steppingObserver.notifyNotBlocked(tse); + } + // Clone task list so we can remove tasks (via cleanTask) + // without messing up the iterator. + Iterator taskIter + = ((LinkedList)SteppingEngine.this.threadsList.clone()) + .iterator(); + // Only one terminated event might be received by the + // process, so process all the tasks now. + while (taskIter.hasNext()) { + Task sibling = (Task)taskIter.next(); + if (sibling.getProc() == proc) { + TaskStepEngine siblingTse + = (TaskStepEngine)SteppingEngine.this.taskStateMap + .get(sibling); + if (!siblingTse.isAlive()) + cleanTask(sibling); + } + } return Action.CONTINUE; } hooks/post-receive -- frysk system monitor/debugger
reply other threads:[~2007-11-07 10:51 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=20071107105110.3497.qmail@sourceware.org \ --to=moore@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).