Я получаю довольно длинную и запутанную ошибку ссылки, и мне бы это понравилось, если бы я мог просто вставить ее в какой-то текстовый ящик на каком-то веб-сайте, и у меня есть имена, искаженные для меня.
Кто-нибудь знает о такой услуге?
Я получаю довольно длинную и запутанную ошибку ссылки, и мне бы это понравилось, если бы я мог просто вставить ее в какой-то текстовый ящик на каком-то веб-сайте, и у меня есть имена, искаженные для меня.
Кто-нибудь знает о такой услуге?
Я создал такую онлайн-услугу: https://demangler.com
Это символ демона ГКК c++. Вы просто копируете трассировку стека или вывод nm в текстовое поле, и он возвращает вывод с разбитыми именами.
@Update: теперь он также разбирает символы MSVC и Java.
Это может быть немного поздно, но я создал один, основываясь на этом вопросе. Он работает со входами, которые я пробовал, поддерживает g++ и msvС++ через __cxa_demangle и __unDName, скомпилированные в Javascript через Emscripten. Надеюсь, это поможет кому-то: c++filtjs
Изменить: Исправлена проблема экранирования
Большинство (если не все) компиляторы С++ поставляются с инструментом c++filt
, который делает именно то, что вы, по-видимому, ищете.
Если вы хотите его щелкнуть мышью... хорошо написать для него графический интерфейс;)
Существует два онлайн-решения для копирования и вставки:
Если вам нужна только поддержка GCC и Clang, у вас также есть возможность использовать Coliru, который, вероятно, является наиболее универсальным онлайн-компилятором 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, чтобы развернуть Borland/MS/любые искаженные имена: unmangler