This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
[Bug gdb/12791] New: GDB is unable to do inf-call of vararg of type_Complex on arm-linux-gnu-eabi
- From: "qiyao at gcc dot gnu.org" <sourceware-bugzilla at sourceware dot org>
- To: gdb-prs at sourceware dot org
- Date: Fri, 20 May 2011 14:43:43 +0000
- Subject: [Bug gdb/12791] New: GDB is unable to do inf-call of vararg of type_Complex on arm-linux-gnu-eabi
- Auto-submitted: auto-generated
http://sourceware.org/bugzilla/show_bug.cgi?id=12791
Summary: GDB is unable to do inf-call of vararg of type
_Complex on arm-linux-gnu-eabi
Product: gdb
Version: HEAD
Status: NEW
Severity: normal
Priority: P2
Component: gdb
AssignedTo: unassigned@sourceware.org
ReportedBy: qiyao@gcc.gnu.org
Created attachment 5742
--> http://sourceware.org/bugzilla/attachment.cgi?id=5742
test case
Native gdb configured as armv7l-linux-gnu-eabi can't handle varargs of type
_Complex {float, double, long double}.
Here are the steps to reproduce,
$ gcc -marm complex.c -g -o complex
$ ./gdb complex
(gdb) b main
Breakpoint 1 at 0x8368: file /home/yao/complex.c, line 25.
(gdb) run
Starting program: /home/yao/gdb/gdb-fsf-git/build/gdb/complex
Breakpoint 1, main () at /home/yao/complex.c:25
25 return 0;
(gdb) print find_max_float_real(4, fc1, fc2, fc3, fc4)
Program received signal SIGSEGV, Segmentation fault.
0x000083c8 in find_max_float_real (num_vals=1065353216) at
/home/yao/complex.c:39
39 x = va_arg (argp, float _Complex);
The program being debugged was signaled while in a function called from GDB.
GDB remains in the frame where the signal was received.
To change this behavior use "set unwindonsignal on".
Evaluation of the expression containing the function
(find_max_float_real) will be abandoned.
When the function is done executing, GDB will silently stop.
(gdb) print find_max_double_real(4, dc1, dc2, dc3, dc4)
Program received signal SIGSEGV, Segmentation fault.
0x00008504 in find_max_double_real (num_vals=-1098616824) at
/home/yao/complex.c:62
62 return max;
The program being debugged was signaled while in a function called from GDB.
GDB remains in the frame where the signal was received.
To change this behavior use "set unwindonsignal on".
Evaluation of the expression containing the function
(find_max_double_real) will be abandoned.
When the function is done executing, GDB will silently stop.
(gdb) print find_max_long_double_real(4, ldc1, ldc2, ldc3, ldc4)
Program received signal SIGSEGV, Segmentation fault.
0x000085dc in find_max_long_double_real (num_vals=0) at /home/yao/complex.c:80
80 return max;
The program being debugged was signaled while in a function called from GDB.
GDB remains in the frame where the signal was received.
To change this behavior use "set unwindonsignal on".
Evaluation of the expression containing the function
(find_max_long_double_real) will be abandoned.
When the function is done executing, GDB will silently stop.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.