Do not read CFI section when not outputing CFI information.

This revert revision 1182 and fix setting the module load address
whether CFI information is needed or not.

R=mark@chromium.org

Review URL: https://breakpad.appspot.com/641002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1243 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
qsr@chromium.org 2013-12-04 14:05:23 +00:00
parent 08ce8e35eb
commit d9d0a61f97

View file

@ -406,11 +406,13 @@ bool DumpSymbols::LoadCommandDumper::SegmentCommand(const Segment &segment) {
if (segment.name == "__TEXT") { if (segment.name == "__TEXT") {
module_->SetLoadAddress(segment.vmaddr); module_->SetLoadAddress(segment.vmaddr);
mach_o::SectionMap::const_iterator eh_frame = if (symbol_data_ != NO_CFI) {
section_map.find("__eh_frame"); mach_o::SectionMap::const_iterator eh_frame =
if (eh_frame != section_map.end()) { section_map.find("__eh_frame");
// If there is a problem reading this, don't treat it as a fatal error. if (eh_frame != section_map.end()) {
dumper_.ReadCFI(module_, reader_, eh_frame->second, true); // If there is a problem reading this, don't treat it as a fatal error.
dumper_.ReadCFI(module_, reader_, eh_frame->second, true);
}
} }
return true; return true;
} }
@ -422,11 +424,13 @@ bool DumpSymbols::LoadCommandDumper::SegmentCommand(const Segment &segment) {
return false; return false;
} }
} }
mach_o::SectionMap::const_iterator debug_frame if (symbol_data_ != NO_CFI) {
= section_map.find("__debug_frame"); mach_o::SectionMap::const_iterator debug_frame
if (debug_frame != section_map.end()) { = section_map.find("__debug_frame");
// If there is a problem reading this, don't treat it as a fatal error. if (debug_frame != section_map.end()) {
dumper_.ReadCFI(module_, reader_, debug_frame->second, false); // If there is a problem reading this, don't treat it as a fatal error.
dumper_.ReadCFI(module_, reader_, debug_frame->second, false);
}
} }
} }