public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/28465] New: Problems wit long double data in gdb ARM 64 aarch64
@ 2021-10-17 18:37 jacob at jacob dot remcomp.fr
  2021-10-22 15:15 ` [Bug c++/28465] " tromey at sourceware dot org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: jacob at jacob dot remcomp.fr @ 2021-10-17 18:37 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=28465

            Bug ID: 28465
           Summary: Problems wit long double data in gdb ARM 64 aarch64
           Product: gdb
           Version: 9.2
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: c++
          Assignee: unassigned at sourceware dot org
          Reporter: jacob at jacob dot remcomp.fr
  Target Milestone: ---

Dear friends:
Consider the following program

jacob@rock64:~/lcc/book/test$ cat tgh.c
#include <stdio.h>
int main(void)
{
        long double d1=19.76;
        printf("%Lg\n",d1);
}

I compile it:
jacob@rock64:~/lcc/book/test$ gcc -g tgh.c
Then, I run it:
jacob@rock64:~/lcc/book/test$ ./a.out
19.76
I start gdb
jacob@rock64:~/lcc/book/test$ gdb a.out

GNU gdb (Debian 7.12-6) 7.12.0.20161007-git
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "aarch64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from a.out...done.
(gdb) run
Starting program: /home/jacob/lcc/book/test/a.out 
19.76
[Inferior 1 (process 4233) exited normally]

Now, I set a breakpoint:
Breakpoint 1 at 0x5555555848: file tgh.c, line 4.
(gdb) run
Starting program: /home/jacob/lcc/book/test/a.out 

Breakpoint 1, main () at tgh.c:4
4               long double d1=19.76;
(gdb) c
Continuing.
-3.7745e+4414
[Inferior 1 (process 4236) exited normally]

The output is completely wrong!!!!!!!!

The problem becomes even more strange if I follow the program with instruction
single step:

(gdb) run
Starting program: /home/jacob/lcc/book/test/a.out 

Breakpoint 1, main () at tgh.c:4
4               long double d1=19.76;
(gdb) display/3i $pc-4
1: x/3i $pc-4
   0x5555555844 <main+4>:       mov     x29, sp
=> 0x5555555848 <main+8>:       ldr     q0, 0x5555555870
   0x555555584c <main+12>:      str     q0, [x29,#16]
(gdb) print *(long double *)0x5555555870
$4 = 19.760000000000001563194018672220409

The correct data is at the specified address!!!!!!!!!!!!!

(gdb) nexti
0x000000555555584c      4               long double d1=19.76;
1: x/3i $pc-4
   0x5555555848 <main+8>:       ldr     q0, 0x5555555870
=> 0x555555584c <main+12>:      str     q0, [x29,#16]
   0x5555555850 <main+16>:      adrp    x0, 0x5555555000
(gdb) print $q0
$5 = {u = 0xf947e0009000008097ffffeb97ffffe4, s =
0xf947e0009000008097ffffeb97ffffe4}
(gdb) print (long double)$q0
$6 = -inf

Apparently the "ldd" instructions does NOT load the data at the specified
address!!!!!

What is going on???????

jacob@rock64:~/lcc/book/test$ uname -a
Linux rock64 4.4.152-rockchip64 #1 SMP Sun Aug 26 14:40:54 CEST 2018 aarch64
GNU/Linux
This is the "rock64" small machine (ARM CPU) available at 
https://www.pine64.org/devices/single-board-computers/rock64/

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/28465] Problems wit long double data in gdb ARM 64 aarch64
  2021-10-17 18:37 [Bug c++/28465] New: Problems wit long double data in gdb ARM 64 aarch64 jacob at jacob dot remcomp.fr
@ 2021-10-22 15:15 ` tromey at sourceware dot org
  2021-10-28 12:01 ` jacob at jacob dot remcomp.fr
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: tromey at sourceware dot org @ 2021-10-22 15:15 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=28465

Tom Tromey <tromey at sourceware dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tromey at sourceware dot org

--- Comment #1 from Tom Tromey <tromey at sourceware dot org> ---
This is pretty surprising.

As a first step, I'd suggest trying a newer version of gdb.
Perhaps there was some bug that was fixed.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/28465] Problems wit long double data in gdb ARM 64 aarch64
  2021-10-17 18:37 [Bug c++/28465] New: Problems wit long double data in gdb ARM 64 aarch64 jacob at jacob dot remcomp.fr
  2021-10-22 15:15 ` [Bug c++/28465] " tromey at sourceware dot org
@ 2021-10-28 12:01 ` jacob at jacob dot remcomp.fr
  2021-10-28 18:56 ` simon.marchi at polymtl dot ca
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jacob at jacob dot remcomp.fr @ 2021-10-28 12:01 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=28465

--- Comment #2 from jacob at jacob dot remcomp.fr ---
> Le 22 oct. 2021 à 17:15, tromey at sourceware dot org <sourceware-bugzilla@sourceware.org> a écrit :
> 
> https://sourceware.org/bugzilla/show_bug.cgi?id=28465
> 
> Tom Tromey <tromey at sourceware dot org> changed:
> 
>           What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                 CC|                            |tromey at sourceware dot org
> 
> --- Comment #1 from Tom Tromey <tromey at sourceware dot org> ---
> This is pretty surprising.
> 
> As a first step, I'd suggest trying a newer version of gdb.
> Perhaps there was some bug that was fixed.
> 
> -- 
> You are receiving this mail because:
> You reported the bug.

OK, downloaded gdb 10.1. Compiled from source. The same bug persists.

Can you please tell me:

Where does (in the source code of gdb) the reading of the inferior’s registers
happen?

Thanks in advance

jacob

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/28465] Problems wit long double data in gdb ARM 64 aarch64
  2021-10-17 18:37 [Bug c++/28465] New: Problems wit long double data in gdb ARM 64 aarch64 jacob at jacob dot remcomp.fr
  2021-10-22 15:15 ` [Bug c++/28465] " tromey at sourceware dot org
  2021-10-28 12:01 ` jacob at jacob dot remcomp.fr
@ 2021-10-28 18:56 ` simon.marchi at polymtl dot ca
  2022-09-01 16:22 ` luis.machado at arm dot com
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: simon.marchi at polymtl dot ca @ 2021-10-28 18:56 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=28465

Simon Marchi <simon.marchi at polymtl dot ca> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |simon.marchi at polymtl dot ca

--- Comment #3 from Simon Marchi <simon.marchi at polymtl dot ca> ---
In your case, see aarch64_linux_nat_target::fetch_registers and
aarch64_linux_nat_target::store_registers.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/28465] Problems wit long double data in gdb ARM 64 aarch64
  2021-10-17 18:37 [Bug c++/28465] New: Problems wit long double data in gdb ARM 64 aarch64 jacob at jacob dot remcomp.fr
                   ` (2 preceding siblings ...)
  2021-10-28 18:56 ` simon.marchi at polymtl dot ca
@ 2022-09-01 16:22 ` luis.machado at arm dot com
  2022-09-09  8:56 ` luis.machado at arm dot com
  2022-09-09  8:56 ` luis.machado at arm dot com
  5 siblings, 0 replies; 7+ messages in thread
From: luis.machado at arm dot com @ 2022-09-01 16:22 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=28465

Luis Machado <luis.machado at arm dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at sourceware dot org   |luis.machado at arm dot com
                 CC|                            |luis.machado at arm dot com

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/28465] Problems wit long double data in gdb ARM 64 aarch64
  2021-10-17 18:37 [Bug c++/28465] New: Problems wit long double data in gdb ARM 64 aarch64 jacob at jacob dot remcomp.fr
                   ` (3 preceding siblings ...)
  2022-09-01 16:22 ` luis.machado at arm dot com
@ 2022-09-09  8:56 ` luis.machado at arm dot com
  2022-09-09  8:56 ` luis.machado at arm dot com
  5 siblings, 0 replies; 7+ messages in thread
From: luis.machado at arm dot com @ 2022-09-09  8:56 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=28465

--- Comment #4 from Luis Machado <luis.machado at arm dot com> ---
I can't reproduce this with GDB master. There might've been a bug in the
handling of the pseudo registers.

This is what I get:

(gdb) p (long double) $q0
$2 = 19.7600000000000015631940186722204089

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/28465] Problems wit long double data in gdb ARM 64 aarch64
  2021-10-17 18:37 [Bug c++/28465] New: Problems wit long double data in gdb ARM 64 aarch64 jacob at jacob dot remcomp.fr
                   ` (4 preceding siblings ...)
  2022-09-09  8:56 ` luis.machado at arm dot com
@ 2022-09-09  8:56 ` luis.machado at arm dot com
  5 siblings, 0 replies; 7+ messages in thread
From: luis.machado at arm dot com @ 2022-09-09  8:56 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=28465

Luis Machado <luis.machado at arm dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |WORKSFORME

--- Comment #5 from Luis Machado <luis.machado at arm dot com> ---
Please reopen if you still see it.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-09-09  8:56 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-17 18:37 [Bug c++/28465] New: Problems wit long double data in gdb ARM 64 aarch64 jacob at jacob dot remcomp.fr
2021-10-22 15:15 ` [Bug c++/28465] " tromey at sourceware dot org
2021-10-28 12:01 ` jacob at jacob dot remcomp.fr
2021-10-28 18:56 ` simon.marchi at polymtl dot ca
2022-09-01 16:22 ` luis.machado at arm dot com
2022-09-09  8:56 ` luis.machado at arm dot com
2022-09-09  8:56 ` luis.machado at arm dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).