From db3342a10ec30902aa9018b80e1d9a40bd01c487 Mon Sep 17 00:00:00 2001 From: mmentovai Date: Tue, 5 Dec 2006 22:52:28 +0000 Subject: Module API (#32). r=waylonis, bryner - Introduces a standard API for dealing with modules. MinidumpModule is now a concrete implementation of this API. Code may interact with single modules using the CodeModule interface, and collections of modules using its container, the CodeModules interface. - CodeModule is used directly by SymbolSupplier implementations and SourceLineResolver. Reliance on the specific implementation in MinidumpModule has been eliminated. - Module lists are now added to ProcessState objects. Module references in each stack frame are now pointers to objects in these module lists. - The sample minidump_stackwalk tool prints the module list after printing all threads' stacks. http://groups.google.com/group/airbag-dev/browse_frm/thread/a9c0550edde54cf8 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@74 4c0a9323-5329-0410-9bdc-e9ce6186880e --- src/google_airbag/processor/stackwalker.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/google_airbag/processor/stackwalker.h') diff --git a/src/google_airbag/processor/stackwalker.h b/src/google_airbag/processor/stackwalker.h index e6c6e6e8..b3f2333e 100644 --- a/src/google_airbag/processor/stackwalker.h +++ b/src/google_airbag/processor/stackwalker.h @@ -46,10 +46,10 @@ namespace google_airbag { class CallStack; +class CodeModules; template class linked_ptr; class MemoryRegion; class MinidumpContext; -class MinidumpModuleList; struct StackFrame; struct StackFrameInfo; class SymbolSupplier; @@ -71,18 +71,18 @@ class Stackwalker { // argument. If no suitable concrete subclass exists, returns NULL. static Stackwalker* StackwalkerForCPU(MinidumpContext *context, MemoryRegion *memory, - MinidumpModuleList *modules, + const CodeModules *modules, SymbolSupplier *supplier); protected: // memory identifies a MemoryRegion that provides the stack memory - // for the stack to walk. modules, if non-NULL, is a MinidumpModuleList - // that is used to look up which code module each stack frame is + // for the stack to walk. modules, if non-NULL, is a CodeModules + // 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. Stackwalker(MemoryRegion *memory, - MinidumpModuleList *modules, + const CodeModules *modules, SymbolSupplier *supplier); // The stack memory to walk. Subclasses will require this region to @@ -110,7 +110,7 @@ class Stackwalker { // A list of modules, for populating each StackFrame's module information. // This field is optional and may be NULL. - MinidumpModuleList *modules_; + const CodeModules *modules_; // The optional SymbolSupplier for resolving source line info. SymbolSupplier *supplier_; -- cgit v1.2.1