aboutsummaryrefslogtreecommitdiff
path: root/src/client/linux/minidump_writer/minidump_writer.cc
diff options
context:
space:
mode:
authormark@chromium.org <mark@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e>2012-07-24 22:45:30 +0000
committermark@chromium.org <mark@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e>2012-07-24 22:45:30 +0000
commit3279794487885ea6c5ac30111a35264a51d83e4d (patch)
treea7f8498f645e013af3a8e2b84582bfb8ff3c373e /src/client/linux/minidump_writer/minidump_writer.cc
parentBack out r996, reinstating r985. That wasn't it. (diff)
downloadbreakpad-3279794487885ea6c5ac30111a35264a51d83e4d.tar.xz
Speculatively back out r989 per http://codereview.chromium.org/10805065/ :
Ted Mielczarek: > You could try backing out r989, although Mozilla has been running with that > patch for months without issue. Me: > src/client/windows/handler/exception_handler.cc in r989 appears to have > formatting problems, an unwanted property change, and no real Breakpad review > history, so maybe we should back it out anyway until the proper process is > followed. NACL Tests nacl_integration failures: http://build.chromium.org/p/chromium/builders/NACL%20Tests/builds/30138 chrome src/native_client/tests/inbrowser_crash_test/crash_dump_tester.py says that the observed failures are a symptom of crash_service.exe itself crashing. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@998 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/client/linux/minidump_writer/minidump_writer.cc')
-rw-r--r--src/client/linux/minidump_writer/minidump_writer.cc45
1 files changed, 5 insertions, 40 deletions
diff --git a/src/client/linux/minidump_writer/minidump_writer.cc b/src/client/linux/minidump_writer/minidump_writer.cc
index 9c834791..e0aeb3bd 100644
--- a/src/client/linux/minidump_writer/minidump_writer.cc
+++ b/src/client/linux/minidump_writer/minidump_writer.cc
@@ -373,7 +373,6 @@ class MinidumpWriter {
MinidumpWriter(const char* filename,
const ExceptionHandler::CrashContext* context,
const MappingList& mappings,
- const AppMemoryList& appmem,
LinuxDumper* dumper)
: filename_(filename),
ucontext_(context ? &context->context : NULL),
@@ -385,8 +384,7 @@ class MinidumpWriter {
#endif
dumper_(dumper),
memory_blocks_(dumper_->allocator()),
- mapping_list_(mappings),
- app_memory_list_(appmem) {
+ mapping_list_(mappings) {
}
bool Init() {
@@ -460,9 +458,6 @@ class MinidumpWriter {
return false;
dir.CopyIndex(dir_index++, &dirent);
- if (!WriteAppMemory())
- return false;
-
if (!WriteMemoryListStream(&dirent))
return false;
dir.CopyIndex(dir_index++, &dirent);
@@ -764,30 +759,6 @@ class MinidumpWriter {
return true;
}
- // Write application-provided memory regions.
- bool WriteAppMemory() {
- for (AppMemoryList::const_iterator iter = app_memory_list_.begin();
- iter != app_memory_list_.end();
- ++iter) {
- uint8_t* data_copy =
- (uint8_t*) dumper_->allocator()->Alloc(iter->length);
- dumper_->CopyFromProcess(data_copy, GetCrashThread(), iter->ptr,
- iter->length);
-
- UntypedMDRVA memory(&minidump_writer_);
- if (!memory.Allocate(iter->length)) {
- return false;
- }
- memory.Copy(data_copy, iter->length);
- MDMemoryDescriptor desc;
- desc.start_of_memory_range = (uintptr_t)iter->ptr;
- desc.memory = memory.location();
- memory_blocks_.push_back(desc);
- }
-
- return true;
- }
-
static bool ShouldIncludeMapping(const MappingInfo& mapping) {
if (mapping.name[0] == 0 || // only want modules with filenames.
mapping.offset || // only want to include one mapping per shared lib.
@@ -1363,22 +1334,17 @@ class MinidumpWriter {
wasteful_vector<MDMemoryDescriptor> memory_blocks_;
// Additional information about some mappings provided by the caller.
const MappingList& mapping_list_;
- // Additional memory regions to be included in the dump,
- // provided by the caller.
- const AppMemoryList& app_memory_list_;
};
bool WriteMinidump(const char* filename, pid_t crashing_process,
const void* blob, size_t blob_size) {
MappingList m;
- AppMemoryList a;
- return WriteMinidump(filename, crashing_process, blob, blob_size, m, a);
+ return WriteMinidump(filename, crashing_process, blob, blob_size, m);
}
bool WriteMinidump(const char* filename, pid_t crashing_process,
const void* blob, size_t blob_size,
- const MappingList& mappings,
- const AppMemoryList& appmem) {
+ const MappingList& mappings) {
if (blob_size != sizeof(ExceptionHandler::CrashContext))
return false;
const ExceptionHandler::CrashContext* context =
@@ -1388,7 +1354,7 @@ bool WriteMinidump(const char* filename, pid_t crashing_process,
reinterpret_cast<uintptr_t>(context->siginfo.si_addr));
dumper.set_crash_signal(context->siginfo.si_signo);
dumper.set_crash_thread(context->tid);
- MinidumpWriter writer(filename, context, mappings, appmem, &dumper);
+ MinidumpWriter writer(filename, context, mappings, &dumper);
if (!writer.Init())
return false;
return writer.Dump();
@@ -1396,9 +1362,8 @@ bool WriteMinidump(const char* filename, pid_t crashing_process,
bool WriteMinidump(const char* filename,
const MappingList& mappings,
- const AppMemoryList& appmem,
LinuxDumper* dumper) {
- MinidumpWriter writer(filename, NULL, mappings, appmem, dumper);
+ MinidumpWriter writer(filename, NULL, mappings, dumper);
if (!writer.Init())
return false;
return writer.Dump();