1
2/*--------------------------------------------------------------------*/
3/*--- Reading of syms & debug info from PDB-format files.          ---*/
4/*---                                               priv_readpdb.h ---*/
5/*--------------------------------------------------------------------*/
6
7/*
8   This file is part of Valgrind, a dynamic binary instrumentation
9   framework.
10   Spring 2008:
11      derived from readelf.c and valgrind-20031012-wine/vg_symtab2.c
12      derived from wine-1.0/tools/winedump/pdb.c and msc.c
13
14   Copyright (C) 2000-2013 Julian Seward
15      jseward@acm.org
16
17   This program is free software; you can redistribute it and/or
18   modify it under the terms of the GNU General Public License as
19   published by the Free Software Foundation; either version 2 of the
20   License, or (at your option) any later version.
21
22   This program is distributed in the hope that it will be useful, but
23   WITHOUT ANY WARRANTY; without even the implied warranty of
24   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
25   General Public License for more details.
26
27   You should have received a copy of the GNU General Public License
28   along with this program; if not, write to the Free Software
29   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
30   02111-1307, USA.
31
32   The GNU General Public License is contained in the file COPYING.
33*/
34
35#if defined(VGO_linux) || defined(VGO_darwin)
36
37#ifndef __PRIV_READPDB_H
38#define __PRIV_READPDB_H
39
40#include "pub_core_basics.h"     // Addr
41#include "pub_core_debuginfo.h"  // DebugInfo
42
43/* Returns True if OK, False for any kind of failure. */
44extern Bool ML_(read_pdb_debug_info)(
45               DebugInfo* di,
46               Addr       obj_avma,
47               PtrdiffT   obj_bias,
48               void*      pdbimage,
49               SizeT      n_pdbimage,
50               HChar*     pdbname,
51               ULong      pdbmtime
52            );
53
54/* Finds the name of the PDB file that's embedded with the specified
55   PE file, or NULL on failure.  Caller deallocates with
56   ML_(dinfo_free). */
57HChar* ML_(find_name_of_pdb_file)( HChar* pename );
58
59
60#endif /* ndef __PRIV_READPDB_H */
61
62#endif // defined(VGO_linux) || defined(VGO_darwin)
63
64/*--------------------------------------------------------------------*/
65/*--- end                                                          ---*/
66/*--------------------------------------------------------------------*/
67