OLD | NEW |
1 // -*- mode: c++ -*- | 1 // -*- mode: c++ -*- |
2 | 2 |
3 // Copyright (c) 2010 Google Inc. All Rights Reserved. | 3 // Copyright (c) 2010 Google Inc. All Rights Reserved. |
4 // | 4 // |
5 // Redistribution and use in source and binary forms, with or without | 5 // Redistribution and use in source and binary forms, with or without |
6 // modification, are permitted provided that the following conditions are | 6 // modification, are permitted provided that the following conditions are |
7 // met: | 7 // met: |
8 // | 8 // |
9 // * Redistributions of source code must retain the above copyright | 9 // * Redistributions of source code must retain the above copyright |
10 // notice, this list of conditions and the following disclaimer. | 10 // notice, this list of conditions and the following disclaimer. |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 // destroy the root DIE handler.) | 149 // destroy the root DIE handler.) |
150 // | 150 // |
151 // This allows the code for handling a particular kind of DIE to be | 151 // This allows the code for handling a particular kind of DIE to be |
152 // gathered together in a single class, makes it easy to skip all the | 152 // gathered together in a single class, makes it easy to skip all the |
153 // children or individual children of a particular DIE, and provides | 153 // children or individual children of a particular DIE, and provides |
154 // appropriate parental context for each die. | 154 // appropriate parental context for each die. |
155 | 155 |
156 #ifndef COMMON_DWARF_DWARF2DIEHANDLER_H__ | 156 #ifndef COMMON_DWARF_DWARF2DIEHANDLER_H__ |
157 #define COMMON_DWARF_DWARF2DIEHANDLER_H__ | 157 #define COMMON_DWARF_DWARF2DIEHANDLER_H__ |
158 | 158 |
| 159 #include <stdint.h> |
| 160 |
159 #include <stack> | 161 #include <stack> |
160 #include <string> | 162 #include <string> |
161 | 163 |
162 #include "common/dwarf/types.h" | 164 #include "common/dwarf/types.h" |
163 #include "common/dwarf/dwarf2enums.h" | 165 #include "common/dwarf/dwarf2enums.h" |
164 #include "common/dwarf/dwarf2reader.h" | 166 #include "common/dwarf/dwarf2reader.h" |
165 #include "common/using_std_string.h" | 167 #include "common/using_std_string.h" |
166 | 168 |
167 namespace dwarf2reader { | 169 namespace dwarf2reader { |
168 | 170 |
(...skipping 30 matching lines...) Expand all Loading... |
199 enum DwarfForm form, | 201 enum DwarfForm form, |
200 uint64 data) { } | 202 uint64 data) { } |
201 virtual void ProcessAttributeSigned(enum DwarfAttribute attr, | 203 virtual void ProcessAttributeSigned(enum DwarfAttribute attr, |
202 enum DwarfForm form, | 204 enum DwarfForm form, |
203 int64 data) { } | 205 int64 data) { } |
204 virtual void ProcessAttributeReference(enum DwarfAttribute attr, | 206 virtual void ProcessAttributeReference(enum DwarfAttribute attr, |
205 enum DwarfForm form, | 207 enum DwarfForm form, |
206 uint64 data) { } | 208 uint64 data) { } |
207 virtual void ProcessAttributeBuffer(enum DwarfAttribute attr, | 209 virtual void ProcessAttributeBuffer(enum DwarfAttribute attr, |
208 enum DwarfForm form, | 210 enum DwarfForm form, |
209 const char* data, | 211 const uint8_t *data, |
210 uint64 len) { } | 212 uint64 len) { } |
211 virtual void ProcessAttributeString(enum DwarfAttribute attr, | 213 virtual void ProcessAttributeString(enum DwarfAttribute attr, |
212 enum DwarfForm form, | 214 enum DwarfForm form, |
213 const string& data) { } | 215 const string& data) { } |
214 virtual void ProcessAttributeSignature(enum DwarfAttribute attr, | 216 virtual void ProcessAttributeSignature(enum DwarfAttribute attr, |
215 enum DwarfForm form, | 217 enum DwarfForm form, |
216 uint64 signture) { } | 218 uint64 signture) { } |
217 | 219 |
218 // Once we have reported all the DIE's attributes' values, we call | 220 // Once we have reported all the DIE's attributes' values, we call |
219 // this member function. If it returns false, we skip all the DIE's | 221 // this member function. If it returns false, we skip all the DIE's |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 enum DwarfAttribute attr, | 304 enum DwarfAttribute attr, |
303 enum DwarfForm form, | 305 enum DwarfForm form, |
304 int64 data); | 306 int64 data); |
305 void ProcessAttributeReference(uint64 offset, | 307 void ProcessAttributeReference(uint64 offset, |
306 enum DwarfAttribute attr, | 308 enum DwarfAttribute attr, |
307 enum DwarfForm form, | 309 enum DwarfForm form, |
308 uint64 data); | 310 uint64 data); |
309 void ProcessAttributeBuffer(uint64 offset, | 311 void ProcessAttributeBuffer(uint64 offset, |
310 enum DwarfAttribute attr, | 312 enum DwarfAttribute attr, |
311 enum DwarfForm form, | 313 enum DwarfForm form, |
312 const char* data, | 314 const uint8_t *data, |
313 uint64 len); | 315 uint64 len); |
314 void ProcessAttributeString(uint64 offset, | 316 void ProcessAttributeString(uint64 offset, |
315 enum DwarfAttribute attr, | 317 enum DwarfAttribute attr, |
316 enum DwarfForm form, | 318 enum DwarfForm form, |
317 const string &data); | 319 const string &data); |
318 void ProcessAttributeSignature(uint64 offset, | 320 void ProcessAttributeSignature(uint64 offset, |
319 enum DwarfAttribute attr, | 321 enum DwarfAttribute attr, |
320 enum DwarfForm form, | 322 enum DwarfForm form, |
321 uint64 signature); | 323 uint64 signature); |
322 void EndDIE(uint64 offset); | 324 void EndDIE(uint64 offset); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 // pushing lots of stack entries with handler_ set to NULL. | 356 // pushing lots of stack entries with handler_ set to NULL. |
355 std::stack<HandlerStack> die_handlers_; | 357 std::stack<HandlerStack> die_handlers_; |
356 | 358 |
357 // The root handler. We don't push it on die_handlers_ until we | 359 // The root handler. We don't push it on die_handlers_ until we |
358 // actually get the StartDIE call for the root. | 360 // actually get the StartDIE call for the root. |
359 RootDIEHandler *root_handler_; | 361 RootDIEHandler *root_handler_; |
360 }; | 362 }; |
361 | 363 |
362 } // namespace dwarf2reader | 364 } // namespace dwarf2reader |
363 #endif // COMMON_DWARF_DWARF2DIEHANDLER_H__ | 365 #endif // COMMON_DWARF_DWARF2DIEHANDLER_H__ |
OLD | NEW |