This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb and qemu-system-aarch64 setup - breakpoint not reached


Dear All,

This is my first post to gdb mailing list. If this is off topic,
kindly excuse me and direct me to the right mailing list.

I am using qemu-system emulator (qemu-system-aarch64) and gdb
(aarch64-linux-gnu-gdb) to debug a c program, both running on the same
system, i686-pc-linux-gnu on Ubuntu 12.04 LTS. However, with the gdb,
if I set a breakpoint and issue 'continue' command, it shows
continuing....and never reaches the breakpoint set.

I am requesting help towards understanding the problem and resolving
it. Thanks in advance.

The steps I followed to set up debugging aarch64 program in qemu-system are:

Terminal 1
==========
$ cd /home/user1/qemu-aarch64/qemu.git

/home/user1/qemu-aarch64/qemu.git$
./aarch64-softmmu/qemu-system-aarch64 -machine virt -cpu cortex-a57
-machine type=virt -nographic -smp 1 -m 2047 -kernel
../linux.git/arch/arm64/boot/Image -s -S

Now, the execution freezes and I presume qemu along with gdbserver is
listening on port 1234

Terminal 2
==========

$ export PATH=/home/user1/aarch64-crossbuild-gcc4.9.1/install/bin:$PATH

$ aarch64-linux-gnu-gcc adds2.c  -g --save-temps -o adds2-output

The source file adds2.c (available at
https://github.com/gcc-mirror/gcc/blob/master/gcc/testsuite/gcc.target/aarch64/adds2.c)

code snippet of adds2.c
-----------------------------------
 85
 86 int main ()
 87 {
 88   int x;
 89   s64 y;
 90
 91   x = adds_si_test1 (29, 4, 5);
 92   if (x != 42)
 93     abort ();
 94
 95   x = adds_si_test1 (5, 2, 20);

---------------------------------------

#Invoking cross gdb

$ aarch64-linux-gnu-gdb
... some intro and copyright messages .....

This GDB was configured as "--host=i686-pc-linux-gnu --target=aarch64-linux-gnu"
......

(gdb) set sysroot /home/user1/aarch64-crossbuild-gcc4.9.1/sysroot

(gdb) set solib-absolute-prefix /home/user1/aarch64-crossbuild-gcc4.9.1/sysroot

(gdb) file ./adds2-output
Reading symbols from ./adds2-output...done.

(gdb) target remote localhost:1234
Remote debugging using localhost:1234
Reading symbols from
/home/user1/aarch64-crossbuild-gcc4.9.1/sysroot/lib/ld-linux-aarch64.so.1...done.
Loaded symbols for
/home/user1/aarch64-crossbuild-gcc4.9.1/sysroot/lib/ld-linux-aarch64.so.1
0x0000000040000000 in _start ()
   from /home/user1/aarch64-crossbuild-gcc4.9.1/sysroot/lib/ld-linux-aarch64.so.1

(gdb) b adds2.c:92
Breakpoint 1 at 0x400700: file adds2.c, line 91.

(gdb) info registers
x0             0x0    0
x1             0x0    0
........x2..x29...are set to 0
x30            0x0    0
sp             0x0    0x0
pc             0x40000000    0x40000000 <_start>
cpsr           0x400003c5    1073742789
fpsr           0x0    0
fpcr           0x0    0

(gdb) c
Continuing.

After waiting for ~approx 20 mins, I pressed <ctrl+c>
^C
Program received signal SIGINT, Interrupt.
0xffffffc000092a88 in ?? ()

In case, if more info is needed, I will be happy to provide it.


Thanks & Best Regards,
Raghunath Lolur.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]