Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(36)

Side by Side Diff: src/google_breakpad/processor/stackwalker.h

Issue 5684002: Refactoring in preparation for microdump processing (Closed) Base URL: http://google-breakpad.googlecode.com/svn/trunk/
Patch Set: More alpha sorting fixes in Makefile.am Created 10 years, 7 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2010 Google Inc. 1 // Copyright (c) 2010 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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 47
48 #include "common/using_std_string.h" 48 #include "common/using_std_string.h"
49 #include "google_breakpad/common/breakpad_types.h" 49 #include "google_breakpad/common/breakpad_types.h"
50 #include "google_breakpad/processor/code_modules.h" 50 #include "google_breakpad/processor/code_modules.h"
51 #include "google_breakpad/processor/memory_region.h" 51 #include "google_breakpad/processor/memory_region.h"
52 #include "google_breakpad/processor/stack_frame_symbolizer.h" 52 #include "google_breakpad/processor/stack_frame_symbolizer.h"
53 53
54 namespace google_breakpad { 54 namespace google_breakpad {
55 55
56 class CallStack; 56 class CallStack;
57 class MinidumpContext; 57 class DumpContext;
58 class StackFrameSymbolizer; 58 class StackFrameSymbolizer;
59 59
60 using std::set; 60 using std::set;
61 using std::vector; 61 using std::vector;
62 62
63 class Stackwalker { 63 class Stackwalker {
64 public: 64 public:
65 virtual ~Stackwalker() {} 65 virtual ~Stackwalker() {}
66 66
67 // Populates the given CallStack by calling GetContextFrame and 67 // Populates the given CallStack by calling GetContextFrame and
(...skipping 11 matching lines...) Expand all
79 // There is a check for duplicate modules so no duplicates are expected. 79 // There is a check for duplicate modules so no duplicates are expected.
80 bool Walk(CallStack* stack, 80 bool Walk(CallStack* stack,
81 vector<const CodeModule*>* modules_without_symbols, 81 vector<const CodeModule*>* modules_without_symbols,
82 vector<const CodeModule*>* modules_with_corrupt_symbols); 82 vector<const CodeModule*>* modules_with_corrupt_symbols);
83 83
84 // Returns a new concrete subclass suitable for the CPU that a stack was 84 // Returns a new concrete subclass suitable for the CPU that a stack was
85 // generated on, according to the CPU type indicated by the context 85 // generated on, according to the CPU type indicated by the context
86 // argument. If no suitable concrete subclass exists, returns NULL. 86 // argument. If no suitable concrete subclass exists, returns NULL.
87 static Stackwalker* StackwalkerForCPU( 87 static Stackwalker* StackwalkerForCPU(
88 const SystemInfo* system_info, 88 const SystemInfo* system_info,
89 MinidumpContext* context, 89 DumpContext* context,
90 MemoryRegion* memory, 90 MemoryRegion* memory,
91 const CodeModules* modules, 91 const CodeModules* modules,
92 StackFrameSymbolizer* resolver_helper); 92 StackFrameSymbolizer* resolver_helper);
93 93
94 static void set_max_frames(uint32_t max_frames) { 94 static void set_max_frames(uint32_t max_frames) {
95 max_frames_ = max_frames; 95 max_frames_ = max_frames;
96 max_frames_set_ = true; 96 max_frames_set_ = true;
97 } 97 }
98 static uint32_t max_frames() { return max_frames_; } 98 static uint32_t max_frames() { return max_frames_; }
99 99
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 // frames allowed. Stack-scanning can be expensive, so the option to 226 // frames allowed. Stack-scanning can be expensive, so the option to
227 // disable or limit it is helpful in cases where unwind performance is 227 // disable or limit it is helpful in cases where unwind performance is
228 // important. This defaults to 1024, the same as max_frames_. 228 // important. This defaults to 1024, the same as max_frames_.
229 static uint32_t max_frames_scanned_; 229 static uint32_t max_frames_scanned_;
230 }; 230 };
231 231
232 } // namespace google_breakpad 232 } // namespace google_breakpad
233 233
234 234
235 #endif // GOOGLE_BREAKPAD_PROCESSOR_STACKWALKER_H__ 235 #endif // GOOGLE_BREAKPAD_PROCESSOR_STACKWALKER_H__
OLDNEW
« no previous file with comments | « src/google_breakpad/processor/process_state.h ('k') | src/processor/basic_source_line_resolver_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld 1004:630ec63f810e-tainted