This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hu Hui, please find the ChageLog and floating point patch attached as you suggested. Sorry for not pasting it in email-body becasue of space and tabs issues. Do we need to update wiki? Regards, Oza. --- On Wed, 8/19/09, Hui Zhu <teawater@gmail.com> wrote: > From: Hui Zhu <teawater@gmail.com> > Subject: Re: final i386.floating.record.patch > To: "paawan oza" <paawan1982@yahoo.com> > Cc: "Michael Snyder" <msnyder@vmware.com>, "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>, "Mark Kettenis" <mark.kettenis@xs4all.nl> > Date: Wednesday, August 19, 2009, 7:47 AM > Oops, this is not the bug in fp > patch.? Sorry for it. > > After patch http://sourceware.org/ml/gdb-patches/2009-08/msg00272.html > > Everything is OK. > > I post a new patch that remove space in the tail. > I think you need write a changelog.? You can get a > example from > src/ChangeLog.? Please Let each line doesn't bigger > than 72. > > Thanks, > Hui > > On Wed, Aug 19, 2009 at 09:13, Hui Zhu<teawater@gmail.com> > wrote: > > Could you try cvs-head? > > > > On Tue, Aug 18, 2009 at 21:48, paawan oza<paawan1982@yahoo.com> > wrote: > >> Hi, > >> > >> Another analysis and observation is: > >> > >> I used gdb-6.8.50.20090803 and everything seemed > okay. > >> Hui used gdb-6.8.50.20090817 and patch was still > the same and gdb threw these error. > >> was there any thing major changed in gdb ? > >> > >> and gdb throws error in > >> ../../src/gdb/utils.c:1200: > >> > >> which looks like somebody has allocated memory too > much or something has gone wrong in error checking. > >> > >> > >> the floating-point-patch is still the same, if it > works fine with gdb-6.8.50.20090803, it is high unlikely > that why should it throw memory allocation error with > gdb-6.8.50.20090817 (unless system is dangerously low in > virtual memory, swap space is full). > >> > >> Regards, > >> Oza. > >> > >> > >> > >> --- On Mon, 8/17/09, paawan oza <paawan1982@yahoo.com> > wrote: > >> > >>> From: paawan oza <paawan1982@yahoo.com> > >>> Subject: Re: final i386.floating.record.patch > >>> To: "Michael Snyder" <msnyder@vmware.com>, > "Hui Zhu" <teawater@gmail.com> > >>> Cc: "gdb-patches@sourceware.org" > <gdb-patches@sourceware.org>, > "Mark Kettenis" <mark.kettenis@xs4all.nl> > >>> Date: Monday, August 17, 2009, 9:40 PM > >>> Hi Hui, > >>> > >>> I test the same and it seems working fine. > Another thing I > >>> observe is, vertual memory is low problem and > may be gdb's > >>> virtual address space gets exhausted or any > other limit! > >>> highly unlikely though. > >>> > >>> please see the atached log. > >>> > >>> > linux-p94d:/home/oza/mk_patch/take_diff/gdb_current/gdb-6.8.50.20090803/gdb > >>> # ./gdb ./test_floats > >>> GNU gdb (GDB) 6.8.50.20090803 > >>> Copyright (C) 2009 Free Software Foundation, > Inc. > >>> License GPLv3+: GNU GPL version 3 or later > <http://gnu.org/licenses/gpl.html> > >>> This is free software: you are free to change > and > >>> redistribute it. > >>> There is NO WARRANTY, to the extent permitted > by law. > >>> Type "show copying" > >>> and "show warranty" for details. > >>> This GDB was configured as > "i686-pc-linux-gnu". > >>> For bug reporting instructions, please see: > >>> <http://www.gnu.org/software/gdb/bugs/>... > >>> Setting up the environment for debugging gdb. > >>> Function "internal_error" not defined. > >>> Make breakpoint pending on future shared > library load? (y > >>> or [n]) [answered N; input not from terminal] > >>> Function "info_command" not defined. > >>> Make breakpoint pending on future shared > library load? (y > >>> or [n]) [answered N; input not from terminal] > >>> > /home/oza/mk_patch/take_diff/gdb_current/gdb-6.8.50.20090803/gdb/.gdbinit:8: > >>> Error in sourced command file: > >>> No breakpoint number 0. > >>> (gdb) start > >>> Temporary breakpoint 1 at 0x8048c94: file > ./test_floats.c, > >>> line 196. > >>> Starting program: > >>> > /home/oza/mk_patch/take_diff/gdb_current/gdb-6.8.50.20090803/gdb/test_floats > >>> > >>> Temporary breakpoint 1, main () at > ./test_floats.c:196 > >>> 196? ? ? ???init_floats(); > >>> (gdb) record > >>> (gdb) c > >>> Continuing. > >>> result is 369.438751 > >>> result is 10.320001 > >>> result is 23.008301 > >>> result is 0.000000 > >>> result is 10.450000 > >>> result is 10.776012 > >>> result is 495830.968750 > >>> result is -181.778748 > >>> result is 12.525923 > >>> result is 2.195619 > >>> result is 5.055601 > >>> result is inf > >>> result is inf > >>> result is -0.988032 > >>> result is 0.154251 > >>> result is -6.405331 > >>> result is 1.537475 > >>> The next instruction is syscall exit_group.? > It will > >>> make the program exit.? Do you want to stop > the > >>> program?([y] or n) y > >>> Process record: inferior program stopped. > >>> > >>> Program received signal SIGTRAP, > Trace/breakpoint trap. > >>> 0xffffe405 in __kernel_vsyscall () > >>> (gdb) > >>> > >>> Regards, > >>> Oza. > >>> > >>> > >>> > >>> > >>> --- On Mon, 8/17/09, Hui Zhu <teawater@gmail.com> > >>> wrote: > >>> > >>> > From: Hui Zhu <teawater@gmail.com> > >>> > Subject: Re: final > i386.floating.record.patch > >>> > To: "Michael Snyder" <msnyder@vmware.com> > >>> > Cc: "paawan oza" <paawan1982@yahoo.com>, > >>> "gdb-patches@sourceware.org" > >>> <gdb-patches@sourceware.org>, > >>> "Mark Kettenis" <mark.kettenis@xs4all.nl> > >>> > Date: Monday, August 17, 2009, 12:06 PM > >>> > Get some error with this patch. > >>> > cat fp.c > >>> > #include <stdio.h> > >>> > #include <math.h> > >>> > #include <stdlib.h> > >>> > > >>> > /* the test intends to test following > insns. > >>> > flds faddp fstps fstpl fldl fxch fabs > fdivrp fmulp > >>> fsubrp > >>> > fucomp fnstsw fsqrt > >>> > fchs f2xm1 fyl2x fxtract fprem1 fld > fdecstp fld1 > >>> fldl2t > >>> > fldl2e FLDPI > >>> > FLDLG2 FLDLN2 > >>> > FLDZ fincstp ffree fptan fpatan fincstp > fsincos > >>> frndint > >>> > fscale fsin fcos fcmovb > >>> > fcmovbe fcmove fcmovu fcmovnb fcmovnbe > fsave frstor > >>> fstsw > >>> > */ > >>> > > >>> > float no1,no2,no3,no4,no5,no6,no7; > >>> > double x = 100.345, y = 25.7789; > >>> > long double ldx = > 88888888888888888888.88, ldy = > >>> > 9999999999999999999.99; > >>> > float result,resultd,resultld; > >>> > float *float_memory; > >>> > > >>> > /* initialization of floats */ > >>> > void init_floats() > >>> > { > >>> >? no1 = 10.45; > >>> >? no2 = 20.77; > >>> >? no3 = 156.89874646; > >>> >? no4 = 14.56; > >>> >? no5 = 11.11; > >>> >? no6 = 66.77; > >>> >? no7 = 88.88; > >>> >? float_memory = malloc(sizeof(float) * > 4); > >>> >? *float_memory = 256.256; > >>> >? *(float_memory + 1) = 356.356; > >>> >? *(float_memory + 2) = 456.456; > >>> >? *(float_memory + 3) = 556.556; > >>> > } > >>> > > >>> > /* marks FPU stack as empty */ > >>> > void empty_fpu_stack() > >>> > { > >>> >? asm ("ffree %st(1) \n\t" > >>> > ? ? ? "ffree %st(2) \n\t" > >>> > ? ? ? "ffree %st(3) \n\t" > >>> > ? ? ? "ffree %st(4) \n\t" > >>> > ? ? ? "ffree %st(5) \n\t" > >>> > ? ? ? "ffree %st(6) \n\t" > >>> > ? ? ? "ffree %st(7)"); > >>> > } > >>> > > >>> > /* tests floating point arithmatic */ > >>> > void test_arith_floats() > >>> > { > >>> >? result = no1 + no2 + no3 + no4 + no5 + > no6 + > >>> no7; > >>> >? printf("result is %f\n",result); > >>> > > >>> >? result = fmodf(no2,no1); > >>> >? printf("result is %f\n",result); > >>> > > >>> >? resultd = fmod(x,y); > >>> >? printf("result is %f\n",resultd); > >>> > > >>> >? resultld = fmodl(ldy,ldy); > >>> >? printf("result is %f\n",resultld); > >>> > > >>> >? result = fabsf(no1); > >>> >? printf("result is %f\n",result); > >>> > > >>> >? result = no3 / no4; > >>> >? printf("result is %f\n",result); > >>> > > >>> >? result = no1 * no2 * no3 * no4; > >>> >? printf("result is %f\n",result); > >>> > > >>> >? result = no1 - no2 - no3 - no4; > >>> >? printf("result is %f\n",result); > >>> > > >>> > > >>> >? asm ("fld %0" : :"m"(*float_memory)); > >>> >? asm ("fchs"); > >>> > > >>> >? /* test for f2xm1 */ > >>> >? asm ("fld %0" : :"m"(*float_memory)); > >>> >? asm ("f2xm1"); > >>> > > >>> >? asm ("fyl2x"); > >>> > > >>> >? asm ("fld %0" : :"m"(*float_memory)); > >>> >? asm ("fxtract"); > >>> > > >>> >? asm ("fld %0" : :"m"(*float_memory)); > >>> >? asm ("fprem1"); > >>> > > >>> >? /* decrement fpu stack pointer only > status > >>> register should > >>> > get affected */ > >>> >? asm ("fld %0" : :"m"(*float_memory)); > >>> > > >>> >? empty_fpu_stack(); > >>> > > >>> >? asm ("fld1"); > >>> >? asm ("fldl2t"); > >>> >? asm ("fldl2e"); > >>> >? asm ("fldpi"); > >>> >? asm ("fldlg2"); > >>> >? asm ("fldln2"); > >>> >? asm ("fldz"); > >>> > > >>> >? empty_fpu_stack(); > >>> >? /* finishing emptying the stack */ > >>> > > >>> >? result = sqrt(no3); > >>> >? printf("result is %f\n",result); > >>> > } > >>> > > >>> > void test_log_exp_floats() > >>> > { > >>> >? result = log10(no3); > >>> >? printf("result is %f\n",result); > >>> > > >>> >? result = log(no3); > >>> >? printf("result is %f\n",result); > >>> > > >>> >? result = exp10(no3); > >>> >? printf("result is %f\n",result); > >>> > > >>> >? result = exp(no3); > >>> >? printf("result is %f\n",result); > >>> > } > >>> > > >>> > void test_trigo_floats() > >>> > { > >>> >? result = sin(30); > >>> >? printf("result is %f\n",result); > >>> > > >>> >? result = cos(30); > >>> >? printf("result is %f\n",result); > >>> > > >>> >? result = tan(30); > >>> >? printf("result is %f\n",result); > >>> > > >>> >? result = atan(30); > >>> >? printf("result is %f\n",result); > >>> > > >>> >? asm ("fld %0" : :"m"(*float_memory)); > >>> >? asm ("fptan"); > >>> > > >>> >? /* changes st1 and popping register > stack */ > >>> >? asm ("fpatan"); > >>> > > >>> >? asm("fincstp"); > >>> >? asm ("fld %0" : :"m"(float_memory)); > >>> >? asm ("fsincos"); > >>> > > >>> >? asm ("fld %0" : :"m"(*float_memory)); > >>> >? asm ("frndint"); > >>> > > >>> >? asm ("fld %0" : :"m"(*float_memory)); > >>> >? asm ("fld %0" : > :"m"(*(float_memory+1))); > >>> >? asm ("fscale"); > >>> > > >>> >? empty_fpu_stack(); > >>> > > >>> >? asm ("fld %0" : :"m"(*float_memory)); > >>> >? asm ("fsin"); > >>> >? asm ("fcos"); > >>> > > >>> >? /* currently we assume condition likely > and > >>> always record > >>> > the registers > >>> >? code could be optimized only if the > flag is set > >>> then > >>> > record */ > >>> >? asm ("fld %0" : :"m"(*float_memory)); > >>> >? asm ("fld %0" : > :"m"(*(float_memory+1))); > >>> >? asm ("fcmovb %st(1), %st"); > >>> >? asm ("fcmovbe %st(1), %st"); > >>> >? asm ("fcmove %st(1), %st"); > >>> >? asm ("fcmovu %st(1), %st"); > >>> >? asm ("fcmovnb %st(1), %st"); > >>> >? asm ("fcmovnbe %st(1), %st"); > >>> > > >>> >? empty_fpu_stack(); > >>> >? /* finished emtyping the stack */ > >>> > } > >>> > > >>> > void test_compare_floats() > >>> > { > >>> > ???ldy = 88888888888888888888.88; > >>> > ???if (ldx == ldy) > >>> > ? ???ldy = > >>> > 7777777777777777777777777777.777; > >>> > ???else > >>> > ? ???ldy = > >>> > 666666666666666666666666666.666; > >>> > } > >>> > > >>> > /* test loading and saving of FPU > environment */ > >>> > void test_fpu_env() > >>> > { > >>> >? asm ("fsave %0" : "=m"(*float_memory) : > ); > >>> >? asm ("frstor %0" : : > "m"(*float_memory)); > >>> >? asm ("fstsw %ax"); > >>> > } > >>> > > >>> > int main() > >>> > { > >>> > ???init_floats(); > >>> > ???test_arith_floats(); > >>> > ???test_log_exp_floats(); > >>> > ???test_trigo_floats(); > >>> > ???test_compare_floats(); > >>> > ???test_fpu_env(); > >>> > } > >>> > > >>> > > >>> > > >>> > ./gdb ./a.out > >>> > GNU gdb (GDB) 6.8.50.20090817-cvs > >>> > Copyright (C) 2009 Free Software > Foundation, Inc. > >>> > License GPLv3+: GNU GPL version 3 or > later <http://gnu.org/licenses/gpl.html> > >>> > This is free software: you are free to > change and > >>> > redistribute it. > >>> > There is NO WARRANTY, to the extent > permitted by > >>> law. > >>> > Type "show copying" > >>> > and "show warranty" for details. > >>> > This GDB was configured as > "i686-pc-linux-gnu". > >>> > For bug reporting instructions, please > see: > >>> > <http://www.gnu.org/software/gdb/bugs/>... > >>> > Setting up the environment for debugging > gdb. > >>> > Function "internal_error" not defined. > >>> > Make breakpoint pending on future shared > library load? > >>> (y > >>> > or [n]) > >>> > [answered N; input not from terminal] > >>> > Function "info_command" not defined. > >>> > Make breakpoint pending on future shared > library load? > >>> (y > >>> > or [n]) > >>> > [answered N; input not from terminal] > >>> > /home/teawater/gdb/bgdbno/gdb/.gdbinit:8: > Error in > >>> sourced > >>> > command file: > >>> > No breakpoint number 0. > >>> > (gdb) start > >>> > During symbol reading, DW_AT_name missing > from > >>> > DW_TAG_base_type. > >>> > Temporary breakpoint 1 at 0x8048c74: file > fp.c, line > >>> 196. > >>> > Starting program: > /home/teawater/gdb/bgdbno/gdb/a.out > >>> > > >>> > Temporary breakpoint 1, main () at > fp.c:196 > >>> > 196??? ???init_floats(); > >>> > (gdb) record > >>> > (gdb) c > >>> > Continuing. > >>> > ../../src/gdb/utils.c:1200: > internal-error: virtual > >>> memory > >>> > exhausted. > >>> > A problem internal to GDB has been > detected, > >>> > further debugging may prove unreliable. > >>> > Quit this debugging session? (y or n) n > >>> > ../../src/gdb/utils.c:1200: > internal-error: virtual > >>> memory > >>> > exhausted. > >>> > A problem internal to GDB has been > detected, > >>> > further debugging may prove unreliable. > >>> > Create a core file of GDB? (y or n) n > >>> > > >>> > Program received signal SIGTRAP, > Trace/breakpoint > >>> trap. > >>> > 0xb7eba9bc in memcpy () from > >>> /lib/tls/i686/cmov/libc.so.6 > >>> > (gdb) quit > >>> > A debugging session is active. > >>> > > >>> > ??? Inferior 1 [process 15657] will > be > >>> > killed. > >>> > > >>> > Quit anyway? (y or n) y > >>> > > >>> > > >>> > Thanks, > >>> > Hui > >>> > > >>> > On Mon, Aug 17, 2009 at 05:16, Michael > Snyder<msnyder@vmware.com> > >>> > wrote: > >>> > > paawan oza wrote: > >>> > >> > >>> > >> Hi Hui & Michael, > >>> > >> Now we revert status registers > also. > >>> > >> please find the patch attached. > >>> > >> I am sorry, if I am not pasting > the patch in > >>> > email-body due to tabs&spaces > >>> > >> problem faced by Michael last > time. > >>> > >> Regards, > >>> > >> Oza. > >>> > > > >>> > > Looking good! > >>> > > > >>> > > There were some conflicts between > your changes > >>> and a > >>> > check-in that > >>> > > happened after your submission ?-- > ?I've taken > >>> the > >>> > liberty of merging > >>> > > your changes with the cvs head, > fixing up the > >>> > conflicts. ?Hope you > >>> > > don't mind ?-- ?merged patch > attached. > >>> > > > >>> > > I'll review your tests next. > >>> > > > >>> > > Can you write up a change log entry > for this > >>> patch? > >>> > > > >>> > > Hui, Mark, any more comments? > >>> > > > >>> > > Cheers, > >>> > > Michael > >>> > > > >>> > > > >>> > > > >>> > > > >>> > > > >>> > > >>> > >>> > >>> > >>> > >> > >> > >> > >> > > >
Attachment:
i386.record.float.aug-21.patch
Description: Binary data
Attachment:
floating.ChangeLog.patch
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |