मैं उन कार्यों की सूची को कैसे देख सकता हूं जो लिनक्स साझा पुस्तकालय निर्यात कर रहा है?


190

मैं लिनक्स पर एक साझा पुस्तकालय के निर्यात कार्यों को देखना चाहता हूं।

क्या आज्ञा मुझे ऐसा करने की अनुमति देती है?

(विंडोज पर मैं प्रोग्राम का उपयोग करता है निर्भर करता है)


जवाबों:


310

आपको क्या चाहिए nmऔर उसका -Dविकल्प:

$ nm -D /usr/lib/libopenal.so.1
.
.
.
00012ea0 T alcSetThreadContext
000140f0 T alcSuspendContext
         U atanf
         U calloc
.
.
.

निर्यात किए गए सुंबोल एक द्वारा इंगित किए जाते हैं T । आवश्यक प्रतीकों को अन्य साझा वस्तुओं से लोड किया जाना चाहिए U। ध्यान दें कि प्रतीक तालिका में केवल फ़ंक्शंस शामिल नहीं हैं, लेकिन निर्यात चर भी।

देखें nm मैन्युअल पृष्ठ अधिक जानकारी के लिए।


18
या यदि आप केवल निर्यात किए गए प्रतीकों को देखना चाहते हैं, तो "- केवल-निर्धारित" ध्वज जोड़ें। जैसे: "nm -D --defined-only /lib/libtest.so"
शेरविन इमामी

3
मैक ओएस एक्स पर केवल ध्वज के nmबिना उपयोग करें -D
जेपीगेट



1

अन्य पहले से ही उल्लेख किए गए उपकरणों में आप भी readelf( मैनुअल ) उपयोग कर सकते हैं । यह समान है, objdumpलेकिन अधिक विस्तार से जाना जाता है। अंतर की व्याख्या के लिए इसे देखें ।

$ readelf -sW /lib/liblzma.so.5 |head -n10

Symbol table '.dynsym' contains 128 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
     1: 00000000     0 FUNC    GLOBAL DEFAULT  UND pthread_mutex_unlock@GLIBC_2.0 (4)
     2: 00000000     0 FUNC    GLOBAL DEFAULT  UND pthread_mutex_destroy@GLIBC_2.0 (4)
     3: 00000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_deregisterTMCloneTable
     4: 00000000     0 FUNC    GLOBAL DEFAULT  UND memmove@GLIBC_2.0 (5)
     5: 00000000     0 FUNC    GLOBAL DEFAULT  UND free@GLIBC_2.0 (5)
     6: 00000000     0 FUNC    GLOBAL DEFAULT  UND memcpy@GLIBC_2.0 (5)

मैं कैसे निर्यात प्रतीकों का उपयोग करने वाला हूं? यह मुझे बहुत अधिक मात्रा में आउटपुट देता है।
जुराज मार्टिंका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.