Pergunta

Estou recebendo um erro de link bastante longo e confuso e adoraria se eu pudesse colá-lo em alguma caixa de texto em algum site e ter os nomes não-mexidos para mim.

Alguém conhece esse serviço?

Foi útil?

Solução

Eu criei uma servidice online: http://demangler.com

Este é um símbolo GCC C ++ Demangler. Você apenas copia um rastreamento de pilha ou a saída de NM em uma caixa de texto e ele retornará a saída com os nomes desmembrados.

@Update: agora também desmanga símbolos MSVC e Java.

Outras dicas

Isso pode ser um pouco tarde, mas eu criei um, com base nessa pergunta. Funciona com as entradas que experimentei, suporta G ++ e MSVC ++ via __cxa_demangle e __undName, compilados para JavaScript via EMSCRIPTEN. Espero que isso ajude alguém: c ++ filtjs

Editar: Problema de fuga fixa

A maioria (se não todos) compiladores C ++ vêm com c++filt ferramenta que faz com precisão o que você aparentemente procura.

Se você quiser no mouse clique ... bem, escreva uma GUI para ele;)

Existem duas soluções on-line de cópia e colas:

Se você precisar apenas de suporte para GCC e CLANG, você também terá a opção de usar Coliru, que é provavelmente o mais versátil Compilador C ++ online.

Isso não é tão simples quanto cortar, colar e clicar - mas não muito mais difícil - e parece que não há problemas com os parâmetros de modelo, como foi observado acima. Você só precisa modificar a linha de comando para executar algo assim:

cat main.cpp | c++filt -t

Veja ao vivo com este exemplo que desmangados:

_Z6kernelIfLj3EEvPT_5arrayIPKS0_XT0_EES5_S2_IjXT0_EES6_S0_

para:

void kernel<float, 3u>(float*, array<float const*, 3u>, array<float const*, 3u>, array<unsigned int, 3u>, array<unsigned int, 3u>, float)
           ^^^^^^^^^^^

Para sua informação, há também uma jóia de rubi para desmanger Borland/MS/quaisquer nomes mutilados: UNLANGLER

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top