| Index: src/processor/microdump.cc
|
| diff --git a/src/processor/microdump.cc b/src/processor/microdump.cc
|
| index 6a51a9971a9256a0c436b23f1e520c0db247cff2..e276743f0fedcb006c6df8b8cb5840e3638bdb96 100644
|
| --- a/src/processor/microdump.cc
|
| +++ b/src/processor/microdump.cc
|
| @@ -54,11 +54,13 @@ static const char kMicrodumpBegin[] = "-----BEGIN BREAKPAD MICRODUMP-----";
|
| static const char kMicrodumpEnd[] = "-----END BREAKPAD MICRODUMP-----";
|
| static const char kOsKey[] = ": O ";
|
| static const char kCpuKey[] = ": C ";
|
| +static const char kGpuKey[] = ": G ";
|
| static const char kMmapKey[] = ": M ";
|
| static const char kStackKey[] = ": S ";
|
| static const char kStackFirstLineKey[] = ": S 0 ";
|
| static const char kArmArchitecture[] = "arm";
|
| static const char kArm64Architecture[] = "arm64";
|
| +static const char kGpuUnknown[] = "UNKNOWN";
|
|
|
| template<typename T>
|
| T HexStrToL(const string& str) {
|
| @@ -292,6 +294,14 @@ Microdump::Microdump(const string& contents)
|
| } else {
|
| std::cerr << "Unsupported architecture: " << arch << std::endl;
|
| }
|
| + } else if ((pos = line.find(kGpuKey)) != string::npos) {
|
| + string gpu_str(line, pos + strlen(kGpuKey));
|
| + if (strcmp(gpu_str.c_str(), kGpuUnknown) != 0) {
|
| + std::istringstream gpu_tokens(gpu_str);
|
| + std::getline(gpu_tokens, system_info_->gl_version, '|');
|
| + std::getline(gpu_tokens, system_info_->gl_vendor, '|');
|
| + std::getline(gpu_tokens, system_info_->gl_renderer, '|');
|
| + }
|
| } else if ((pos = line.find(kMmapKey)) != string::npos) {
|
| string mmap_line(line, pos + strlen(kMmapKey));
|
| std::istringstream mmap_tokens(mmap_line);
|
|
|