linux 程式執行出錯的時候,如何進行除錯動態庫

2021-08-25 11:32:17 字數 1058 閱讀 8451

1.首先找到出錯的資訊和對應的庫檔案

例如:/mnt/lib/libaid_threads.so(_zn25cperiodandtransparenttask14inittaskresmapet+0x2dc)[0x41010430]

出錯的庫檔案是/mnt/lib/libaid_threads.so ,對應的出錯資訊是 _zn25cperiodandtransparenttask14inittaskresmapet+0x2dc

2. 使用file命令,檢視該庫檔案是否具有symbol資訊

[user@ubuntu concentrator_proj]$ file libaid_threads.so 

libaid_threads.so: elf 32-bit lsb shared object, arm, version 1 (sysv), dynamically linked,not stripped

如果出現上述紅色字型部分,說明該庫檔案具有symbol資訊

3.使用nm命令檢視對應的symbol資訊,並進行搜尋關鍵字

[user@ubuntu concentrator_proj]$ nm libaid_threads.so | grep inittaskresmap

0028bb48t _zn25cperiodandtransparenttask14inittaskresmapet

4.使用addr2line定位0028bb48多對應的檔案中具體的位置

[user@ubuntu concentrator_proj]$addr2line  -f -e libaid_threads.so 0028bb48

_zn25cperiodandtransparenttask14inittaskresmapet

/mnt/hgfs/share/xinjiang/benti/aid_threads/cperiodandtransparenttask.cpp:2693

5.以上綠色標註的部分就是最終定位的檔案出錯的地方

執行adb devices命令的時候出錯了

執行adb devices命令的時候出錯了 adb server version 31 doesn t match this client 40 killing.could not read ok from adb server failed to start daemon error cannot...

sudo許可權的時候出錯

解決方法 2 然後執行sudo許可權,可能依然會報錯,這個時候需要將 etc sudoers檔案的許可權設定為440,然後再執行sudo許可權。解決方法是需要將 etc sudoers的許可權恢復成440 然後給mongodb建立軟連線 發現建立後的軟體接的許可權是root的,可以使用sudo ch...

EF更新的時候出錯

儲存區更新 插入或刪除語句影響到了意外的行數 0 實體在載入後可能被修改或刪除。重新整理 objectstatemanager 項。說明 執行當前 web 請求期間,出現未經處理的異常。請檢查堆疊跟蹤資訊,以了解有關該錯誤以及 中導致錯誤的出處的詳細資訊。異常詳細資訊 system.data.opt...