重新设置断点时出现GDB错误(无法访问内存)

gdb error in re-settings breakpoint (cannot access memory)

本文关键字:错误 GDB 内存 访问 新设置 设置 断点      更新时间:2023-10-16

我试图让gdb在pcbsd10 (freebsd10)中设置一个断点。

我已经用调试符号编译了我的代码,下面是gdb 的输出
GNU gdb (GDB) 7.7
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 "x86_64-unknown-freebsd10.0".
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 tor...done.
(gdb) break config.c:3626
Breakpoint 1 at 0xfde72: file src/or/config.c, line 3626.
(gdb) run
Starting program: /usr/home/jon/swdev/apps/tor/src/or/tor -f /home/jon/torrc
Error in re-setting breakpoint 1: Cannot access memory at address 0xfdb90
Error in re-setting breakpoint 1: Cannot access memory at address 0xfdb90
...

并且我的代码继续运行而不会在断点处停止。

这是怎么回事?如何更深入地了解gdb失败的原因?

您可能正在查看这个GDB错误。

虽然看起来GDB 7.7应该已经修复了,但您可能想要尝试7.7.1。

或者,将二进制文件构建为非pie二进制(从Makefile中删除-fPIE)。