gdb 8.3.1 truncated register in remote g packet

Luis Machado luis.machado@linaro.org
Tue Nov 5 00:50:00 GMT 2019


Hi Reinoud,

On 11/4/19 2:52 PM, Reinoud Koornstra wrote:
> 
>     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).

This indicates something might have changed that made newer GDB's grumpy 
at your kgdb instance.

Would you mind opening a ticket here (https://sourceware.org/bugzilla/) 
so we can track this properly? I'll do some more investigation.

If you don't have an account i can do it for you, from information we 
exchanged through e-mail.

> 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?)



More information about the Gdb mailing list