From: Pavel Labath Date: Mon, 25 Mar 2019 14:09:27 +0000 (+0000) Subject: Minidump: Use minidump constants defined in llvm X-Git-Tag: llvmorg-10-init~9256 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d2b488886780a30a378466fe950870effaca2191;p=platform%2Fupstream%2Fllvm.git Minidump: Use minidump constants defined in llvm This patch begins the process of migrating the "minidump" plugin to the minidump parser in llvm. The llvm parser is not fully finished yet, but even now, a lot of things can be switched over. The gradual migration process will allow us to easier detect if things break than doing a big one-step migration. Doing it early will allow us to make sure that the llvm parser fits the use case that we need in lldb. In this patch I start with the various minidump constants, which have their llvm equivalent. It doesn't contain any functional changes. The diff just reflects the different naming of things in llvm. llvm-svn: 356898 --- diff --git a/lldb/lit/Minidump/dump-all.test b/lldb/lit/Minidump/dump-all.test index 11df7c2..427b488 100644 --- a/lldb/lit/Minidump/dump-all.test +++ b/lldb/lit/Minidump/dump-all.test @@ -37,7 +37,7 @@ # RUN: %lldb -c %p/Inputs/dump-content.dmp -o 'process plugin dump -u' | FileCheck --check-prefix=CHECKUP %s # RUN: %lldb -c %p/Inputs/dump-content.dmp -o 'process plugin dump --fd' | FileCheck --check-prefix=CHECKFD %s # RUN: %lldb -c %p/Inputs/dump-content.dmp -o 'process plugin dump -f' | FileCheck --check-prefix=CHECKFD %s -# CHECKDIR: RVA SIZE TYPE MinidumpStreamType +# CHECKDIR: RVA SIZE TYPE StreamType # CHECKDIR-NEXT: ---------- ---------- ---------- -------------------------- # CHECKDIR-NEXT: 0x000000b0 0x00000038 0x00000007 SystemInfo # CHECKDIR-NEXT: 0x0000015d 0x0000001b 0x47670007 LinuxEnviron diff --git a/lldb/lit/Minidump/fb-dump.test b/lldb/lit/Minidump/fb-dump.test index 3681f8d..c58d983 100644 --- a/lldb/lit/Minidump/fb-dump.test +++ b/lldb/lit/Minidump/fb-dump.test @@ -55,7 +55,7 @@ # RUN: %lldb -c %p/Inputs/fb-dump-content.dmp \ # RUN: -o 'process plugin dump --fb-logcat' | \ # RUN: FileCheck --check-prefix=CHECK-LOGCAT %s -# CHECK-DIR: RVA SIZE TYPE MinidumpStreamType +# CHECK-DIR: RVA SIZE TYPE StreamType # CHECK-DIR-NEXT: ---------- ---------- ---------- -------------------------- # CHECK-DIR-NEXT: 0x0000010c 0x00000013 0xfacecb00 FacebookDumpErrorLog # CHECK-DIR-NEXT: 0x0000011f 0x00000015 0xfacee000 FacebookThreadName diff --git a/lldb/source/Plugins/Process/minidump/CMakeLists.txt b/lldb/source/Plugins/Process/minidump/CMakeLists.txt index 4126a7e..c90f4f0 100644 --- a/lldb/source/Plugins/Process/minidump/CMakeLists.txt +++ b/lldb/source/Plugins/Process/minidump/CMakeLists.txt @@ -15,5 +15,6 @@ add_lldb_library(lldbPluginProcessMinidump PLUGIN lldbPluginProcessUtility lldbPluginProcessElfCore LINK_COMPONENTS + BinaryFormat Support ) diff --git a/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp b/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp index d18244f..6e99b28 100644 --- a/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp +++ b/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp @@ -130,7 +130,7 @@ llvm::ArrayRef MinidumpParser::GetData() { } llvm::ArrayRef -MinidumpParser::GetStream(MinidumpStreamType stream_type) { +MinidumpParser::GetStream(StreamType stream_type) { auto iter = m_directory_map.find(static_cast(stream_type)); if (iter == m_directory_map.end()) return {}; @@ -210,7 +210,7 @@ UUID MinidumpParser::GetModuleUUID(const MinidumpModule *module) { } llvm::ArrayRef MinidumpParser::GetThreads() { - llvm::ArrayRef data = GetStream(MinidumpStreamType::ThreadList); + llvm::ArrayRef data = GetStream(StreamType::ThreadList); if (data.size() == 0) return llvm::None; @@ -262,7 +262,7 @@ MinidumpParser::GetThreadContextWow64(const MinidumpThread &td) { } const MinidumpSystemInfo *MinidumpParser::GetSystemInfo() { - llvm::ArrayRef data = GetStream(MinidumpStreamType::SystemInfo); + llvm::ArrayRef data = GetStream(StreamType::SystemInfo); if (data.size() == 0) return nullptr; @@ -286,20 +286,20 @@ ArchSpec MinidumpParser::GetArchitecture() { llvm::Triple triple; triple.setVendor(llvm::Triple::VendorType::UnknownVendor); - const MinidumpCPUArchitecture arch = static_cast( + auto arch = static_cast( static_cast(system_info->processor_arch)); switch (arch) { - case MinidumpCPUArchitecture::X86: + case ProcessorArchitecture::X86: triple.setArch(llvm::Triple::ArchType::x86); break; - case MinidumpCPUArchitecture::AMD64: + case ProcessorArchitecture::AMD64: triple.setArch(llvm::Triple::ArchType::x86_64); break; - case MinidumpCPUArchitecture::ARM: + case ProcessorArchitecture::ARM: triple.setArch(llvm::Triple::ArchType::arm); break; - case MinidumpCPUArchitecture::ARM64: + case ProcessorArchitecture::ARM64: triple.setArch(llvm::Triple::ArchType::aarch64); break; default: @@ -307,29 +307,29 @@ ArchSpec MinidumpParser::GetArchitecture() { break; } - const MinidumpOSPlatform os = static_cast( - static_cast(system_info->platform_id)); + auto os = + static_cast(static_cast(system_info->platform_id)); // TODO add all of the OSes that Minidump/breakpad distinguishes? switch (os) { - case MinidumpOSPlatform::Win32S: - case MinidumpOSPlatform::Win32Windows: - case MinidumpOSPlatform::Win32NT: - case MinidumpOSPlatform::Win32CE: + case OSPlatform::Win32S: + case OSPlatform::Win32Windows: + case OSPlatform::Win32NT: + case OSPlatform::Win32CE: triple.setOS(llvm::Triple::OSType::Win32); break; - case MinidumpOSPlatform::Linux: + case OSPlatform::Linux: triple.setOS(llvm::Triple::OSType::Linux); break; - case MinidumpOSPlatform::MacOSX: + case OSPlatform::MacOSX: triple.setOS(llvm::Triple::OSType::MacOSX); triple.setVendor(llvm::Triple::Apple); break; - case MinidumpOSPlatform::IOS: + case OSPlatform::IOS: triple.setOS(llvm::Triple::OSType::IOS); triple.setVendor(llvm::Triple::Apple); break; - case MinidumpOSPlatform::Android: + case OSPlatform::Android: triple.setOS(llvm::Triple::OSType::Linux); triple.setEnvironment(llvm::Triple::EnvironmentType::Android); break; @@ -348,7 +348,7 @@ ArchSpec MinidumpParser::GetArchitecture() { } const MinidumpMiscInfo *MinidumpParser::GetMiscInfo() { - llvm::ArrayRef data = GetStream(MinidumpStreamType::MiscInfo); + llvm::ArrayRef data = GetStream(StreamType::MiscInfo); if (data.size() == 0) return nullptr; @@ -357,7 +357,7 @@ const MinidumpMiscInfo *MinidumpParser::GetMiscInfo() { } llvm::Optional MinidumpParser::GetLinuxProcStatus() { - llvm::ArrayRef data = GetStream(MinidumpStreamType::LinuxProcStatus); + llvm::ArrayRef data = GetStream(StreamType::LinuxProcStatus); if (data.size() == 0) return llvm::None; @@ -380,7 +380,7 @@ llvm::Optional MinidumpParser::GetPid() { } llvm::ArrayRef MinidumpParser::GetModuleList() { - llvm::ArrayRef data = GetStream(MinidumpStreamType::ModuleList); + llvm::ArrayRef data = GetStream(StreamType::ModuleList); if (data.size() == 0) return {}; @@ -433,7 +433,7 @@ std::vector MinidumpParser::GetFilteredModuleList() { } const MinidumpExceptionStream *MinidumpParser::GetExceptionStream() { - llvm::ArrayRef data = GetStream(MinidumpStreamType::Exception); + llvm::ArrayRef data = GetStream(StreamType::Exception); if (data.size() == 0) return nullptr; @@ -443,8 +443,8 @@ const MinidumpExceptionStream *MinidumpParser::GetExceptionStream() { llvm::Optional MinidumpParser::FindMemoryRange(lldb::addr_t addr) { - llvm::ArrayRef data = GetStream(MinidumpStreamType::MemoryList); - llvm::ArrayRef data64 = GetStream(MinidumpStreamType::Memory64List); + llvm::ArrayRef data = GetStream(StreamType::MemoryList); + llvm::ArrayRef data64 = GetStream(StreamType::Memory64List); if (data.empty() && data64.empty()) return llvm::None; @@ -529,7 +529,7 @@ llvm::ArrayRef MinidumpParser::GetMemory(lldb::addr_t addr, static bool CreateRegionsCacheFromLinuxMaps(MinidumpParser &parser, std::vector ®ions) { - auto data = parser.GetStream(MinidumpStreamType::LinuxMaps); + auto data = parser.GetStream(StreamType::LinuxMaps); if (data.empty()) return false; ParseLinuxMapRegions(llvm::toStringRef(data), @@ -545,7 +545,7 @@ CreateRegionsCacheFromLinuxMaps(MinidumpParser &parser, static bool CreateRegionsCacheFromMemoryInfoList(MinidumpParser &parser, std::vector ®ions) { - auto data = parser.GetStream(MinidumpStreamType::MemoryInfoList); + auto data = parser.GetStream(StreamType::MemoryInfoList); if (data.empty()) return false; auto mem_info_list = MinidumpMemoryInfo::ParseMemoryInfoList(data); @@ -570,7 +570,7 @@ CreateRegionsCacheFromMemoryInfoList(MinidumpParser &parser, static bool CreateRegionsCacheFromMemoryList(MinidumpParser &parser, std::vector ®ions) { - auto data = parser.GetStream(MinidumpStreamType::MemoryList); + auto data = parser.GetStream(StreamType::MemoryList); if (data.empty()) return false; auto memory_list = MinidumpMemoryDescriptor::ParseMemoryList(data); @@ -595,7 +595,7 @@ static bool CreateRegionsCacheFromMemory64List(MinidumpParser &parser, std::vector ®ions) { llvm::ArrayRef data = - parser.GetStream(MinidumpStreamType::Memory64List); + parser.GetStream(StreamType::Memory64List); if (data.empty()) return false; llvm::ArrayRef memory64_list; @@ -675,14 +675,12 @@ const MemoryRegionInfos &MinidumpParser::GetMemoryRegions() { return m_regions; } -#define ENUM_TO_CSTR(ST) case (uint32_t)MinidumpStreamType::ST: return #ST +#define ENUM_TO_CSTR(ST) case (uint32_t)StreamType::ST: return #ST llvm::StringRef MinidumpParser::GetStreamTypeAsString(uint32_t stream_type) { switch (stream_type) { ENUM_TO_CSTR(Unused); - ENUM_TO_CSTR(Reserved0); - ENUM_TO_CSTR(Reserved1); ENUM_TO_CSTR(ThreadList); ENUM_TO_CSTR(ModuleList); ENUM_TO_CSTR(MemoryList); diff --git a/lldb/source/Plugins/Process/minidump/MinidumpParser.h b/lldb/source/Plugins/Process/minidump/MinidumpParser.h index 7c2cf1b..d26bade 100644 --- a/lldb/source/Plugins/Process/minidump/MinidumpParser.h +++ b/lldb/source/Plugins/Process/minidump/MinidumpParser.h @@ -49,7 +49,7 @@ public: llvm::ArrayRef GetData(); - llvm::ArrayRef GetStream(MinidumpStreamType stream_type); + llvm::ArrayRef GetStream(StreamType stream_type); llvm::Optional GetMinidumpString(uint32_t rva); diff --git a/lldb/source/Plugins/Process/minidump/MinidumpTypes.cpp b/lldb/source/Plugins/Process/minidump/MinidumpTypes.cpp index 4abf36e..a73ab8e 100644 --- a/lldb/source/Plugins/Process/minidump/MinidumpTypes.cpp +++ b/lldb/source/Plugins/Process/minidump/MinidumpTypes.cpp @@ -18,15 +18,12 @@ const MinidumpHeader *MinidumpHeader::Parse(llvm::ArrayRef &data) { const MinidumpHeader *header = nullptr; Status error = consumeObject(data, header); - const MinidumpHeaderConstants signature = - static_cast( - static_cast(header->signature)); - const MinidumpHeaderConstants version = static_cast( - static_cast(header->version) & 0x0000ffff); + uint32_t signature = header->signature; + uint32_t version = header->version & 0x0000ffff; // the high 16 bits of the version field are implementation specific - if (error.Fail() || signature != MinidumpHeaderConstants::Signature || - version != MinidumpHeaderConstants::Version) + if (error.Fail() || signature != Header::MagicSignature || + version != Header::MagicVersion) return nullptr; return header; diff --git a/lldb/source/Plugins/Process/minidump/MinidumpTypes.h b/lldb/source/Plugins/Process/minidump/MinidumpTypes.h index 47197a3..011efbc7 100644 --- a/lldb/source/Plugins/Process/minidump/MinidumpTypes.h +++ b/lldb/source/Plugins/Process/minidump/MinidumpTypes.h @@ -17,6 +17,7 @@ #include "llvm/ADT/Optional.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringRef.h" +#include "llvm/BinaryFormat/Minidump.h" #include "llvm/Support/ConvertUTF.h" #include "llvm/Support/Endian.h" @@ -31,14 +32,9 @@ namespace lldb_private { namespace minidump { -LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE(); - -enum class MinidumpHeaderConstants : uint32_t { - Signature = 0x504d444d, // 'PMDM' - Version = 0x0000a793, // 42899 - LLVM_MARK_AS_BITMASK_ENUM(/* LargestValue = */ Signature) +using namespace llvm::minidump; -}; +LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE(); enum class CvSignature : uint32_t { Pdb70 = 0x53445352, // RSDS @@ -55,129 +51,6 @@ struct CvRecordPdb70 { static_assert(sizeof(CvRecordPdb70) == 20, "sizeof CvRecordPdb70 is not correct!"); -// Reference: -// https://msdn.microsoft.com/en-us/library/windows/desktop/ms680394.aspx -enum class MinidumpStreamType : uint32_t { - Unused = 0, - Reserved0 = 1, - Reserved1 = 2, - ThreadList = 3, - ModuleList = 4, - MemoryList = 5, - Exception = 6, - SystemInfo = 7, - ThreadExList = 8, - Memory64List = 9, - CommentA = 10, - CommentW = 11, - HandleData = 12, - FunctionTable = 13, - UnloadedModuleList = 14, - MiscInfo = 15, - MemoryInfoList = 16, - ThreadInfoList = 17, - HandleOperationList = 18, - Token = 19, - JavascriptData = 20, - SystemMemoryInfo = 21, - ProcessVMCounters = 22, - LastReserved = 0x0000ffff, - - /* Breakpad extension types. 0x4767 = "Gg" */ - BreakpadInfo = 0x47670001, - AssertionInfo = 0x47670002, - /* These are additional minidump stream values which are specific to - * the linux breakpad implementation. */ - LinuxCPUInfo = 0x47670003, /* /proc/cpuinfo */ - LinuxProcStatus = 0x47670004, /* /proc/$x/status */ - LinuxLSBRelease = 0x47670005, /* /etc/lsb-release */ - LinuxCMDLine = 0x47670006, /* /proc/$x/cmdline */ - LinuxEnviron = 0x47670007, /* /proc/$x/environ */ - LinuxAuxv = 0x47670008, /* /proc/$x/auxv */ - LinuxMaps = 0x47670009, /* /proc/$x/maps */ - LinuxDSODebug = 0x4767000A, - LinuxProcStat = 0x4767000B, /* /proc/$x/stat */ - LinuxProcUptime = 0x4767000C, /* uptime */ - LinuxProcFD = 0x4767000D, /* /proc/$x/fb */ - FacebookAppCustomData = 0xFACECAFA, - FacebookBuildID = 0xFACECAFB, - FacebookAppVersionName = 0xFACECAFC, - FacebookJavaStack = 0xFACECAFD, - FacebookDalvikInfo = 0xFACECAFE, - FacebookUnwindSymbols = 0xFACECAFF, - FacebookDumpErrorLog = 0xFACECB00, - FacebookAppStateLog = 0xFACECCCC, - FacebookAbortReason = 0xFACEDEAD, - FacebookThreadName = 0xFACEE000, - FacebookLogcat = 0xFACE1CA7, - -}; - -// for MinidumpSystemInfo.processor_arch -enum class MinidumpCPUArchitecture : uint16_t { - X86 = 0, /* PROCESSOR_ARCHITECTURE_INTEL */ - MIPS = 1, /* PROCESSOR_ARCHITECTURE_MIPS */ - Alpha = 2, /* PROCESSOR_ARCHITECTURE_ALPHA */ - PPC = 3, /* PROCESSOR_ARCHITECTURE_PPC */ - SHX = 4, /* PROCESSOR_ARCHITECTURE_SHX (Super-H) */ - ARM = 5, /* PROCESSOR_ARCHITECTURE_ARM */ - IA64 = 6, /* PROCESSOR_ARCHITECTURE_IA64 */ - Alpha64 = 7, /* PROCESSOR_ARCHITECTURE_ALPHA64 */ - MSIL = 8, /* PROCESSOR_ARCHITECTURE_MSIL - * (Microsoft Intermediate Language) */ - AMD64 = 9, /* PROCESSOR_ARCHITECTURE_AMD64 */ - X86Win64 = 10, /* PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 (WoW64) */ - SPARC = 0x8001, /* Breakpad-defined value for SPARC */ - PPC64 = 0x8002, /* Breakpad-defined value for PPC64 */ - ARM64 = 0x8003, /* Breakpad-defined value for ARM64 */ - MIPS64 = 0x8004, /* Breakpad-defined value for MIPS64 */ - Unknown = 0xffff /* PROCESSOR_ARCHITECTURE_UNKNOWN */ -}; - -// for MinidumpSystemInfo.platform_id -enum class MinidumpOSPlatform : uint32_t { - Win32S = 0, /* VER_PLATFORM_WIN32s (Windows 3.1) */ - Win32Windows = 1, /* VER_PLATFORM_WIN32_WINDOWS (Windows 95-98-Me) */ - Win32NT = 2, /* VER_PLATFORM_WIN32_NT (Windows NT, 2000+) */ - Win32CE = 3, /* VER_PLATFORM_WIN32_CE, VER_PLATFORM_WIN32_HH - * (Windows CE, Windows Mobile, "Handheld") */ - - /* The following values are Breakpad-defined. */ - Unix = 0x8000, /* Generic Unix-ish */ - MacOSX = 0x8101, /* Mac OS X/Darwin */ - IOS = 0x8102, /* iOS */ - Linux = 0x8201, /* Linux */ - Solaris = 0x8202, /* Solaris */ - Android = 0x8203, /* Android */ - PS3 = 0x8204, /* PS3 */ - NaCl = 0x8205 /* Native Client (NaCl) */ -}; - -// For MinidumpCPUInfo.arm_cpu_info.elf_hwcaps. -// This matches the Linux kernel definitions from -enum class MinidumpPCPUInformationARMElfHwCaps : uint32_t { - SWP = (1 << 0), - Half = (1 << 1), - Thumb = (1 << 2), - _26BIT = (1 << 3), - FastMult = (1 << 4), - FPA = (1 << 5), - VFP = (1 << 6), - EDSP = (1 << 7), - Java = (1 << 8), - IWMMXT = (1 << 9), - Crunch = (1 << 10), - ThumbEE = (1 << 11), - Neon = (1 << 12), - VFPv3 = (1 << 13), - VFPv3D16 = (1 << 14), - TLS = (1 << 15), - VFPv4 = (1 << 16), - IDIVA = (1 << 17), - IDIVT = (1 << 18), - LLVM_MARK_AS_BITMASK_ENUM(/* LargestValue = */ IDIVT) -}; - enum class MinidumpMiscInfoFlags : uint32_t { ProcessID = (1 << 0), ProcessTimes = (1 << 1), diff --git a/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp b/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp index 1f9dc54..bb86835 100644 --- a/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp +++ b/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp @@ -663,7 +663,7 @@ public: Stream &s = result.GetOutputStream(); MinidumpParser &minidump = *process->m_minidump_parser; if (DumpDirectory()) { - s.Printf("RVA SIZE TYPE MinidumpStreamType\n"); + s.Printf("RVA SIZE TYPE StreamType\n"); s.Printf("---------- ---------- ---------- --------------------------\n"); for (const auto &pair: minidump.GetDirectoryMap()) s.Printf("0x%8.8x 0x%8.8x 0x%8.8x %s\n", (uint32_t)pair.second.rva, @@ -671,7 +671,7 @@ public: MinidumpParser::GetStreamTypeAsString(pair.first).data()); s.Printf("\n"); } - auto DumpTextStream = [&](MinidumpStreamType stream_type, + auto DumpTextStream = [&](StreamType stream_type, llvm::StringRef label) -> void { auto bytes = minidump.GetStream(stream_type); if (!bytes.empty()) { @@ -680,7 +680,7 @@ public: s.Printf("%s:\n%s\n\n", label.data(), bytes.data()); } }; - auto DumpBinaryStream = [&](MinidumpStreamType stream_type, + auto DumpBinaryStream = [&](StreamType stream_type, llvm::StringRef label) -> void { auto bytes = minidump.GetStream(stream_type); if (!bytes.empty()) { @@ -696,30 +696,30 @@ public: }; if (DumpLinuxCPUInfo()) - DumpTextStream(MinidumpStreamType::LinuxCPUInfo, "/proc/cpuinfo"); + DumpTextStream(StreamType::LinuxCPUInfo, "/proc/cpuinfo"); if (DumpLinuxProcStatus()) - DumpTextStream(MinidumpStreamType::LinuxProcStatus, "/proc/PID/status"); + DumpTextStream(StreamType::LinuxProcStatus, "/proc/PID/status"); if (DumpLinuxLSBRelease()) - DumpTextStream(MinidumpStreamType::LinuxLSBRelease, "/etc/lsb-release"); + DumpTextStream(StreamType::LinuxLSBRelease, "/etc/lsb-release"); if (DumpLinuxCMDLine()) - DumpTextStream(MinidumpStreamType::LinuxCMDLine, "/proc/PID/cmdline"); + DumpTextStream(StreamType::LinuxCMDLine, "/proc/PID/cmdline"); if (DumpLinuxEnviron()) - DumpTextStream(MinidumpStreamType::LinuxEnviron, "/proc/PID/environ"); + DumpTextStream(StreamType::LinuxEnviron, "/proc/PID/environ"); if (DumpLinuxAuxv()) - DumpBinaryStream(MinidumpStreamType::LinuxAuxv, "/proc/PID/auxv"); + DumpBinaryStream(StreamType::LinuxAuxv, "/proc/PID/auxv"); if (DumpLinuxMaps()) - DumpTextStream(MinidumpStreamType::LinuxMaps, "/proc/PID/maps"); + DumpTextStream(StreamType::LinuxMaps, "/proc/PID/maps"); if (DumpLinuxProcStat()) - DumpTextStream(MinidumpStreamType::LinuxProcStat, "/proc/PID/stat"); + DumpTextStream(StreamType::LinuxProcStat, "/proc/PID/stat"); if (DumpLinuxProcUptime()) - DumpTextStream(MinidumpStreamType::LinuxProcUptime, "uptime"); + DumpTextStream(StreamType::LinuxProcUptime, "uptime"); if (DumpLinuxProcFD()) - DumpTextStream(MinidumpStreamType::LinuxProcFD, "/proc/PID/fd"); + DumpTextStream(StreamType::LinuxProcFD, "/proc/PID/fd"); if (DumpFacebookAppData()) - DumpTextStream(MinidumpStreamType::FacebookAppCustomData, + DumpTextStream(StreamType::FacebookAppCustomData, "Facebook App Data"); if (DumpFacebookBuildID()) { - auto bytes = minidump.GetStream(MinidumpStreamType::FacebookBuildID); + auto bytes = minidump.GetStream(StreamType::FacebookBuildID); if (bytes.size() >= 4) { DataExtractor data(bytes.data(), bytes.size(), eByteOrderLittle, process->GetAddressByteSize()); @@ -731,31 +731,31 @@ public: } } if (DumpFacebookVersionName()) - DumpTextStream(MinidumpStreamType::FacebookAppVersionName, + DumpTextStream(StreamType::FacebookAppVersionName, "Facebook Version String"); if (DumpFacebookJavaStack()) - DumpTextStream(MinidumpStreamType::FacebookJavaStack, + DumpTextStream(StreamType::FacebookJavaStack, "Facebook Java Stack"); if (DumpFacebookDalvikInfo()) - DumpTextStream(MinidumpStreamType::FacebookDalvikInfo, + DumpTextStream(StreamType::FacebookDalvikInfo, "Facebook Dalvik Info"); if (DumpFacebookUnwindSymbols()) - DumpBinaryStream(MinidumpStreamType::FacebookUnwindSymbols, + DumpBinaryStream(StreamType::FacebookUnwindSymbols, "Facebook Unwind Symbols Bytes"); if (DumpFacebookErrorLog()) - DumpTextStream(MinidumpStreamType::FacebookDumpErrorLog, + DumpTextStream(StreamType::FacebookDumpErrorLog, "Facebook Error Log"); if (DumpFacebookAppStateLog()) - DumpTextStream(MinidumpStreamType::FacebookAppStateLog, + DumpTextStream(StreamType::FacebookAppStateLog, "Faceook Application State Log"); if (DumpFacebookAbortReason()) - DumpTextStream(MinidumpStreamType::FacebookAbortReason, + DumpTextStream(StreamType::FacebookAbortReason, "Facebook Abort Reason"); if (DumpFacebookThreadName()) - DumpTextStream(MinidumpStreamType::FacebookThreadName, + DumpTextStream(StreamType::FacebookThreadName, "Facebook Thread Name"); if (DumpFacebookLogcat()) - DumpTextStream(MinidumpStreamType::FacebookLogcat, + DumpTextStream(StreamType::FacebookLogcat, "Facebook Logcat"); return true; }