আমি বেশ দীর্ঘ এবং বিভ্রান্তিকর লিঙ্ক ত্রুটি পেয়ে যাচ্ছি, এবং আমি যদি এটি কেবল কোনও ওয়েবসাইটের কোনও পাঠ্যবক্সে পেস্ট করতে পারি এবং নামগুলি আমার জন্য অ-মংগল করতে পারি তবে এটি পছন্দ করব।
কেউ কি এই ধরনের পরিষেবা সম্পর্কে জানেন?
আমি বেশ দীর্ঘ এবং বিভ্রান্তিকর লিঙ্ক ত্রুটি পেয়ে যাচ্ছি, এবং আমি যদি এটি কেবল কোনও ওয়েবসাইটের কোনও পাঠ্যবক্সে পেস্ট করতে পারি এবং নামগুলি আমার জন্য অ-মংগল করতে পারি তবে এটি পছন্দ করব।
কেউ কি এই ধরনের পরিষেবা সম্পর্কে জানেন?
উত্তর:
আমি এই জাতীয় একটি অনলাইন সিরিভ তৈরি করেছি: https://demangler.com
এটি একটি গিসি সি ++ প্রতীক ডিমেংলার। আপনি কেবল একটি স্ট্যাক ট্রেস, বা এনএম এর আউটপুটটিকে একটি পাঠ্য বাক্সে অনুলিপি করতে পারেন, এবং এটি নামগুলিকে নামযুক্ত করে আউটপুট ফিরিয়ে দেবে।
@ আপডেট: এটি এখন এমএসভিসি এবং জাভা প্রতীককেও ডিমেংল করে।
white-space: normal
করে প্রতিক্রিয়া সংযুক্ত করতে বা অনুরূপ করতে পারেন <<< ট্যাগ ট্যাগ (এবং সম্ভবত লাইন নম্বর যোগ করুন)? দীর্ঘ এক-লাইন আউটপুট বর্তমানে পঠনযোগ্য নয়।
এটি কিছুটা দেরিতে হতে পারে তবে আমি এই প্রশ্নের ভিত্তিতে একটি তৈরি করেছি। এটি আমি চেষ্টা করেছি এমন ইনপুটগুলির সাথে কাজ করে, এমস্ক্রিপ্টের মাধ্যমে জাভাস্ক্রিপ্টে সংকলিত __cxa_demangle এবং __unDName এর মাধ্যমে g ++ এবং msvc ++ সমর্থন করে। আশা করি এটি কাউকে সাহায্য করবে: c ++ ফিল্টজগুলি
সম্পাদনা: স্থগিত পালানোর সমস্যা
??_R3?$KxSet@V?$KxSpe@DI@@I@@8
।
সর্বাধিক (সমস্ত না থাকলে) সি ++ সংকলকগুলি এমন c++filt
সরঞ্জাম নিয়ে আসে যা আপনি সম্ভবত যা খুঁজছেন তা সুনির্দিষ্টভাবে করে।
যদি আপনি এটি মাউস ক্লিকে চান ... ভাল এটির জন্য একটি জিইউআই লিখুন;)
objdump -dr ./AClass.o | c++filt | less
(বিচ্ছিন্নকরণকারী) বা nm ./AClass.o | c++filt | less
(অবজেক্ট ফাইলের অভ্যন্তরের প্রতীকগুলির তালিকা)
দুটি অনুলিপি এবং পেস্ট অনলাইনে সমাধান রয়েছে:
আপনার যদি কেবল জিসিসি এবং কলংয়ের জন্য সমর্থন প্রয়োজন তবে আপনার কাছে কলিরু ব্যবহারের বিকল্পও রয়েছে যা সম্ভবত সর্বাধিক বহুমুখী অনলাইন সি ++ সংকলক ।
এটি কাটা, পেস্ট করা এবং ক্লিক করার মতো সহজ নয় - তবে খুব বেশি শক্ত নয় - এবং দেখে মনে হচ্ছে যে উপরে উল্লিখিত হিসাবে টেমপ্লেট পরামিতিগুলির কোনও সমস্যা নেই। এই জাতীয় কিছু চালানোর জন্য আপনাকে কেবল কমান্ড লাইনটি পরিবর্তন করতে হবে:
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)
^^^^^^^^^^^
এফওয়াইআই, বোরল্যান্ড / এমএস / যা-ই হোক না কেন মংডের নামগুলি মানিয়ে নিতে একটি রুবি রত্ন রয়েছে: অবিচ্ছিন্ন