This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: FW: Segfault in varobj.c
> > No, that won't happen any more. See get_value_type.
>
> Ah. Thanks. There doesn't seem to be any equivalent function in the 6.6
> version. Can you remember how this would have been handled then?
> Appreciate that you're probably not interested in dredging up the past.
> I tried variations on the following code but still wasn't able to
> reproduce in 6.6 so there must be something more to my test binary:
Your example crashes with GDB 6.6 for me in the way you first reported.
> typedef int * INT_PTR;
>
> struct test_struct {
> INT_PTR x;
> };
>
> struct test_struct test;
>
> int main(void) {
> int x = 1;
> test.x = &x;
> return *test.x;
> }
>
> rnorton@x-cbga-09:rnorton> gdb --interpreter=mi gdbtestfp
> ...
> ^done,reason="breakpoint-hit",bkptno="1",thread-id="0",frame={addr="0x00
> 000140",func="main",args=[],file="gdbtest.c",line="10"}
> (gdb)
> -var-create - * test
> ^done,name="var1",numchild="1",type="struct test_struct"
> (gdb)
> -var-list-children test
> &"Variable object not found\n"
> ^error,msg="Variable object not found"
> (gdb)
> -var-list-children var1
> ^done,numchild="1",children={child={name="var1.x",exp="x",numchild="1",t
> ype="INT_PTR"}}
> (gdb)
> -var-list-children var1.x
> ^done,numchild="1",children={child={name="var1.x.*x",exp="*x",numchild="
> 0",type="int"}}
> (gdb)
> -var-list-children var1.x.*x
> ^done,numchild="0"
> (gdb)
>
> Suppose I'll just have to go with a workaround until such time as we can
> upgrade.
Yes. It appears to be fixed in current CVS but isn't handled by GDB 6.6.
--
Nick http://www.inet.net.nz/~nickrob