[英]gdb debugging shared library <optimized out> issue
我正在嘗試使用gdb調試共享庫
當進入共享庫中的函數時,我已經開始對所有局部變量進行<optimized out>
(用C編寫)
我嘗試鏈接到共享庫(.so)並鏈接到靜態庫(.a),以確保在Makefile中未設置任何優化,即,為庫和庫工具都設置了-O0和-g
我以前能夠調試它的奇怪的事情, <optimized out>
只是最近才出現,但我不知道為什么,例如,我最初可以看到局部變量
我知道這是一個模糊的問題,我可能需要提供各種進一步的信息來對它進行排序,例如Makefile,源代碼等。但是可能有人從這個高級描述中意識到了問題,並且可以提供潛在的解決方法嗎?
只是最近才出現,但我不知道為什么
<optimized out>
僅在調試優化代碼時出現。
由於您已驗證編譯行中不存在-O*
標志(不要僅查看Makefile
,而是檢查實際的編譯日志),因此邏輯結論是有人安裝了庫的其他(優化)版本系統上其他位置,並且您正在鏈接到該版本。
在Linux(和許多其他UNIX系統)上,可以將-Wl,-t
標志添加到鏈接行,並查看鏈接時實際使用的庫。
使用共享庫時,GDB info shared
命令將告訴您在運行時選擇哪個庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.