0
當打印在LLDB的值,我得到了以下錯誤LLDB不能在調試代碼打印值
error: no member named 'rec' in namespace '$__lldb_local_vars'
我的代碼是由-g編譯。爲什麼lldb無法打印值?
當打印在LLDB的值,我得到了以下錯誤LLDB不能在調試代碼打印值
error: no member named 'rec' in namespace '$__lldb_local_vars'
我的代碼是由-g編譯。爲什麼lldb無法打印值?
$__lldb_local_vars
對於lngb的表達式解析器中的clang提供的名稱查找示例中的一些問題有點麻煩。 hack嘗試通過將局部變量注入名稱空間然後導入到表達式中,將局部變量提升到名稱查找的頭部(在本地可見的類和名稱空間查找之前)。這有一些性能問題,並且它也很脆弱,因爲它需要實現所有可見的本地人。我們做了一大堆工作來刪除我們可以告訴我們無法實現的本地人,但它仍然不能很可靠地工作。
這個技巧是默認關閉所有LLDB的蘋果釋放,並通過設置控制:
(lldb) set list target.experimental.inject-local-vars
target.experimental.inject-local-vars -- If true, inject local variables explicitly into the
expression text. This will fix symbol resolution
when there are name collisions between ivars and
local variables. But it can make expressions run
much more slowly.
您可以使用settings show
顯示此設置的當前值,並settings set
去改變它。
如果您可以提供一個顯示此失敗的示例,那麼使用llvm bug報告者:https://bugs.llvm.org提交錯誤會很有幫助。
是這種bug修復了最新的lldb嗎? –
不,我們還沒有想出一個更好的方式來告訴當地人的鏗鏘聲。我們必須做一些基礎工作,首先清理lldb表達式解析器和clang之間的接口,但它尚未誕生。 –
在我的情況下,二進制文件是由gcc編譯而不是鐺聲。 lldb是否支持由gcc構建的調試代碼? –