mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2026-01-04 13:44:33 +01: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:
parent
c0ec51afe0
commit
b223627d81
33 changed files with 5435 additions and 299 deletions
|
|
@ -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]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue