| /* Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. */ |
| |
| #include "xray/xray_priv.h" |
| |
| /* Note name demangling requires linking against libstdc++ */ |
| /* If your platform does not support __cxa_demangle, re-compile XRay with: */ |
| /* -DXRAY_NO_DEMANGLE */ |
| |
| #if !defined(XRAY_NO_DEMANGLE) |
| extern |
| char* __cxa_demangle(const char* __mangled_name, char* __output_buffer, |
| size_t* __length, int* __status); |
| #endif |
| |
| const char* XRayDemangle(char* demangle, size_t size, const char* symbol) { |
| #if !defined(XRAY_NO_DEMANGLE) |
| int stat; |
| __cxa_demangle(symbol, demangle, &size, &stat); |
| if (stat == 0) |
| return demangle; |
| #endif |
| return symbol; |
| } |