mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2026-01-07 15:08:27 +01:00
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:
parent
02c244f1b2
commit
2ad976ef0b
7 changed files with 88 additions and 11 deletions
|
|
@ -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_;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue