From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28432 invoked by alias); 20 Aug 2012 14:24:58 -0000 Received: (qmail 28422 invoked by uid 22791); 20 Aug 2012 14:24:56 -0000 X-SWARE-Spam-Status: No, hits=-6.3 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,RP_MATCHES_RCVD,SPF_HELO_PASS,TW_BJ X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 20 Aug 2012 14:24:31 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q7KEOReU007799 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 20 Aug 2012 10:24:27 -0400 Received: from host2.jankratochvil.net (ovpn-116-37.ams2.redhat.com [10.36.116.37]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id q7KEONxu005686 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Mon, 20 Aug 2012 10:24:25 -0400 Date: Mon, 20 Aug 2012 14:24:00 -0000 From: Jan Kratochvil To: Mark Kettenis Cc: eliz@gnu.org, brobecker@adacore.com, gdb-patches@sourceware.org Subject: Re: New warning in GDB 7.5 Message-ID: <20120820142417.GA1149@host2.jankratochvil.net> References: <20120818205543.GL2798@adacore.com> <837gsvewyh.fsf@gnu.org> <201208182149.q7ILnLb3017336@glazunov.sibelius.xs4all.nl> <83393jegz3.fsf@gnu.org> <20120819043652.GN2798@adacore.com> <83vcgeddsm.fsf@gnu.org> <20120819180647.GO2798@adacore.com> <201208191832.q7JIWZmi012610@glazunov.sibelius.xs4all.nl> <83lihad7y3.fsf@gnu.org> <201208191910.q7JJAnQ0023236@glazunov.sibelius.xs4all.nl> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201208191910.q7JJAnQ0023236@glazunov.sibelius.xs4all.nl> User-Agent: Mutt/1.5.21 (2010-09-15) X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-08/txt/msg00540.txt.bz2 On Sun, 19 Aug 2012 21:10:49 +0200, Mark Kettenis wrote: > set $tem = (struct Lisp_Symbol *) $ptr > > probably won't trigger a full symbol read since "struct Lisp_Symbol" > is a type and not a function or variable. It will, because GDB generates symbols for each type. See for example: process_structure_scope -> new_symbol_full -> -> add_symbol_to_list It should work without any stub 'set' commands, if it does not one should have a reproducer (one can download Emacs but a minimal reproducer would be better). Regards, Jan struct s { int i; } v; gdb -ex r --args ./gdb ./63.o Reading symbols from /home/jkratoch/redhat/gdb-clean/gdb/63.o...done. (gdb) maintenance info psymtabs { objfile /home/jkratoch/redhat/gdb-clean/gdb/63.o ((struct objfile *) 0x2224c80) { psymtab 63.c ((struct partial_symtab *) 0x2218dc0) readin no fullname (null) text addresses 0x0 -- 0x0 psymtabs_addrmap_supported yes globals (* (struct partial_symbol **) 0x221a780 @ 1) statics (* (struct partial_symbol **) 0x222fe50 @ 2) dependencies (none) } } (gdb) maintenance info symtabs (gdb) Program received signal SIGINT, Interrupt. 0x00007ffff638dd30 in __poll_nocancel () at ../sysdeps/unix/syscall-template.S:81 81 T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS) # global symbol (gdb) p *(* (struct partial_symbol **) 0x221a780 @ 1)[0] $3 = {ginfo = {name = 0x2218d5a "v", value = {ivalue = 0, block = 0x0, bytes = 0x0, address = 0, chain = 0x0}, language_specific = {mangled_lang = { demangled_name = 0x0}, cplus_specific = 0x0}, language = language_c, section = 0, obj_section = 0x0}, domain = VAR_DOMAIN, aclass = LOC_STATIC} # static symbol (gdb) p *(* (struct partial_symbol **) 0x222fe50 @ 2)[0] $5 = {ginfo = {name = 0x2218d55 "int", value = {ivalue = 0, block = 0x0, bytes = 0x0, address = 0, chain = 0x0}, language_specific = {mangled_lang = { demangled_name = 0x0}, cplus_specific = 0x0}, language = language_c, section = 0, obj_section = 0x0}, domain = VAR_DOMAIN, aclass = LOC_TYPEDEF} # static symbol (gdb) p *(* (struct partial_symbol **) 0x222fe50 @ 2)[1] $6 = {ginfo = {name = 0x2218d3e "s", value = {ivalue = 0, block = 0x0, bytes = 0x0, address = 0, chain = 0x0}, language_specific = {mangled_lang = { demangled_name = 0x0}, cplus_specific = 0x0}, language = language_c, section = 0, obj_section = 0x0}, domain = STRUCT_DOMAIN, aclass = LOC_TYPEDEF} (gdb) c Continuing. (gdb) p (struct s *) 0 $1 = (struct s *) 0x0 (gdb) maintenance info symtabs { objfile /home/jkratoch/redhat/gdb-clean/gdb/63.o ((struct objfile *) 0x2224c80) { symtab 63.c ((struct symtab *) 0x2219790) dirname /home/jkratoch/redhat/gdb-clean/gdb fullname (null) blockvector ((struct blockvector *) 0x2219770) (primary) linetable ((struct linetable *) 0x0) debugformat DWARF 2 } }