EB: In need of demangling a C++ symbol under windows, and failed to googled such tool, I have successfully ffidled UnDecorateSymbolName() function.
The signature of this function, found in imagehlp.dll, is:
DWORD UnDecorateSymbolName( IN LPSTR DecoratedName, OUT LPSTR UnDecoratedName, IN DWORD UndecoratedLength, IN DWORD Flags );
The function take a string buffer for the undecorated name in output. I don't know if this is the good way to do this. I reserve a string of 1024 chars for it.
load ffidl05.dll ffidl::callout \ dll_UnDecorateSymbolName {pointer-utf8 pointer-utf8 int int} int \ [ffidl::symbol "imagehlp.dll" UnDecorateSymbolName] proc demangle {symbol} { set ret [string repeat { } 1024] dll_UnDecorateSymbolName $symbol $ret 1024 0 set ret }