评估gdb

时间:2015-12-25 09:00:21

标签: c gdb math.h

很久以前就问过这个问题,但没有得到真正的回答。当我尝试在gdb中评估数学函数时,我得到了一些奇怪的错误结果。我开始使用以下文件

#include <math.h>
#include <stdio.h>

int main()
{
  double x ;
  x=sin(3.14) ;
  printf("%f",x) ;
}

在它上面启动gdb并在printf之前中断。现在在gdb提示符下:

(gdb) p x
$1 = 0.0015926529164868282
(gdb) p sin(3.14)
$2 = 1074339512
(gdb) p ((double(*)())sin)(3.14)
$3 = 3.1399999999999997

有人对此有解释吗?我如何评估gdb中的sin函数,如果我不知道为什么?

编辑:之前提供的答案似乎不起作用,至少对罪而言(见我的评论)。

0 个答案:

没有答案