এনএম কেন /lib/i386-linux-gnu/libc.so.6 এর জন্য কোনও প্রতীক দেখায় না?


31

আমি চিহ্ন নম্বর দেখতে বলে আশা করা libc.so.6 সহ ফাইল printf, । আমি তাদের খুঁজে পেতে এনএম সরঞ্জামটি ব্যবহার করেছি, তবে এটি বলে যে libc.so.6 এ কোনও চিহ্ন নেই।

উত্তর:


54

এটি সম্ভবত এর নিয়মিত চিহ্নগুলি ছিনিয়ে নিয়েছে এবং এটির গতিশীল চিহ্নগুলি যা অবশিষ্ট রয়েছে তা আপনি পেতে পারেন nm -D


11

@ এসপিওসিক এর উত্তর দিয়েছেন। আমি কেবল আরও বিশদ যুক্ত করতে চাই। ইএলএফ-তে দুটি ধরণের প্রতীক বিভাগ রয়েছে: .symtabএবং .dynsym( বিশদগুলির জন্য লিনাক্স স্ট্যান্ডার্ড বেস কোর স্পেসিফিকেশন, ওরফে এলএসবি_৫.০.০ দেখুন)। .symtabভাগ করা lib নিজেই লিঙ্কিং পদক্ষেপ জন্য। লিঙ্কিং শেষ হয়ে গেলে .symtabবিভাগটির আর প্রয়োজন হয় না। দ্য.dynsymঅধ্যায় গুরুত্বপূর্ণ প্রতীক যে run সময়ে গতিশীল linker দ্বারা অনুসন্ধান করা অনুমিত হয় ধারণ করে। nmডিফল্টরূপে .symtabবিভাগে চিহ্নগুলি ডাম্প করে ।

LSB_5.0.0 বিভাগ 10.2.2.1, "ইএলএফ বিভাগের প্রকারগুলি", বলেছেন যে একটি অনুসারে অংশীদারি করা lib এর দুটি .symtabবা .dynsymনা উভয়ই থাকা উচিত । এবিআই লাইব্রেরির অংশ হিসাবে, libc বৈশিষ্ট্য .symtabঅনুসারে বাদ দেওয়া হয় ।


0

এটি কোনও ভাগ করা অবজেক্ট বা নিয়মিত ASCII ফাইল কিনা তা সন্ধান করুন। যদি এটি কোনও ভাগ করা অবজেক্ট হয় তবে আপনার উচিত "ELF 32-বিট এলএসবি শেয়ার্ড অবজেক্ট,"

file /lib/i386-linux-gnu/libc.so.6

libc.so.6স্পষ্টতই একটি ভাগ করা বস্তু।
গিলস 'তাই খারাপ হওয়া বন্ধ করুন'

আমি কখনই লিনাক্সের পরিবেশ অনুমান করি না। কেউ বিবেচনা করে রুট ডিরেক্টরি ছুঁতে পারে। হ্যাঁ, নামে এটি অবশ্যই একটি শেয়ার অবজেক্ট। এবং, এটি যাচাই করতে ক্ষতি করে না; যখন আপনি প্রত্যাশিত আউটপুট পাচ্ছেন না।
jncc99
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.