From b857dfec2b3302a4fca882471271f2e359f51665 Mon Sep 17 00:00:00 2001 From: Ivan Penkov Date: Fri, 2 Sep 2016 14:26:23 -0700 Subject: Fixing the Xcode project for the Breakpad Mac crash reporter. Added new files elf_reader and corrected the references to dump_syms. Also some corrections to be able to build using a newer Xcode and SDK version (tested with Xcode 7.3, SDK 10.11). Patch provided by Thomas Schweitzer. BUG= Change-Id: I18bd3f8ce0c1d0ceb737aee2fa8305adfcc83139 Reviewed-on: https://chromium-review.googlesource.com/377746 Reviewed-by: Mark Mentovai --- .../crash_report.xcodeproj/project.pbxproj | 24 ++++++++++++++++++---- .../mac/crash_report/on_demand_symbol_supplier.mm | 8 +++----- 2 files changed, 23 insertions(+), 9 deletions(-) (limited to 'src/tools') diff --git a/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj b/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj index d32837cb..c2bd3b8b 100644 --- a/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj +++ b/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj @@ -50,7 +50,7 @@ 9BDF175D0B1B8C1B00F8391B /* process_state.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF175B0B1B8C1B00F8391B /* process_state.cc */; }; 9BDF176E0B1B8CB100F8391B /* on_demand_symbol_supplier.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF176C0B1B8CB100F8391B /* on_demand_symbol_supplier.mm */; }; 9BDF1A280B1BD58200F8391B /* pathname_stripper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF1A270B1BD58200F8391B /* pathname_stripper.cc */; }; - 9BDF21A70B1E825400F8391B /* dump_syms.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF192E0B1BC15D00F8391B /* dump_syms.mm */; }; + 9BDF21A70B1E825400F8391B /* dump_syms.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF192E0B1BC15D00F8391B /* dump_syms.cc */; }; 9BE650B20B52FE3000611104 /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BE650AC0B52FE3000611104 /* file_id.cc */; }; 9BE650B40B52FE3000611104 /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BE650AE0B52FE3000611104 /* macho_id.cc */; }; 9BE650B60B52FE3000611104 /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BE650B00B52FE3000611104 /* macho_walker.cc */; }; @@ -64,6 +64,9 @@ F44DDD8719C85CD50047280E /* dump_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = F44DDD8419C85CD50047280E /* dump_context.cc */; }; F44DDD8819C85CD50047280E /* dump_object.cc in Sources */ = {isa = PBXBuildFile; fileRef = F44DDD8519C85CD50047280E /* dump_object.cc */; }; F44DDD8919C85CD50047280E /* microdump_processor.cc in Sources */ = {isa = PBXBuildFile; fileRef = F44DDD8619C85CD50047280E /* microdump_processor.cc */; }; + F47180561D745DEF0032F208 /* elf_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = F47180541D745DEF0032F208 /* elf_reader.cc */; }; + F47180581D7467630032F208 /* proc_maps_linux.cc in Sources */ = {isa = PBXBuildFile; fileRef = F47180571D7467630032F208 /* proc_maps_linux.cc */; }; + F471805A1D7468A40032F208 /* symbolic_constants_win.cc in Sources */ = {isa = PBXBuildFile; fileRef = F47180591D7468A40032F208 /* symbolic_constants_win.cc */; }; F4D43B2F1A38490700C290B2 /* microdump.cc in Sources */ = {isa = PBXBuildFile; fileRef = F4D43B2E1A38490700C290B2 /* microdump.cc */; }; F9C7ECE50E8ABCA600E953AD /* bytereader.cc in Sources */ = {isa = PBXBuildFile; fileRef = F9C7ECE20E8ABCA600E953AD /* bytereader.cc */; }; F9C7ECE60E8ABCA600E953AD /* dwarf2reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = F9C7ECE30E8ABCA600E953AD /* dwarf2reader.cc */; }; @@ -151,7 +154,7 @@ 9BDF176B0B1B8CB100F8391B /* on_demand_symbol_supplier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = on_demand_symbol_supplier.h; sourceTree = ""; }; 9BDF176C0B1B8CB100F8391B /* on_demand_symbol_supplier.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = on_demand_symbol_supplier.mm; sourceTree = ""; }; 9BDF192D0B1BC15D00F8391B /* dump_syms.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = dump_syms.h; path = ../../../common/mac/dump_syms.h; sourceTree = SOURCE_ROOT; }; - 9BDF192E0B1BC15D00F8391B /* dump_syms.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; name = dump_syms.mm; path = ../../../common/mac/dump_syms.mm; sourceTree = SOURCE_ROOT; }; + 9BDF192E0B1BC15D00F8391B /* dump_syms.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; name = dump_syms.cc; path = ../../../common/mac/dump_syms.cc; sourceTree = SOURCE_ROOT; }; 9BDF1A270B1BD58200F8391B /* pathname_stripper.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = pathname_stripper.cc; path = ../../../processor/pathname_stripper.cc; sourceTree = SOURCE_ROOT; }; 9BDF1A7A0B1BE30100F8391B /* range_map-inl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = "range_map-inl.h"; path = "../../../processor/range_map-inl.h"; sourceTree = SOURCE_ROOT; }; 9BDF1A7B0B1BE30100F8391B /* range_map.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = range_map.h; path = ../../../processor/range_map.h; sourceTree = SOURCE_ROOT; }; @@ -180,6 +183,10 @@ F44DDD8B19C85CFB0047280E /* dump_object.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = dump_object.h; path = ../../../google_breakpad/processor/dump_object.h; sourceTree = ""; }; F44DDD8C19C85CFC0047280E /* microdump_processor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = microdump_processor.h; path = ../../../google_breakpad/processor/microdump_processor.h; sourceTree = ""; }; F44DDD8D19C85CFC0047280E /* process_result.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = process_result.h; path = ../../../google_breakpad/processor/process_result.h; sourceTree = ""; }; + F47180541D745DEF0032F208 /* elf_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = elf_reader.cc; path = ../../../common/dwarf/elf_reader.cc; sourceTree = ""; }; + F47180551D745DEF0032F208 /* elf_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = elf_reader.h; path = ../../../common/dwarf/elf_reader.h; sourceTree = ""; }; + F47180571D7467630032F208 /* proc_maps_linux.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = proc_maps_linux.cc; path = ../../../processor/proc_maps_linux.cc; sourceTree = ""; }; + F47180591D7468A40032F208 /* symbolic_constants_win.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = symbolic_constants_win.cc; path = ../../../processor/symbolic_constants_win.cc; sourceTree = ""; }; F4D43B2E1A38490700C290B2 /* microdump.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = microdump.cc; path = ../../../processor/microdump.cc; sourceTree = ""; }; F4D43B301A38492000C290B2 /* microdump.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = microdump.h; path = ../../../google_breakpad/processor/microdump.h; sourceTree = ""; }; F9C7ECE20E8ABCA600E953AD /* bytereader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bytereader.cc; path = ../../../common/dwarf/bytereader.cc; sourceTree = SOURCE_ROOT; }; @@ -219,7 +226,7 @@ 8B31FF7211F0C6E000FCF3E4 /* macho_reader.cc */, 8B31FF7311F0C6E000FCF3E4 /* macho_reader.h */, 9BDF192D0B1BC15D00F8391B /* dump_syms.h */, - 9BDF192E0B1BC15D00F8391B /* dump_syms.mm */, + 9BDF192E0B1BC15D00F8391B /* dump_syms.cc */, 08FB7796FE84155DC02AAC07 /* crash_report.mm */, F44DDD8D19C85CFC0047280E /* process_result.h */, 9BDF176B0B1B8CB100F8391B /* on_demand_symbol_supplier.h */, @@ -371,6 +378,7 @@ 9BDF173F0B1B8B9A00F8391B /* minidump.cc */, 9BDF172B0B1B8B2400F8391B /* minidump_processor.cc */, 9BDF1A270B1BD58200F8391B /* pathname_stripper.cc */, + F47180571D7467630032F208 /* proc_maps_linux.cc */, 9BDF175B0B1B8C1B00F8391B /* process_state.cc */, 9BDF1A7A0B1BE30100F8391B /* range_map-inl.h */, 9BDF1A7B0B1BE30100F8391B /* range_map.h */, @@ -381,6 +389,7 @@ FD8EDEAD0CADDAD400A5EDF1 /* stackwalker_sparc.h */, FD6625C40CF4D438004AC844 /* stackwalker_amd64.cc */, FD6625C50CF4D438004AC844 /* stackwalker_amd64.h */, + F47180591D7468A40032F208 /* symbolic_constants_win.cc */, ); name = processor; sourceTree = ""; @@ -405,6 +414,8 @@ F9C7ECE30E8ABCA600E953AD /* dwarf2reader.cc */, 8B31FFC311F0C8AB00FCF3E4 /* dwarf2diehandler.cc */, 8B31FFC411F0C8AB00FCF3E4 /* dwarf2diehandler.h */, + F47180541D745DEF0032F208 /* elf_reader.cc */, + F47180551D745DEF0032F208 /* elf_reader.h */, F9C7ECE40E8ABCA600E953AD /* functioninfo.cc */, ); name = DWARF; @@ -460,6 +471,7 @@ files = ( 162F64FE161C5ECB00CD68D5 /* arch_utilities.cc in Sources */, 8DD76F9A0486AA7600D96B5E /* crash_report.mm in Sources */, + F47180581D7467630032F208 /* proc_maps_linux.cc in Sources */, 9BDF172C0B1B8B2400F8391B /* call_stack.cc in Sources */, 9BDF172D0B1B8B2400F8391B /* minidump_processor.cc in Sources */, 9BDF17410B1B8B9A00F8391B /* minidump.cc in Sources */, @@ -468,9 +480,10 @@ 9BDF17550B1B8BF900F8391B /* stackwalker_x86.cc in Sources */, 9BDF17560B1B8BF900F8391B /* stackwalker.cc in Sources */, 9BDF175D0B1B8C1B00F8391B /* process_state.cc in Sources */, + F47180561D745DEF0032F208 /* elf_reader.cc in Sources */, 9BDF176E0B1B8CB100F8391B /* on_demand_symbol_supplier.mm in Sources */, 9BDF1A280B1BD58200F8391B /* pathname_stripper.cc in Sources */, - 9BDF21A70B1E825400F8391B /* dump_syms.mm in Sources */, + 9BDF21A70B1E825400F8391B /* dump_syms.cc in Sources */, 9B35FEEA0B26761C008DE8C7 /* basic_code_modules.cc in Sources */, 9B3904990B2E52FD0059FABE /* basic_source_line_resolver.cc in Sources */, 9BE650B20B52FE3000611104 /* file_id.cc in Sources */, @@ -498,6 +511,7 @@ 8B31FF8911F0C6FB00FCF3E4 /* module.cc in Sources */, 8B31FFC511F0C8AB00FCF3E4 /* dwarf2diehandler.cc in Sources */, F407DC49185773C10064622B /* stack_frame_symbolizer.cc in Sources */, + F471805A1D7468A40032F208 /* symbolic_constants_win.cc in Sources */, 4D2C721B126F9ACC00B43EAF /* source_line_resolver_base.cc in Sources */, 4D2C721F126F9ADE00B43EAF /* exploitability.cc in Sources */, 4D2C7223126F9AF900B43EAF /* exploitability_win.cc in Sources */, @@ -530,6 +544,7 @@ 1DEB927508733DD40010E9CD /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; HEADER_SEARCH_PATHS = ../../../../src; PRODUCT_NAME = crash_report; }; @@ -538,6 +553,7 @@ 1DEB927608733DD40010E9CD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; HEADER_SEARCH_PATHS = ../../../../src; PRODUCT_NAME = crash_report; }; diff --git a/src/tools/mac/crash_report/on_demand_symbol_supplier.mm b/src/tools/mac/crash_report/on_demand_symbol_supplier.mm index ebbca87a..1955d266 100644 --- a/src/tools/mac/crash_report/on_demand_symbol_supplier.mm +++ b/src/tools/mac/crash_report/on_demand_symbol_supplier.mm @@ -27,6 +27,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +#import #include #include #include @@ -280,11 +281,8 @@ bool OnDemandSymbolSupplier::GenerateSymbolFile(const CodeModule *module, } if (generate_file) { - NSString *module_str = [[NSFileManager defaultManager] - stringWithFileSystemRepresentation:module_path.c_str() - length:module_path.length()]; DumpSymbols dump(ALL_SYMBOL_DATA, false); - if (dump.Read(module_str)) { + if (dump.Read(module_path)) { // What Breakpad calls "x86" should be given to the system as "i386". std::string architecture; if (system_info->cpu.compare("x86") == 0) { @@ -303,7 +301,7 @@ bool OnDemandSymbolSupplier::GenerateSymbolFile(const CodeModule *module, result = false; } } else { - printf("Unable to open %s\n", [module_str UTF8String]); + printf("Unable to open %s\n", module_path.c_str()); result = false; } } -- cgit v1.2.1