Nm - قيادة لينكس - قيادة يونيكس

نانومتر - قائمة الرموز من ملفات الكائن

موجز

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 ) لمعرفة كيفية استخدام أمر ما على جهاز الكمبيوتر الخاص بك.