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

Side by Side Diff: src/client/linux/handler/minidump_descriptor.h

Issue 1334473003: Add GPU fingerprint information to breakpad microdumps. (Closed) Base URL: https://chromium.googlesource.com/breakpad/breakpad.git@master
Patch Set: Created 5 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 Google Inc. 1 // Copyright (c) 2012 Google Inc.
2 // All rights reserved. 2 // All rights reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // * Redistributions of source code must retain the above copyright 8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer. 9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above 10 // * Redistributions in binary form must reproduce the above
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 46
47 class MinidumpDescriptor { 47 class MinidumpDescriptor {
48 public: 48 public:
49 struct MicrodumpOnConsole {}; 49 struct MicrodumpOnConsole {};
50 static const MicrodumpOnConsole kMicrodumpOnConsole; 50 static const MicrodumpOnConsole kMicrodumpOnConsole;
51 51
52 MinidumpDescriptor() : mode_(kUninitialized), 52 MinidumpDescriptor() : mode_(kUninitialized),
53 fd_(-1), 53 fd_(-1),
54 size_limit_(-1), 54 size_limit_(-1),
55 microdump_build_fingerprint_(NULL), 55 microdump_build_fingerprint_(NULL),
56 microdump_product_info_(NULL) {} 56 microdump_product_info_(NULL),
57 microdump_gpu_fingerprint_(NULL) {}
57 58
58 explicit MinidumpDescriptor(const string& directory) 59 explicit MinidumpDescriptor(const string& directory)
59 : mode_(kWriteMinidumpToFile), 60 : mode_(kWriteMinidumpToFile),
60 fd_(-1), 61 fd_(-1),
61 directory_(directory), 62 directory_(directory),
62 c_path_(NULL), 63 c_path_(NULL),
63 size_limit_(-1), 64 size_limit_(-1),
64 microdump_build_fingerprint_(NULL), 65 microdump_build_fingerprint_(NULL),
65 microdump_product_info_(NULL) { 66 microdump_product_info_(NULL),
67 microdump_gpu_fingerprint_(NULL) {
66 assert(!directory.empty()); 68 assert(!directory.empty());
67 } 69 }
68 70
69 explicit MinidumpDescriptor(int fd) 71 explicit MinidumpDescriptor(int fd)
70 : mode_(kWriteMinidumpToFd), 72 : mode_(kWriteMinidumpToFd),
71 fd_(fd), 73 fd_(fd),
72 c_path_(NULL), 74 c_path_(NULL),
73 size_limit_(-1), 75 size_limit_(-1),
74 microdump_build_fingerprint_(NULL), 76 microdump_build_fingerprint_(NULL),
75 microdump_product_info_(NULL) { 77 microdump_product_info_(NULL),
78 microdump_gpu_fingerprint_(NULL) {
76 assert(fd != -1); 79 assert(fd != -1);
77 } 80 }
78 81
79 explicit MinidumpDescriptor(const MicrodumpOnConsole&) 82 explicit MinidumpDescriptor(const MicrodumpOnConsole&)
80 : mode_(kWriteMicrodumpToConsole), 83 : mode_(kWriteMicrodumpToConsole),
81 fd_(-1), 84 fd_(-1),
82 size_limit_(-1), 85 size_limit_(-1),
83 microdump_build_fingerprint_(NULL), 86 microdump_build_fingerprint_(NULL),
84 microdump_product_info_(NULL) {} 87 microdump_product_info_(NULL),
88 microdump_gpu_fingerprint_(NULL) {}
85 89
86 explicit MinidumpDescriptor(const MinidumpDescriptor& descriptor); 90 explicit MinidumpDescriptor(const MinidumpDescriptor& descriptor);
87 MinidumpDescriptor& operator=(const MinidumpDescriptor& descriptor); 91 MinidumpDescriptor& operator=(const MinidumpDescriptor& descriptor);
88 92
89 static MinidumpDescriptor getMicrodumpDescriptor(); 93 static MinidumpDescriptor getMicrodumpDescriptor();
90 94
91 bool IsFD() const { return mode_ == kWriteMinidumpToFd; } 95 bool IsFD() const { return mode_ == kWriteMinidumpToFd; }
92 96
93 int fd() const { return fd_; } 97 int fd() const { return fd_; }
94 98
(...skipping 17 matching lines...) Expand all
112 void SetMicrodumpBuildFingerprint(const char* build_fingerprint); 116 void SetMicrodumpBuildFingerprint(const char* build_fingerprint);
113 const char* microdump_build_fingerprint() const { 117 const char* microdump_build_fingerprint() const {
114 return microdump_build_fingerprint_; 118 return microdump_build_fingerprint_;
115 } 119 }
116 120
117 void SetMicrodumpProductInfo(const char* product_info); 121 void SetMicrodumpProductInfo(const char* product_info);
118 const char* microdump_product_info() const { 122 const char* microdump_product_info() const {
119 return microdump_product_info_; 123 return microdump_product_info_;
120 } 124 }
121 125
126 void SetMicrodumpGPUFingerprint(const char* gpu_fingerprint);
Primiano Tucci (use gerrit) 2015/09/09 18:59:34 At this point feels like we should just have one m
Tobias Sargeant 2015/09/10 10:45:04 Done.
127 const char* microdump_gpu_fingerprint() const {
128 return microdump_gpu_fingerprint_;
129 }
130
122 private: 131 private:
123 enum DumpMode { 132 enum DumpMode {
124 kUninitialized = 0, 133 kUninitialized = 0,
125 kWriteMinidumpToFile, 134 kWriteMinidumpToFile,
126 kWriteMinidumpToFd, 135 kWriteMinidumpToFd,
127 kWriteMicrodumpToConsole 136 kWriteMicrodumpToConsole
128 }; 137 };
129 138
130 // Specifies the dump mode (see DumpMode). 139 // Specifies the dump mode (see DumpMode).
131 DumpMode mode_; 140 DumpMode mode_;
(...skipping 15 matching lines...) Expand all
147 156
148 // The product name/version and build fingerprint that should be appended to 157 // The product name/version and build fingerprint that should be appended to
149 // the dump (microdump only). Microdumps don't have the ability of appending 158 // the dump (microdump only). Microdumps don't have the ability of appending
150 // extra metadata after the dump is generated (as opposite to minidumps 159 // extra metadata after the dump is generated (as opposite to minidumps
151 // MIME fields), therefore the product details must be provided upfront. 160 // MIME fields), therefore the product details must be provided upfront.
152 // The string pointers are supposed to be valid through all the lifetime of 161 // The string pointers are supposed to be valid through all the lifetime of
153 // the process (read: the caller has to guarantee that they are stored in 162 // the process (read: the caller has to guarantee that they are stored in
154 // global static storage). 163 // global static storage).
155 const char* microdump_build_fingerprint_; 164 const char* microdump_build_fingerprint_;
156 const char* microdump_product_info_; 165 const char* microdump_product_info_;
166 const char* microdump_gpu_fingerprint_;
157 }; 167 };
158 168
159 } // namespace google_breakpad 169 } // namespace google_breakpad
160 170
161 #endif // CLIENT_LINUX_HANDLER_MINIDUMP_DESCRIPTOR_H_ 171 #endif // CLIENT_LINUX_HANDLER_MINIDUMP_DESCRIPTOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698