Discussion:
[Bug gdb/14757] New: Print of expressions with no debug information gives wrong results
j.b.w at gmx dot ch
2012-10-23 21:28:07 UTC
Permalink
http://sourceware.org/bugzilla/show_bug.cgi?id=14757

Bug #: 14757
Summary: Print of expressions with no debug information gives
wrong results
Product: gdb
Version: 7.4
Status: NEW
Severity: normal
Priority: P2
Component: gdb
AssignedTo: ***@sourceware.org
ReportedBy: ***@gmx.ch
Classification: Unclassified


Created attachment 6696
--> http://sourceware.org/bugzilla/attachment.cgi?id=6696
Example program showing different types of functions

When I print expressions involving functions for which no debug information is
available, the result is wrong.

Consider the attached example program, and the following gdb session:

(gdb) print sqrt
$1 = {<text variable, no debug info>} 0x7ffff7879010 <sqrt>
(gdb) print std::sqrt
No symbol "sqrt" in namespace "std".
(gdb) print mysqrt
$2 = {double (double)} 0x40083c <mysqrt(double)>
(gdb) print sqrt(0.5)
$3 = 0
(gdb) print std::sqrt(0.5)
No symbol "sqrt" in namespace "std".
(gdb) print mysqrt(0.5)
$4 = 0.25

I would expect the call "print sqrt(0.5)" to give an error message indicating
that the expression cannot be printed due to missing debug information. Giving
a wrong result without any indication that something is wrong is... wrong.

Also, I'm puzzled as to why "print std::sqrt(0.5)" fails, given that the
program compiles (so std::sqrt apparently exists).

There is a related StackOverflow question at
http://stackoverflow.com/questions/5122570/why-does-gdb-evaluate-sqrt3-to-0
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
tromey at sourceware dot org
2018-09-15 19:25:58 UTC
Permalink
https://sourceware.org/bugzilla/show_bug.cgi?id=14757

Tom Tromey <tromey at sourceware dot org> changed:

What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |tromey at sourceware dot org
Resolution|--- |FIXED
Target Milestone|--- |8.2

--- Comment #1 from Tom Tromey <tromey at sourceware dot org> ---
Starting in 8.2, gdb won't assume the type of a function without
debug info.
--
You are receiving this mail because:
You are on the CC list for the bug.
Loading...