簡體   English   中英

gdb調試共享庫 <optimized out> 問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM