diff options
author | Jim Blandy <jimb@codesourcery.com> | 2002-05-16 21:15:53 +0000 |
---|---|---|
committer | Jim Blandy <jimb@codesourcery.com> | 2002-05-16 21:15:53 +0000 |
commit | 720d0932175e21f06e22522e036006141d049d16 (patch) | |
tree | ed661f54e6d43893593c6c411bd2a5d312fdea77 /gdb/macroscope.h | |
parent | 1ed92995c463f733855c38df3767d2f6630e4044 (diff) | |
download | gdb-720d0932175e21f06e22522e036006141d049d16.tar.gz |
Add commands for manually expanding macros and showing their
definitions.
* macrocmd.c, macroscope.c, macroscope.h: New files.
* Makefile.in (SFILES): Add macrocmd.c, macroscope.c.
(macroscope_h): New variable.
(HFILES_NO_SRCDIR): Add macroscope.h.
(COMMON_OBS): Add macrocmd.o, macroscope.o.
(macroscope.o, macrocmd.o): New rules.
Diffstat (limited to 'gdb/macroscope.h')
-rw-r--r-- | gdb/macroscope.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/gdb/macroscope.h b/gdb/macroscope.h new file mode 100644 index 00000000000..fc10b6dcd60 --- /dev/null +++ b/gdb/macroscope.h @@ -0,0 +1,63 @@ +/* Interface to functions for deciding which macros are currently in scope. + Copyright 2002 Free Software Foundation, Inc. + Contributed by Red Hat, Inc. + + This file is part of GDB. + + This program 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 of the License, or + (at your option) any later version. + + This program 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 this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef MACROSCOPE_H +#define MACROSCOPE_H + +#include "macrotab.h" +#include "symtab.h" + + +/* All the information we need to decide which macro definitions are + in scope: a source file (either a main source file or an + #inclusion), and a line number in that file. */ +struct macro_scope { + struct macro_source_file *file; + int line; +}; + + +/* Return a `struct macro_scope' object corresponding to the symtab + and line given in SAL. If we have no macro information for that + location, or if SAL's pc is zero, return zero. */ +struct macro_scope *sal_macro_scope (struct symtab_and_line sal); + + +/* Return a `struct macro_scope' object describing the scope the `macro + expand' and `macro expand-once' commands should use for looking up + macros. If we have a selected frame, this is the source location of + its PC; otherwise, this is the last listing position. + + If we have no macro information for the current location, return zero. + + The object returned is allocated using xmalloc; the caller is + responsible for freeing it. */ +struct macro_scope *default_macro_scope (void); + + +/* Look up the definition of the macro named NAME in scope at the source + location given by BATON, which must be a pointer to a `struct + macro_scope' structure. This function is suitable for use as + a macro_lookup_ftype function. */ +struct macro_definition *standard_macro_lookup (const char *name, void *baton); + + +#endif /* MACROSCOPE_H */ |