Fix for issues 296, 297. Various symbol supplier classes need to be updated with new overload('make check' was failing, as well as crash_report), and remove logging that was flooding output

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@318 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
nealsid 2009-02-27 23:59:40 +00:00
parent 02c244f1b2
commit 2ad976ef0b
7 changed files with 88 additions and 11 deletions

View file

@ -47,7 +47,7 @@ class OnDemandSymbolSupplier : public SymbolSupplier {
public:
// |search_dir| is the directory to search for alternative symbols with
// the same name as the module in the minidump
OnDemandSymbolSupplier(const string &search_dir,
OnDemandSymbolSupplier(const string &search_dir,
const string &symbol_search_dir);
virtual ~OnDemandSymbolSupplier() {}
@ -56,11 +56,16 @@ class OnDemandSymbolSupplier : public SymbolSupplier {
const SystemInfo *system_info,
string *symbol_file);
// Returns the path to the symbol file for the given module.
virtual SymbolResult GetSymbolFile(const CodeModule *module,
const SystemInfo *system_info,
string *symbol_file,
string *symbol_data);
protected:
// Search directory
string search_dir_;
string symbol_search_dir_;
// When we create a symbol file for a module, save the name of the module
// and the path to that module's symbol file.
map<string, string> module_file_map_;

View file

@ -30,6 +30,8 @@
#include <sys/stat.h>
#include <map>
#include <string>
#include <iostream>
#include <fstream>
#include "google_breakpad/processor/basic_source_line_resolver.h"
#include "google_breakpad/processor/minidump.h"
@ -136,6 +138,26 @@ OnDemandSymbolSupplier::GetSymbolFile(const CodeModule *module,
return FOUND;
}
SymbolSupplier::SymbolResult
OnDemandSymbolSupplier::GetSymbolFile(const CodeModule *module,
const SystemInfo *system_info,
string *symbol_file,
string *symbol_data) {
SymbolSupplier::SymbolResult s = GetSymbolFile(module,
system_info,
symbol_file);
if (s == FOUND) {
ifstream in(symbol_file->c_str());
getline(in, *symbol_data, std::string::traits_type::to_char_type(
std::string::traits_type::eof()));
in.close();
}
return s;
}
string OnDemandSymbolSupplier::GetLocalModulePath(const CodeModule *module) {
NSFileManager *mgr = [NSFileManager defaultManager];
const char *moduleStr = module->code_file().c_str();