satyr  0.28
sharedlib.h
Go to the documentation of this file.
1 /*
2  gdb_sharedlib.h
3 
4  Copyright (C) 2011, 2012 Red Hat, Inc.
5 
6  This program 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 of the License, or
9  (at your option) any later version.
10 
11  This program 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 along
17  with this program; if not, write to the Free Software Foundation, Inc.,
18  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 */
20 #ifndef SATYR_GDB_SHAREDLIB_H
21 #define SATYR_GDB_SHAREDLIB_H
22 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 #include <stdbool.h>
33 #include <inttypes.h>
34 
35 enum
36 {
37  SYMS_OK,
38  SYMS_WRONG,
39  SYMS_NOT_FOUND,
40 };
41 
46 {
47  uint64_t from;
48  uint64_t to;
49  int symbols;
50  char *soname;
51  struct sr_gdb_sharedlib *next;
52 };
53 
60 struct sr_gdb_sharedlib *
62 
68 void
69 sr_gdb_sharedlib_init(struct sr_gdb_sharedlib *sharedlib);
70 
77 void
78 sr_gdb_sharedlib_free(struct sr_gdb_sharedlib *sharedlib);
79 
86 struct sr_gdb_sharedlib *
88  struct sr_gdb_sharedlib *item);
89 
100 struct sr_gdb_sharedlib *
101 sr_gdb_sharedlib_dup(struct sr_gdb_sharedlib *sharedlib,
102  bool siblings);
103 
107 int
108 sr_gdb_sharedlib_count(struct sr_gdb_sharedlib *sharedlib);
109 
116 struct sr_gdb_sharedlib *
118  uint64_t address);
119 
127 struct sr_gdb_sharedlib *
128 sr_gdb_sharedlib_parse(const char *input);
129 
130 #ifdef __cplusplus
131 }
132 #endif
133 
134 #endif
struct sr_gdb_sharedlib * sr_gdb_sharedlib_parse(const char *input)
struct sr_gdb_sharedlib * sr_gdb_sharedlib_append(struct sr_gdb_sharedlib *dest, struct sr_gdb_sharedlib *item)
void sr_gdb_sharedlib_free(struct sr_gdb_sharedlib *sharedlib)
int sr_gdb_sharedlib_count(struct sr_gdb_sharedlib *sharedlib)
struct sr_gdb_sharedlib * sr_gdb_sharedlib_dup(struct sr_gdb_sharedlib *sharedlib, bool siblings)
void sr_gdb_sharedlib_init(struct sr_gdb_sharedlib *sharedlib)
A shared library memory location as reported by GDB.
Definition: sharedlib.h:45
struct sr_gdb_sharedlib * sr_gdb_sharedlib_new(void)
struct sr_gdb_sharedlib * sr_gdb_sharedlib_find_address(struct sr_gdb_sharedlib *first, uint64_t address)