mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2026-03-23 23:12:58 +00:00
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:
@@ -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]);
|
||||
|
||||
Reference in New Issue
Block a user