diff options
Diffstat (limited to 'src/google_airbag/processor/stackwalker.h')
-rw-r--r-- | src/google_airbag/processor/stackwalker.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/google_airbag/processor/stackwalker.h b/src/google_airbag/processor/stackwalker.h index 70da125e..381b9e29 100644 --- a/src/google_airbag/processor/stackwalker.h +++ b/src/google_airbag/processor/stackwalker.h @@ -50,6 +50,7 @@ class CodeModules; template<typename T> class linked_ptr; class MemoryRegion; class MinidumpContext; +class SourceLineResolverInterface; struct StackFrame; struct StackFrameInfo; class SymbolSupplier; @@ -73,7 +74,8 @@ class Stackwalker { static Stackwalker* StackwalkerForCPU(MinidumpContext *context, MemoryRegion *memory, const CodeModules *modules, - SymbolSupplier *supplier); + SymbolSupplier *supplier, + SourceLineResolverInterface *resolver); protected: // memory identifies a MemoryRegion that provides the stack memory @@ -81,10 +83,13 @@ class Stackwalker { // object that is used to look up which code module each stack frame is // associated with. supplier is an optional caller-supplied SymbolSupplier // implementation. If supplier is NULL, source line info will not be - // resolved. + // resolved. resolver is an instance of SourceLineResolverInterface + // (see source_line_resolver_interface.h and basic_source_line_resolver.h). + // If resolver is NULL, source line info will not be resolved. Stackwalker(MemoryRegion *memory, const CodeModules *modules, - SymbolSupplier *supplier); + SymbolSupplier *supplier, + SourceLineResolverInterface *resolver); // The stack memory to walk. Subclasses will require this region to // get information from the stack. @@ -115,6 +120,9 @@ class Stackwalker { // The optional SymbolSupplier for resolving source line info. SymbolSupplier *supplier_; + + // The SourceLineResolver implementation + SourceLineResolverInterface *resolver_; }; |