Commit Graph

992 Commits

Author SHA1 Message Date
ted.mielczarek
7837cb7236 issue 286 - clean up some demangling code in dump_syms.mm. r=chris rogers
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@301 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-12-03 18:23:09 +00:00
mmentovai
e5c401467b ExceptionHandler class is not handling initialization errors, such as the
handler thread not being created.  Protect the exception handler against
failure to create semaphores and a thread handle.

Patch by Marc-André (MAD) Decoste, r=me

http://code.google.com/p/google-breakpad/issues/detail?id=285
http://codereview.chromium.org/13065


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@300 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-12-03 17:21:34 +00:00
ted.mielczarek
af553e22cb follow up for issue 281 - dump_syms fails to find dylib symbol file inside of a bundle. handle files without an extension properly
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@299 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-12-01 18:42:16 +00:00
ted.mielczarek
7b8eb04745 issue 281 - dump_syms fails to find dylib symbol file inside of a bundle. r=nealsid
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@298 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-12-01 17:05:43 +00:00
ted.mielczarek
5f27d9125c Followup to address some review comments from Issue 259
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@297 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-11-25 13:41:41 +00:00
ted.mielczarek
324d84c2f6 Issue 259 - crash when generating large .sym files with dump_syms on Linux. Patch by login_ing@yahoo.com, r=Liu Li
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@296 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-11-24 20:47:37 +00:00
nealsid
e055207058 Added some sanity checks when iterating over threads in a crashed process. In same cases the ESP could be 0. In other cases it would be borked completely(i.e. pointing to an invalid range).
R=Jeremy Moskovich



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@295 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-11-19 19:07:34 +00:00
nealsid
f32d028110 Committing an externals directory to pull in google toolbox for mac
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@294 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-11-14 20:16:13 +00:00
nealsid
c85fb043ed Fix for dump_syms to ignore line number information for addresses that don't have an enclosing function
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@293 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-11-03 23:23:50 +00:00
nealsid
3a283d8f8b Undo suspend/resume feature since it was meant as a workaround to a bug in how we handled child process exceptions. Currently we don't return to the kernel when we take an exception from a child process, causing a hang. Now we return KERN_FAILURE, indicating to the kernel to move on to the host-level exception handler(usually Crash Reporter)
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@292 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-10-27 04:52:16 +00:00
nealsid
32441cc060 Issue 181: Add version info for Mac OS X modules. Found by iterating over load commands until I found LC_ID_DYLIB. Also modified crash_report to generate version number. Also added suspend/resume capability to exception handler, necessary because exception handling can behave strangely across fork() calls. Also added fix for filtering out functions with no line number information, and for filtering out some multiple inheritance glue the compiler generates.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@291 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-10-22 05:08:50 +00:00
ted.mielczarek
c5f46b2f4b Issue 276 - generate GUIDs ahead of time in Linux handler. r=Liu Li
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@290 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-10-14 11:21:34 +00:00
nealsid
1de70760db Fix for DWARF processing when inline functions were encountered. Inline functions were part of the debugging information as sequential in the PC range of the function but the source file was where the function was written(as you might expect). However the old dump_syms code, once it switched files as it was iterating over a range of addresses, never switched back, causing inline functions to cause all file numbers for addresses after the PC of the inline function to be wrong
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@289 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-10-14 01:24:02 +00:00
nealsid
bb067bf185 Fix warning when converting int to bool
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@288 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-10-10 17:51:32 +00:00
ted.mielczarek
596e476fc2 fix a typo in the makefile, HANDLER_SRC->HANDLER_OBJ
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@287 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-10-10 15:48:06 +00:00
nealsid
cb4aa6b804 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
2008-10-08 23:56:02 +00:00
mmentovai
a509f4ec4b Generate Windows full memory dumps as a separate file. Patch by Huan Ren
<huanr@google.com>.  r=me


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@285 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-09-16 18:50:02 +00:00
mmentovai
9fcf4db315 Include what you use: include <algorithm> and <string.h> as needed. Patch by
Robert Henry.  r=me


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@284 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-09-15 18:16:49 +00:00
doshimun
11dc028694 Log a failure message in case of LOCATE_NOT_FOUND error.
Without this change, no error is logged in this case.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@283 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-07-30 19:39:48 +00:00
nealsid
85534c2eaf Now we provide our own implementation of the MIG function exc_server, as recommended by Apple.
See 
http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/8b363b1f8a404714
For more information



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@282 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-07-11 17:39:52 +00:00
doshimun
2d7664e8d4 In the destructor of ClientInfo, currently the wait on the clent_crashed_event is
unregistered after the handle is closed. MSDN clearly says that the behavior is
undefined in this case. See http://msdn.microsoft.com/en-us/library/ms685061(VS.85).aspx
 
This change contains the fix for that bug. See attched diff.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@281 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-06-09 23:38:24 +00:00
doshimun
3a516e4177 Client process uptime is a very useful metric for crashes. Instead of each client process having to keep track of uptime and report it whenever a crash happens, integrate this feature into breakpad OOP code so that all clients get it for free.
I tested this using the test app I have to test OOP stuff.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@280 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-06-06 21:41:32 +00:00
nealsid
38bc56cfa8 Modified symupload to correctly handle spaces in module names when processing symbol file
Reviewer=mmentovai



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@279 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-06-05 21:20:53 +00:00
doshimun
cc6cd1ff37 Fix the following bug:
The sender updates the checkpoint file even when the report is not
successfully sent.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@278 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-06-05 20:59:35 +00:00
nealsid
d55398a492 Filter out duplicates from the image list when creating a minidump. See issue 266 for more details.
Reviewer = mmentovai



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@277 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-06-04 22:57:09 +00:00
doshimun
f6b3e16ef8 Set the dump thread id and the requesting thread id properties of MDRawBreakpadInfo
only in case of in-process dump generation; otherwise the dump processing code of
breakpad doesn't identify the crashing thread properly.

I am checking this in to-be-reviewed since it is needed urgently in one of the
products at Google.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@276 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-05-31 19:23:20 +00:00
nealsid
b91bb881d5 Fix to ignore source files that have a text address of 0 in their stabs entry
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@275 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-05-19 17:27:40 +00:00
doshimun
72bafd378d Microsoft broke PROCESS_ALL_ACCESS when we build with WINVER=0x600. See http://nsylvain.blogspot.com/2008/01/winverwin32winnt-mayhem.html for
details (second half of the post).

Changing PROCESS_ALL_ACCESS to GENERIC_ALL in ClientInfo class when
opening the client process handle on the OOP server side.

A minor change to pipe name in the test app also.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@274 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-05-15 04:12:34 +00:00
mmentovai
808ff9bc70 64-bit processor can't handle 32-bit ppc minidumps due to struct padding
differences on 64- and 32-bit CPUs.  Force 32-bit alignment rules for
32-bit ppc context struct.  r=nealsid

http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/21a8e99c4800b51d


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@273 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-05-14 18:24:23 +00:00
nealsid
d318f9efee Fix to stop unit tests from being compiled & run for non-native architectures
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@272 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-05-08 23:15:00 +00:00
doshimun
7ab126ecdd Replace the user of wcscpy_s with safe_wcscpy in common/windows/string_utils-inl.h to
make the code compatible for teams that still use VS 2003 to build.

Fix a bug in client ClientInfo class that returned CustomClientInfo struct containing
a pointer in the client process address space instead of pointer to in-process data
structure.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@271 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-05-08 18:15:07 +00:00
doshimun
8602aa71ec Some style guide compliance changes and changed the prototype of the method to get custom client info in ClientInfo class.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@270 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-05-07 21:54:12 +00:00
nealsid
c2bdaa613c Bug fix for issue 263: mach_vm_region_recurse calls have invalid parameter specified, which succeeds on Leopard but fails on Tiger
Reviewer: Chris Rogers(ladderbreaker)


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@269 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-05-07 21:15:12 +00:00
doshimun
3d4dc1f201 Add a convenience method to CustomClientInfo struct to set both name and value in one call.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@268 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-05-05 21:03:51 +00:00
doshimun
0ded3d718f Add a way for the client apps to specify custom information in case of out-of-process
scenarios that the OOP server can use in whatever way it wants to.

Fix a bug in CrashGenerationserver where CreateNamedPipe failure was not checked correctly.

TODO in near future: Add a custom stream to minidump files for the custom information.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@267 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-05-05 20:03:56 +00:00
nealsid
47df365bf8 Issue 261/262: 64-bit bug fix when iterating through load commands of a 64-bit binary, and added new test case for ReadImageInfoForTask
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@266 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-05-05 18:20:04 +00:00
nealsid
d6f0f92de3 Style changes
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@265 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-04-30 00:56:17 +00:00
nealsid
d906d0f7c9 Updated code to be compliant with style guidelines
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@264 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-04-29 23:49:39 +00:00
nealsid
4c39c138fe Issue 258: Added test cases for ReadTaskMemory, reorganized project file, renamed filenames inside comments
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@263 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-04-25 00:37:19 +00:00
doshimun
9033edcd7b Add one more parameter to the ClientDumpRequestCallback in crash generation server
to pass in the path of the dump file if the dump was generated successfully.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@262 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-04-17 21:21:48 +00:00
nealsid
9609db8173 Fix a bug in start address calculation
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@261 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-04-17 04:15:30 +00:00
nealsid
5da03791a7 As part of resolving issue 256 I'd like to check in some unit
tests(ok, just one) for the private copy of nlist that I checked in
last week, plus lay some of the ground work for collecting code
coverage numbers.  Both of these are accomplished by leveraging the
built-in facilities of Xcode & Developer Tools(namely, CPlusTest and
gcov integration; however, eventually I will also add a way to get
lcov results from the gcov results).  I also:

 - renamed breakpad_nlist_64.c to breakpad_nlist_64.cc to be more
consistent(even though it's not C++ code it still only gets called by
C++ code so I don't have to deal with extern "C" constructs).
 - I created a new target (minidump_tests) that has a "Coverage"
configuration with the appropriate GCC flags turned on.  It is only
compiled in 64-bit configurations and has 10.5 as a minimum
deployment target as well as uses the 10.5 SDK.


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@260 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-04-15 23:09:30 +00:00
nealsid
b0d807666f Issue 254: The problem is that nlist() is compiled out of libc in
64-bit builds of Leopard.  I ported the code over myself and will
check it into the Breakpad tree until we decide there's a better
longer-term solution.  If you want to diff the changes, the Apple
source is in libc/gen/nlist.c(I used 498 from 10.5.2).



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@259 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-04-12 01:16:18 +00:00
doshimun
35c34d6bb9 Add a parameter to CrashGenerationServer to let the callers set the
security attributes on the pipe. This is useful when the process
hosting the crash server wants to let processes from other users to
connect to it and generate dumps for them.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@258 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-04-12 00:00:34 +00:00
doshimun
05ec557277 Some cosmetic/style changes to conform to style guidelines. This time
I waited for the style reviewer to approve all my code so hopefully there
should be no more style related check-ins.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@256 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-04-08 19:03:57 +00:00
mmentovai
eeca9921c5 Fix newlines (#253). rs=ted.mielczarek
http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/7e62a299ce3fa222


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@255 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-04-07 21:50:57 +00:00
mmentovai
61ea8bf0d5 Processor crashes on some truncated minidumps after #222. r=ted.mielczarek
http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/a451668b1ece259f


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@254 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-04-04 21:41:50 +00:00
nealsid
867df1c652 Issue 246: Dynamic_images.* needs to be 64-bit ready. Created types that are typedefed to the appropriate types depending on 32/64-bit compilation and modified dynamic_images to use these new types. Tested 32-bit minidump-generation. Also did some code cleanup along the way. Removed all blank lines that had spaces.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@253 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-04-04 21:35:41 +00:00
doshimun
fc816a3b3a Minor style changes to comply with Google style guidelines.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@252 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-04-03 21:46:58 +00:00
ted.mielczarek
dd2ff4a21c issue 223 - Fixes for SOlaris handler during integration with Firefox. patch by Alfred Peng, r=mento,me
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@250 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-03-18 16:10:10 +00:00