aboutsummaryrefslogtreecommitdiff
path: root/src/google_airbag/processor/stackwalker.h
diff options
context:
space:
mode:
authormmentovai <mmentovai@4c0a9323-5329-0410-9bdc-e9ce6186880e>2006-12-05 22:52:28 +0000
committermmentovai <mmentovai@4c0a9323-5329-0410-9bdc-e9ce6186880e>2006-12-05 22:52:28 +0000
commitdb3342a10ec30902aa9018b80e1d9a40bd01c487 (patch)
tree933903715ae6d5d5f1b7827e0612314162b0aecf /src/google_airbag/processor/stackwalker.h
parentDon't use CRT in exception handler code (#86). r=bryner (diff)
downloadbreakpad-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.h12
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_;