mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2026-01-06 22:48:30 +01:00
Added DWARF support to Breakpad client. Thanks to Google for open sourcing their DWARF code!
Modified dump_syms to detect dSYM bundles or a binary with DWARF data appropriately, and convert data from DWARF reader to dump_syms native structures R=danny.berlin (original writer of DWARF code) git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@286 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
parent
a509f4ec4b
commit
cb4aa6b804
21 changed files with 8525 additions and 31 deletions
|
|
@ -30,9 +30,14 @@
|
|||
// dump_syms.h: Interface for DumpSymbols. This class will take a mach-o file
|
||||
// and extract the symbol information and write it to a file using the
|
||||
// breakpad symbol file format.
|
||||
// NOTE: Only Stabs format is currently supported -- not DWARF.
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#include <mach-o/loader.h>
|
||||
#include "common/mac/dwarf/dwarf2reader.h"
|
||||
|
||||
// This will map from an architecture string to a SectionMap, which
|
||||
// will contain the offsets for all the sections in the dictionary
|
||||
typedef hash_map<string, dwarf2reader::SectionMap *> ArchSectionMap;
|
||||
|
||||
@interface DumpSymbols : NSObject {
|
||||
@protected
|
||||
|
|
@ -43,8 +48,9 @@
|
|||
NSMutableDictionary *sources_; // Address and Source file paths (STRONG)
|
||||
NSMutableArray *cppAddresses_; // Addresses of C++ symbols (STRONG)
|
||||
NSMutableDictionary *headers_; // Mach-o header information (STRONG)
|
||||
NSMutableDictionary *sectionNumbers_; // Keyed by seg/sect name (STRONG)
|
||||
NSMutableDictionary *sectionData_; // Keyed by seg/sect name (STRONG)
|
||||
uint32_t lastStartAddress_;
|
||||
ArchSectionMap *sectionsForArch_;
|
||||
}
|
||||
|
||||
- (id)initWithContentsOfFile:(NSString *)machoFile;
|
||||
|
|
@ -61,3 +67,14 @@
|
|||
- (BOOL)writeSymbolFile:(NSString *)symbolFilePath;
|
||||
|
||||
@end
|
||||
|
||||
@interface MachSection : NSObject {
|
||||
@protected
|
||||
struct section *sect_;
|
||||
uint32_t sectionNumber_;
|
||||
}
|
||||
- (id)initWithMachSection:(struct section *)sect andNumber:(uint32_t)sectionNumber;
|
||||
- (struct section*)sectionPointer;
|
||||
- (uint32_t)sectionNumber;
|
||||
|
||||
@end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue