2002-09-19 08:39:38 +08:00
|
|
|
/* Objective-C language support definitions for GDB, the GNU debugger.
|
2002-09-19 12:12:10 +08:00
|
|
|
|
2002-09-19 07:29:20 +08:00
|
|
|
Copyright 1992 Free Software Foundation, Inc.
|
|
|
|
|
2002-09-19 12:12:10 +08:00
|
|
|
Contributed by Apple Computer, Inc.
|
2002-09-19 07:29:20 +08:00
|
|
|
|
2002-09-19 12:12:10 +08:00
|
|
|
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.
|
2002-09-19 07:29:20 +08:00
|
|
|
|
2002-09-19 12:12:10 +08:00
|
|
|
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.
|
2002-09-19 07:29:20 +08:00
|
|
|
|
2002-09-19 12:12:10 +08:00
|
|
|
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. */
|
2002-09-19 07:29:20 +08:00
|
|
|
|
2003-03-25 10:18:55 +08:00
|
|
|
#if !defined(OBJC_LANG_H)
|
|
|
|
#define OBJC_LANG_H
|
|
|
|
|
|
|
|
struct stoken;
|
|
|
|
|
2002-09-19 07:29:20 +08:00
|
|
|
struct value;
|
2003-02-19 David Carlton <carlton@math.stanford.edu>
* Makefile.in (SFILES): Add block.c.
(block_h): New.
(COMMON_OBS): Add block.o.
(block.o): New.
(x86-64-tdep.o): Add $(block_h).
(values.o, valops.o, tracepoint.o, symtab.o, symmisc.o, symfile.o)
(stack.o, printcmd.o, p-exp.tab.o, parse.o, objfiles.o)
(objc-exp.tab.o, objc-lang.o, nlmread.o, mips-tdep.o, mdebugread.o)
(m2-exp.tab.o, linespec.o, jv-lang.o, jv-exp.tab.o, infcmd.o)
(f-valprint.o, findvar.o, f-exp.tab.o, expprint.o, coffread.o)
(c-exp.tab.o, buildsym.o, breakpoint.o, blockframe.o, ax-gdb.o)
(alpha-tdep.o, ada-lang.o, ada-exp.tab.o, mi-cmd-stack.o): Ditto.
* value.h: Add opaque declaration for struct block.
* parser-defs.h, objc-lang.h, buildsym.h, breakpoint.h: Ditto.
* ada-lang.h: Ditto.
* x86-64-tdep.c: #include "block.h"
* values.c, valops.c, tracepoint.c, symtab.c, symmisc.c: Ditto.
* symfile.c, stack.c, printcmd.c, p-exp.y, parse.c: Ditto.
* objfiles.c, objc-exp.y, objc-lang.c, nlmread.c: Ditto.
* mips-tdep.c, mdebugread.c, m2-exp.y, linespec.c: Ditto.
* jv-lang.c, jv-exp.y, infcmd.c, f-valprint.c: Ditto.
* findvar.c, f-exp.y, expprint.c, coffread.c, c-exp.y: Ditto.
* buildsym.c, breakpoint.c, blockframe.c, ax-gdb.c: Ditto.
* alpha-tdep.c, ada-lang.c, ada-exp.y: Ditto.
* blockframe.c (blockvector_for_pc_sect): Move to "block.c".
(blockvector_for_pc, block_for_pc_sect, block_for_pc): Ditto.
* symtab.c (block_function): Ditto.
(contained_in): Ditto.
* frame.h: Move block_for_pc and block_for_pc_sect declarations to
block.h. Add opaque declaration for struct block.
* symtab.h: Move block_function and contained_in declarations to
block.h. Add opaque declarations for struct block, struct
blockvector.
(struct block): Move to block.h.
(struct blockvector): Ditto.
(BLOCK_START, BLOCK_END, BLOCK_FUNCTION, BLOCK_SUPERBLOCK)
(BLOCK_GCC_COMPILED, BLOCK_HASHTABLE, BLOCK_NSYMS, BLOCK_SYM)
(BLOCK_BUCKETS, BLOCK_BUCKET, BLOCK_HASHTABLE_SIZE)
(ALL_BLOCK_SYMBOLS, BLOCK_SHOULD_SORT, BLOCKVECTOR_NBLOCKS)
(BLOCKVECTOR_BLOCK, GLOBAL_BLOCK, STATIC_BLOCK, FIRST_LOCAL_BLOCK):
Ditto.
* block.c: New file.
* block.h: New file.
2003-02-19 David Carlton <carlton@math.stanford.edu>
* mi-cmd-stack.c: #include "block.h"
2003-02-20 08:01:07 +08:00
|
|
|
struct block;
|
2002-09-19 07:29:20 +08:00
|
|
|
|
2002-09-19 08:39:38 +08:00
|
|
|
extern int objc_parse (void); /* Defined in c-exp.y */
|
2002-09-19 07:29:20 +08:00
|
|
|
|
2002-09-19 08:39:38 +08:00
|
|
|
extern void objc_error (char *); /* Defined in c-exp.y */
|
2002-09-19 07:29:20 +08:00
|
|
|
|
2002-09-19 08:39:38 +08:00
|
|
|
extern int c_val_print (struct type *, char *, int,
|
|
|
|
CORE_ADDR, struct ui_file *, int,
|
|
|
|
int, int, enum val_prettyprint);
|
2002-09-19 07:29:20 +08:00
|
|
|
|
2002-09-19 08:39:38 +08:00
|
|
|
extern int c_value_print (struct value *, struct ui_file *,
|
|
|
|
int, enum val_prettyprint);
|
2002-09-19 07:29:20 +08:00
|
|
|
|
2002-09-19 08:39:38 +08:00
|
|
|
extern CORE_ADDR lookup_objc_class (char *classname);
|
|
|
|
extern int lookup_child_selector (char *methodname);
|
2002-09-19 07:29:20 +08:00
|
|
|
|
2003-04-02 11:02:46 +08:00
|
|
|
extern char *objc_demangle (const char *mangled, int options);
|
2002-09-19 07:29:20 +08:00
|
|
|
|
2002-12-03 11:52:37 +08:00
|
|
|
extern int find_objc_msgcall (CORE_ADDR pc, CORE_ADDR *new_pc);
|
2002-09-19 07:29:20 +08:00
|
|
|
|
2002-12-03 11:52:37 +08:00
|
|
|
extern char *parse_selector (char *method, char **selector);
|
2002-09-19 07:29:20 +08:00
|
|
|
|
2002-12-03 11:52:37 +08:00
|
|
|
extern char *parse_method (char *method, char *type,
|
|
|
|
char **class, char **category,
|
|
|
|
char **selector);
|
2002-09-19 07:29:20 +08:00
|
|
|
|
2002-12-03 11:52:37 +08:00
|
|
|
extern char *find_imps (struct symtab *symtab, struct block *block,
|
|
|
|
char *method, struct symbol **syms,
|
|
|
|
unsigned int *nsym, unsigned int *ndebug);
|
|
|
|
|
|
|
|
extern struct value *value_nsstring (char *ptr, int len);
|
2003-03-25 10:18:55 +08:00
|
|
|
|
|
|
|
/* for parsing Objective C */
|
|
|
|
extern void start_msglist (void);
|
|
|
|
extern void add_msglist (struct stoken *str, int addcolon);
|
|
|
|
extern int end_msglist (void);
|
|
|
|
|
|
|
|
#endif
|