aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorqsr@chromium.org <qsr@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e>2013-05-16 14:06:06 +0000
committerqsr@chromium.org <qsr@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e>2013-05-16 14:06:06 +0000
commit3a59d0586b474c2bd1cb571d2f17e9013aadc0b6 (patch)
treec7960e716198193b860cf09fbbdcd3670507d85d
parentCompile issue when using global string "::string". For more details take a l... (diff)
downloadbreakpad-3a59d0586b474c2bd1cb571d2f17e9013aadc0b6.tar.xz
Always read CFI section, even when not outputing CFI information.
On iOS at least, the CFI section contains information needed to correctly dump the symbols. Even if the CFI section is not dumped, reading it is necessary to get correcty symbolication. R=mark@chromium.org, ted.mielczarek@gmail.com Review URL: https://breakpad.appspot.com/596002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1182 4c0a9323-5329-0410-9bdc-e9ce6186880e
-rw-r--r--src/common/mac/dump_syms.mm14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/common/mac/dump_syms.mm b/src/common/mac/dump_syms.mm
index 113a16c0..5c5e13c9 100644
--- a/src/common/mac/dump_syms.mm
+++ b/src/common/mac/dump_syms.mm
@@ -404,7 +404,7 @@ bool DumpSymbols::LoadCommandDumper::SegmentCommand(const Segment &segment) {
if (!reader_.MapSegmentSections(segment, &section_map))
return false;
- if (segment.name == "__TEXT" && symbol_data_ != NO_CFI) {
+ if (segment.name == "__TEXT") {
module_->SetLoadAddress(segment.vmaddr);
mach_o::SectionMap::const_iterator eh_frame =
section_map.find("__eh_frame");
@@ -422,13 +422,11 @@ bool DumpSymbols::LoadCommandDumper::SegmentCommand(const Segment &segment) {
return false;
}
}
- if (symbol_data_ != NO_CFI) {
- mach_o::SectionMap::const_iterator debug_frame
- = section_map.find("__debug_frame");
- if (debug_frame != section_map.end()) {
- // If there is a problem reading this, don't treat it as a fatal error.
- dumper_.ReadCFI(module_, reader_, debug_frame->second, false);
- }
+ mach_o::SectionMap::const_iterator debug_frame
+ = section_map.find("__debug_frame");
+ if (debug_frame != section_map.end()) {
+ // If there is a problem reading this, don't treat it as a fatal error.
+ dumper_.ReadCFI(module_, reader_, debug_frame->second, false);
}
}