Nomes de símbolos compilados de Rust e C++ são "mangled": codificados em uma forma ASCII compacta que empacota namespaces, argumentos genéricos e assinaturas de funções. _ZN4core3fmt5Write9write_fmt17h... não foi feito para ser lido por humanos, mas a informação nele importa: qual crate, qual módulo, qual função. O Desmangler WASM desempacota isso, tudo no seu navegador.
Duas formas de usar:
- Símbolo único — cole um nome mangled e veja-o desmanglado instantaneamente enquanto digita. Suporta C++ Itanium (
_Z…), o esquema legado do Rust baseado em Itanium (_ZN…17h[hash]), e o novo esquema v0 do Rust (_R…). - Varredura em lote — envie um arquivo
.wasme a ferramenta extrai cada nome de função da seção de depuração "name" do módulo, além de cada nome de exportação, e desmangla tudo de uma vez em uma tabela que você pode copiar ou exportar como CSV.
Uma nota sobre honestidade, porque importa aqui: a desmanglagem C++ Itanium cobre o subconjunto comum da ABI (nomes aninhados, templates, substituições, operadores) e é verificada contra o c++filt com símbolos reais. O esquema legado do Rust se apoia no Itanium e é igualmente sólido. O esquema v0 do Rust é consideravelmente mais complexo — esta ferramenta reconstrói o caminho (crate, módulo, nomes de função) de forma aproximada, mas não reconstrói a lista completa de argumentos genéricos nem a estrutura impl/trait, e referências reversas e identificadores codificados em punycode ficam sem decodificar. Todo resultado v0 que envolve essa simplificação é marcado como "parcial" e vem com uma nota explicando exatamente o que falta — nunca apresentado como uma desmanglagem completa. Um símbolo que não corresponde a nenhum esquema conhecido é mostrado como está, claramente marcado como não reconhecido, nunca descartado silenciosamente.
Útil para auditar um módulo .wasm de terceiros, entender um stack trace de uma falha, ou simplesmente explorar o que um binário Rust ou C++ compilado realmente contém.
Tiny Online Tools







