aboutsummaryrefslogtreecommitdiff
path: root/src/google_breakpad/processor
diff options
context:
space:
mode:
authorjimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e>2010-01-11 22:31:50 +0000
committerjimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e>2010-01-11 22:31:50 +0000
commite9faf5482802cb508401881f15b2712eb2f828f2 (patch)
tree43cf980f2f90d735934b085a57b1fe2532311130 /src/google_breakpad/processor
parentBreakpad DWARF Reader: Add DWARF language enumeration values. (diff)
downloadbreakpad-e9faf5482802cb508401881f15b2712eb2f828f2.tar.xz
Issue 49013: Breakpad Processor: Use a separate API to retrieve Windows stack debugging info.
At the moment, FillSourceLineInfo returns Windows DIA-based stack walking data. In addition to being ugly, this makes it difficult to provide access to DWARF CFI-based stack walking data in a symmetrical way. This patch changes FillSourceLineInfo to do the single job its name suggests, and adds a second member function to SourceLineResolverInterface to retrieve Windows DIA stack walking information. A sibling member function will provide access to DWARF CFI stack walking data. a=jimblandy, r=mmentovai git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@480 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/google_breakpad/processor')
-rw-r--r--src/google_breakpad/processor/basic_source_line_resolver.h4
-rw-r--r--src/google_breakpad/processor/source_line_resolver_interface.h18
2 files changed, 14 insertions, 8 deletions
diff --git a/src/google_breakpad/processor/basic_source_line_resolver.h b/src/google_breakpad/processor/basic_source_line_resolver.h
index 55902248..d7dd583c 100644
--- a/src/google_breakpad/processor/basic_source_line_resolver.h
+++ b/src/google_breakpad/processor/basic_source_line_resolver.h
@@ -63,7 +63,9 @@ class BasicSourceLineResolver : public SourceLineResolverInterface {
virtual bool HasModule(const string &module_name) const;
- virtual WindowsFrameInfo* FillSourceLineInfo(StackFrame *frame) const;
+ virtual void FillSourceLineInfo(StackFrame *frame) const;
+
+ virtual WindowsFrameInfo *FindWindowsFrameInfo(const StackFrame *frame) const;
private:
template<class T> class MemAddrMap;
diff --git a/src/google_breakpad/processor/source_line_resolver_interface.h b/src/google_breakpad/processor/source_line_resolver_interface.h
index a139cf07..27aa3c93 100644
--- a/src/google_breakpad/processor/source_line_resolver_interface.h
+++ b/src/google_breakpad/processor/source_line_resolver_interface.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2006, Google Inc.
+// Copyright (c) 2006, Google Inc. -*- mode: C++ -*-
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -65,12 +65,16 @@ class SourceLineResolverInterface {
// Fills in the function_base, function_name, source_file_name,
// and source_line fields of the StackFrame. The instruction and
- // module_name fields must already be filled in. Additional debugging
- // information, if available, is returned. If the information is not
- // available, returns NULL. A NULL return value does not indicate an
- // error. The caller takes ownership of any returned WindowsFrameInfo
- // object.
- virtual WindowsFrameInfo* FillSourceLineInfo(StackFrame *frame) const = 0;
+ // module_name fields must already be filled in.
+ virtual void FillSourceLineInfo(StackFrame *frame) const = 0;
+
+ // If Windows stack walking information is available covering
+ // FRAME's instruction address, return a WindowsFrameInfo structure
+ // describing it. If the information is not available, returns NULL.
+ // A NULL return value does not indicate an error. The caller takes
+ // ownership of any returned WindowsFrameInfo object.
+ virtual WindowsFrameInfo *FindWindowsFrameInfo(const StackFrame *frame)
+ const = 0;
protected:
// SourceLineResolverInterface cannot be instantiated except by subclasses