重新设置断点中的gdb错误(无法访问内存)

时间:2014-05-08 22:16:59

标签: c++ c debugging gdb bsd

我想让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失败的原因?

1 个答案:

答案 0 :(得分:3)

您可能正在查看此GDB bug

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

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