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
- From: Daniel Jacobowitz <drow at false dot org>
- To: Peter Jay Salzman <p at dirac dot org>
- Cc: Gdb Mailing List <gdb at sources dot redhat dot com>
- Date: Thu, 10 Jun 2004 15:39:20 -0400
- Subject: Re: gdb segfaults when printing long double complex variables
- References: <20040610192828.GA13125@dirac.org>
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.
--
Daniel Jacobowitz