public inbox for frysk-cvs@sourceware.org help / color / mirror / Atom feed
From: npremji@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Removed step and nexti commands. Added -instruction/-i parameter to step and next commands. Fixes bugzilla 5593 Date: Fri, 22 Feb 2008 01:12:00 -0000 [thread overview] Message-ID: <20080222011236.16107.qmail@sourceware.org> (raw) The branch, master has been updated via f0df1c7855297f1d4c4ea143655f7546ca80fb5b (commit) from 2ac8ff9e34c085e91cccfb9a2d4915ef7a73f893 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f0df1c7855297f1d4c4ea143655f7546ca80fb5b Author: Nurdin Premji <npremji@localhost.localdomain> Date: Thu Feb 21 20:10:45 2008 -0500 Removed step and nexti commands. Added -instruction/-i parameter to step and next commands. Fixes bugzilla 5593 ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 14 +++ frysk-core/frysk/hpd/StepCommand.java | 31 ++++++- frysk-core/frysk/hpd/StepInstructionCommand.java | 95 -------------------- frysk-core/frysk/hpd/StepNextCommand.java | 29 ++++++- frysk-core/frysk/hpd/StepNextiCommand.java | 100 ---------------------- frysk-core/frysk/hpd/TestHelp.java | 2 - frysk-core/frysk/hpd/TopLevelCommand.java | 2 - 7 files changed, 67 insertions(+), 206 deletions(-) delete mode 100644 frysk-core/frysk/hpd/StepInstructionCommand.java delete mode 100644 frysk-core/frysk/hpd/StepNextiCommand.java First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index ce23747..7862c42 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,17 @@ +2008-02-21 Nurdin Premji <npremji@redhat.com> + + * StepCommand.java (StepCommand): Added -instruction parameter. + Bugzilla 5593. + (Options): Added. + (options): Added. + (interpret): Check instruction parameter. + * StepNextCommand.java: Ditto. + * StepInstructionCommand.java: Removed. + * StepNextiCommand.java: Removed. + * TopLevelCommand.java(TopLevelCommand): Removed references to "stepi" + and "nexti". + * TestHelp.java: Ditto. + 2008-02-21 Rick Moseley <rmoseley@redhat.com> * PTSet.java: Add removeProc(int procid) interface. diff --git a/frysk-core/frysk/hpd/StepCommand.java b/frysk-core/frysk/hpd/StepCommand.java index ec4892b..a8cc3c0 100644 --- a/frysk-core/frysk/hpd/StepCommand.java +++ b/frysk-core/frysk/hpd/StepCommand.java @@ -44,14 +44,32 @@ import java.util.LinkedList; import java.util.List; import frysk.proc.Task; import frysk.debuginfo.DebugInfoFrame; +import frysk.rsl.Log; import frysk.scopes.SourceLocation; public class StepCommand extends ParameterizedCommand { + + private static Log fine = Log.fine(StepCommand.class); StepCommand() { super("Step a process.", "step", - ("Line step a process which has been attached to, and is" - + " currently blocked.")); + ("Step a process which has been attached to, and is" + + " currently blocked. Default is line stepping.")); + + add(new CommandOption("instruction", 'i', "step by instruction", null) { + void parse(String argument, Object options) { + ((Options)options).instruction = true; + } + }); + } + + private class Options { + boolean instruction = false; } + + Object options() { + return new Options(); + } + void interpret(CLI cli, Input cmd, Object options) { PTSet ptset = cli.getCommandPTSet(cmd); @@ -61,7 +79,14 @@ public class StepCommand extends ParameterizedCommand { taskList.add(taskIter.next()); } if (cli.steppingObserver != null) { - cli.getSteppingEngine().stepLine(taskList); + + if (((Options) options).instruction == false) { + fine.log(this, "Stepping line"); + cli.getSteppingEngine().stepLine(taskList); + } else { + fine.log(this, "Stepping instruction"); + cli.getSteppingEngine().stepInstruction(taskList); + } synchronized (cli.steppingObserver.getMonitor()) { try { diff --git a/frysk-core/frysk/hpd/StepInstructionCommand.java b/frysk-core/frysk/hpd/StepInstructionCommand.java deleted file mode 100644 index f683f1d..0000000 --- a/frysk-core/frysk/hpd/StepInstructionCommand.java +++ /dev/null @@ -1,95 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2007, Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.hpd; - -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import frysk.proc.Task; -import frysk.debuginfo.DebugInfoFrame; -import frysk.scopes.SourceLocation; - -public class StepInstructionCommand extends ParameterizedCommand { - private static final String full = "Step a process by an instruction. " - + "The process must be attached to and blocked."; - - StepInstructionCommand() { - super("Instruction step a process.", "stepi", full); - } - - public void interpret(CLI cli, Input cmd, Object options) { - PTSet ptset = cli.getCommandPTSet(cmd); - if (cli.steppingObserver != null) { - LinkedList taskList = new LinkedList(); - Iterator taskIter = ptset.getTasks(); - while (taskIter.hasNext()) { - taskList.add(taskIter.next()); - } - cli.getSteppingEngine().stepInstruction(taskList); - - synchronized (cli.steppingObserver.getMonitor()) { - try { - cli.steppingObserver.getMonitor().wait(); - } catch (InterruptedException ie) { - } - } - Iterator stepped = ptset.getTasks(); - while (stepped.hasNext()) { - Task task = (Task) stepped.next(); - DebugInfoFrame rf = cli.getTaskFrame(task); - - if (rf.getLine() == SourceLocation.UNKNOWN) - cli.addMessage("Task stopped at address 0x" - + Long.toHexString(rf.getAdjustedAddress()), - Message.TYPE_NORMAL); - else - cli.addMessage("Task stopped at line " - + rf.getLine().getLine() + " in file " - + rf.getLine().getFile(), Message.TYPE_NORMAL); - } - } else - cli.addMessage("Not attached to any process", - Message.TYPE_ERROR); - } - - int completer(CLI cli, Input input, int cursor, List completions) { - return -1; - } -} diff --git a/frysk-core/frysk/hpd/StepNextCommand.java b/frysk-core/frysk/hpd/StepNextCommand.java index 2f4398d..8b996e8 100644 --- a/frysk-core/frysk/hpd/StepNextCommand.java +++ b/frysk-core/frysk/hpd/StepNextCommand.java @@ -44,18 +44,33 @@ import java.util.LinkedList; import java.util.List; import frysk.debuginfo.DebugInfoFrame; import frysk.proc.Task; +import frysk.rsl.Log; import frysk.scopes.SourceLocation; public class StepNextCommand extends ParameterizedCommand { + private static Log fine = Log.fine(StepNextCommand.class); StepNextCommand() { super("Step over next function", "next", ("The next command defines a 'step-over' operation, " + - "which is used during stepping, when the user wishes " + - "to line step through the current function of interest " + + "which is used when the user wishes " + + "to step through the current function of interest " + "and avoid descending into any further function calls. " + "This operation will skip over any function call, and will " + - "otherwise just perform a line step.")); + "otherwise just perform a step. Default line step")); + add(new CommandOption("instruction", 'i', "step by instruction", null) { + void parse(String argument, Object options) { + ((Options)options).instruction = true; + } + }); + } + + private class Options { + boolean instruction = false; + } + + Object options() { + return new Options(); } public void interpret(CLI cli, Input cmd, Object options) { @@ -67,7 +82,13 @@ public class StepNextCommand extends ParameterizedCommand { } if (cli.steppingObserver != null) { - cli.getSteppingEngine().stepOver(taskList); + if (((Options) options).instruction == false) { + fine.log(this, "Stepping next line"); + cli.getSteppingEngine().stepOver(taskList); + } else { + fine.log(this, "Stepping next instruction"); + cli.getSteppingEngine().stepNextInstruction(taskList); + } synchronized (cli.steppingObserver.getMonitor()) { diff --git a/frysk-core/frysk/hpd/StepNextiCommand.java b/frysk-core/frysk/hpd/StepNextiCommand.java deleted file mode 100644 index 58386b0..0000000 --- a/frysk-core/frysk/hpd/StepNextiCommand.java +++ /dev/null @@ -1,100 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2007, Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.hpd; - -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import frysk.debuginfo.DebugInfoFrame; -import frysk.proc.Task; -import frysk.scopes.SourceLocation; - -public class StepNextiCommand extends ParameterizedCommand { - - StepNextiCommand() { - super("Step over next function", "nexti", - "The next command defines an 'instruction step-over'," - + " which is used during stepping, when the user wishes" - + " to line step through the current function of interestn" - + " and avoid descending into any further function calls. This" - + " operation will skip over any function call, and will" - + " otherwise just perform an instruction step."); - } - - void interpret(CLI cli, Input cmd, Object options) { - PTSet ptset = cli.getCommandPTSet(cmd); - LinkedList taskList = new LinkedList(); - Iterator taskIter = ptset.getTasks(); - while (taskIter.hasNext()) { - taskList.add(taskIter.next()); - } - if (cli.steppingObserver != null) - { - cli.getSteppingEngine().stepNextInstruction(taskList); - - synchronized (cli.steppingObserver.getMonitor()) - { - try - { - //XXX This looks racy. - cli.steppingObserver.getMonitor().wait(); - } - catch (InterruptedException ie) {} - } - taskIter = ptset.getTasks(); - while (taskIter.hasNext()) - { - Task task = (Task)taskIter.next(); - DebugInfoFrame rf = cli.getTaskFrame(task); - - if (rf.getLine() == SourceLocation.UNKNOWN) - cli.addMessage("Task stopped at address 0x" + Long.toHexString(rf.getAdjustedAddress()), Message.TYPE_NORMAL); - else - cli.addMessage("Task stopped at line " + rf.getLine().getLine() + " in file " + rf.getLine().getFile(), Message.TYPE_NORMAL); - } - } - else - cli.addMessage("Not attached to any process", Message.TYPE_ERROR); - } - - int completer(CLI cli, Input input, int cursor, List completions) { - return -1; - } -} diff --git a/frysk-core/frysk/hpd/TestHelp.java b/frysk-core/frysk/hpd/TestHelp.java index cb9414d..735a077 100644 --- a/frysk-core/frysk/hpd/TestHelp.java +++ b/frysk-core/frysk/hpd/TestHelp.java @@ -75,7 +75,6 @@ public class TestHelp "list", "load", "next", - "nexti", "peek", "print", "quit", @@ -83,7 +82,6 @@ public class TestHelp "run", "set", "step", - "stepi", "unalias", "undefset", "unset", diff --git a/frysk-core/frysk/hpd/TopLevelCommand.java b/frysk-core/frysk/hpd/TopLevelCommand.java index 78c226b..b2013e2 100644 --- a/frysk-core/frysk/hpd/TopLevelCommand.java +++ b/frysk-core/frysk/hpd/TopLevelCommand.java @@ -111,9 +111,7 @@ public class TopLevelCommand extends MultiLevelCommand { add(new StartCommand(), "start"); add(new StepCommand(), "s|tep"); add(new StepFinishCommand(), "finish"); - add(new StepInstructionCommand(), "stepi"); add(new StepNextCommand(), "n|ext"); - add(new StepNextiCommand(), "nexti"); add(new UnloadCommand(), "un|load"); add(new WhatCommand(), "what"); add(new WhichsetsCommand(), "whichsets"); hooks/post-receive -- frysk system monitor/debugger
reply other threads:[~2008-02-22 1:12 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=20080222011236.16107.qmail@sourceware.org \ --to=npremji@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).