From 4621ee06914b2ebe963c93ea78fabf982cf670df Mon Sep 17 00:00:00 2001 From: "ted.mielczarek" Date: Thu, 23 Sep 2010 14:55:50 +0000 Subject: Write a window of memory around the instruction pointer from the crashing thread to the minidump on OS X. R=nealsid at http://breakpad.appspot.com/200001/show git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@699 4c0a9323-5329-0410-9bdc-e9ce6186880e --- src/client/linux/minidump_writer/linux_dumper.h | 2 +- src/client/linux/minidump_writer/linux_dumper_unittest.cc | 2 +- src/client/linux/minidump_writer/minidump_writer.cc | 9 +++++---- 3 files changed, 7 insertions(+), 6 deletions(-) (limited to 'src/client/linux/minidump_writer') diff --git a/src/client/linux/minidump_writer/linux_dumper.h b/src/client/linux/minidump_writer/linux_dumper.h index 7a4cd3a3..b0c479a9 100644 --- a/src/client/linux/minidump_writer/linux_dumper.h +++ b/src/client/linux/minidump_writer/linux_dumper.h @@ -36,7 +36,7 @@ #include #include -#include "common/linux/memory.h" +#include "common/memory.h" #include "google_breakpad/common/minidump_format.h" namespace google_breakpad { diff --git a/src/client/linux/minidump_writer/linux_dumper_unittest.cc b/src/client/linux/minidump_writer/linux_dumper_unittest.cc index da454742..8cfb6004 100644 --- a/src/client/linux/minidump_writer/linux_dumper_unittest.cc +++ b/src/client/linux/minidump_writer/linux_dumper_unittest.cc @@ -35,7 +35,7 @@ #include "breakpad_googletest_includes.h" #include "client/linux/minidump_writer/linux_dumper.h" #include "common/linux/file_id.h" -#include "common/linux/memory.h" +#include "common/memory.h" using namespace google_breakpad; diff --git a/src/client/linux/minidump_writer/minidump_writer.cc b/src/client/linux/minidump_writer/minidump_writer.cc index 6b55ade0..d629ee81 100644 --- a/src/client/linux/minidump_writer/minidump_writer.cc +++ b/src/client/linux/minidump_writer/minidump_writer.cc @@ -662,12 +662,13 @@ class MinidumpWriter { // Try to get 128 bytes before and after the IP, but // settle for whatever's available. ip_memory_d.start_of_memory_range = - std::min(mapping.start_addr, + std::max(mapping.start_addr, uintptr_t(ip - (kIPMemorySize / 2))); + uintptr_t end_of_range = + std::min(uintptr_t(ip + (kIPMemorySize / 2)), + uintptr_t(mapping.start_addr + mapping.size)); ip_memory_d.memory.data_size = - std::min(ptrdiff_t(kIPMemorySize), - ptrdiff_t(mapping.start_addr + mapping.size - - ip_memory_d.start_of_memory_range)); + end_of_range - ip_memory_d.start_of_memory_range; break; } } -- cgit v1.2.1