New issue 323 by ted.mielczarek: OS X exception handler / minidump
generator should set exception address correctly for EXC_BAD_ACCESS
http://code.google.com/p/google-breakpad/issues/detail?id=323
On OS X, currently the minidump generator sets the
MDException.exception_address to the PC of the faulting thread. For
EXC_BAD_ACCESS, the memory address that caused the exception is available
as the subcode (and a comment on this field even mentions it):
http://code.google.com/p/google-breakpad/source/browse/trunk/src/google_breakpad/common/minidump_format.h#504
On Windows, MinidumpWriteDump handles this correctly, and it's useful
information. It can tell you if a crash looks exploitable or not
(deferencing NULL vs. an arbitrary memory address).
I think getting this data is simply a matter of getting receieve.code[1]
here:
http://code.google.com/p/google-breakpad/source/browse/trunk/src/client/mac/handler/exception_handler.cc#510
when receive.exception == EXC_BAD_ACCESS (and we can sanity check that
receive.code_count > 1), and then persisting that value to use it here:
http://code.google.com/p/google-breakpad/source/browse/trunk/src/client/mac/handler/minidump_generator.cc#597
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
Comment #1 on issue 323 by ted.mielczarek: OS X exception handler /
minidump generator should set exception address correctly for EXC_BAD_ACCESS
http://code.google.com/p/google-breakpad/issues/detail?id=323
Here's a patch. I changed the Inspector code, although I don't really know
how to
test that properly. Everything compiles, anyway, and looks sane. I modified
|handler_test| to crash accessing a non-NULL pointer, and the pointer
address is
correctly listed as the crash address in the minidump.
Attachments:
breakpad.323.patch 10.0 KB
Comment #2 on issue 323 by ted.mielczarek: OS X exception handler /
minidump generator should set exception address correctly for EXC_BAD_ACCESS
http://code.google.com/p/google-breakpad/issues/detail?id=323
Fixed in r350