This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Can I use -data-evaluate-expression to evaluate sin(4.1)?
- From: Nikolay Molchanov <Nikolay dot Molchanov at Sun dot COM>
- To: gdb at sourceware dot org
- Cc: Nick Roberts <nickrob at snap dot net dot nz>
- Date: Tue, 19 Dec 2006 09:02:03 -0800
- Subject: Re: Can I use -data-evaluate-expression to evaluate sin(4.1)?
- References: <45877ECA.9090207@sun.com> <17799.41335.712243.659292@kahikatea.snap.net.nz>
- Reply-to: Nikolay dot Molchanov at Sun dot COM
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, ...).