blob: 59ae353b0a6a8dbdabe03667e117138bf9a107e3 [file] [log] [blame]
sewardjeadcd862006-04-04 15:12:44 +00001
2/*--------------------------------------------------------------------*/
3/*--- Reading of syms & debug info from ELF .so/executable files. ---*/
4/*--- priv_readelf.h ---*/
5/*--------------------------------------------------------------------*/
6
7/*
8 This file is part of Valgrind, a dynamic binary instrumentation
9 framework.
10
sewardj0f157dd2013-10-18 14:27:36 +000011 Copyright (C) 2000-2013 Julian Seward
sewardjeadcd862006-04-04 15:12:44 +000012 jseward@acm.org
13
14 This program is free software; you can redistribute it and/or
15 modify it under the terms of the GNU General Public License as
16 published by the Free Software Foundation; either version 2 of the
17 License, or (at your option) any later version.
18
19 This program is distributed in the hope that it will be useful, but
20 WITHOUT ANY WARRANTY; without even the implied warranty of
21 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 General Public License for more details.
23
24 You should have received a copy of the GNU General Public License
25 along with this program; if not, write to the Free Software
26 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
27 02111-1307, USA.
28
29 The GNU General Public License is contained in the file COPYING.
30*/
31
32#ifndef __PRIV_READELF_H
33#define __PRIV_READELF_H
34
florian535fb1b2013-09-15 13:54:34 +000035#include "pub_core_basics.h" // SizeT
36#include "pub_core_debuginfo.h" // DebugInfo
37
sewardjeadcd862006-04-04 15:12:44 +000038/*
39 Stabs reader greatly improved by Nick Nethercote, Apr 02.
40 This module was also extensively hacked on by Jeremy Fitzhardinge
41 and Tom Hughes.
42*/
43
44/* Identify an ELF object file by peering at the first few bytes of
45 it. */
sewardjf7c97142012-07-14 09:59:01 +000046extern Bool ML_(is_elf_object_file)( void* image, SizeT n_image, Bool rel_ok );
sewardjeadcd862006-04-04 15:12:44 +000047
48/* The central function for reading ELF debug info. For the
49 object/exe specified by the SegInfo, find ELF sections, then read
50 the symbols, line number info, file name info, CFA (stack-unwind
51 info) and anything else we want, into the tables within the
52 supplied SegInfo.
53*/
florian535fb1b2013-09-15 13:54:34 +000054extern Bool ML_(read_elf_debug_info) ( DebugInfo* di );
sewardjeadcd862006-04-04 15:12:44 +000055
56
57#endif /* ndef __PRIV_READELF_H */
58
59/*--------------------------------------------------------------------*/
60/*--- end ---*/
61/*--------------------------------------------------------------------*/