From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29860 invoked by alias); 10 Jun 2004 19:59:50 -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 29852 invoked from network); 10 Jun 2004 19:59:47 -0000 Received: from unknown (HELO dirac.org) (64.142.25.39) by sourceware.org with SMTP; 10 Jun 2004 19:59:47 -0000 Received: by dirac.org (Postfix, from userid 1001) id A63993DEA; Thu, 10 Jun 2004 12:58:04 -0700 (PDT) Date: Thu, 10 Jun 2004 19:59:00 -0000 To: Gdb Mailing List Subject: Re: gdb segfaults when printing long double complex variables Message-ID: <20040610195804.GA13244@dirac.org> References: <20040610192828.GA13125@dirac.org> <20040610193919.GA32564@nevyn.them.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040610193919.GA32564@nevyn.them.org> User-Agent: Mutt/1.5.5.1+cvs20040105i From: p@dirac.org (Peter Jay Salzman) X-SW-Source: 2004-06/txt/msg00106.txt.bz2 On Thu 10 Jun 04, 3:39 PM, Daniel Jacobowitz said: > On Thu, Jun 10, 2004 at 12:28:29PM -0700, Peter Jay Salzman wrote: > > Bug: GDB segfaults when printing long double complex variables. > > > > Sample Code: > > > > 1 #include > > 2 #include > > 3 > > 4 int main(void) > > 5 { > > 6 complex a; > > 7 double complex b; > > 8 long double complex c; > > 9 > > 10 a = 5 + 2I; > > 11 printf("%f + %fi\n", __real__ a, __imag__ a); > > 12 > > 13 b = 5.0 + 2.0I; > > 14 printf("%f + %fi\n", __real__ b, __imag__ b); > > 15 > > 16 c = 5.0L + 2.0LI; > > 17 printf("%Lf + %Lfi\n", __real__ c, __imag__ c); > > 18 > > 19 return 0; > > 20 } > > GDB doesn't really support complex long double. The entire type > infrastructure for complex types is hokey and special-cases based on > the size of the type; it expects 128-bit long double rather than x86's > 96-bit. > > Look in dwarf2read.c for the code setting TYPE_TARGET_TYPE if you want > to work around it. Hi Daniel, A friend noticed that it worked on an Opteron, which presumably has 128 bit long double complexes. But two questions: 1. Should GDB be segfaulting? Isn't there a nicer way to alert the user that there's a problem? 2. Is support planned? If so, for what time estimate? I use C to solve non-linear Schrodinger equations. Hokey under the hood or not, I'd really rather use native complexes rather than home brewed structs. Pete ps- Queen of the Demonweb Pits was my favorite module... -- In theory, theory and practise are the same. In practise, they aren't. GPG Instructions: http://www.dirac.org/linux/gpg GPG Fingerprint: B9F1 6CF3 47C4 7CD8 D33E 70A9 A3B9 1945 67EA 951D