نانومتر - قائمة الرموز من ملفات الكائن
موجز
nm [ - a | - debug-syms ] [ -g | - فقط
[ -B ] [ -C | --demangle [= style ]] [ -D | - ديناميكيًا ]
[ -S | --print-size ] [ -s | --print-armap ]
[ -A | -o | --print-file-name ]
[ -n | -v | - فرز رقمي ] [- p | - لا فروة
[ -r | - فرز فرعي ] [ - الحجم الفرز ] [- | | | - غير محدد فقط ]
[ -t radix | --radix = radix ] [ -P | إمكانية النقل
[ --target = bfdname ] [ تنسيق -f | - تنسيق = تنسيق ]
[ --defined-only ] [ -l | - أرقام -الأرقام ] [ - لا يوجد متشابكة ]
[ -V | - النسخ ] [ -X 32_64 ] [ --help ] [ objfile ...]
وصف
يقوم GNU nm بسرد الرموز من ملفات الكائن objfile .... إذا لم يتم سرد ملفات الكائن كوسيطة ، يفترض nm الملف a.out .
لكل رمز ، يظهر nm :
*
قيمة الرمز ، في العنصر الأساسي المحدد بواسطة خيارات (راجع أدناه) ، أو ست عشري بشكل افتراضي.
*
نوع الرمز. على الأقل الأنواع التالية مستخدمة ؛ البعض الآخر ، كذلك ، اعتمادا على تنسيق ملف الكائن. في حالة الأحرف الصغيرة ، يكون الرمز محليًا ؛ إذا كان الرمز كبيرًا ، فسيكون الرمز عالميًا (خارجي).
ا
قيمة الرمز مطلقة ، ولن يتم تغييرها عن طريق الربط الإضافي.
ب
يوجد الرمز في قسم البيانات غير المهيأ (المعروف باسم BSS).
C
الرمز شائع. الرموز الشائعة هي بيانات غير مهيأة. عند الربط ، قد تظهر عدة رموز مشتركة بنفس الاسم. إذا تم تعريف الرمز في أي مكان ، يتم التعامل مع الرموز الشائعة كمراجع غير محددة.
د
يوجد الرمز في قسم البيانات المبدئي.
G
يوجد الرمز في قسم بيانات تم تهيئته للأشياء الصغيرة. تسمح بعض تنسيقات ملفات الكائنات بالوصول الأكثر فعالية إلى كائنات البيانات الصغيرة ، مثل متغير int عمومي بدلاً من صفيف عمومي كبير.
أنا
الرمز هو مرجع غير مباشر لرمز آخر. هذا هو GNUextension لتنسيق ملف كائن a.out الذي نادرًا ما يُستخدم.
N
الرمز رمز تصحيح.
R
الرمز في مقطع بيانات للقراءة فقط.
S
الرمز في مقطع بيانات غير مهيأ للكائنات الصغيرة.
تي
الرمز موجود في قسم النص (الكود).
U
الرمز غير معروف.
الخامس
الرمز هو كائن ضعيف. عندما يتم ربط رمز محدد ضعيف برمز محدد عادي ، يتم استخدام الرمز المحدد الطبيعي بدون أي خطأ. عندما يتم ربط رمز غير معروف ضعيف ولا يتم تعريف الرمز ، تصبح قيمة الرمز الضعيف صفراً بدون أي خطأ.
W
الرمز هو رمز ضعيف لم يتم وضع علامة عليه بشكل محدد كرمز كائن ضعيف. عندما يتم ربط رمز محدد ضعيف برمز محدد عادي ، يتم استخدام الرمز المحدد الطبيعي بدون أي خطأ. عندما يتم ربط رمز غير معروف ضعيف ولا يتم تعريف الرمز ، تصبح قيمة الرمز الضعيف صفراً بدون أي خطأ.
-
الرمز هو رمز stabs في ملف كائن a.out. في هذه الحالة ، تكون القيم التالية المطبوعة هي stabs الحقول الأخرى وحقل descabs desc ونوع stab. يتم استخدام رموز Stabs لعقد معلومات تصحيح الأخطاء.
؟
نوع الرمز غير معروف أو تنسيق ملف كائن معين.
*
اسم الرمز.
خيارات
الأشكال الطويلة والقصيرة للخيارات ، كما هو موضح هنا كبدائل ، متساوية.
-ا
-o
--print ملف اسم
يسبق كل رمز باسم ملف الإدخال (أو عضو الأرشيف) الذي تم العثور عليه فيه ، بدلاً من تحديد ملف الإدخال مرة واحدة فقط ، قبل كافة رموزه.
-ا
--debug-سلالات SYMS
عرض كافة الرموز ، حتى رموز debugger-only؛ عادة هذه ليست مدرجة.
-ب
نفس -format = bsd (للتوافق مع MIPS nm ).
-C
--demangle [= style ]
فك تشفير أسماء الرموز ذات المستوى المنخفض إلى أسماء على مستوى المستخدم. بالإضافة إلى إزالة أي تسطير أولية أولي prepended بواسطة النظام ، هذا يجعل أسماء الدالة C ++ للقراءة. لدى المجمعين المختلفين أساليب مختلفة للصرف. يمكن استخدام وسيطة نمط التفضيل الاختيارية لاختيار نمط تشتيت مناسب للمترجم الخاص بك.
-ما لا-demangle
لا تقم بتهديم أسماء الرموز ذات المستوى المنخفض. هذا هو الافتراضي.
-د
--dynamic
عرض الرموز الديناميكية بدلاً من الرموز العادية. هذا مفيد فقط للكائنات الحيوية ، مثل أنواع معينة من المكتبات المشتركة.
-f الشكل
- تنسيق = تنسيق
استخدم تنسيق تنسيق الإخراج ، والذي يمكن أن يكون "bsd" أو "sysv" أو "posix". الافتراضي هو "bsd". فقط الحرف الأول للتنسيق كبير ؛ يمكن أن يكون إما حالة علوية أو صغيرة.
-g
--extern فقط
عرض الرموز الخارجية فقط.
-l
--أرقام الأسطر
لكل رمز ، استخدم معلومات تصحيح الأخطاء لمحاولة العثور على اسم الملف ورقم السطر. للحصول على رمز محدد ، ابحث عن رقم سطر عنوان الرمز. للحصول على رمز غير محدد ، ابحث عن رقم سطر إدخال النقل الذي يشير إلى الرمز. إذا كان يمكن العثور على معلومات رقم السطر ، طباعته بعد معلومات الرمز الأخرى.
-n
-الخامس
--numeric الفرز
فرز الرموز عدديًا حسب عناوينها ، بدلاً من أبجديًا بأسمائها.
-p
-ما لا الفرز
لا تهتم لفرز الرموز في أي ترتيب. طباعتها في الترتيب واجهتها.
ف
--قابلية التنقل
استخدم تنسيق الإخراج القياسي POSIX.2 بدلاً من التنسيق الافتراضي. أي ما يعادل ل- posix .
-S
--حجم الطباعة
حجم طباعة الرموز المحددة لتنسيق خرج "bsd".
-s
--print-armap
عند إدراج الرموز من أعضاء الأرشيف ، قم بتضمين الفهرس: تعيين (مخزّن في الأرشيف بواسطة ar أو ranlib ) تحتوي الوحدات النمطية على تعريفات لأسماء.
-r
--reverse الفرز
عكس ترتيب الفرز (سواء رقمي أو أبجدي) ؛ دعونا تأتي في المقام الأول.
--size الفرز
فرز الرموز حسب الحجم. يتم حساب الحجم على أنه الفرق بين قيمة الرمز وقيمة الرمز مع القيمة الأعلى التالية. تتم طباعة حجم الرمز بدلاً من القيمة.
ر راد
--radix = radix
استخدم radix كـ radix لطباعة قيم الرمز. يجب أن يكون d للقيمة العشرية أو o للثمانية أو x للقيمة السداسية العشرية.
--target = bfdname
حدد تنسيق رمز الكائن غير التنسيق الافتراضي للنظام الخاص بك.
-u
--undefined فقط
عرض الرموز غير معرفة فقط (تلك الخارجية لكل ملف كائن).
--defined فقط
عرض الرموز المحددة فقط لكل ملف كائن.
-الخامس
--الإصدار
اعرض رقم إصدار nm والخروج.
-X
يتم تجاهل هذا الخيار للتوافق مع إصدار AIX من nm . يستغرق معلمة واحدة يجب أن تكون السلسلة 32_64 . يتوافق الوضع الافتراضي لـ AIX nm مع -X 32 ، والذي لا يدعمه GNU nm .
--مساعدة
عرض ملخص لخيارات نانومتر والخروج.
أنظر أيضا
ar (1) ، objdump (1) ، ranlib (1) ، وإدخالات المعلومات الخاصة بـ binutils .
هام: استخدم الأمر man ( ٪ man ) لمعرفة كيفية استخدام أمر ما على جهاز الكمبيوتر الخاص بك.