Есть ли онлайн-деманглер имен для C ++?[закрыто]
Вопрос
Я получаю довольно длинную и запутанную ошибку со ссылкой, и мне было бы приятно, если бы я мог просто вставить ее в какое-нибудь текстовое поле на каком-нибудь веб-сайте и сохранить имена без искажений для меня.
Кто-нибудь знает о такой услуге?
Решение
Я создал такой онлайн-сервис: http://demangler.com
Это деманглер символов gcc c ++.Вы просто копируете трассировку стека или выходные данные nm в текстовое поле, и оно вернет выходные данные с измененными именами.
@Обновить:Теперь он также удаляет символы MSVC и Java.
Другие советы
Возможно, это немного запоздало, но я создал его, основываясь на этом вопросе.Он работает с входными данными, которые я опробовал, поддерживает g ++ и msvc ++ через __cxa_demangle и __unDName, скомпилирован в Javascript через Emscripten.Надеюсь, это кому-то поможет: c ++ filtjs
Редактировать:Исправлена проблема с экранированием
Большинство (если не все) компиляторы C ++ поставляются с c++filt
Инструмент, который имеет именно то, что вы, по-видимому, ищу.
Если вы хотите, чтобы это на мышке, нажмите кнопку ... хорошо напишите графический интерфейс;)
Есть две онлайн-решения для копирования и вставки:
- demangler.com., который поддерживает GCC, Visual Studio или Java символов
- C ++ FILTJS., который поддерживает GCC и Visual Studio, но имеет проблемы с параметрами шаблона
Если вам нужна только поддержка GCC и Clang, у вас также есть возможность использовать Колиру, который, вероятно, самый универсальный Online C ++ компилятор.
Это не так просто, как вырезать, вставить и щелкнуть - но не слишком сложнее - и похоже, нет проблем с параметрами шаблона, как было отмечено выше. Вам просто нужно изменить командную строку, чтобы запустить что-то вроде этого:
cat main.cpp | c++filt -t
Увидеть это жить с этим примером какие делятки:
_Z6kernelIfLj3EEvPT_5arrayIPKS0_XT0_EES5_S2_IjXT0_EES6_S0_
к:
void kernel<float, 3u>(float*, array<float const*, 3u>, array<float const*, 3u>, array<unsigned int, 3u>, array<unsigned int, 3u>, float)
^^^^^^^^^^^
FYI, есть также Ruby Gem для Demangle Borland / Ms / Все, что потрясенные имена: Munningler