This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: MI pretty printing -var-list-children segfaults
- From: Simon Marchi <simon dot marchi at ericsson dot com>
- To: Xavier de Gaye <xdegaye at gmail dot com>, <gdb at sourceware dot org>
- Date: Mon, 30 Nov 2015 17:32:54 -0500
- Subject: Re: MI pretty printing -var-list-children segfaults
- Authentication-results: sourceware.org; auth=none
- References: <565CBD10 dot 3080501 at gmail dot com>
On 15-11-30 04:18 PM, Xavier de Gaye wrote:
> gdb 7.10 segfaults after deleting the varobj child of a vector with one
> element. Does that mean children must no be deleted ?
>
> The last part of the debugging session:
>
> (gdb)
> ~"8\t v.push_back(3);\n"
> *stopped,reason="end-stepping-range",frame={addr="0x0000000000400b35",func="main",args=[],file="pret
> ty-printing.cc",fullname="/home/xavier/src/pyclewn/pyclewn-hg-working/testsuite/pretty-printing.cc",
> line="8"},thread-id="1",stopped-threads="all",core="1"
> (gdb)
> -enable-pretty-printing
> ^done
> (gdb)
> -var-create var1 * "v"
> ^done,name="var1",numchild="0",value="{...}",type="std::vector<int, std::allocator<int> >",thread-id
> ="1",displayhint="array",dynamic="1",has_more="1"
> (gdb)
> -var-list-children var1
> ^done,numchild="1",displayhint="array",children=[child={name="var1.[0]",exp="[0]",numchild="0",type=
> "int",thread-id="1"}],has_more="0"
> (gdb)
> -var-delete var1.[0]
> ^done,ndeleted="1"
> (gdb)
> -var-list-children var1
> Segmentation fault (core dumped)
>
>
> And the source code:
>
> #include <vector>
> #include <string>
>
> int main()
> {
> std::vector<int> v;
> v.push_back(2);
> v.push_back(3);
> return 0;
> }
>
>
> Xavier
Hi Xavier,
One thing is sure, gdb should not segfault when you do something that
you are not supposed to do. If you shouldn't delete varobj children,
then gdb should return an error. So that's a bug in gdb for sure.
If you could file a bug with as much details as possible on how to
reproduce it, it would be greatly appreciated:
https://sourceware.org/bugzilla/enter_bug.cgi?product=gdb
I don't have the required background to answer your actual question, so
I'll let others do it.
Thanks!
Simon