aboutsummaryrefslogtreecommitdiff
path: root/src/google_breakpad/processor/source_line_resolver_interface.h
diff options
context:
space:
mode:
authorted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e>2010-04-08 23:06:23 +0000
committerted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e>2010-04-08 23:06:23 +0000
commitb223627d81c083a64f2ccecf2651a18111421280 (patch)
treebfe59da685835b8d13b073f11cddaf4c5997282f /src/google_breakpad/processor/source_line_resolver_interface.h
parentInclude what you use. (diff)
downloadbreakpad-b223627d81c083a64f2ccecf2651a18111421280.tar.xz
provide a network source line resolver + server. r=mark,jimb at http://breakpad.appspot.com/36001
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@569 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/google_breakpad/processor/source_line_resolver_interface.h')
-rw-r--r--src/google_breakpad/processor/source_line_resolver_interface.h24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/google_breakpad/processor/source_line_resolver_interface.h b/src/google_breakpad/processor/source_line_resolver_interface.h
index a7ec9b7f..fa45d75f 100644
--- a/src/google_breakpad/processor/source_line_resolver_interface.h
+++ b/src/google_breakpad/processor/source_line_resolver_interface.h
@@ -36,6 +36,7 @@
#include <string>
#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/code_module.h"
namespace google_breakpad {
@@ -53,37 +54,40 @@ class SourceLineResolverInterface {
// Adds a module to this resolver, returning true on success.
//
- // module_name may be an arbitrary string. Typically, it will be the
- // filename of the module, optionally with version identifiers.
+ // module should have at least the code_file, debug_file,
+ // and debug_identifier members populated.
//
// map_file should contain line/address mappings for this module.
- virtual bool LoadModule(const string &module_name,
+ virtual bool LoadModule(const CodeModule *module,
const string &map_file) = 0;
// Same as above, but takes the contents of a pre-read map buffer
- virtual bool LoadModuleUsingMapBuffer(const string &module_name,
+ virtual bool LoadModuleUsingMapBuffer(const CodeModule *module,
const string &map_buffer) = 0;
- // Returns true if a module with the given name has been loaded.
- virtual bool HasModule(const string &module_name) const = 0;
+ // Request that the specified module be unloaded from this resolver.
+ // A resolver may choose to ignore such a request.
+ virtual void UnloadModule(const CodeModule *module) = 0;
+
+ // Returns true if the module has been loaded.
+ virtual bool HasModule(const CodeModule *module) = 0;
// 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.
- virtual void FillSourceLineInfo(StackFrame *frame) const = 0;
+ virtual void FillSourceLineInfo(StackFrame *frame) = 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;
+ virtual WindowsFrameInfo *FindWindowsFrameInfo(const StackFrame *frame) = 0;
// If CFI stack walking information is available covering ADDRESS,
// return a CFIFrameInfo structure describing it. If the information
// is not available, return NULL. The caller takes ownership of any
// returned CFIFrameInfo object.
- virtual CFIFrameInfo *FindCFIFrameInfo(const StackFrame *frame) const = 0;
+ virtual CFIFrameInfo *FindCFIFrameInfo(const StackFrame *frame) = 0;
protected:
// SourceLineResolverInterface cannot be instantiated except by subclasses