代码之家  ›  专栏  ›  技术社区  ›  rustyMagnet

C struct-lldb表达式失败

  •  1
  • rustyMagnet  · 技术社区  · 7 年前

    为什么lldb不能 expression 除非我声明一个默认变量,否则理解我的C结构吗?

    struct YD_MENU {
        char menu_name[10];
        int menu_option;
    };
    
    int main() {
    
        return 0;
    }
    

    在main中添加断点。。。

    (lldb) exp struct YD_MENU $b
    error: variable has incomplete type 'struct YD_MENU'
    forward declaration of 'YD_MENU'
    

    struct YD_MENU {
        char menu_name[10];
        int menu_option;
    } default_menu;
    

    (lldb) exp struct YD_MENU $a 很好用。

    我认为这与 Why can't LLDB evaluate this expression? 但是提议的答案不起作用。

    (lldb) version
    lldb-1000.0.29
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   Jim Ingham    7 年前

    clang(以及gcc)对于不发出“未使用的类型”的类型信息相当激进。当你做这样的事情的时候,有很多类型的人在四处游荡 import <Cocoa/Cocoa.h>