2
調試我的應用程序時,如果我在GDB中斷並嘗試打印errno,即使是在檢查errno的函數內部,我也會得到以下錯誤從GDB:無法在gdb中打印errno,抱怨缺少共享庫,但它存在
(gdb) print errno
Cannot find shared library `/usr/lib/debug/lib/libc-2.11.1.so' in dynamic linker's load module list
事情我已經嘗試:
- 檢查文件是否存在,它是約7.3MB。
- 將/ usr/lib/debug/lib /添加到我的LD_LIBRARY_PATH的前面。沒有效果。
- 設置LD_PRELOAD =/usr/lib/debug/lib/libc-2.11.1.so會導致我的應用在啓動時發生段錯誤。
- 如果我在二進制文件上運行ldd,它說它使用'/lib/libc.so.6',aptitude(我正在運行Ubuntu)告訴我libc6-dbg 是安裝了。
- 檢查我沒有在.gdbinit中設置自定義lib路徑,我沒有。
該應用程序似乎運行良好,所以我無法想象libc本身是搞砸了。有任何想法嗎?
看起來像你的shell啓動文件重挫LD_LIBRARY_PATH。檢查這個鏈接,[http://ipucu.enderunix.org/view.php?id=1720&lang=en]。希望有用。 –
@SunEric:AFAICT,系統路徑(如/ usr/lib)總是自動搜索。我還在#2中指出,明確地將路徑添加到LD_LIBRARY_PATH並不能修復錯誤。 –