Public bug reported:

I believe I'm having the problem described in #1846557 and #1848200.
Those bugs were reported fixed in 8.1.1 but I'm observing them in 9.2 so
I suspect a regression (in fact, if I read the notes correctly, the
earlier reports were from another regression!).

I create a new EC2 server on AWS with Ubuntu Server 20.04 LTS (64-bit
Arm) then perform the following installs (not sure what is needed or if
something is missing):

```
sudo dpkg --add-architecture armhf
sudo apt update
sudo apt upgrade -y
sudo apt install -y build-essential vim binutils-arm-linux-gnueabi \
  gdb libc6:armhf libstdc++6:armhf
```

Then I create hello.s:

```
        .text
        .global _start
_start:
        MOV     R7, #4
        MOV     R0, #1
        LDR     R1, =hello
        LDR     R2, =hello_size
        SWI     0
        MOV     R7, #1
        SWI     0

        .data
hello:  .asciz  "Hello world!\n"
        .equ    hello_size, (.-hello)
```

Then I assemble, link, and run, all with success. Finally, I try to
debug:

```
$ arm-linux-gnueabi-as -ggdb -mcpu=cortex-a57 -o out.o $@
$ arm-linux-gnueabi-ld out.o -dynamic-linker=/usr/lib/ld-linux-armhf.so.3 -o out
$ rm out.o
$ ./out
Hello world!
$ gdb out
GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2
...
Reading symbols from out...
(gdb) b _start
Breakpoint 1 at 0x10074: file hello.s, line 4.
(gdb) run
Starting program: /home/ubuntu/280/out 
```

At this point everything hangs until I press ^C:

```
^C
Program received signal SIGINT, Interrupt.
0x0000aaaaba072284 in ?? ()
(gdb) bt
#0  0x0000aaaaba072284 in ?? ()
#1  0x0000000000007232 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) l
1               .text
2               .global _start
3       _start:
4               MOV     R7, #4
5               MOV     R0, #1
6               LDR     R1, =hello
7               LDR     R2, =hello_size
8               SWI     0
9               MOV     R7, #1
10              SWI     0
(gdb) q
A debugging session is active.

        Inferior 1 [process 29234] will be killed.

Quit anyway? (y or n) y
$
```

It appears that gdb generally works and recognizes the executable, but
breakpoints don't work. I'm new at Arm and don't have a lot of
experience with assembly (at least not since the early 1970s), so it
could easily be my problem but it seems suspiciously like an earlier
problem and I think what I've done should work.

** Affects: gdb (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to gdb in Ubuntu.
https://bugs.launchpad.net/bugs/1901966

Title:
  Unable to stop at breakpoint in 32-bit executable

Status in gdb package in Ubuntu:
  New

Bug description:
  I believe I'm having the problem described in #1846557 and #1848200.
  Those bugs were reported fixed in 8.1.1 but I'm observing them in 9.2
  so I suspect a regression (in fact, if I read the notes correctly, the
  earlier reports were from another regression!).

  I create a new EC2 server on AWS with Ubuntu Server 20.04 LTS (64-bit
  Arm) then perform the following installs (not sure what is needed or
  if something is missing):

  ```
  sudo dpkg --add-architecture armhf
  sudo apt update
  sudo apt upgrade -y
  sudo apt install -y build-essential vim binutils-arm-linux-gnueabi \
    gdb libc6:armhf libstdc++6:armhf
  ```

  Then I create hello.s:

  ```
          .text
          .global _start
  _start:
          MOV     R7, #4
          MOV     R0, #1
          LDR     R1, =hello
          LDR     R2, =hello_size
          SWI     0
          MOV     R7, #1
          SWI     0

          .data
  hello:  .asciz  "Hello world!\n"
          .equ    hello_size, (.-hello)
  ```

  Then I assemble, link, and run, all with success. Finally, I try to
  debug:

  ```
  $ arm-linux-gnueabi-as -ggdb -mcpu=cortex-a57 -o out.o $@
  $ arm-linux-gnueabi-ld out.o -dynamic-linker=/usr/lib/ld-linux-armhf.so.3 -o 
out
  $ rm out.o
  $ ./out
  Hello world!
  $ gdb out
  GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2
  ...
  Reading symbols from out...
  (gdb) b _start
  Breakpoint 1 at 0x10074: file hello.s, line 4.
  (gdb) run
  Starting program: /home/ubuntu/280/out 
  ```

  At this point everything hangs until I press ^C:

  ```
  ^C
  Program received signal SIGINT, Interrupt.
  0x0000aaaaba072284 in ?? ()
  (gdb) bt
  #0  0x0000aaaaba072284 in ?? ()
  #1  0x0000000000007232 in ?? ()
  Backtrace stopped: previous frame identical to this frame (corrupt stack?)
  (gdb) l
  1             .text
  2             .global _start
  3     _start:
  4             MOV     R7, #4
  5             MOV     R0, #1
  6             LDR     R1, =hello
  7             LDR     R2, =hello_size
  8             SWI     0
  9             MOV     R7, #1
  10            SWI     0
  (gdb) q
  A debugging session is active.

          Inferior 1 [process 29234] will be killed.

  Quit anyway? (y or n) y
  $
  ```

  It appears that gdb generally works and recognizes the executable, but
  breakpoints don't work. I'm new at Arm and don't have a lot of
  experience with assembly (at least not since the early 1970s), so it
  could easily be my problem but it seems suspiciously like an earlier
  problem and I think what I've done should work.

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to