From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22770 invoked by alias); 22 Jan 2002 17:26:32 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 22738 invoked from network); 22 Jan 2002 17:26:30 -0000 Received: from unknown (HELO localhost.cygnus.com) (216.138.202.10) by sources.redhat.com with SMTP; 22 Jan 2002 17:26:30 -0000 Received: from cygnus.com (localhost [127.0.0.1]) by localhost.cygnus.com (Postfix) with ESMTP id 0F1B93F18; Tue, 22 Jan 2002 12:26:29 -0500 (EST) Message-ID: <3C4DA0C4.9060506@cygnus.com> Date: Tue, 22 Jan 2002 09:26:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:0.9.7) Gecko/20020103 X-Accept-Language: en-us MIME-Version: 1.0 To: Richard.Earnshaw@arm.com Cc: gdb@sources.redhat.com Subject: Re: ARM floating point regs regression References: <200201221709.RAA03486@cam-mail2.cambridge.arm.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2002-01/txt/msg00243.txt.bz2 > Program received signal SIGSEGV, Segmentation fault. > floatformat_is_nan (fmt=0x0, val=0xefbfcc14 "") > at /nfs/sun18//work/rearnsha/gnusrc/src/gdb/src/gdb/doublest.c:457 > 457 if (! fmt->exp_nan) > (top-gdb) p fmt > $1 = (struct floatformat *) 0x0 > (top-gdb) where > #0 floatformat_is_nan (fmt=0x0, val=0xefbfcc14 "") > at /nfs/sun18//work/rearnsha/gnusrc/src/gdb/src/gdb/doublest.c:457 > #1 0x0007ba4c in c_val_print (type=0x1c0d80, valaddr=0xefbfcc14 "", > embedded_offset=0, address=0, stream=0x1ae000, format=0, deref_ref=1, > recurse=0, pretty=Val_no_prettyprint) > at /nfs/sun18//work/rearnsha/gnusrc/src/gdb/src/gdb/c-valprint.c:439 > #2 0x00016400 in val_print (type=0x1c0d80, valaddr=0xefbfcc14 "", > embedded_offset=0, address=0, stream=0x1ae000, format=0, deref_ref=1, > recurse=0, pretty=Val_pretty_default) > ... > > Breakpoint 3, print_floating (valaddr=0xefbfcc14 "", type=0x1c0d80, > stream=0x0) > at /nfs/sun18//work/rearnsha/gnusrc/src/gdb/src/gdb/valprint.c:551 > 551 const struct floatformat *fmt = floatformat_from_type (type); > (top-gdb) p type > $2 = (struct type *) 0x1c0d80 > (top-gdb) p *type > $3 = {code = TYPE_CODE_FLT, > name = 0x527c8 "builtin_type_arm_ext_littlebyte_bigword", tag_name = > 0x0, > length = 12, upper_bound_type = 0, lower_bound_type = 0, objfile = 0x0, > target_type = 0x0, pointer_type = 0x0, reference_type = 0x0, > cv_type = 0x1c0d80, as_type = 0x1c0d80, flags = 0, nfields = 0, > fields = 0x0, vptr_basetype = 0x0, vptr_fieldno = -1, type_specific = { > arg_types = 0x0, cplus_stuff = 0x0, floatformat = 0x0}} Hmm, type->type_specific.floatformat shouldn't be NULL here. Checking gdbtypes.c: builtin_type_i387_ext = init_type (TYPE_CODE_FLT, floatformat_i387_ext.totalsize / 8, 0, "builtin_type_i387_ext", NULL); TYPE_FLOATFORMAT (builtin_type_i387_ext) = &floatformat_i387_ext; which is good, but: builtin_type_arm_ext_littlebyte_bigword = init_type (TYPE_CODE_FLT, floatformat_arm_ext_littlebyte_bigword.totalsize / 8, 0, "builtin_type_arm_ext_littlebyte_bigword", NULL); is bad. I don't know how but almost all the lines initializing TYPE_FLOATFORMAT were lost. Andrew