home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / gnu / lucid / lemacs-19.6 / src / backtrace.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-01-26  |  2.0 KB  |  66 lines

  1. /* The lisp stack.
  2.    Copyright (C) 1985-1993 Free Software Foundation, Inc.
  3.  
  4. This file is part of GNU Emacs.
  5.  
  6. GNU Emacs is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 2, or (at your option)
  9. any later version.
  10.  
  11. GNU Emacs is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GNU Emacs; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  19.  
  20. #ifndef _EMACS_BACKTRACE_H_
  21. #define _EMACS_BACKTRACE_H_
  22.  
  23. #include <setjmp.h>
  24.        
  25. /* These definitions are used variously definition is used in alloc.c 
  26.    and keyboard.c, and it is reported that putting some of then in
  27.    lisp.h makes cc bomb out. */
  28.  
  29. struct backtrace
  30.   {
  31.     struct backtrace *next;
  32.     Lisp_Object *function;
  33.     Lisp_Object *args;        /* Points to vector of args. */
  34.     int nargs;            /* Length of vector.
  35.                    If nargs is UNEVALLED, args points to
  36.                    slot holding list of unevalled args */
  37. #ifdef EMACS_BTL
  38.     /* The value of a Lisp integer that specifies the symbol being
  39.        "invoked" by this node in the backtrace, or 0 if the backtrace
  40.        doesn't correspond to a such an invocation */
  41.     int id_number;
  42. #endif
  43.     char evalargs;
  44.     /* Nonzero means call value of debugger when done with this operation. */
  45.     char debug_on_exit;
  46.   };
  47.  
  48.  
  49. struct catchtag
  50.   {
  51.     Lisp_Object tag;
  52.     Lisp_Object val;
  53.     struct catchtag *next;
  54.     struct gcpro *gcpro;
  55.     jmp_buf jmp;
  56.     struct backtrace *backlist;
  57.     struct handler *handlerlist;
  58.     int lisp_eval_depth;
  59.     int pdlcount;
  60.   };
  61.  
  62. extern struct catchtag *catchlist;
  63. extern struct backtrace *backtrace_list;
  64.  
  65. #endif /* _EMACS_BACKTRACE_H_ */
  66.