After further investigation it seems that gdb assumes that floating-
point numbers use . as decimal mark, as these lines from c-exp.y show

            else if (!got_dot && *p == '.')
              got_dot = 1;

but, later, the function parse_float() (in parse.c) feeds the string
into sscanf

  num = sscanf (copy, "%" DOUBLEST_SCAN_FORMAT "%n", d, &n);
 
and, apparently, sscanf is locale-sensitive, so, if the current locale has , as 
decimal mark, sscanf will leave everything past the . sign unscanned. gdb, 
then, notices that something is unscanned and says "invalid number"

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1341125

Title:
  Cannot enter floating point (double) numbers

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gdb/+bug/1341125/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to