2013-03-11 103 views
4

我正在嘗試調試一個廣泛使用C宏(宏的嵌套宏)的應用程序。它給「使用未聲明的標識符」錯誤。LLDB調試器 - 如何評估C宏?

有什麼辦法讓LLDB調試器識別並正確評估它嗎?我可以自己分解宏並編寫完整的表達式,但它非常單調且容易出錯。

回答

1

不幸的是,這種情況不會發生,因爲我們沒有從編譯器得到宏的調試信息,這是有道理的,因爲在預處理器做它的事情之後,編譯器將源代碼轉換爲機器代碼之前宏會消失。

+0

是的,沒有任何宏信息在鏗鏘聲的調試信息中表示 - 它爲(已經很大的)調試信息添加了更多的數據。我認爲有些版本的gcc正在發佈他們的DWARF。到你的程序運行lldb時,宏和'#definition'根本不可用。 – 2013-03-13 02:56:47