Re: MI pretty printing -var-list-children segfaults

Simon Marchi <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.