2010-09-24 84 views
3

我有一個應用程序(爲此我沒有源代碼)。如何跟蹤應用程序動態加載哪些庫?

我知道它根據命令行參數設計爲動態加載共享庫。

我知道應該加載哪個庫,並且我已經將LD_LIBRARY_PATH設置爲相應的目錄。

該應用程序在一臺服務器上運行時沒有任何問題,但不適用於另一臺服務器。

我想弄清楚爲什麼,如果我能確認腳本正在尋找我認爲是的庫,並且能夠跟蹤它的位置,它將會有所幫助。

是否有任何工具可以幫助我?我一直在Google上搜索,但我發現的大部分信息都是關於ldd的,這些信息只能告訴你靜態鏈接的庫。

這是在Linux環境中,應用程序和庫都是用C寫

感謝

回答

3

使用strace。你會看到正在搜索的庫等,這將幫助你弄清楚發生了什麼。

+0

完美。原來缺失的圖書館並不是被報導的圖書館。 「strace」立即顯而易見。 – Dancrumb 2010-09-24 19:02:12

0

由於每個共享庫都被內存映射到進程的地址空間,因此您還可以檢查/ proc/[PID]/maps文件。