--- gforth/debugs.fs 2000/09/23 15:46:52 1.6 +++ gforth/debugs.fs 2006/12/28 14:52:20 1.14 @@ -1,6 +1,6 @@ \ Simple debugging aids -\ Copyright (C) 1995,1997,1999 Free Software Foundation, Inc. +\ Copyright (C) 1995,1997,1999,2002,2003,2004,2005 Free Software Foundation, Inc. \ This file is part of Gforth. @@ -38,21 +38,28 @@ require source.fs defer printdebugdata ( -- ) \ gforth print-debug-data ' .s IS printdebugdata -defer printdebugline ( addr -- ) \ gforth print-debug-line +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 %size + >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}.