मुझे एक काफी लंबी और भ्रमित करने वाली लिंक त्रुटि मिल रही है, और मुझे अच्छा लगेगा यदि मैं इसे किसी वेबसाइट पर कुछ टेक्स्टबॉक्स में पेस्ट कर सकता हूं और मेरे लिए अन-मैनग्ल्ड नाम है।
क्या कोई ऐसी सेवा के बारे में जानता है?
मुझे एक काफी लंबी और भ्रमित करने वाली लिंक त्रुटि मिल रही है, और मुझे अच्छा लगेगा यदि मैं इसे किसी वेबसाइट पर कुछ टेक्स्टबॉक्स में पेस्ट कर सकता हूं और मेरे लिए अन-मैनग्ल्ड नाम है।
क्या कोई ऐसी सेवा के बारे में जानता है?
जवाबों:
मैंने ऐसा ऑनलाइन सीरिव बनाया है: https://demangler.com
यह एक gcc c ++ सिंबल डीमैंगलर है। आप बस एक स्टैक ट्रेस, या एनएम के आउटपुट को एक टेक्स्ट बॉक्स में कॉपी करते हैं, और यह आउटपुट को ध्वस्त नामों के साथ वापस कर देगा।
@ यूपीडेट: यह अब MSVC और जावा प्रतीकों को भी ध्वस्त करता है।
white-space: normal
या प्रतिक्रिया के समान हो सकता है <pre> टैग (और शायद लाइन नंबर जोड़ सकते हैं)? वर्तमान में लंबी एक-पंक्ति आउटपुट पठनीय नहीं है।
यह थोड़ी देर हो सकती है, लेकिन मैंने इस प्रश्न पर आधारित एक बनाया। यह उन इनपुट्स के साथ काम करता है जिन पर मैंने कोशिश की थी, __cxa_demangle और __unDName के माध्यम से g ++ और msvc ++ का समर्थन करता है, जिसे Emscripten के माध्यम से जावास्क्रिप्ट में संकलित किया गया है। आशा है कि यह किसी की मदद करता है: c ++ filtjs
संपादित करें: फिक्स्ड भागने की समस्या
??_R3?$KxSet@V?$KxSpe@DI@@I@@8
।
अधिकांश (यदि सभी नहीं) C ++ कंपाइलर c++filt
टूल के साथ आते हैं, जो ठीक वही है जो आप स्पष्ट रूप से खोज रहे हैं।
यदि आप इसे माउस क्लिक पर चाहते हैं ... तो इसके लिए एक GUI लिखें;)
objdump -dr ./AClass.o | c++filt | less
( nm ./AClass.o | c++filt | less
दो कॉपी और पेस्ट ऑनलाइन समाधान हैं:
यदि आपको केवल 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 करें, वहाँ भी एक रूबी रत्न है Borland / MS / जो भी मंगवाए गए नामों को हटाने के लिए : अनमैंगलर