Issue 323 in google-breakpad: OS X exception handler / minidump generator should set exception address correctly for EXC_BAD_ACCESS

6 views
Skip to first unread message

codesite...@google.com

unread,
Jun 12, 2009, 7:19:56 AM6/12/09
to google-brea...@googlegroups.com
Status: Accepted
Owner: ted.mielczarek

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

codesite...@google.com

unread,
Jun 12, 2009, 8:36:59 AM6/12/09
to google-brea...@googlegroups.com
Updates:
Status: Started

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

codesite...@google.com

unread,
Jun 12, 2009, 4:38:08 PM6/12/09
to google-brea...@googlegroups.com
Updates:
Status: Fixed

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

Reply all
Reply to author
Forward
0 new messages