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 funtion, 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
}