diff options
author | mmentovai <mmentovai@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2006-12-05 22:52:28 +0000 |
---|---|---|
committer | mmentovai <mmentovai@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2006-12-05 22:52:28 +0000 |
commit | db3342a10ec30902aa9018b80e1d9a40bd01c487 (patch) | |
tree | 933903715ae6d5d5f1b7827e0612314162b0aecf /src/google_airbag/processor/stackwalker.h | |
parent | Don't use CRT in exception handler code (#86). r=bryner (diff) | |
download | breakpad-db3342a10ec30902aa9018b80e1d9a40bd01c487.tar.xz |
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
Diffstat (limited to 'src/google_airbag/processor/stackwalker.h')
-rw-r--r-- | src/google_airbag/processor/stackwalker.h | 12 |
1 files changed, 6 insertions, 6 deletions
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<typename T> 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_; |