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

Unified Diff: src/client/linux/minidump_writer/linux_dumper.h

Issue 1761023002: Add an optional root prefix to Linux dumpers (Closed) Base URL: https://chromium.googlesource.com/breakpad/breakpad.git@master
Patch Set: Remove assertions Created 4 years, 9 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
Index: src/client/linux/minidump_writer/linux_dumper.h
diff --git a/src/client/linux/minidump_writer/linux_dumper.h b/src/client/linux/minidump_writer/linux_dumper.h
index 6a3a100f32376e125490a64376c7318a76c4486f..f7fe1dd9dfa39ca6c9b9cd32b994dba9ac574f5c 100644
--- a/src/client/linux/minidump_writer/linux_dumper.h
+++ b/src/client/linux/minidump_writer/linux_dumper.h
@@ -72,7 +72,9 @@ const char kLinuxGateLibraryName[] = "linux-gate.so";
class LinuxDumper {
public:
- explicit LinuxDumper(pid_t pid);
+ // The |root_prefix| is prepended to mapping paths before opening them, which
+ // is useful if the crash originates from a chroot.
+ explicit LinuxDumper(pid_t pid, const char* root_prefix = "");
virtual ~LinuxDumper();
@@ -140,16 +142,21 @@ class LinuxDumper {
pid_t crash_thread() const { return crash_thread_; }
void set_crash_thread(pid_t crash_thread) { crash_thread_ = crash_thread; }
+ // Concatenates the |root_prefix_| and |mapping| path. Writes into |path| and
+ // returns true unless the string is too long.
+ bool GetMappingAbsolutePath(const MappingInfo& mapping,
+ char path[PATH_MAX]) const;
+
// Extracts the effective path and file name of from |mapping|. In most cases
// the effective name/path are just the mapping's path and basename. In some
// other cases, however, a library can be mapped from an archive (e.g., when
// loading .so libs from an apk on Android) and this method is able to
// reconstruct the original file name.
- static void GetMappingEffectiveNameAndPath(const MappingInfo& mapping,
- char* file_path,
- size_t file_path_size,
- char* file_name,
- size_t file_name_size);
+ void GetMappingEffectiveNameAndPath(const MappingInfo& mapping,
+ char* file_path,
+ size_t file_path_size,
+ char* file_name,
+ size_t file_name_size);
protected:
bool ReadAuxv();
@@ -172,6 +179,9 @@ class LinuxDumper {
// ID of the crashed process.
const pid_t pid_;
+ // Path of the root directory to which mapping paths are relative.
+ const char* const root_prefix_;
+
// Virtual address at which the process crashed.
uintptr_t crash_address_;
« no previous file with comments | « src/client/linux/minidump_writer/linux_core_dumper_unittest.cc ('k') | src/client/linux/minidump_writer/linux_dumper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698