2014-09-11 44 views
1

在Linux系統中,特定時間有很多進程正在運行,每個進程都依賴於一些動態庫(共享對象)。這可以通過ldd命令找到。當進程運行時,共享對象必須在內存中。同樣,Linux系統中的不同運行進程的內存中將會加載許多共享對象。如何在特定時間打印內存中的所有共享對象?

有什麼辦法可以列出所有這些共享對象嗎?它可以用C語言編寫嗎?列出當前加載在內存中的所有共享對象是否可行?

+0

'這可以列出當前加載到內存中的所有共享對象嗎?'遍歷/ proc/中的所有映射文件並創建您需要的列表。 – 2014-09-11 10:46:55

回答

0

闡述skwllsp的評論:

 
    grep '\.so' /proc/*/maps | sort -k6 | uniq -f5 

從C,可撥打system()popen()用這個命令字符串。

0

編程從一個進程內(這是Linux GNU glibc特定),你可以使用dl_iterate_phdr(3);手冊頁中的示例正在做你想做的事。

相關問題