While running ddd 3.3.12 with gdb 7.9.1 on a Fortran program I encountered this: (gdb) p y(nv1:lrow) cp-namespace.c:341: internal-error: cp_search_static_and_baseclasses: Assertion `name[prefix_len + 1] == ':'' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. This is a bug, please report it. For instructions, see: <http://bugs.gentoo.org/>. At this point nv1 and lrow can both be printed and nv1=8 and lrow=9 p y(8:9) prints results just fine. Just tried a similar thing with a different variable having a name ending in 1 and got the same kind of crash. Perhaps things are grouped like <nv><1:... instead of <nv1><:...?
can you post a reduced fortran test case ? that helps us track down and include regression tests. what target is this (i.e. your $CHOST) ?
(In reply to Fred Krogh from comment #0) > While running ddd 3.3.12 with gdb 7.9.1 on a Fortran program I encountered > this: > > (gdb) p y(nv1:lrow) > cp-namespace.c:341: internal-error: cp_search_static_and_baseclasses: > Assertion `name[prefix_len + 1] == ':'' failed. > A problem internal to GDB has been detected, > further debugging may prove unreliable. Have you tried this on HEAD or 7.11.1? The patch for 18303 was committed in March which removes this assert.
I could also trigger the assertion in gdb 7.9, and gdb 8.2 runs properly. My source, however, is C++. My steps to reproduce are: 1) build rwsh, accessible at https://github.com/thrasymache/rwsh 2) gdb ./rwsh 3) break Prototype::arg_to_param 4) run 5) p argm.str() in 7.9 it produces the above assertion, in 8.2 in produces $1 = ".init /path/to/rwsh/rwsh"