aboutsummaryrefslogtreecommitdiff
path: root/src/common/mac
Commit message (Collapse)AuthorAgeFilesLines
* Support symbol dumping for ARMV8 iOS apps.qsr@chromium.org2013-10-152-0/+37
| | | | | | | | | | | | | | | In my testing, ARM V8 object files and ARM V8 slices of universal binaries do not contain debug_frame sections (at least at this time), and hence dump_syms does not output CFI for ARM V8 even in the absence of the "-c" flag. Patch by:blundell@chromium.org BUG=542 R=qsr@chromium.org Review URL: https://breakpad.appspot.com/642002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1222 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Always read CFI section, even when not outputing CFI information.qsr@chromium.org2013-05-161-8/+6
| | | | | | | | | | | | On iOS at least, the CFI section contains information needed to correctly dump the symbols. Even if the CFI section is not dumped, reading it is necessary to get correcty symbolication. R=mark@chromium.org, ted.mielczarek@gmail.com Review URL: https://breakpad.appspot.com/596002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1182 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix following r1175: the section name is __debug_info, not .debug_info.mark@chromium.org2013-05-091-1/+1
| | | | | | Review URL: https://breakpad.appspot.com/583003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1178 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix mac dump_syms after r1163.thestig@chromium.org2013-05-082-15/+31
| | | | | | | | R=mark@chromium.org Review URL: https://breakpad.appspot.com/592002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1175 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Rewrite SimpleStringDictionary with NonAllocatingMap.rsesek@chromium.org2013-04-241-0/+1
| | | | | | | | | | | NonAllocatingMap has a near-identical interface, but is significantly less code, more customizable, and has storage that is POD. BUG=http://code.google.com/p/chromium/issues/detail?id=77656 Review URL: https://breakpad.appspot.com/568002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1161 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move SimpleStringDictionary from common/mac/ to just common/.rsesek@chromium.org2013-04-182-328/+0
| | | | | | | | | | | | This also cleans up some things like the file name, trailing whitespace, and making the test use gtest instead of sentest, since there's nothing Mac specific about this. BUG=https://code.google.com/p/chromium/issues/detail?id=77656 Review URL: https://breakpad.appspot.com/561003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1154 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Provide a ReadSymbolData API for Mac dump_symsted.mielczarek@gmail.com2013-03-062-5/+29
| | | | | | R=mark at https://breakpad.appspot.com/522002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1128 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow reading just CFI data when reading symbolsted.mielczarek@gmail.com2013-03-062-18/+33
| | | | | | R=thestig at https://breakpad.appspot.com/517002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1124 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Use stdint types everywhereted.mielczarek@gmail.com2013-03-061-4/+4
| | | | | | R=mark at https://breakpad.appspot.com/535002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1121 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Include the compilation directory for FILE entries, making them absolute ↵ted.mielczarek@gmail.com2013-01-231-4/+10
| | | | | | | | instead of relative A=Ryan Sleevi <rsleevi@chromium.org> R=mark,ted at https://breakpad.appspot.com/385001/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1106 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move scoped_ptr.h to commonted.mielczarek@gmail.com2013-01-171-1/+1
| | | | | | R=mark at https://breakpad.appspot.com/509002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1096 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Update dump_syms to correctly filter on cpu subtype.qsr@chromium.org2012-10-048-62/+90
| | | | | | | Right now, if an archive contain multiple executable for the same CPU but with different subtype, there is no way to dump any but the first one. Review URL: https://breakpad.appspot.com/476002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1061 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add custom implementation of NXGetArchInfoXXX to allow adding new arch.qsr@chromium.org2012-10-033-7/+135
| | | | | | | | | NXGetArchInfoXXX depends on the OS knowledge of architecture. This CL adds a custom implementation of those methods to be able to handle newer CPU before they are handled by the OS. It also add handling for armv7s architecture. Review URL: https://breakpad.appspot.com/475002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1057 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Turn on more warnings in ios / mac projects.qsr@chromium.org2012-09-212-3/+5
| | | | | | | | | | | | | | | Make casts explicit. This makes casts that loose precision explicit, from here on we will get warnings. The changes in this commit are made without evaluating each cast, asuming the original casts were intentional. Patch by: jakerr@google.com Review: https://breakpad.appspot.com/453002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1046 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Update GTM files to latest fromqsr@chromium.org2012-09-215-600/+1256
| | | | | | | | | | http://google-toolbox-for-mac.googlecode.com/svn/trunk/ Patch by: jakerr@google.com Review: https://breakpad.appspot.com/452002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1045 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Getting context information from the kernel when catching a SIGABRT on iOS.qsr@chromium.org2012-08-201-8/+0
| | | | | | | | | Until now, the context information was the current one when receiving a SIGABRT. This is mainly wrong because the signal handler start in a new context. This instead use the context passed to the signal handler. Review URL: https://breakpad.appspot.com/435002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1015 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fixing HTTPMultipartUpload.qsr@chromium.org2012-05-151-2/+2
| | | | | | | | The ending boundary for multipart must replace the last boundary, not added after it. Review URL: https://breakpad.appspot.com/390002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@965 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Bits necessary to send the reports along with the minidumps.mark@chromium.org2012-05-111-1/+4
| | | | | | | | | | | | | | | | Currently the log file and the minidump are uploaded in two consequent requests, thus they get different report ids and it's hard to associate them to each other. This CL makes the crash uploader send the minidump and the log file together in a single multipart request, so that they have the same report id and are accessible from the same landing page. Patch by Alexander Potapenko <glider@chromium.org> Review URL: https://breakpad.appspot.com/387003/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@963 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move away from the 10.4 SDK.mark@chromium.org2012-02-211-2/+0
| | | | | | Review URL: https://breakpad.appspot.com/351001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@922 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Funnel all bootstrap_register calls through a routine that doesn't care thatmark@chromium.org2012-02-213-3/+101
| | | | | | | | | it's deprecated. Apple marked bootstrap_register as deprecated on 10.5 but it's actually still needed on that OS release. There isn't a way to get the functionality Breakpad needs from it without calling it until 10.6. Review URL: https://breakpad.appspot.com/350001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@921 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Correct compilation warning.qsr@chromium.org2011-11-231-1/+3
| | | | | | | | | 1) Modify src/common/mac/macho_walker.cc to remove a signed vs unsigned comparison. 2) Replace mktemp in test using AutoTmpDir that has been moved from client/mac/tests to common/tests. Review URL: http://breakpad.appspot.com/328001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@888 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Rename md5.c to md5.cc, put its contents inside the google_breakpad namespace.ted.mielczarek2011-11-182-1/+5
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@887 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Correct incorrect bounds checking.qsr@chromium.org2011-10-201-2/+2
| | | | | | Review URL: http://breakpad.appspot.com/319002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@874 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow to retrieve id of a module from memory instead of going to disk for iOS.qsr@chromium.org2011-10-204-24/+77
| | | | | | | | Allow macho_id and macho_walker to read data from memory. Wire up this when reading module on iOS. Review URL: http://breakpad.appspot.com/319001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@873 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Handling reading arm executable.qsr@chromium.org2011-10-121-0/+6
| | | | | | | | Because CPU_TYPE_ARM is not defined on Mac OSX 10.4, I have to redefine the variable to the correct value. Review URL: http://breakpad.appspot.com/310004 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@867 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Use right header.qsr@chromium.org2011-10-101-1/+1
| | | | | | | Code was pulling Cocoa dependency, when Foundation is enough. Review URL: http://breakpad.appspot.com/310001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@854 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Extracting the config file class from the Inspector to be able to reuse it.qsr@chromium.org2011-10-102-3/+3
| | | | | | | | | This will be needed for iOS implementation, where the Inspector won't be used, but where a config file will still be needed, because the uploads won't happen just after the crash, but on a next run. Review URL: http://breakpad.appspot.com/309001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@852 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix some compilation warnings and other errors due to API changesmark@chromium.org2011-09-291-1/+2
| | | | | | Review URL: http://breakpad.appspot.com/305002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@841 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Linux/Mac: Add option to omit the CFI section in dump_syms.thestig@chromium.org2011-09-142-36/+36
| | | | | | Review URL: http://breakpad.appspot.com/304001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@835 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix clang warnings.mark@chromium.org2011-08-111-6/+0
| | | | | | Review URL: http://breakpad.appspot.com/298002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@823 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Wean Mac Breakpad off of its OpenSSL libcrypto dependency.mark@chromium.org2011-07-273-49/+14
| | | | | | | | | | | | | | | | | | This libcrypto dependency sucks. Linking against OpenSSL is sort of broken in certain Mac OS X SDKs. libcrypto was only being used to provide an MD5 implementation. Breakpad already has its own MD5 implementation, so just use that instead. To be perfectly honest, on modern systems, nothing should be making MD5 hashes of modules anyway, because everything has an embedded LC_UUID. The project file changes just remove libcrypto and add md5.c as needed. A bonus (and untested) fix for on_demand_symbol_supplier.mm is included to account for changes in r794. Review URL: http://breakpad.appspot.com/296001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@819 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Switch mac DumpSymbols::WriteSymbolFile to take an ostream instead of a ↵ted.mielczarek2011-07-262-2/+4
| | | | | | | | FILE* to match the changes to Module::Write R=mark at http://breakpad.appspot.com/294001/show git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@818 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Use STABS as the debugging format when using GCC 4.0 and the 10.4 SDK.mmentovai2010-11-081-0/+1
| | | | | | | Ref. http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/51c7715953b3904d git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@726 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Put MachIPC into the google_breakpad namespaceted.mielczarek@gmail.com2010-08-162-0/+6
| | | | | | R=mark at http://breakpad.appspot.com/151001/show git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@650 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Implement CrashGeneration{Client,Server} for OOP dump generation on OS X, ↵ted.mielczarek@gmail.com2010-08-133-5/+64
| | | | | | | | enable OOP dump generation in ExceptionHandler R=mark at http://breakpad.appspot.com/146001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@646 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Breakpad uses x86 as the architecture name, not i386. Most tools don't caremark@chromium.org2010-08-061-2/+6
| | | | | | | | | | | | | | | what architecture name is shown in a symbol file's MODULE line, but the Mac crash_report tool's on_demand_symbol_supplier does. The new Mac dumper inadvertently used i386. Correct that to make it x86. Temporarily make the on_demand_symbol_supplier accept symbol files whose architecture is i386. Also add x86_64 to the set of architectures that the on_demand_symbol_supplier considers valid. BUG=none TEST=none Review URL: http://breakpad.appspot.com/143001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@638 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Review: http://breakpad.appspot.com/136001dmaclach2010-07-281-6/+6
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@633 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Clean up build for 64 bit.dmaclach2010-07-1915-32/+193
| | | | | | | | | | | Fix up some broken mac projects. Consolidate project settings in xcconfig files. http://breakpad.appspot.com/130001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@627 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Breakpad Mac symbol dumper: Unify with Linux dumper; support DWARF CFI.ted.mielczarek2010-06-253-1209/+536
| | | | | | | | | | | | | | | | | | | | | | | | This patch rewrites the Mac symbol dumper to use the same set of classes the Linux dumper does for reading debugging information from various sources, consolidating them into a single table, and writing that out as a Breakpad symbol file. In the process, it also adds support for dumping DWARF call frame information and .eh_frame exception-handling information as Breakpad 'STACK CFI' records. This allows the Breakpad processor to generate stack traces from code compiled with -fomit-frame-pointer. The patch also replaces the DumpSymbols Objective C++ class with google_breakpad::DumpSymbols, a plain C++ class. The code still uses some Objective C++ to use the Foundation facilities for dealing with file names in a file-system-independent fashion, and for examining the contents of .dSYM bundles. Since the code has been entirely rewritten, I have changed the author lines. A=jimb R=mark git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@614 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Breakpad Mac symbol dumper: Add new Mach-O reader class.ted.mielczarek2010-06-253-0/+2881
| | | | | | | | | | | | | | | | This patch adds files defining new classes in the google_breakpad::Mach_O namespace for parsing fat binaries and Mach-O files. These are used in the new dumper to handle STABS debugging information, DWARF call frame information, and .eh_frame exception handling stack walking information. These new classes are independent of endianness and word size, and therefore can be used on binaries of all the relevant architectures: x86, x86_64, ppc, and ARM. The patch adds a complete set of unit tests for the new classes. A=jimb R=mark (http://breakpad.appspot.com/93001/show, http://breakpad.appspot.com/115001/show) git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@610 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Breakpad Mac Dumper: Fix compilation warnings on OS X 10.6jimblandy2010-05-053-30/+80
| | | | | | | | | | | | | | | | | Breakpad's Macintosh symbol dumper uses deprecated functions for dealing with mixed-endianness code. This patch provides an overloaded function, ByteSwap, that automatically chooses the OSSwap* functions from <libkern/OSByteOrder.h> appropriate for its argument's size. This patch does *not* address warnings in src/common/mac/dump_syms.mm, because that code is about to be replaced entirely; there's no reason to bother reviewing a big, detailed patch against it. a=jimblandy, r=mark git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@589 4c0a9323-5329-0410-9bdc-e9ce6186880e
* issue 372 - fix Mac OS X minidump generation code to handle x86-64 properly. ↵ted.mielczarek2010-04-293-5/+9
| | | | | | r=mark at http://breakpad.appspot.com/103001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@578 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Issue 39002: Breakpad DWARF parser: Move DWARF parser to ↵jimblandy@gmail.com2009-12-1512-2564/+4
| | | | | | | | | | | | | | | | platform-independent directory. Move the DWARF parser, and the functioninfo.cc DWARF consumer, from src/common/mac/dwarf to src/commmon/dwarf, so that it can be shared between the Mac and Linux dumpers. Fix up #include directives, multiple inclusion protection macros, and Xcode build files. a=jimblandy, r=nealsid git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@446 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Issue 32002: Breakpad DWARF parser: Update char decls to be signedjimblandy@gmail.com2009-10-081-17/+23
| | | | | | | | a=jimblandy r=nealsid git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@410 4c0a9323-5329-0410-9bdc-e9ce6186880e
* 10.6 SDK compatibility fixes. No bug.mmentovai2009-10-064-2/+8
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@407 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Breakpad: Don't use the deprecated __gnu_cxx::hash_map container.jimblandy@gmail.com2009-09-035-46/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Modern GNU compilers warn about the #inclusion of <ext/hash_map>; that container is deprecated, and code should use <tr1/unordered_map> instead. However, to stay within the boundaries of C++ '98, it's probably fine just to use plain old std::map. Breakpad uses hash_map in three cases: o The DWARF reader's SectionMap type maps object file section names to data. This map is consulted once per section kind per DWARF compilation unit; it is not performance-critical. o The Mac dump_syms tool uses it to map machine architectures to section maps in Universal binaries. It's hard to imagine there ever being more than two entries in such a map. o The processor's BasicSourceLineResolver uses a hash_map to map file numbers to file names. This is the map that will probably have the most entries, but it's only accessed once per frame, after we've found the frame's line entry. a=jimblandy r=nealsid git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@393 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Provide a real std::string hash, not just a forward declaration for somethingmmentovai2009-08-201-8/+19
| | | | | | | | | | | that doesn't exist. TBR=nealsid Code review URL: http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/292f9ed79dfdbdde git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@391 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix for http://breakpad.appspot.com/18009 - run dump_syms on both PPC & i386 ↵nealsid2009-07-171-4/+11
| | | | | | | | | | | machines correctly, and process STABS/DWARF information in the same binary R=stuart morgan A=nealsid git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@359 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Incorporate feedback from first Breakpad integration.nealsid2009-04-061-1/+1
| | | | | | | | | | | | | | | | | | | | This upload fixes five issues: 1) Preston's email was hardcoded in the xib :-( 2) Changed from xib to NIB to facilitate Tiger building 3) Changed the logs location to be user specifiable by BreakpadMinidumpLocation key, or ~/Library/Breakpad/<BREAKPAD_PRODUCT> by default 4) Fixed GTM Defines problem in order to build on Tiger 5) Also set CFBundleIcon in the sender program correctly, and updated plist, and renamed ReporterIcons to crash_report_sendER.ICNS. However the rietveld upload script doesn't appear to pick up renamed files correctly, so that file doesn't show up in the patch upload. Also various comments were updated for accuracy. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@323 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Open sourcing the Breakpad framework from Google. nealsid2009-04-0110-0/+3513
| | | | | | | | | A=many, many people R=nealsid, jeremy moskovich(from Chromium project) git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@322 4c0a9323-5329-0410-9bdc-e9ce6186880e