| /* Copyright (C) 2012 IBM Corporation and Others. All Rights Reserved */ |
| |
| #include <stdio.h> |
| #include <demangle.h> |
| |
| void showSym(char *str) { |
| char *rest; |
| struct Name *name = Demangle(str, rest); // "f__1XFi" |
| |
| printf("# '%s'\n", str); |
| if(*rest) printf("\trest: '%s'\n", rest); |
| if(name->Kind() == MemberFunction) { |
| //((MemberFunctionName *) name)->Scope()->Text() is "X" |
| //((MemberFunctionName *) name)->RootName() is "f" |
| //((MemberFunctionName *) name)->Text() is "X::f(int)" |
| printf("\t=> %s\n", ((MemberFunctionName *) name)->Text()); |
| } else { |
| printf("\t(not MemberFunction)\n"); |
| } |
| } |
| |
| |
| |
| |
| |
| int main(int argc, /*const*/ char *argv[]) { |
| if(argc>1) { |
| for(int i=1;i<argc;i++) { |
| showSym(argv[i]); |
| } |
| } else { |
| printf("Usage: %s <symbol> ...\n", argv[0]); |
| } |
| |
| |
| |
| } |