mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2025-12-31 03:37:44 +01:00
Add an abstract interface to SourceLineResolver, and allow any implementation
to be used with MinidumpProcessor. The basic SourceLineResolver is now a public interface (#89) git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@83 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
parent
65dbfcc15f
commit
fd38d48e6d
18 changed files with 252 additions and 157 deletions
|
|
@ -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_;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue