mmentovai
28e5990b57
Fix possible null pointer dereference in MinidumpModule (following #32 ).
...
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
2006-12-06 05:03:48 +00:00
waylonis
daf4211942
Update reporting strings for exceptions (Issue 88)
...
Add time_date_stamp to process state.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@75 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-12-06 04:58:27 +00:00
mmentovai
db3342a10e
Module API ( #32 ). r=waylonis, bryner
...
- 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
2006-12-05 22:52:28 +00:00
mmentovai
ed61ae0bbd
Don't use CRT in exception handler code ( #86 ). r=bryner
...
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
2006-11-28 19:47:44 +00:00
mmentovai
373c49b416
Eliminate usage of vector<>[0] for 0-sized vectors in processor library ( #84 ).
...
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
2006-11-27 21:42:07 +00:00
bryner
c297c50f83
Fix a crash when attempting to upload a zero-length dump file ( #83 ) r=mmentovai
...
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@71 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-11-27 18:38:39 +00:00
mmentovai
4365e2fe41
Support GUID-less PDBs ( #77 ). r=bryner
...
- 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
2006-11-21 16:58:36 +00:00
bryner
042ca733d3
Use the reentrant versions of strtok() and gmtime() ( #79 ) r=mmentovai
...
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@69 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-11-20 20:58:10 +00:00
mmentovai
7a983e94d0
Removing erroneous svn:executable setting.
...
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@68 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-11-18 23:37:52 +00:00
mmentovai
7573d1dd44
Modify SimpleSymbolSupplier for easier sublcassing ( #75 ).
...
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
2006-11-17 18:50:19 +00:00
waylonis
9e586c173e
Move some inlined functions to .cc file. Add some assertions.
...
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@66 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-11-16 22:43:57 +00:00
waylonis
ff480d4b4b
Add minidump file writer. Tested on Mac, but should compile on POSIX systems.
...
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@65 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-11-16 21:52:18 +00:00
mmentovai
73cd14b4af
Airbag client libraries should compile under MSVC .NET 2003/7.1 ( #64 ).
...
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
2006-11-15 22:24:42 +00:00
mmentovai
8647dde8cc
Limit use of default namespace in tests and utility programs ( #71 ). r=bryner
...
- 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
2006-11-09 17:04:56 +00:00
mmentovai
76f052f8fb
Suppress handler thread from appearing in MinidumpProcessor's ProcessState
...
(#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
2006-11-06 23:00:19 +00:00
mmentovai
5ac32b6534
Minidumps should indicate which thread generated the dump and which requested
...
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
2006-11-06 20:54:19 +00:00
mmentovai
fe82bf24a9
Move headers for exported interfaces into src/google_airbag ( #51 ). r=bryner
...
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
2006-11-06 19:39:47 +00:00
mmentovai
80866e7945
Symbol file should contain module GUID at beginning ( #66 ). r=bryner
...
- 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
2006-11-06 19:34:19 +00:00
waylonis
e47047b383
Fix minor naming inconsistency ( #67 ). r=mmentovai
...
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@58 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-11-02 01:02:39 +00:00
mmentovai
b261019951
Windows exception handler does not survive stack overflows ( #34 ). r=brian,
...
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
2006-10-31 16:49:38 +00:00
mmentovai
12a5245bfe
Disable exception handling warnings in Windows client code ( #38 ).
...
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
2006-10-27 19:47:21 +00:00
mmentovai
1bff57e589
Add set_dump_path method to ExceptionHandler ( #37 ). Patch by Ted Mielczarek.
...
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
2006-10-27 16:10:55 +00:00
mmentovai
6b9955cc42
minidump_stackwalk should use MinidumpProcessor ( #64 ). r=bryner
...
- 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
2006-10-27 00:41:52 +00:00
mmentovai
c34850a202
minidump_stackwalk should use MinidumpProcessor ( #64 ). r=bryner
...
- 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
2006-10-27 00:40:56 +00:00
mmentovai
f944ba3fbb
MinidumpProcessor uses the wrong context for non-crash threads ( #62 ). r=bryner
...
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
2006-10-26 23:09:02 +00:00
mmentovai
29401d2457
Support building with WIN32_LEAN_AND_MEAN ( #60 )
...
- 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
2006-10-26 18:06:43 +00:00
mmentovai
aa57b8e3de
Add MDString to minidump_format.h ( #59 ). r=bryner
...
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
2006-10-26 00:27:00 +00:00
mmentovai
80e98391dc
Fix minor style problems ( #58 ). r=bryner
...
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
2006-10-25 21:25:41 +00:00
mmentovai
0a7e6bf16c
minidump_dump does not print MDRawSystemInfo::processor_revision. No bug.
...
r=bryner
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@48 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-10-25 19:41:56 +00:00
mmentovai
e5468b8a49
MinidumpProcessor should process all threads ( #35 ). r=bryner
...
- 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
2006-10-24 19:31:21 +00:00
mmentovai
2466d8e993
Replace auto_ptr with scoped_ptr ( #56 ). r=bryner
...
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
2006-10-23 20:25:42 +00:00
mmentovai
d119a921ea
Make stack_frame_info vector hold linked_ptrs instead of objects;
...
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
2006-10-23 19:24:58 +00:00
bryner
7772046297
Update comments to reflect HTTPS support, r=mark.
...
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@44 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-10-23 17:50:59 +00:00
mmentovai
2fc823f579
Add PUBLIC support to SourceLineResolver (resolve function names in Windows
...
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
2006-10-20 19:50:01 +00:00
mmentovai
246f406828
Handle frame pointer omission, ( #21 ), part 4 (final part!): FPO stackwalker.
...
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
2006-10-20 01:46:38 +00:00
mmentovai
5afd60b067
Improvements for Windows client/tool-side code. r=bryner
...
- 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
2006-10-19 21:48:51 +00:00
bryner
181f307ffe
Reduce calls to SymbolSupplier::GetSymbolFile() ( #48 ).
...
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@40 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-10-16 18:19:09 +00:00
bryner
8b1645d8cd
Implement a tool to upload symbols on Windows, given an exe or dll file with
...
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
2006-10-16 17:27:03 +00:00
mmentovai
fc1c78e60e
Handle frame pointer omission ( #21 ), part 3: SourceLineResolver and 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
2006-09-28 21:09:37 +00:00
bryner
f140025664
Add static-CRT build configurations. Get rid of the largely redundant README,
...
moving the linkage comments to the corresponding headers.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@37 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-09-28 19:35:08 +00:00
bryner
1217c1f898
Initial version of Windows exception handler and crash report sender classes
...
(#31 ). r=mmentovai.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@36 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-09-27 01:00:32 +00:00
mmentovai
0dbedc973d
Better testing for Stackwalker ( #18 ). r=bryner
...
- 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
2006-09-25 21:16:15 +00:00
mmentovai
960e5277ee
ppc stackwalker ( #30 ). r=bryner
...
- 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
2006-09-25 18:29:48 +00:00
mmentovai
3402cae5e5
Add ppc support to minidump reader ( #27 ). r=bryner.
...
- 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
2006-09-22 01:10:25 +00:00
mmentovai
b934bb974a
Handle frame pointer omission ( #21 ), part 2: PostfixEvaluator. r=bryner.
...
- 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
2006-09-22 00:42:23 +00:00
mmentovai
7daf246e4b
Relicense to BSD ( #29 ). r=bryner
...
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
2006-09-20 21:16:16 +00:00
mmentovai
355c757b49
Improve documentation in minidump_format.h ( #28 ). r=bryner
...
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
2006-09-20 17:36:21 +00:00
mmentovai
8c2a4def4e
Handle frame pointer omission ( #21 ), part 1: ContainedRangeMap. r=bryner.
...
- 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
2006-09-20 16:20:15 +00:00
mmentovai
82a6c6037b
Add ppc types to minidump_format.h ( #25 ). r=waylonis
...
- 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
2006-09-20 01:14:59 +00:00
bryner
0170bea32f
Follow-up to #26 : get rid of supplier_data, it's not really needed since
...
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
2006-09-20 00:00:12 +00:00