This is the mail archive of the gdb-prs@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb/825: gdb gets scope of class local to a function wrong


>Number:         825
>Category:       gdb
>Synopsis:       gdb gets scope of class local to a function wrong
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Nov 14 12:18:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Jim Blandy
>Release:        public sources 2002-11-14
>Organization:
>Environment:
-gstabs+ debug info
GCC 3.3 (and earlier, I think)
>Description:
Using stabs debug info, GDB thinks that classes local to a function are visible outside that function's definition.
>How-To-Repeat:
Run gdb.c++/local.exp with the -gstabs+ debug flag.  I use something like:

set target_list { unix/gdb:debug_flags=-gstabs+ }

in my $DEJAGNU file.

Find the following pass in the gdb.log file:

PASS: gdb.c++/local.exp: ptype Local

At this point, GDB is stopped in main, but Local is local to the foobar function, above.  The ptype command that the test suite is approving of here should actually complain that it can't find any definition for Local at all.

I've submitted a patch (attached) which changes the test suite to make this a failure.  If that patch goes into the public sources, you'll need to look for a failure instead of a pass.
>Fix:
You might want to look at the following changes, which fixed the problem for Dwarf 2.  (Of course, the stabs issue might be entirely different.)

2002-11-08  Jim Blandy  <jimb@redhat.com>

	* dwarf2read.c (read_func_scope): Restore list_in_scope properly
	when we finish a function a context.
	* buildsym.h (outermost_context_p): New macro.
	(Bug analyzed by David Edelsohn.)

2002-11-08  Jim Blandy  <jimb@redhat.com>

	* dwarf2read.c (read_func_scope): Restore local_symbols and
	param_symbols after we finish the function context.  (Based on a
	patch from David Edelsohn.)

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="jimb.gdb-testsuite-c++-local-in-scope.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="jimb.gdb-testsuite-c++-local-in-scope.patch"

MjAwMi0xMS0xNCAgSmltIEJsYW5keSAgPGppbWJAcmVkaGF0LmNvbT4KCgkqIGxvY2FsLmV4cDog
RG9uJ3QgZXhwZWN0IExvY2FsIHRvIGJlIGluIHNjb3BlIGluIG1haW47IGl0J3MgbG9jYWwKCXRv
IGZvb2Jhci4gIENoZWNrIGZvciBpdCB0aGVyZSwgYW5kIGNoZWNrIHRoYXQgaXQncyBub3QgcHJl
c2VudCBpbgoJbWFpbi4KCSogbG9jYWwuY2M6IEhlbHAgdGhlIHRlc3Qgc3VpdGUgc3RvcCB0aGUg
cHJvZ3JhbSBpbiBmb29iYXIgYXMgd2VsbAoJYXMgbWFpbi4KCkluZGV4OiBnZGIvdGVzdHN1aXRl
L2dkYi5jKysvbG9jYWwuY2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi90
ZXN0c3VpdGUvZ2RiLmMrKy9sb2NhbC5jYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYg
LWMgLXIxLjIgbG9jYWwuY2MKKioqIGdkYi90ZXN0c3VpdGUvZ2RiLmMrKy9sb2NhbC5jYwkxMCBB
cHIgMjAwMiAwMzo1MjoyMSAtMDAwMAkxLjIKLS0tIGdkYi90ZXN0c3VpdGUvZ2RiLmMrKy9sb2Nh
bC5jYwkxMyBOb3YgMjAwMiAyMTowOTo1MyAtMDAwMAoqKioqKioqKioqKioqKioKKioqIDQsOSAq
KioqCi0tLSA0LDEyIC0tLS0KICB7IAogIH0KICAKKyB2b2lkIG1hcmtlcjIgKHZvaWQpCisgewor
IH0KICAgIAogIGludCBmb29iYXIgKGludCB4KQogIHsKKioqKioqKioqKioqKioqCioqKiAyMCwy
NSAqKioqCi0tLSAyMywzMCAtLS0tCiAgICBzdGF0aWMgTG9jYWwgbDE7CiAgICBjaGFyICBjOwog
IAorICAgbWFya2VyMSAoKTsKKyAKICAgIGwubG9jMSA9IDIzOwogIAogICAgYyA9IGwubG9jX2Zv
bygneCcpOwoqKioqKioqKioqKioqKioKKioqIDU2LDYxICoqKioKICAKICAgICBpbC5pbGMgPSAn
Yic7CiAgICAgaWwuaXAgPSAmYzsKISAgICBtYXJrZXIxKCk7CiAgIH0KICB9Ci0tLSA2MSw2NiAt
LS0tCiAgCiAgICAgaWwuaWxjID0gJ2InOwogICAgIGlsLmlwID0gJmM7CiEgICAgbWFya2VyMigp
OwogICB9CiAgfQpJbmRleDogZ2RiL3Rlc3RzdWl0ZS9nZGIuYysrL2xvY2FsLmV4cAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYysrL2xvY2FsLmV4
cCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45CmRpZmYgLWMgLXIxLjkgbG9jYWwuZXhwCioqKiBn
ZGIvdGVzdHN1aXRlL2dkYi5jKysvbG9jYWwuZXhwCTI3IE1heSAyMDAyIDE4OjAwOjE0IC0wMDAw
CTEuOQotLS0gZ2RiL3Rlc3RzdWl0ZS9nZGIuYysrL2xvY2FsLmV4cAkxMyBOb3YgMjAwMiAyMTow
OTo1MyAtMDAwMAoqKioqKioqKioqKioqKioKKioqIDY3LDczICoqKioKICAgICAgY29udGludWUK
ICB9CiAgCiEgZ2RiX3Rlc3QgInVwIiAiLiptYWluLioiICJ1cCBmcm9tIG1hcmtlcjEiCiAgCiAg
IyBMb2NhbCBjbGFzc2VzIGluIGcrKyBnZXQgbmFtZXMgbGlrZSAibWFpbi4xOjpJbm5lckxvY2Fs
IiwganVzdCBsaWtlIGxvY2FsCiAgIyBzdGF0aWMgdmFyaWFibGVzLiAgU29tZSB0YXJnZXRzIHVz
ZSAiX19fIiBpbnN0ZWFkIG9mICIuIi4KLS0tIDY3LDczIC0tLS0KICAgICAgY29udGludWUKICB9
CiAgCiEgZ2RiX3Rlc3QgInVwIiAiLipmb29iYXIuKiIgInVwIGZyb20gbWFya2VyMSIKICAKICAj
IExvY2FsIGNsYXNzZXMgaW4gZysrIGdldCBuYW1lcyBsaWtlICJtYWluLjE6OklubmVyTG9jYWwi
LCBqdXN0IGxpa2UgbG9jYWwKICAjIHN0YXRpYyB2YXJpYWJsZXMuICBTb21lIHRhcmdldHMgdXNl
ICJfX18iIGluc3RlYWQgb2YgIi4iLgoqKioqKioqKioqKioqKioKKioqIDExMCwxMTUgKioqKgot
LS0gMTEwLDEyNyAtLS0tCiAgICAtcmUgIi4qJGdkYl9wcm9tcHQgJCIgICB7ICBmYWlsICJwdHlw
ZSBMb2NhbCIgfQogICAgdGltZW91dCAgICAgICAgICAgICB7IGZhaWwgIih0aW1lb3V0KSBwdHlw
ZSBMb2NhbCIgfQogIH0KKyAKKyBpZiAhW3J1bnRvICdtYXJrZXIyJ10gdGhlbiB7CisgICAgIHBl
cnJvciAiY291bGRuJ3QgcnVuIHRvIG1hcmtlcjIiCisgICAgIGNvbnRpbnVlCisgfQorIAorIGdk
Yl90ZXN0ICJ1cCIgIi4qbWFpbi4qIiAidXAgZnJvbSBtYXJrZXIyIgorIAorICMgTWFrZSBzdXJl
IHRoYXQgYExvY2FsJyBpc24ndCBpbiBzY29wZSBoZXJlOyBpdCdzIGxvY2FsIHRvIGZvb2Jhci4K
KyBnZGJfdGVzdCAicHR5cGUgTG9jYWwiICJObyBzeW1ib2wgXCJMb2NhbFwiIGluIGN1cnJlbnQg
Y29udGV4dC4qIiBcCisgICAgICAgICAgIkxvY2FsIG91dCBvZiBzY29wZSIKKyAKICAKICAjIERU
UyBDTExiczE0MzE2IGFuZCBDTExiczE3MDU4CiAgIyBjb3VsdGVyIC0gSSBhZGRlZCBhIGNsYXVz
ZSBmb3IgSFAncyBhQ0MgY29tcGlsZXIuICBXZSBwcmludCBvdXQgdGhlIHR5cGUK


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]