GDB will set bp at a function for RISC-V when step over this function call
Ge, Lei
Lei.Ge@windriver.com
Fri Sep 17 07:57:23 GMT 2021
Hi all,
I have a question about GDB for RISC-V. When step over a function call, GDB will set a bp at this function only for RISC-V. Do you think it is a bug? Thanks.
I use GDB 10.2. Below is test code. Line 9 is a function call of test0. When program stops at main.c:9, then next. From RSP log, we can see that gdb will set bp at the addr of test0 for RISC-V. For other arch, it will not.
1
2 int test0()
3 {
4 return 0;
5 }
6
7 int main (int argc, char * argv[])
8 {
9 test0();
10 return 0;
11 }
(gdb) disassemble test0
Dump of assembler code for function test0:
Sending packet: $m2aaaaaa5c0,40#3d...Packet received: 83b7c7a791c7172500000335a5a38297eff0bff885472300f400a26002644101828069bf411122e4000881473e85226441018280011106ec22e80010aa872330
0x0000002aaaaaa5e4 <+0>: addi sp,sp,-16
0x0000002aaaaaa5e6 <+2>: sd s0,8(sp)
0x0000002aaaaaa5e8 <+4>: addi s0,sp,16
0x0000002aaaaaa5ea <+6>: li a5,0
0x0000002aaaaaa5ec <+8>: mv a0,a5
0x0000002aaaaaa5ee <+10>: ld s0,8(sp)
0x0000002aaaaaa5f0 <+12>: addi sp,sp,16
0x0000002aaaaaa5f2 <+14>: ret
(gdb) disassemble main
Dump of assembler code for function main:
0x0000002aaaaaa5f4 <+0>: addi sp,sp,-32
0x0000002aaaaaa5f6 <+2>: sd ra,24(sp)
0x0000002aaaaaa5f8 <+4>: sd s0,16(sp)
0x0000002aaaaaa5fa <+6>: addi s0,sp,32
0x0000002aaaaaa5fc <+8>: mv a5,a0
Sending packet: $m2aaaaaa600,40#0b...Packet received: b4fe2326f4feeff0fffd81473e85e260426405618280397122f84af0171400001304447f171900001309497f3309894006fc26f44eec52e856e413593940630f
0x0000002aaaaaa5fe <+10>: sd a1,-32(s0)
0x0000002aaaaaa602 <+14>: sw a5,-20(s0)
0x0000002aaaaaa606 <+18>: jal ra,0x2aaaaaa5e4 <test0>
=> 0x0000002aaaaaa60a <+22>: li a5,0
0x0000002aaaaaa60c <+24>: mv a0,a5
0x0000002aaaaaa60e <+26>: ld ra,24(sp)
0x0000002aaaaaa610 <+28>: ld s0,16(sp)
0x0000002aaaaaa612 <+30>: addi sp,sp,32
0x0000002aaaaaa614 <+32>: ret
(gdb) n
Sending packet: $m3ff7fed012,2#c3...Packet received: 8280
Sending packet: $X3ff7fed012,2:\002\220#7a...Packet received: OK
Sending packet: $m2aaaaaa606,2#df...Packet received: eff0
Sending packet: $m2aaaaaa608,2#e1...Packet received: fffd
Sending packet: $m2aaaaaa606,2#df...Packet received: eff0
Sending packet: $m2aaaaaa608,2#e1...Packet received: fffd
Sending packet: $m2aaaaaa5c0,40#3d...Packet received: 83b7c7a791c7172500000335a5a38297eff0bff885472300f400a26002644101828069bf411122e4000881473e85226441018280011106ec22e80010aa872330
Sending packet: $m2aaaaaa5e4,2#11...Packet received: 4111
Sending packet: $m2aaaaaa5e4,2#11...Packet received: 4111
Sending packet: $X2aaaaaa5e4,2:\002\220#c8...Packet received: OK
Sending packet: $vCont;c:p206.-1#76...Packet received: T05swbreak:;02:60fbffff3f000000;20:e4a5aaaa2a000000;thread:p206.206;core:0;
Sending packet: $X2aaaaaa5e4,2:A\021#88...Packet received: OK
Sending packet: $m2aaaaaa5c0,40#3d...Packet received: 83b7c7a791c7172500000335a5a38297eff0bff885472300f400a26002644101828069bf411122e4000881473e85226441018280011106ec22e80010aa872330
Sending packet: $m2aaaaaa5e4,2#11...Packet received: 4111
Sending packet: $m2aaaaaa5e4,4#13...Packet received: 411122e4
Sending packet: $m2aaaaaa5e0,4#0f...Packet received: 828069bf
Sending packet: $g#67...Packet received: 00000000000000000aa6aaaa2a00000060fbffff3f00000000c8aaaa2a000000f0c2fdf73f0000001072edf73f000000863aeff73f000000f0c4aaaa2a00000080fbffff3f00000000000000000000000100000000000000f8fcffff3f00000008fdffff3f0000000000000000000000a8fbffff3f0000000100000000000000a828fdf73f0000002f7c676a636312007048baaa2a00000000000000000000008067baaa2a000000b0d2fff73f0000007048baaa2a000000000000000000000000000000000000000865b9aa2a00000068abb7aa2a0000006300000000000000863a0200000000001c66fff73f00000003000000000000004000000000000000[552 bytes omitted]
Sending packet: $m2aaaaaa60a,4#0c...Packet received: 81473e85
Sending packet: $m2aaaaaa606,4#e1...Packet received: eff0fffd
Sending packet: $m3ffffffb40,40#5a...Packet received: 0100000000000000b0d2fff73f0000008067baaa2a000000c067baaa2a000000f8fcffff3f000000000000000100000016a6aaaa2a0000000c3beff73f000000
Sending packet: $m2aaaaaa60a,2#0a...Packet received: 8147
Sending packet: $m2aaaaaa60a,2#0a...Packet received: 8147
Sending packet: $X2aaaaaa60a,2:\002\220#c1...Packet received: OK
Sending packet: $vCont;c:p206.-1#76...Packet received: T05swbreak:;02:60fbffff3f000000;20:0aa6aaaa2a000000;thread:p206.206;core:0;
Sending packet: $m2aaaaaa60a,4#0c...Packet received: 02903e85
Sending packet: $m2aaaaaa606,4#e1...Packet received: eff0fffd
Sending packet: $g#67...Packet received: 00000000000000000aa6aaaa2a00000060fbffff3f00000000c8aaaa2a000000f0c2fdf73f0000001072edf73f000000863aeff73f000000f0c4aaaa2a00000080fbffff3f00000000000000000000000000000000000000f8fcffff3f00000008fdffff3f0000000000000000000000a8fbffff3f0000000000000000000000a828fdf73f0000002f7c676a636312007048baaa2a00000000000000000000008067baaa2a000000b0d2fff73f0000007048baaa2a000000000000000000000000000000000000000865b9aa2a00000068abb7aa2a0000006300000000000000863a0200000000001c66fff73f00000003000000000000004000000000000000[552 bytes omitted]
Sending packet: $m3ffffffb40,40#5a...Packet received: 0100000000000000b0d2fff73f0000008067baaa2a00000080fbffff3f000000f8fcffff3f000000000000000100000016a6aaaa2a0000000c3beff73f000000
Sending packet: $X2aaaaaa60a,2:\201G#f7...Packet received: OK
Sending packet: $qXfer:threads:read::0,1000#92...Packet received: l<threads>\n<thread id="p206.206" core="0" name="test"/>\n</threads>\n
Sending packet: $X3ff7fed012,2:\202\200#ea...Packet received: OK
Sending packet: $m2aaaaaa60a,4#0c...Packet received: 81473e85
Sending packet: $m2aaaaaa606,4#e1...Packet received: eff0fffd
10 return 0;
(gdb)
Thanks,
Lei
More information about the Gdb
mailing list