Can I use -data-evaluate-expression to evaluate sin(4.1)?

Nikolay Molchanov Nikolay.Molchanov@Sun.COM
Tue Dec 19 17:02:00 GMT 2006


Nick Roberts wrote:
>  > -data-evaluate-expression sin(5.1)
>  > ^done,value="3"
>  > (gdb)
>  > 
>  > 
>  > Can I use "-data-evaluate-expression" to evaluate
>  > sin(x) function? If yes, why it returns a wrong
>  > "int" value?
>
> By default (without debuginfo as Frederic says) it assumes sin takes an
> integer argument and returns an value (I think).
>
> You need to cast sin explicitly:
>
>  (gdb)
> -data-evaluate-expression "((double ((*) (double))) sin) (5.1)"
> ^done,value="-0.92581468232773245"
> (gdb)
> -data-evaluate-expression "((double ((*) (double))) sin) (4.1)"
> ^done,value="-0.81827711106441026"
>
>
>   
Thank you very much for the explanation!
I verified that "ptype sin" gets wrong type ("int"):
ptype sin
&"ptype sin\n"
~"type = \n"
~"    int (void)\n"
^done

And thank you for the workaround, probably we can use it for
known functions (sin, cos, ...).





More information about the Gdb mailing list