aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Fix possible null pointer dereference in MinidumpModule (following #32).mmentovai2006-12-061-9/+9
| | | | | | | | | r=waylonis http://groups.google.com/group/airbag-dev/browse_thread/thread/b684b775078d91ca git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@76 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Update reporting strings for exceptions (Issue 88)waylonis2006-12-062-6/+258
| | | | | | | Add time_date_stamp to process state. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@75 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Module API (#32). r=waylonis, brynermmentovai2006-12-0531-308/+1293
| | | | | | | | | | | | | | | | | | | - Introduces a standard API for dealing with modules. MinidumpModule is now a concrete implementation of this API. Code may interact with single modules using the CodeModule interface, and collections of modules using its container, the CodeModules interface. - CodeModule is used directly by SymbolSupplier implementations and SourceLineResolver. Reliance on the specific implementation in MinidumpModule has been eliminated. - Module lists are now added to ProcessState objects. Module references in each stack frame are now pointers to objects in these module lists. - The sample minidump_stackwalk tool prints the module list after printing all threads' stacks. http://groups.google.com/group/airbag-dev/browse_frm/thread/a9c0550edde54cf8 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@74 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Don't use CRT in exception handler code (#86). r=brynermmentovai2006-11-282-8/+14
| | | | | | | http://groups.google.com/group/airbag-dev/browse_thread/thread/f671277ebd6ea7fd git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@73 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Eliminate usage of vector<>[0] for 0-sized vectors in processor library (#84).mmentovai2006-11-271-112/+126
| | | | | | | | | r=bryner http://groups.google.com/group/airbag-dev/browse_thread/thread/8eb9277ac06425e3 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@72 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a crash when attempting to upload a zero-length dump file (#83) r=mmentovaibryner2006-11-271-3/+7
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@71 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Support GUID-less PDBs (#77). r=brynermmentovai2006-11-2110-3979/+128
| | | | | | | | | | | | - Handle MDCVInfoPDB20-based PDBs by outputting a signature instead of a guid in the MODULE line. - Identify the OS and CPU in the MODULE line. - Suppress multiple subsequent identical STACK WIN lines. http://groups.google.com/group/airbag-dev/browse_thread/thread/0f54e2c33ed5d82d git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@70 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Use the reentrant versions of strtok() and gmtime() (#79) r=mmentovaibryner2006-11-202-6/+7
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@69 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Removing erroneous svn:executable setting.mmentovai2006-11-181-0/+0
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@68 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Modify SimpleSymbolSupplier for easier sublcassing (#75).mmentovai2006-11-172-3/+9
| | | | | | | | | Patch by Ted Mielczarek <ted.mielczarek>. r=me http://groups.google.com/group/airbag-dev/browse_thread/thread/34690777576ccf7e git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@67 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move some inlined functions to .cc file. Add some assertions.waylonis2006-11-162-10/+18
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@66 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add minidump file writer. Tested on Mac, but should compile on POSIX systems.waylonis2006-11-163-0/+550
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@65 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Airbag client libraries should compile under MSVC .NET 2003/7.1 (#64).mmentovai2006-11-1510-31/+207
| | | | | | | | | r=bryner http://groups.google.com/group/airbag-dev/browse_thread/thread/b838faeb50f71818 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@64 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Limit use of default namespace in tests and utility programs (#71). r=brynermmentovai2006-11-099-29/+78
| | | | | | | | | | - main is now the only thing you'll find in the default namespace. Everything else has been moved into an unnamed namespace. http://groups.google.com/group/airbag-dev/browse_thread/thread/14130a0284a0307f git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@63 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Suppress handler thread from appearing in MinidumpProcessor's ProcessStatemmentovai2006-11-0616-15418/+22371
| | | | | | | | | | | | (#65). r=bryner - Interface change: (ProcessState).crash_thread is now requesting_thread and will be populated for non-crash dumps. If the requesting thread cannot be determined, requesting_thread is set to -1. http://groups.google.com/group/airbag-dev/browse_thread/thread/c422ec481a2db440 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@62 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Minidumps should indicate which thread generated the dump and which requestedmmentovai2006-11-063-3/+85
| | | | | | | | | dump generation (#57). r=bryner http://groups.google.com/group/airbag-dev/browse_thread/thread/f11758d171261184 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@61 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move headers for exported interfaces into src/google_airbag (#51). r=brynermmentovai2006-11-0633-113/+111
| | | | | | | http://groups.google.com/group/airbag-dev/browse_thread/thread/e01f177386e8794a git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@60 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Symbol file should contain module GUID at beginning (#66). r=brynermmentovai2006-11-0614-1635/+1718
| | | | | | | | | | | | | | | | - The dumped symbol format now begins with a MODULE line identifying the uuid, age, and name of the source pdb file. - The processor ignores MODULE lines, but they are useful in figuring out how to index symbol files in a symbol store. - dump_syms and symupload now both accept either a pdb or exe/dll and will read the pdb regardless. - Figured out that MSSS always represents a module's age in pathnames in hexadecimal, and updated SimpleSymbolSupplier to match. http://groups.google.com/group/airbag-dev/browse_thread/thread/572108d6567edd58 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@59 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix minor naming inconsistency (#67). r=mmentovaiwaylonis2006-11-023-47/+47
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@58 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Windows exception handler does not survive stack overflows (#34). r=brian,mmentovai2006-10-312-11/+145
| | | | | | | | | | | | thanks also to darin - All minidump writing is now done on a dedicated thread. When a stack overflow exception occurs, the only work that needs to be done on the exception thread will easily fit within the guard page. http://groups.google.com/group/airbag-dev/browse_thread/thread/3935e339d8354a75 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@57 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Disable exception handling warnings in Windows client code (#38).mmentovai2006-10-275-0/+24
| | | | | | | | | Patch by Ted Mielczarek. r=me http://groups.google.com/group/airbag-dev/browse_thread/thread/133814673f75d5fa git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@56 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add set_dump_path method to ExceptionHandler (#37). Patch by Ted Mielczarek.mmentovai2006-10-271-0/+4
| | | | | | | | | r=me http://groups.google.com/group/airbag-dev/browse_thread/thread/06167df948717f4d git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@55 4c0a9323-5329-0410-9bdc-e9ce6186880e
* minidump_stackwalk should use MinidumpProcessor (#64). r=brynermmentovai2006-10-271-0/+19
| | | | | | | | | | | | - Commit missing test data. http://groups.google.com/group/airbag-dev/browse_thread/thread/cce30a84f6b2d728 --This line, and .those below, will be ignored-- A src/processor/testdata/minidump2.stackwalk.out git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@54 4c0a9323-5329-0410-9bdc-e9ce6186880e
* minidump_stackwalk should use MinidumpProcessor (#64). r=brynermmentovai2006-10-2712-11648/+21846
| | | | | | | | | | | | | | | | | | | | | | | - minidump_stackwalk is now much more useful as a debugging tool and even as a standalone tool. - Reimplementation of minidump_stackwalk around MinidumpProcessor. - minidump_stackwalk displays all pertinent information returned by MinidumpProcessor in the ProcessState. - New PathnameStripper::File static utility method to display only the leaf file name in a pathname, cleaning up minidump_stackwalk's output. - New SimpleSymbolSupplier class, which implements a simple filesystem-based symbol supplier compatible with the layout used by Microsoft Symbol Server and its client cache. - minidump_stackwalk now accepts an optional second argument, a pathname to use as a symbol directory for a SimpleSymbolSupplier. - Updated test data to be compatible with SimpleSymbolSupplier, and added test data for kernel32.pdb. Test data converted from CRLF line endings to LF. http://groups.google.com/group/airbag-dev/browse_thread/thread/cce30a84f6b2d728 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@53 4c0a9323-5329-0410-9bdc-e9ce6186880e
* MinidumpProcessor uses the wrong context for non-crash threads (#62). r=brynermmentovai2006-10-261-1/+10
| | | | | | | http://groups.google.com/group/airbag-dev/browse_thread/thread/74743a397c52b7e2 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@52 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Support building with WIN32_LEAN_AND_MEAN (#60)mmentovai2006-10-2615-52/+171
| | | | | | | | | | | | | - All Windows code now builds with WIN32_LEAN_AND_MEAN by default. - Header inclusion is adjusted as needed. Remove use of UuidToString (#39) - Also breaks dependency on RpcStringFree and therefore rpcrt4.lib. r=bryner http://groups.google.com/group/airbag-dev/browse_thread/thread/30f844cfc7ccd37f git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@51 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add MDString to minidump_format.h (#59). r=brynermmentovai2006-10-261-2/+9
| | | | | | | http://groups.google.com/group/airbag-dev/browse_thread/thread/599a47765598cf34 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@50 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix minor style problems (#58). r=brynermmentovai2006-10-2524-68/+87
| | | | | | | http://groups.google.com/group/airbag-dev/browse_thread/thread/bbcecab979fa82bc git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@49 4c0a9323-5329-0410-9bdc-e9ce6186880e
* minidump_dump does not print MDRawSystemInfo::processor_revision. No bug.mmentovai2006-10-252-3/+3
| | | | | | | r=bryner git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@48 4c0a9323-5329-0410-9bdc-e9ce6186880e
* MinidumpProcessor should process all threads (#35). r=brynermmentovai2006-10-2410-28/+580
| | | | | | | | | | | | | | | | - MinidumpProcessor now processes all threads and returns a new ProcessState object. (Interface change.) - ProcessState contains a CallStack for each thread in the process, and additional information about whether the process crashed, which thread crashed, the reason for the crash, and identifying attributes for the OS and CPU. - MinidumpSystemInfo now contains a GetCPUVendor() method that returns the vendor information from CPUID 0 on x86 processors ("GenuineIntel"). http://groups.google.com/group/airbag-dev/browse_thread/thread/16dd2c981e3361ba git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@47 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Replace auto_ptr with scoped_ptr (#56). r=brynermmentovai2006-10-2310-47/+375
| | | | | | | http://groups.google.com/group/airbag-dev/browse_thread/thread/54c66451ed8e2835 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@46 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Make stack_frame_info vector hold linked_ptrs instead of objects;mmentovai2006-10-2315-143/+193
| | | | | | | | | | | | | make Stackwalker::Walk create and return a CallStack instead of filling a caller-supplied one (#54). r=bryner Interface change: Stackwalker::Walk and MinidumpProcessor::Process now return a new CallStack*. http://groups.google.com/group/airbag-dev/browse_thread/thread/d2bad5d7c115c3fe git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@45 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Update comments to reflect HTTPS support, r=mark.bryner2006-10-232-4/+4
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@44 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add PUBLIC support to SourceLineResolver (resolve function names in Windowsmmentovai2006-10-2013-30/+609
| | | | | | | | | | | system libraries) (#53) StackFrame::function_base is not populated (#49) r=bryner http://groups.google.com/group/airbag-dev/browse_thread/thread/a17d35348e7027bb git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@43 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Handle frame pointer omission, (#21), part 4 (final part!): FPO stackwalker.mmentovai2006-10-2031-1748/+2629
| | | | | | | | | | | | | r=bryner - This change allows Airbag to properly walk win32 stacks produced by code built with MSVC's frame pointer omission optimization (/Oy). This optimization is enabled at /O1 and /O2. - There too many interface and file format changes to list here. http://groups.google.com/group/airbag-dev/browse_thread/thread/85ce85bfa8457ece git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@42 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Improvements for Windows client/tool-side code. r=brynermmentovai2006-10-192-14/+32
| | | | | | | | | | | | | - Allow Windows sender to use https (#41). - HTTPUpload not proxy-friendly (#46). - Check http status codes (sort of #44). - Allow symupload to work with versionless files (prints a warning, server may still reject). http://groups.google.com/group/airbag-dev/browse_thread/thread/5a12a72dffc5999c git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@41 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Reduce calls to SymbolSupplier::GetSymbolFile() (#48).bryner2006-10-164-5/+16
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@40 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Implement a tool to upload symbols on Windows, given an exe or dll file withbryner2006-10-1611-470/+1046
| | | | | | | | debugging info. Refactor common code into HTTPUpload so that the multipart POST request code can be shared with CrashReportSender. #47 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@39 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Handle frame pointer omission (#21), part 3: SourceLineResolver and ↵mmentovai2006-09-2812-50/+1309
| | | | | | | | | | | | | | | | | | | PDBSourceLineWriter changes. r=bryner. - PDBSourceLineWriter (dump_syms) outputs stack frame debugging information - SourceLineResolver reads the new information and puts it into a new StackFrameInfo structure, which is stored in a ContainedRangeMap. FillSourceLineInfo passes the StackFrameInfo back to the caller. - The base Stackwalker makes StackFrameInfo data available to subclasses during stackwalking, but does not use this information directly itself. Stackwalkers may access stack_frame_info_ for enhanced stackwalking (this will be part 4). - New test data for the updated dumped-symbol format http://groups.google.com/group/airbag-dev/browse_thread/thread/735f191c9a1a1de4 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@38 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add static-CRT build configurations. Get rid of the largely redundant README,bryner2006-09-286-22/+264
| | | | | | | | moving the linkage comments to the corresponding headers. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@37 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Initial version of Windows exception handler and crash report sender classesbryner2006-09-278-0/+1048
| | | | | | | (#31). r=mmentovai. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@36 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Better testing for Stackwalker (#18). r=brynermmentovai2006-09-251-0/+252
| | | | | | | | | | | | | | - Test StackwalkerX86 and StackwalkerPPC on the current process, if built by a supported compiler (gcc) on a supported (walkable) CPU (x86, ppc). - This test is not enabled by default because of certain optimizations that interfere with it (stack frame reuse, frame pointer omission). See the comments at the top of stackwalker_selftest.cc. To enable this test in the standard "make check" suite, configure with --enable-selftest. http://groups.google.com/group/airbag-dev/browse_thread/thread/2ca1c8e72c809bec git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@35 4c0a9323-5329-0410-9bdc-e9ce6186880e
* ppc stackwalker (#30). r=brynermmentovai2006-09-259-73/+319
| | | | | | | | | | | | - Implementation of PowerPC stackwalker. Tested using stackwalker_selftest (#18). - Hook up processor-side multi-CPU support in MinidumpProcessor and minidump_stackwalk using the new Stackwalker::StackwalkerForCPU method. http://groups.google.com/group/airbag-dev/browse_thread/thread/1c2fa7c5182a77a9 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@34 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add ppc support to minidump reader (#27). r=bryner.mmentovai2006-09-225-118/+415
| | | | | | | | | | | | - Uses new MDRawContextPPC structure from #25. - Interface change: (MinidumpContext).context() replaced with GetContextCPU to determine CPU type and GetContextX86/GetContextPPC to get CPU-specific context. http://groups.google.com/group/airbag-dev/browse_thread/thread/f6c2e9cab2832b4c git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@33 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Handle frame pointer omission (#21), part 2: PostfixEvaluator. r=bryner.mmentovai2006-09-223-0/+627
| | | | | | | | | | | - A postfix (reverse-Polish) notation expression evaluator that we can feed stack-frame debug information into, crank, and get pointers to the calling frame from. http://groups.google.com/group/airbag-dev/browse_thread/thread/a1d6c5d1fd5fdcb9 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@32 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Relicense to BSD (#29). r=brynermmentovai2006-09-2038-291/+845
| | | | | | | http://groups.google.com/group/airbag-dev/browse_thread/thread/5f19f13fc172c4e0 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@31 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Improve documentation in minidump_format.h (#28). r=brynermmentovai2006-09-201-83/+319
| | | | | | | http://groups.google.com/group/airbag-dev/browse_thread/thread/17840a32fb296638 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@30 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Handle frame pointer omission (#21), part 1: ContainedRangeMap. r=bryner.mmentovai2006-09-208-71/+632
| | | | | | | | | | | | | - ContainedRangeMap is the data structure that will be used to store and look up debugging information for frames by instruction address. The debugging information includes a way to locate the calling frame in the absence of a saved frame pointer. - Restructure RangeMap into an -inl file to match ContainedRangeMap. http://groups.google.com/group/airbag-dev/browse_thread/thread/c5823bfc1828ed42 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@29 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add ppc types to minidump_format.h (#25). r=waylonismmentovai2006-09-202-35/+178
| | | | | | | | | | | | | | - New MDRawContextPPC struct, based on ppc_thread_state and others in mach/ppc/_types.h. - Add (defining where necessary) MDCPUArchitecture and MDOSPlatform enums to support non-x86/win dumps. Add MD_CONTEXT_* definitions for non-x86 CPUs. - Document a few more fields. http://groups.google.com/group/airbag-dev/browse_thread/thread/963028fc01547851 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@28 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Follow-up to #26: get rid of supplier_data, it's not really needed sincebryner2006-09-209-43/+16
| | | | | | | the caller can implement their own supplier object. r=mmentovai. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@27 4c0a9323-5329-0410-9bdc-e9ce6186880e