This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: gdb segfaults when printing long double complex variables
On Thu 10 Jun 04, 3:39 PM, Daniel Jacobowitz <drow@false.org> 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 <tgmath.h>
> > 2 #include <stdio.h>
> > 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