From: Rod Armstrong (rod_at_san-jose.tt.slb.com)
Date: Wed Apr 03 2002 - 20:40:16 BST
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