>From 2655c83089385b8b0cf9971ae84b5bc1a039552a Mon Sep 17 00:00:00 2001 From: Gwenael Casaccio Date: Wed, 21 Aug 2013 14:06:05 +0200 Subject: [PATCH] Split debug tools package using the one class one file pattern. --- packages/debug/ChangeLog | 6 +++ packages/debug/DebugTools.st | 72 ------------------------------ packages/debug/DebuggerReentered.st | 50 +++++++++++++++++++++ packages/debug/Extensions.st | 87 +++++++++++++++++++++++++++++++++++++ packages/debug/package.xml | 2 + 5 files changed, 145 insertions(+), 72 deletions(-) create mode 100644 packages/debug/DebuggerReentered.st create mode 100644 packages/debug/Extensions.st diff --git a/packages/debug/ChangeLog b/packages/debug/ChangeLog index cffb9b4..8d393f4 100644 --- a/packages/debug/ChangeLog +++ b/packages/debug/ChangeLog @@ -1,3 +1,9 @@ +2013-08-20 Gwenael Casaccio + + * DebugTools.st: Split DebugTools file. + * Extensions.st: New. + * DebuggerReentered.st: New + 2011-07-27 Paolo Bonzini * DebugTools.st: Improve 2011-07-15 change to fix testsuite failures. diff --git a/packages/debug/DebugTools.st b/packages/debug/DebugTools.st index 49033bd..7e52cb6 100644 --- a/packages/debug/DebugTools.st +++ b/packages/debug/DebugTools.st @@ -311,75 +311,3 @@ pointer bytecodes to line numbers.'> ] ] - - -Namespace current: SystemExceptions [ - -Notification subclass: DebuggerReentered [ - - - - - description [ - "Answer a textual description of the exception." - - - ^'the debugger was started on an already debugged process' - ] -] - -] - - - -ContextPart extend [ - - currentLine [ - "Answer the 1-based number of the line that is pointed to by the receiver's - instruction pointer." - - - ^Debugger currentLineIn: self - ] - - debugger [ - "Answer the debugger that is attached to the given context. It - is always nil unless the DebugTools package is loaded." - - - | ctx home | - ctx := self. - [ctx isNil] whileFalse: - [home := ctx home. - (home notNil - and: [(home method attributeAt: #debugging: ifAbsent: [nil]) notNil]) - ifTrue: [^ctx receiver]. - ctx := ctx parentContext]. - ^nil - ] - -] - - - -BlockClosure extend [ - - forkDebugger [ - "Suspend the currently running process and fork the receiver into a new - process, passing a Debugger object that controls the currently running - process." - - - | process | - process := Processor activeProcess. - - [process suspend. - Processor activeProcess priority: process priority. - self value: (Debugger on: process)] - forkAt: Processor unpreemptedPriority - ] - -] - diff --git a/packages/debug/DebuggerReentered.st b/packages/debug/DebuggerReentered.st new file mode 100644 index 0000000..9e4c439 --- /dev/null +++ b/packages/debug/DebuggerReentered.st @@ -0,0 +1,50 @@ +"====================================================================== +| +| Inferior process control +| +| + ======================================================================" + +"====================================================================== +| +| Copyright 2002, 2006, 2007 Free Software Foundation, Inc. +| Written by Paolo Bonzini. +| +| This file is part of GNU Smalltalk. +| +| GNU Smalltalk 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; either version 2, or (at your option) any later version. +| +| GNU Smalltalk 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 +| GNU Smalltalk; see the file COPYING. If not, write to the Free Software +| Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +| + ======================================================================" + + + +Namespace current: SystemExceptions [ + +Notification subclass: DebuggerReentered [ + + + + + description [ + "Answer a textual description of the exception." + + + ^'the debugger was started on an already debugged process' + ] +] + +] + diff --git a/packages/debug/Extensions.st b/packages/debug/Extensions.st new file mode 100644 index 0000000..d7be530 --- /dev/null +++ b/packages/debug/Extensions.st @@ -0,0 +1,87 @@ +"====================================================================== +| +| Inferior process control +| +| + ======================================================================" + +"====================================================================== +| +| Copyright 2002, 2006, 2007 Free Software Foundation, Inc. +| Written by Paolo Bonzini. +| +| This file is part of GNU Smalltalk. +| +| GNU Smalltalk 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; either version 2, or (at your option) any later version. +| +| GNU Smalltalk 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 +| GNU Smalltalk; see the file COPYING. If not, write to the Free Software +| Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +| + ======================================================================" + + + +ContextPart extend [ + + currentLine [ + "Answer the 1-based number of the line that is pointed to by the receiver's + instruction pointer." + + + ^Debugger currentLineIn: self + ] + + debugger [ + "Answer the debugger that is attached to the given context. It + is always nil unless the DebugTools package is loaded." + + + | ctx home | + ctx := self. + [ctx isNil] whileFalse: + [home := ctx home. + (home notNil + and: [(home method attributeAt: #debugging: ifAbsent: [nil]) notNil]) + ifTrue: [^ctx receiver]. + ctx := ctx parentContext]. + ^nil + ] + +] + + + +BlockClosure extend [ + + forkDebugger [ + "Suspend the currently running process and fork the receiver into a new + process, passing a Debugger object that controls the currently running + process." + + + | process | + process := Processor activeProcess. + + [process suspend. + Processor activeProcess priority: process priority. + self value: (Debugger on: process)] + forkAt: Processor unpreemptedPriority + ] + + debug [ + + + + self class debuggerClass debug: 'Debugger'. + self value + ] +] + diff --git a/packages/debug/package.xml b/packages/debug/package.xml index 9108e83..6f38685 100644 --- a/packages/debug/package.xml +++ b/packages/debug/package.xml @@ -6,6 +6,8 @@ debugtests.st + Extensions.st + DebuggerReentered.st DebugTools.st ChangeLog -- 1.8.1.2