mirror of
https://github.com/yuzu-emu/breakpad.git
synced 2025-11-19 13:44:48 +00:00
The DWARF data for Swift code has a top-level DW_TAG_module DIE as the child of the DW_TAG_compile_unit DIE and the parent of the DW_TAG_subprogram DIEs that dump_syms uses to locate functions. dump_syms needs to process DW_TAG_module DIEs as introducing nested scopes to make it work with Swift. This also reworks demangling to be language-specific, so that the C++ demangler isn't invoked when processing Swift code. The DWARF data for Swift code presents its mangled names in the same form as used for C++ (DW_AT_MIPS_linkage_name or DW_AT_linkage_name) but the mangling is Swift-specific (beginning with _T instead of _Z). There is no programmatic interface to a Swift name demangler as an analogue to C++'s __cxa_demangle(), so mangled Swift names are exposed as-is. Xcode's "xcrun swift-demangle" can be used to post-process these mangled Swift names on macOS. Support for mangled names presented in a DW_AT_linkage_name attribute, as used by DWARF 4, is added. This supersedes the earlier use of DW_AT_MIPS_linkage_name. BUG=google-breakpad:702,google-breakpad:715 R=ted.mielczarek@gmail.com Review URL: https://codereview.chromium.org/2147523005 . |
||
|---|---|---|
| .. | ||
| bytereader-inl.h | ||
| bytereader.cc | ||
| bytereader.h | ||
| bytereader_unittest.cc | ||
| cfi_assembler.cc | ||
| cfi_assembler.h | ||
| dwarf2diehandler.cc | ||
| dwarf2diehandler.h | ||
| dwarf2diehandler_unittest.cc | ||
| dwarf2enums.h | ||
| dwarf2reader.cc | ||
| dwarf2reader.h | ||
| dwarf2reader_cfi_unittest.cc | ||
| dwarf2reader_die_unittest.cc | ||
| dwarf2reader_test_common.h | ||
| elf_reader.cc | ||
| elf_reader.h | ||
| functioninfo.cc | ||
| functioninfo.h | ||
| line_state_machine.h | ||
| types.h | ||