Integrate adding files with the file manager
[anjuta-git-plugin.git] / plugins / valgrind / symtab.h
blobf6414bc296ab33a6d21db00c145b81b71114fe6f
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3 * Authors: Jeffrey Stedfast <fejj@ximian.com>
5 * Copyright 2003 Ximian, Inc. (www.ximian.com)
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
24 #ifndef __SYMTAB_H__
25 #define __SYMTAB_H__
27 #include <bfd.h>
28 #include <sys/types.h>
30 #ifdef __cplusplus
31 extern "C" {
32 #pragma }
33 #endif /* __cplusplus */
36 typedef struct _SymTabMap {
37 struct _SymTabMap *next;
38 char *filename;
39 char *libname;
40 bfd *abfd;
41 asymbol **syms;
42 long symcount;
43 asection *text_section;
44 void *text_start;
45 void *text_end;
46 void *load_addr;
47 } SymTabMap;
49 typedef struct {
50 SymTabMap *prog;
51 SymTabMap *libs;
52 SymTabMap *tail;
53 } SymTab;
55 SymTab *symtab_new (const char *filename);
57 void symtab_free (SymTab *symtab);
60 typedef struct {
61 const char *filename;
62 char *function;
63 size_t lineno;
64 } SymTabSymbol;
66 SymTabSymbol *symtab_resolve_addr (SymTab *symtab, void *addr, int demangle_cpp);
68 void symtab_symbol_free (SymTabSymbol *symbol);
70 #ifdef __cplusplus
72 #endif /* __cplusplus */
74 #endif /* __SYMTAB_H__ */