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
This commit is contained in:
ted.mielczarek 2010-04-08 23:06:23 +00:00
parent c0ec51afe0
commit b223627d81
33 changed files with 5435 additions and 299 deletions

View file

@ -33,6 +33,7 @@
// See cfi_frame_info.h for details.
#include <cstring>
#include <sstream>
#include "processor/cfi_frame_info.h"
#include "processor/postfix_evaluator-inl.h"
@ -94,6 +95,28 @@ template bool CFIFrameInfo::FindCallerRegs<u_int64_t>(
const MemoryRegion &memory,
RegisterValueMap<u_int64_t> *caller_registers) const;
string CFIFrameInfo::Serialize() const {
std::ostringstream stream;
if (!cfa_rule_.empty()) {
stream << ".cfa: " << cfa_rule_;
}
if (!ra_rule_.empty()) {
if (stream.tellp() != 0)
stream << " ";
stream << ".ra: " << ra_rule_;
}
for (RuleMap::const_iterator iter = register_rules_.begin();
iter != register_rules_.end();
++iter) {
if (stream.tellp() != 0)
stream << " ";
stream << iter->first << ": " << iter->second;
}
return stream.str();
}
bool CFIRuleParser::Parse(const string &rule_set) {
size_t rule_set_len = rule_set.size();
scoped_array<char> working_copy(new char[rule_set_len + 1]);