1e37eab997efd97449c49a30bd32870255a13fd51Jing Yu#include <stdio.h> 2e37eab997efd97449c49a30bd32870255a13fd51Jing Yu 3e37eab997efd97449c49a30bd32870255a13fd51Jing Yuconst char* names[4] = {"_ZN6SkPath4IterC1ERKS_b", 4e37eab997efd97449c49a30bd32870255a13fd51Jing Yu "_ZN6SkPath4Iter4nextEP7SkPoint", 5e37eab997efd97449c49a30bd32870255a13fd51Jing Yu "_ZN6SkScan8HairLineERK7SkPointS2_PK8SkRegionP9SkBlitter", 6e37eab997efd97449c49a30bd32870255a13fd51Jing Yu NULL}; 7e37eab997efd97449c49a30bd32870255a13fd51Jing Yu 8e37eab997efd97449c49a30bd32870255a13fd51Jing Yuextern char *__cxa_demangle (const char *mangled, char *buf, size_t *len, 9e37eab997efd97449c49a30bd32870255a13fd51Jing Yu int *status); 10e37eab997efd97449c49a30bd32870255a13fd51Jing Yu 11e37eab997efd97449c49a30bd32870255a13fd51Jing Yuchar* demangle_symbol_name(const char*name) { 12e37eab997efd97449c49a30bd32870255a13fd51Jing Yu return name ? __cxa_demangle(name, 0, 0, 0) : ""; 13e37eab997efd97449c49a30bd32870255a13fd51Jing Yu} 14e37eab997efd97449c49a30bd32870255a13fd51Jing Yu 15e37eab997efd97449c49a30bd32870255a13fd51Jing Yuint main() { 16e37eab997efd97449c49a30bd32870255a13fd51Jing Yu int i; 17e37eab997efd97449c49a30bd32870255a13fd51Jing Yu for (i=0; i<4; ++i) { 18e37eab997efd97449c49a30bd32870255a13fd51Jing Yu printf ("%s -> %s\n", names[i], demangle_symbol_name(names[i])); 19e37eab997efd97449c49a30bd32870255a13fd51Jing Yu } 20e37eab997efd97449c49a30bd32870255a13fd51Jing Yu return 0; 21e37eab997efd97449c49a30bd32870255a13fd51Jing Yu} 22