aboutsummaryrefslogtreecommitdiff
path: root/src/common/language.cc
Commit message (Collapse)AuthorAgeFilesLines
* fix pointer style to match the style guideMike Frysinger2020-07-151-11/+11
| | | | | | | | | | We do this in a lot of places, but we're inconsistent. Normalize the code to the Google C++ style guide. Change-Id: Ic2aceab661ce8f6b993dda21b1cdf5d2198dcbbf Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2262932 Reviewed-by: Sterling Augustine <saugustine@google.com> Reviewed-by: Mark Mentovai <mark@chromium.org>
* Avoid calling demangler for non-C++ symbols on LinuxMikhail Borisov2020-05-261-6/+16
| | | | | | | | | | Bogus demangler warnings should be suppressed on both Mac and Linux platforms, so there is no reason to keep this filter behind __APPLE__ gate. Bug: chromium:1062556 Change-Id: Idf28db0b527c3cd6dd91510fcf7d9040aaa64694 Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2210684 Reviewed-by: Mark Mentovai <mark@chromium.org>
* mac: Don’t try to demangle non-C++ symbols with the C++ demanglerYngve N. Pettersen2020-05-051-0/+12
| | | | | | | | | | | On Mac a C++ symbol has 1-4 underscore characters followed by a 'Z'. Symbols that do not have this format (such as plain C symbols) causes a lot of warnings to be printed. Bug: chromium:1062556 Change-Id: I55977f756c7e20cc5e7b1cb8e38316d7bf1f748c Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2179482 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Use string instead of std::stringJoshua Peraza2017-03-221-1/+1
| | | | | | | | BUG= Change-Id: I06d1a836f8ff59a6abb7e420cd35fe52610ce091 Reviewed-on: https://chromium-review.googlesource.com/457872 Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
* Allow compiling the google-breakpad code using a global ::string class ↵Ivan Penkov2016-11-081-2/+2
| | | | | | | | | | | | instead of std::string. For more details take a look at common/using_std_string.h BUG= Change-Id: Ifebfc57f691ef3a3bef8cfed7106c567985edffc Reviewed-on: https://chromium-review.googlesource.com/399738 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Don't demangle Rust symbols by default, but allow linking to rust-demangle.Ted Mielczarek2016-10-251-0/+39
| | | | | | | | | | | | | | | | | The Rust compiler uses GCC C++ name mangling, but it has another layer of encoding so abi::cxa_demangle doesn't produce great results. This patch changes dump_syms to dump unmangled names by default so that consumers can demangle them after-the-fact. It also adds a tiny bit of support for linking against a Rust library I wrote that can demangle Rust symbols nicely: https://github.com/luser/rust-demangle-capi BUG= Change-Id: I63a425035ebb7ac516f067fed2aa782849ea9604 Reviewed-on: https://chromium-review.googlesource.com/402308 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Fix dump_syms for C++ after 7398ce15b79dMark Mentovai2016-09-261-2/+2
| | | | | | Change-Id: Ifb56d41d8c5c6e766dee459157e1345553088e2a Reviewed-on: https://chromium-review.googlesource.com/389411 Reviewed-by: Ted Mielczarek <ted@mielczarek.org>
* Initial support for dumping DWARF corresponding to Swift codeMark Mentovai2016-09-231-8/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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 .
* Upstream fix for compiling of breakpad with gcc-4.6. Remove an unnecessarymark@chromium.org2011-10-221-1/+1
| | | | | | | | | | | | "const" that causes an error with the newer gcc. BUG=chromium-os:14973 TEST=Built CrOS's google-breakpad Patch by Michael Krebs <mkrebs@chromium.org> git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@878 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add missing constructor to CPPLanguage class to make it compile with CLang.ted.mielczarek2011-01-251-0/+1
| | | | | | P=rafael.espindola R=jimb at https://bugzilla.mozilla.org/show_bug.cgi?id=623121 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@764 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Breakpad symbol dumper: Move Linux dumping classes into src/common.jimblandy2010-04-051-0/+82
The Linux symbol dumper's classes are reasonably portable, and should be usable for the Mac dumper as well. Move them to src/common, along with their unit tests. Update #include directives and Makefile. a=jimblandy, r=nealsid git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@567 4c0a9323-5329-0410-9bdc-e9ce6186880e