assertion error in pretty printing

Jonah Graham <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAPmGMviSOC1ZZTgOOThfFecfGVXgyJxfO=Kt4r9y-pep_1jjzw@mail.gmail.com>
Hi folks.

I have an internal error in GDB that AFAICT is down to the python pretty
printers. This is being hit by CDT (reported in
https://bugs.eclipse.org/bugs/show_bug.cgi?id=574645)

Doing a -var-update I get this internal error:

~"/scratch/gdb/binutils-gdb/gdb/c-varobj.c:516: internal-error: std::string
c_value_of_variable(const varobj*, varobj_display_formats): Assertion
`!value_lazy (var->value.get ())' failed.\nA problem internal to GDB has
been detected,\nfurther debugging may prove unreliable.\nQuit this
debugging session? (y or n) "

Steps to reproduce:

Get source from
https://bugzillaattachments.eclipsecontent.org/bugs/attachment.cgi?id=286726
curl
https://bugzillaattachments.eclipsecontent.org/bugs/attachment.cgi?id=286726
> bug574645.cpp
g++ -std=c++2a -O0 -g3 bug574645.cpp -o bug574645
gdb --interpreter=mi2

then use these commands:
6-enable-pretty-printing
8-gdb-set print object on
19-file-exec-and-symbols --thread-group i1 bug574645
26-break-insert -f bug574645.cpp:31
27-break-insert -t -f main
29-exec-run --thread-group i1
41-var-create --thread 1 --frame 0 - * data2
44-var-list-children var1 0 1
48-exec-continue --thread 1
51-var-update 1 var1

If running with a locally built GDB the python pretty printers need to be
pointed at (e.g. add  --data-directory=/usr/share/gdb to gdb command line)

Where do I start debugging this? I have reproduced with latest HEAD of
gdb + the data directory on my Ubuntu 20.04 machine.

Jonah

~~~
Jonah Graham
Kichwa Coders
www.kichwacoders.com
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.