Re: request for feature

From: Rod Armstrong (rod_at_san-jose.tt.slb.com)
Date: Wed Apr 03 2002 - 20:40:16 BST

  • Next message: Satish Balay: "Re: request for feature"
    I understand the problem now. Without defining the type in file x.c,
    ups cannot expand it. This is because type information is scoped to
    compilation units. Why not include the type definitions in files
    where you want to examine the structure? The ups type scoping
    is just the same as the compiler. For instance, if x.c were written as:
    
    typedef struct _p_Vec*         Vec;
    main(void)
    {
      Vec v;
      VecCreate(&v);
      v.type = 0;
    }
    
    gcc will fail to compile it:
    
    x.c: In function `main':
    x.c:6: request for member `type' in something not a structure or union
    
    A workaround is to use an expresion to cast the address in a file where the 
    type is defined:
    
    
    Source files
        y.c
            (struct _p_Vec *)0x215c0 0x215c0
                int <a[0]>                     0
                char <type{0}>                 *NULL
    Breakpoints
    Functions
        main                                      x.c:6               
            undefined struct _p_Vec *<v>   0x215c0
    
    (you can use an editing macro to help: 
    
    setenv UPS_F1_STR "^y_at_b^ @b^w^b^d)^a(\n"
    
    then select "struct _p_Vec *<v>   0x215c0" in main(), add expr to y.c and use
    the menu to transform the text.)
    
    Rod
    


    This archive was generated by hypermail 2.1.4 : Thu May 23 2002 - 15:54:06 BST