Re: gdb 8.3.1 truncated register in remote g packet

Reinoud Koornstra
2019-11-04T17:53:01Z

>
>
> You might have gotten lucky. Or GDB wasn't too restrictive on the checks.
>

True

>
> >
> > Just to confirm, does your arm target have floating point registers?
> >
> > Good point, I did assume it has, because in some cases armeabihf was
> > used to compile, but not in all cases, I'll check whether it is,
> > otherwise I'd have to recompile gdb without hf.
> > I'll get the info and let you know, thanks for helping out!
>

Yes, the arm cpu used has floating point registers

Well, it seems GDB assumes floating point registers are there by
> default, so there wouldn't be a need to build GDB specifically for that.
>

I did compile a gdb 7.7.1, i compiled earlier 7.0 (failed to compile
without removing Werror in bfd directory Makefile...), then I tried 7.4.1,
but both of these versions didn't support remote baud rate. However 7.7.1
worked nicely, well way better: (I did go echo g > /proc/sysrq-trigger to
get it waiting for gdb).
GNU gdb (GDB) 7.7.1
Copyright (C) 2014 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 "--host=x86_64-unknown-linux-gnu
--target=arm-linux-gnueabihf".
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 ./vmlinux...done.
(gdb) set serial baud 115200
(gdb) set debug remote 1
(gdb) target remote /dev/ttyUSB4
Remote debugging using /dev/ttyUSB4
Sending packet: $qSupported:multiprocess+;qRelocInsn+#2a...Ack
Packet received:
Packet qSupported (supported-packets) is NOT supported
Sending packet: $Hg0#df...Ack
Packet received: OK
Sending packet: $qTStatus#49...Ack
Packet received:
Packet qTStatus (trace-status) is NOT supported
Sending packet: $?#3f...Ack
Packet received: S05
Sending packet: $Hc-1#09...Ack
Packet received: OK
Sending packet: $qC#b4...Ack
Packet received: QC1fbb
Sending packet: $qAttached#8f...Ack
Packet received:
Packet qAttached (query-attached) is NOT supported
Sending packet: $qOffsets#4b...Ack
Packet received:
Sending packet: $g#67...Ack
Packet received:
0000000001000000b0829e80ac829e8054829880b4a698806700000013000060060000000000000000000000cc5e0bbfd05e0bbfc05e0bbf10200a80581f0a8000000000000000000000000000000000000000000000000000000000000000000000000000000000
Sending packet: $m800a1f58,4#ca...Ack
Packet received: ffdeffe7
Sending packet: $m800a1f54,4#c6...Ack
Packet received: 4ef07ff5
Sending packet: $m800a1f58,4#ca...Ack
Packet received: ffdeffe7
Sending packet: $m800a1f54,4#c6...Ack
Packet received: 4ef07ff5
Sending packet: $m800a1f58,4#ca...Ack
Packet received: ffdeffe7
Sending packet: $m800a1f54,4#c6...Ack
Packet received: 4ef07ff5
Sending packet: $m800a1f58,4#ca...Ack
Packet received: ffdeffe7
Sending packet: $m800a1f54,4#c6...Ack
Packet received: 4ef07ff5
Sending packet: $m800a1f58,4#ca...Ack
Packet received: ffdeffe7
Sending packet: $m800a1f58,4#ca...Ack
Packet received: ffdeffe7
Sending packet: $m800a1f58,4#ca...Ack
Packet received: ffdeffe7
0x800a1f58 in arch_kgdb_breakpoint () at kernel/debug/debug_core.c:1049
1049 kernel/debug/debug_core.c: No such file or directory.
Sending packet: $qSymbol::#5b...Ack
Packet received:
Packet qSymbol (symbol-lookup) is NOT supported
(gdb) set debug remote 0
(gdb) bt full
#0 0x800a1f58 in arch_kgdb_breakpoint () at kernel/debug/debug_core.c:1049
No locals.
#1 kgdb_breakpoint () at kernel/debug/debug_core.c:1050
No locals.
#2 0x800a2010 in sysrq_handle_dbg (key=0) at kernel/debug/debug_core.c:810
No locals.
#3 0x80367308 in __handle_sysrq (key=103, check_mask=false) at
drivers/tty/sysrq.c:535
op_p = 0x8098a6b4 <sysrq_dbg_op>
orig_log_level = 6
i = -2137479500
flags = 1610612755
#4 0x8036745c in write_sysrq_trigger (file=0x0 <__vectors_start>, buf=0x1
<__vectors_start> <error: Cannot access memory at address 0x1>, count=2,
ppos=0x809e82ac <kgdb_use_con>) at drivers/tty/sysrq.c:1083
No locals.
#5 0x80177e18 in proc_reg_write (file=0x0 <__vectors_start>, buf=0x1
<__vectors_start> <error: Cannot access memory at address 0x1>,
count=2157871792, ppos=0xbf0b5f78) at fs/proc/inode.c:224
write = 0xbf0b5ed0
rv = 0
#6 0x8011fba4 in vfs_write (file=0xbe37bcc0, buf=0xaa408
"g\nyS0,115200\n", '\337' <repeats 186 times>, <incomplete sequence
\337>..., count=2157871792, pos=0xbf0b5f78) at fs/read_write.c:485
No locals.
#7 0x801201d4 in SYSC_write (count=<optimized out>, buf=<optimized out>,
fd=<optimized out>) at fs/read_write.c:534
pos = 0
#8 SyS_write (fd=0, buf=697352, count=2) at fs/read_write.c:526
ret = 0
#9 0x8000f760 in ?? ()
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)