> If my understanding of (old) C still stands, d is a local variable > inside the function's body. At line #556 a 'print d' tells: > > $1 = {<text variable, no debug info>} 0x901aea38 <d>
That's odd because your previous post said you got 527076. > > What value does extract_float return? > > > 214 /* Extract a Lisp number as a `double', or signal an error. */ > 215 > 216 double > 217 extract_float (num) > 218 Lisp_Object num; > 219 { > 220 CHECK_NUMBER_OR_FLOAT (num); > 221 > 222 if (FLOATP (num)) > 223 return XFLOAT_DATA (num); > 224 return (double) XINT (num); > 225 } > > Do you mean to type x when gdb has reached line #225? I get for > example (own input mostly deleted): > No. What value does the GDB command `finish' print if starting from extract_float, or equivalently, what do you get if you type `print d' after 556 double d = extract_float (arg); i.e at 561 IN_FLOAT (d = sqrt (d), "sqrt", arg); >... > (gdb) n > Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/ > operand. > 0x001f2828 in Fsqrt (arg=4216608) at floatfns.c:561 > Breakpoint 6 at 0x1f27e4: file floatfns.c, line 561. > (gdb) x > 0x1f27e4 <Fsqrt+48>: 0x3c5f0020 > > > It might be worth to find the Elisp file that uses sqrt with the > argument of 4216608. *I* have no idea how to find that file ... A > termscript shows this: Actually Emacs is computing sqrt (527076) at this point (it's to do with the way Lisp Objects store numbers). sqrt (527076) = 726 I think in your case sqrt gets called by tty-color-off-gray-diag in tty-colors.el but it would be best to find out what goes wrong in Fsqrt. What happens if you start Emacs as a graphical application and evaluate (sqrt 527076) in the scratch buffer? -- Nick http://www.inet.net.nz/~nickrob _______________________________________________ emacs-pretest-bug mailing list emacs-pretest-bug@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug