This is the mail archive of the gdb@sources.redhat.com 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]

another conditional breakpoint question


in the program:

   #include <math.h>
   int main(void)
   {
        double i = 0.0;
        double j = cos(i);
        return 0;
   }

i set a breakpoint which should never be reached:

p@satan% gdb mymath
(gdb) break main if cos(0.0) > 1000.0
Breakpoint 1 at 0x8048426: file mymath.c, line 5.

(gdb) run
Breakpoint 1, main () at mymath.c:5
5               double i = 0.0;

considering that cosine should be greater than 1 for a real variable,
this is quite strange!


i don't know if this is related, but i notice that cos(0) doesn't have a
value of 1.0.  not even close:

   (gdb) p cos(0)
   $3 = 14368

but just in case gdb doesn't know that cos() returns a double, i also
tried:

   (gdb) p/f cos(0.0)
   $1 = 2.00890148e-41

neither of these are even close to being right.


can someone tell me why gdb is reaching that breakpoint which should
never be reaced?  and is there any way of getting gdb to tell me that
cos(0) is supposed to be equal to 1?   :*)

thanks!
pete

-- 
Fingerprint: B9F1 6CF3 47C4 7CD8 D33E 70A9 A3B9 1945 67EA 951D


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]