--- gforth/debugs.fs 1997/05/21 20:39:23 1.1 +++ gforth/debugs.fs 2006/12/28 14:52:20 1.14 @@ -1,6 +1,6 @@ \ Simple debugging aids -\ Copyright (C) 1995 Free Software Foundation, Inc. +\ Copyright (C) 1995,1997,1999,2002,2003,2004,2005 Free Software Foundation, Inc. \ This file is part of Gforth. @@ -16,7 +16,7 @@ \ You should have received a copy of the GNU General Public License \ along with this program; if not, write to the Free Software -\ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +\ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. \ They are meant to support a different style of debugging than the @@ -36,23 +36,30 @@ require source.fs -defer printdebugdata ( -- ) \ gforth +defer printdebugdata ( -- ) \ gforth print-debug-data ' .s IS printdebugdata -defer printdebugline ( addr -- ) \ gforth +defer .debugline ( nfile nline -- ) \ gforth print-debug-line +\G Print the source code location indicated by @var{nfile nline}, and +\G additional debugging information; the default @code{.debugline} +\G prints the additional information with @code{printdebugdata}. -: (printdebugline) ( addr -- ) - cr print-sourcepos ." :" +: (.debugline) ( nfile nline -- ) + cr .sourcepos ." :" \ it would be nice to print the name of the following word, \ but that's not easily possible for primitives printdebugdata cr ; -' (printdebugline) IS printdebugline +' (.debugline) IS .debugline -: (~~) ( -- ) - r@ printdebugline - r> sourcepos drop + >r ; +: .debugline-stderr ( nfile nline -- ) + stderr >outfile .debugline outfile< ; -: ~~ ( compilation -- ; run-time -- ) \ gforth tilde-tilde - POSTPONE (~~) sourcepos, ; immediate +:noname ( -- ) + current-sourcepos .debugline-stderr ; +:noname ( compilation -- ; run-time -- ) + compile-sourcepos POSTPONE .debugline-stderr ; +interpret/compile: ~~ ( -- ) \ gforth tilde-tilde +\G Prints the source code location of the @code{~~} and the stack +\G contents with @code{.debugline}.