This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
c++/2366: gdb crash: infinite recursion in fill_in_vptr_fieldno
- From: aristovski at qnx dot com
- To: gdb-gnats at sources dot redhat dot com
- Cc: rmansfield at qnx dot com
- Date: 21 Nov 2007 16:39:02 -0000
- Subject: c++/2366: gdb crash: infinite recursion in fill_in_vptr_fieldno
- Reply-to: aristovski at qnx dot com
>Number: 2366
>Category: c++
>Synopsis: gdb crash: infinite recursion in fill_in_vptr_fieldno
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Wed Nov 21 16:48:01 UTC 2007
>Closed-Date:
>Last-Modified:
>Originator: aristovski@qnx.com
>Release: unknown-1.0
>Organization:
>Environment:
>Description:
GDB crashes when accesing type information. It runs into an infinite recursion in fill_in_vptr_fieldno.
The crash occurs with gcc versions (only versions we used are listed)
4.0.3
3.4.x
3.3.x
It has to do with namespaces and wrong resolution of a base class. In short:
namespace N1 {
class A {};
}
namespace N2 {
class B : public N1::A {}
}
When printing "this" when in B's method, it resolves base class to be B again.
See attached project with sources and test case (and gdb command file).
>How-To-Repeat:
Use attached project and command file:
gdb
(gdb) source crash.source
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="gdbcrash.tar.bz2"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="gdbcrash.tar.bz2"
QlpoOTFBWSZTWUOLjxkAA7P/wtayACBdf/+fO+/+6v/v3yoAJEEgAAhQA17quQjYOgGoUBo00APU
GjQAADJkAAAAAAyJMSeQpiBoB6g0A0GgBoADQaNAAYiCpptQ0GgAyAGQAAAMgAAAcNDJpoaZGhpk
ZBkZGhkBiaMmgDJkYhgqSQgVP0aepNoJqemU02p6TRtTJiDagNNNGmm1MjI8p1/kKeb+brW9Ds8M
nJs5swpaKhWeJExodrJ2suuz15CmABEmCRE5yd5vBr+YAuKQCJKBJRKUWSrUWaE1x01JBtUnThZG
F+PuXc3Noeloy+WFvUrYPrTjCSCei+pOhBNksKywBUzzKCNRmLTcW4Nhpjj02HTdVZ777NkaSRuN
iyTfFIkyAEC7tVogIXX5T7YhtMsiezeFUm/Qs9Ea3AGVJKYQaqJrh155gK4eWoUWVI22vEhoOMrn
1cmEpwaoDwK9j8QC1pZTkL5lYqqlPAbH0m8dNk5HMzvhxLROfvdxzuHs1SlKllWpazdeNmbsuTTV
LpO8GgM31WB53oqq83q4hMAoZbBj0Rd40NOnDDyZBbMM0Nzw2DPdOWO5paBnWLYXY9FXTzqHzBhS
ZpLXtVJSXUEScVEBJAhIzAAMBSZTUUhzgMAljUgoAe4ABrLFOPkCe0xqZ5TCJ0lttZtrFk6C6jog
7HSDA0yJvlSwD6JOqD1g+a9QLSSrjqIEhZAskDykKIhUMXoGN4HtM8SaEQ2i6zFCAKtMFj1p6pZz
pw+nb1ps35MPWnv9nrTp9iqqps5hqd0PPj7/L309qOLfHRo7ftndpVIn7k54N3Np93Ho9w2pnHio
V9zKrD0Xr3lXMnkDPwNO7GWL53ewP80DHajM/hS7VufZNuKwXpfcjCi6SpJUuwe+mVxBljROwbjX
wz00udjvtdmQxzXOvw6OrwbXV1ukJLlIHIUApADwDgpRDCI6hQxAYNkFB8YMk+lzJ7dGkKoaqnik
21DtLbfLMvHfGfZvDxRLLjNfzamFL41u2sTgOnStKqqtGCb+MUHLE1Ro3tNLbMLyZA5t/J2bZGh/
WQ2maDCJF2rENA6hhBdGAv4NjmhnjJKkZdeJ8929kOTGfBG9ca+sd7c3foknA1ZTcY0Wi1oH/i7k
inChIIcXHjI=