LLVM-CXXMAP(1) LLVM LLVM-CXXMAP(1) نام (NAME) llvm-cxxmap - ابزار نگاشت مجدد نام‌های درهم‌ریخته خلاصه دستور (SYNOPSIS) llvm-cxxmap [گزینه‌ها] symbol-file-1 symbol-file-2 توضیحات (DESCRIPTION) ابزار llvm-cxxmap تطبیق تقریبی (fuzzy matching) نام‌های درهم‌ریختهٔ ++C را بر اساس فایلی انجام می‌دهد که مؤلفه‌های معادل نام‌ها را توصیف می‌کند. فایل‌های نماد باید شامل فهرستی از نام‌های درهم‌ریختهٔ ++C باشند (یک نام در هر خط). خطوط خالی و خطوطی که با # شروع می‌شوند نادیده گرفته می‌شوند. خروجی، فهرستی از جفت‌نمادهای معادل است (یک جفت در هر خط)، به این صورت: که در آن نمادی از symbol-file-1 و نمادی از symbol-file-2 است. نگاشت‌هایی که در آن‌ها هر دو نماد یکسان باشند حذف می‌شوند. گزینه‌ها (OPTIONS) -remapping-file=file, -r=file مشخص کردن فایلی شامل فهرستی از قوانین هم‌ارزی که باید برای تعیین معادل بودن دو نماد استفاده شود. الزامی است. بخش «فایل نگاشت مجدد (REMAPPING FILE)» را ببینید. -output=file, -o=file مشخص کردن فایلی برای نوشتن فهرست نام‌های تطبیق‌یافته در آن. در صورت عدم تعیین، این فهرست در خروجی استاندارد (stdout) نوشته خواهد شد. -Wambiguous در صورتی که چندین نماد معادل (اما متمایز) در symbol-file-2 وجود داشته باشد، یک هشدار صادر می‌کند. -Wincomplete در صورتی که symbol-file-1 حاوی نمادی باشد که هیچ نماد معادلی برای آن در symbol-file-2 وجود ندارد، یک هشدار صادر می‌کند. فایل نگاشت مجدد (REMAPPING FILE) فایل نگاشت مجدد یک فایل متنی شامل خطوطی با ساختار زیر است: fragmentkind fragment1 fragment2 که در آن fragmentkind یکی از مقادیر name، type یا encoding است که مشخص می‌کند آیا قطعات نام درهم‌ریختهٔ بعدی به ترتیب از نوع >، > یا > هستند یا خیر. خطوط خالی و خطوطی که با # شروع می‌شوند نادیده گرفته می‌شوند. نام‌های C درهم‌ریخته‌نشده (Unmangled) را می‌توان به صورت یک encoding که یک > (دارای پیشوند طول) است بیان کرد: # C function "void foo_bar()" is remapped to C++ function "void foo::bar()". encoding 7foo_bar _Z3foo3barv برای سهولت کار، جایگزینی‌های درونی (built-in s) مانند St و Ss به عنوان پذیرفته می‌شوند (اگرچه از نظر فنی نیستند). به عنوان مثال، برای مشخص کردن اینکه absl::string_view و std::string_view باید معادل یکدیگر در نظر گرفته شوند، می‌توان از فایل نگاشت مجدد زیر استفاده کرد: # absl::string_view is considered equivalent to std::string_view type N4absl11string_viewE St17basic_string_viewIcSt11char_traitsIcEE # std:: might be std::__1:: in libc++ or std::__cxx11:: in libstdc++ name St St3__1 name St St7__cxx11 نکته: نگاشت مجدد نمادها در حال حاضر فقط برای نام‌های درهم‌ریختهٔ ++C که از طرح درهم‌ریزی Itanium C++ ABI پیروی می‌کنند پشتیبانی می‌شود. این شامل تمام مقصدهای ++C پشتیبانی‌شده توسط Clang به‌جز مقصدهای ویندوز است. نویسنده (AUTHOR) توسعه و نگهداری توسط تیم LLVM (https://llvm.org). حق نشر (COPYRIGHT) 2003-2026, پروژه LLVM 22 2026-07-15 LLVM-CXXMAP(1)