Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1037)

Unified Diff: src/client/linux/microdump_writer/microdump_writer.cc

Issue 1688743002: Switch the Linux minidump writer to use MDCVInfoELF for CV data. (Closed) Base URL: https://chromium.googlesource.com/breakpad/breakpad.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/client/linux/minidump_writer/linux_dumper.h » ('j') | src/common/linux/file_id.h » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/client/linux/microdump_writer/microdump_writer.cc
diff --git a/src/client/linux/microdump_writer/microdump_writer.cc b/src/client/linux/microdump_writer/microdump_writer.cc
index fc29b7143517d9d5ae6a6a899515f7e5b41f1dab..500c461843aeffc34a9e6ce67fcba6224b0876d1 100644
--- a/src/client/linux/microdump_writer/microdump_writer.cc
+++ b/src/client/linux/microdump_writer/microdump_writer.cc
@@ -32,6 +32,7 @@
#include "client/linux/microdump_writer/microdump_writer.h"
+#include <algorithm>
Lei Zhang 2016/02/10 23:08:50 nit: C headers before C++ headers.
#include <sys/utsname.h>
#include "client/linux/dump_writer_common/thread_info.h"
@@ -40,11 +41,13 @@
#include "client/linux/handler/microdump_extra_info.h"
#include "client/linux/log/log.h"
#include "client/linux/minidump_writer/linux_ptrace_dumper.h"
+#include "common/linux/file_id.h"
#include "common/linux/linux_libc_support.h"
namespace {
using google_breakpad::ExceptionHandler;
+using google_breakpad::kMaxBuildID;
using google_breakpad::LinuxDumper;
using google_breakpad::LinuxPtraceDumper;
using google_breakpad::MappingInfo;
@@ -336,18 +339,26 @@ class MicrodumpWriter {
bool member,
unsigned int mapping_id,
const uint8_t* identifier) {
- MDGUID module_identifier;
+ uint8_t identifier_bytes[kMaxBuildID];
+ size_t identifier_length = 0;
if (identifier) {
// GUID was provided by caller.
- my_memcpy(&module_identifier, identifier, sizeof(MDGUID));
+ my_memcpy(&identifier_bytes, identifier, sizeof(MDGUID));
+ identifier_length = sizeof(MDGUID);
} else {
dumper_->ElfFileIdentifierForMapping(
mapping,
member,
mapping_id,
- reinterpret_cast<uint8_t*>(&module_identifier));
+ identifier_bytes,
+ &identifier_length);
}
+ // Copy as many bytes of |identifier| as will fit into a MDGUID
+ MDGUID module_identifier = {0};
+ memcpy(&module_identifier, identifier_bytes,
+ std::min(sizeof(MDGUID), identifier_length));
+
char file_name[NAME_MAX];
char file_path[NAME_MAX];
LinuxDumper::GetMappingEffectiveNameAndPath(
« no previous file with comments | « no previous file | src/client/linux/minidump_writer/linux_dumper.h » ('j') | src/common/linux/file_id.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698