aboutsummaryrefslogtreecommitdiffstats
path: root/system_cmds/zlog.tproj/SymbolicationHelper.h
blob: f9d90c5e6e155f70b60fe0c0651add90b5f10d1c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//
//  SymbolicationHelper.h
//  zlog
//
//  Created by Rasha Eqbal on 2/26/18.
//

#ifndef SymbolicationHelper_h
#define SymbolicationHelper_h

#include <CoreFoundation/CoreFoundation.h>
#include <CoreSymbolication/CoreSymbolication.h>

/*
 * Call this function on each address that needs to be symbolicated.
 *
 * sym: The CSSymbolicatorRef which will be used for symbolication. For example, to symbolicate
 *      kernel addresses create a CSSymbolicatorRef by calling CSSymbolicatorCreateWithMachKernel().
 * addr: The address that needs to be symbolicated.
 * binaryImages: The dictionary that aggregates binary image info for offline symbolication.
 */
void PrintSymbolicatedAddress(CSSymbolicatorRef sym, mach_vm_address_t addr, CFMutableDictionaryRef binaryImages);

/*
 * Call this function to dump binary image info required for offline symbolication.
 *
 * binaryImages: The dictionary that stores this info.
 *
 * The preferred way to use this is to create a CFMutableDictionaryRef with a call to CFDictionaryCreateMutable()
 * and pass it in to PrintSymbolicatedAddress() when symbolicating addresses. This will auto-populate the dictionary,
 * which just needs to be passed in here to print the relevant information.
 */
void PrintBinaryImagesInfo(CFMutableDictionaryRef binaryImages);

#endif /* SymbolicationHelper_h */