GDB remote debugging makes a register write, which will cause access a section of address starting from 0
"Zhen Liang" <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <a56cc693a28341ac226c3ef2697475dffaedf494.20e0ed62.4e92.4ef8.aa99.74221d055538@feishu.cn> |
Hello, I've been having a really strange issue lately. I use GDB+OpenCD for remote debugging of a board, which runs Linux system. When GDB makes a register write, which will cause access a section of address starting from 0. I'm just confused at this point, and if anyone can help me, I'd be really grateful. GNU gdb (GDB) 16.2 Copyright (C) 2024 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-pc-linux-gnu --target=riscv64-unknown-elf". Type "show configuration" for configuration details. For bug reporting instructions, please see: <https://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". (gdb) target remote 10.0.90.107:1024<http://10.0.90.107:1024> Remote debugging using 10.0.90.107:1024<http://10.0.90.107:1024> warning: No executable has been specified and target does not support determining executable automatically. Try using the "file" command. 0xffffffff800039fa in ?? () (gdb) i r s0 s0 0xffffffff81e03db0 0xffffffff81e03db0 (gdb) p/x $s0=0 $1 = 0x0 (gdb) set debug remote 1 (gdb) set $s0=0xffffffff81e03db0 [remote] Sending packet: $P8=b03de081ffffffff#1c [remote] Packet received: OK [remote] Sending packet: $g#67 [remote] Packet received: 000000000000000050cefd80ffffffffa03de081ffffffff984f0f82ffffffff4011e181ffffffff400000000000000001000000000000000109000000000000b03de081ffffffff00000000000000007c26ab120000000038b42381ffffffff010000000000000000000000000000000040c6ecdcffffff38f4e96ddcffffff0040c6ecdcffffff0040c6ecdcffffff38b20f82ffffffff48b40f82ffffffff0000000000000000000000000000000018b00f82ffffffff08012081ffffffff08012081ffffffff000100000000000000000000000000000000000000000000010000000000000060b40f82ffffffffdab283fa000000003b05000000000000 [16 bytes omitted] [remote] Sending packet: $m0,2#fb [remote] Packet received: 0000 [remote] Sending packet: $m2,2#fd [remote] Packet received: 0000 [remote] Sending packet: $m4,2#ff [remote] Packet received: 0000 [remote] Sending packet: $m6,2#01 [remote] Packet received: 0000 [remote] Sending packet: $m8,2#03 [remote] Packet received: 0000 [remote] Sending packet: $ma,2#2c [remote] Packet received: 0000 [remote] Sending packet: $mc,2#2e [remote] Packet received: 0000 [remote] Sending packet: $me,2#30 [remote] Packet received: 0000 [remote] Sending packet: $m10,2#2c [remote] Packet received: 0000 [remote] Sending packet: $m12,2#2e [remote] Packet received: 0000 [remote] Sending packet: $m14,2#30 [remote] Packet received: 0000 [remote] Sending packet: $m16,2#32 [remote] Packet received: 0000 [remote] Sending packet: $m18,2#34 [remote] Packet received: 0000 [remote] Sending packet: $m1a,2#5d [remote] Packet received: 0000 [remote] Sending packet: $m1c,2#5f [remote] Packet received: 0000 [remote] Sending packet: $m1e,2#61 [remote] Packet received: 0000 [remote] Sending packet: $m20,2#2d [remote] Packet received: 0000 [remote] Sending packet: $m22,2#2f [remote] Packet received: 0000 [remote] Sending packet: $m24,2#31 [remote] Packet received: 0000 [remote] Sending packet: $m26,2#33 [remote] Packet received: 0000 [remote] Sending packet: $m28,2#35 [remote] Packet received: 0000 [remote] Sending packet: $m2a,2#5e [remote] Packet received: 0000 [remote] Sending packet: $m2c,2#60 [remote] Packet received: 0000 [remote] Sending packet: $m2e,2#62 [remote] Packet received: 0000 [remote] Sending packet: $m30,2#2e [remote] Packet received: 0000 [remote] Sending packet: $m32,2#30 [remote] Packet received: 0000 [remote] Sending packet: $m34,2#32 [remote] Packet received: 0000 [remote] Sending packet: $m36,2#34 [remote] Packet received: 0000 [remote] Sending packet: $m38,2#36 [remote] Packet received: 0000 [remote] Sending packet: $m3a,2#5f [remote] Packet received: 0000 [remote] Sending packet: $m3c,2#61 [remote] Packet received: 0000 [remote] Sending packet: $m3e,2#63 [remote] Packet received: 0000 [remote] Sending packet: $m40,2#2f [remote] Packet received: 0000 [remote] Sending packet: $m42,2#31 [remote] Packet received: 0000 [remote] Sending packet: $m44,2#33 [remote] Packet received: 0000 [remote] Sending packet: $m46,2#35 [remote] Packet received: 0000 [remote] Sending packet: $m48,2#37 [remote] Packet received: 0000 [remote] Sending packet: $m4a,2#60 [remote] Packet received: 0000 [remote] Sending packet: $m4c,2#62 [remote] Packet received: 0000 [remote] Sending packet: $m4e,2#64 [remote] Packet received: 0000 [remote] Sending packet: $m50,2#30 [remote] Packet received: 0000 [remote] Sending packet: $m52,2#32 [remote] Packet received: 0000 [remote] Sending packet: $m54,2#34 [remote] Packet received: 0000 [remote] Sending packet: $m56,2#36 [remote] Packet received: 0000 [remote] Sending packet: $m58,2#38 [remote] Packet received: 0000 [remote] Sending packet: $m5a,2#61 [remote] Packet received: 0000 [remote] Sending packet: $m5c,2#63 [remote] Packet received: 0000 [remote] Sending packet: $m5e,2#65 [remote] Packet received: 0000 [remote] Sending packet: $m60,2#31 [remote] Packet received: 0000 [remote] Sending packet: $m62,2#33 [remote] Packet received: 0000 [remote] Sending packet: $mffffffff800039fa,2#f6 [remote] Packet received: 2264 [remote] Sending packet: $mffffffff800039fc,2#f8 [remote] Packet received: 4101 [remote] Sending packet: $mffffffff800039fe,2#fa [remote] Packet received: 8280 This is actually makes a register write, but it generated an extra 0-100 physical memory write. So that OpenoOCD experienced many address translation failed because the address is not a virtual address. Does anyone know why this is? Did I accidentally discover a gdb bug? Thanks, -- Zhen Liang This message and any attachment are confidential and may be privileged or otherwise protected from disclosure. If you are not an intended recipient of this message, please delete it and any attachment from your system and notify the sender immediately by reply e-mail. Unintended recipients should not use, copy, disclose or take any action based on this message or any information contained in this message. Emails cannot be guaranteed to be secure or error free as they can be intercepted, amended, lost or destroyed, and you should take full responsibility for security checking. 本邮件及其任何附件具有保密性质,并可能受其他保护或不允许被披露给第三方。如阁下误收到本邮件,敬请立即以回复电子邮件的方式通知发件人,并将本邮件及其任何附件从阁下系统中予以删除。如阁下并非本邮件写明之收件人,敬请切勿使用、复制、披露本邮件或其任何内容,亦请切勿依本邮件或其任何内容而采取任何行动。电子邮件无法保证是一种安全和不会出现任何差错的通信方式,可能会被拦截、修改、丢失或损坏,收件人需自行负责做好安全检查。