1f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
2f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/*--------------------------------------------------------------------*/
3f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/*--- Reading of syms & debug info from Mach-O files.              ---*/
4f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/*---                                             priv_readmacho.h ---*/
5f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/*--------------------------------------------------------------------*/
6f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
7f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/*
8f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   This file is part of Valgrind, a dynamic binary instrumentation
9f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   framework.
10f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
11f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   Copyright (C) 2006 Apple Inc.
12f76d27a697a7b0bf3b84490baf60623fc96a23afnjn      Greg Parker  gparker@apple.com
13f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
14f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   This program is free software; you can redistribute it and/or
15f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   modify it under the terms of the GNU General Public License as
16f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   published by the Free Software Foundation; either version 2 of the
17f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   License, or (at your option) any later version.
18f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
19f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   This program is distributed in the hope that it will be useful, but
20f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   WITHOUT ANY WARRANTY; without even the implied warranty of
21f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
22f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   General Public License for more details.
23f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
24f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   You should have received a copy of the GNU General Public License
25f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   along with this program; if not, write to the Free Software
26f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
27f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   02111-1307, USA.
28f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
29f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   The GNU General Public License is contained in the file COPYING.
30f76d27a697a7b0bf3b84490baf60623fc96a23afnjn*/
31f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
32f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#ifndef __PRIV_READMACHO_H
33f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#define __PRIV_READMACHO_H
34f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
35535fb1b49a80f2e880f755ee618381de3e222ddfflorian#include "pub_core_basics.h"     // SizeT
36535fb1b49a80f2e880f755ee618381de3e222ddfflorian#include "pub_core_debuginfo.h"  // DebugInfo
37535fb1b49a80f2e880f755ee618381de3e222ddfflorian
38f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/* Identify a Mach-O object file by peering at the first few bytes of
39f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   it. */
40f76d27a697a7b0bf3b84490baf60623fc96a23afnjnextern Bool ML_(is_macho_object_file)( const void* buf, SizeT size );
41f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
42f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/* The central function for reading Mach-O debug info.  For the
43f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   object/exe specified by the DebugInfo, find Mach-O sections, then read
44f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   the symbols, line number info, file name info, CFA (stack-unwind
45f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   info) and anything else we want, into the tables within the
46f76d27a697a7b0bf3b84490baf60623fc96a23afnjn   supplied DebugInfo.
47f76d27a697a7b0bf3b84490baf60623fc96a23afnjn*/
48535fb1b49a80f2e880f755ee618381de3e222ddfflorianextern Bool ML_(read_macho_debug_info) ( DebugInfo* si );
49f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
50f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
51f76d27a697a7b0bf3b84490baf60623fc96a23afnjn#endif /* ndef __PRIV_READMACHO_H */
52f76d27a697a7b0bf3b84490baf60623fc96a23afnjn
53f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/*--------------------------------------------------------------------*/
54f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/*--- end                                                          ---*/
55f76d27a697a7b0bf3b84490baf60623fc96a23afnjn/*--------------------------------------------------------------------*/
56