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

gdb-“尝试提取不是结构指针的值的组件”

  •  0
  • Bob  · 技术社区  · 6 年前

    我在CordX-M4上使用KiTeNesDesign Studio调试C++。

    有一个标签 Expressions 您可以在其中输入自定义表达式以查看变量的值。

    所以,我知道应该可以这样做:

    ((ClassA *) 0x12345678)->ClassA_member

    这个 gdb 尝试输入此表达式时的跟踪是:

    513,896 244-stack-info-depth --thread 1 50
    513,905 244^done,depth="11"
    513,905 (gdb) 
    513,905 245-var-create --thread 1 --frame 0 - * "((CXCPHostProtocolProperties * )0x1fffc2c4)->_MaxDT\
    O"
    513,907 246-data-evaluate-expression --thread 1 --frame 0 "&(((CXCPHostProtocolProperties * )0x1fffc\
    2c4)->_MaxDTO)"
    513,907 245^error,msg="Type CXCPHostProtocolProperties *(CXCPHostProtocolProperties * const) is not \
    a structure or union type."
    513,907 (gdb) 
    513,908 247-data-evaluate-expression --thread 1 --frame 0 "((CXCPHostProtocolProperties * )0x1fffc2c\
    4)->_MaxDTO"
    513,908 246^error,msg="Attempt to extract a component of a value that is not a structure pointer."
    513,908 (gdb) 
    513,910 247^error,msg="Attempt to extract a component of a value that is not a structure pointer."
    513,910 (gdb) 
    

    我做错什么了?
    ClassA_member 公众的 unsigned short

    我也在用 -Os 优化尺寸(以防重要)。

    0 回复  |  直到 6 年前