首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >gdb在使用监视点时停止(就像ctrl-Z一样)

gdb在使用监视点时停止(就像ctrl-Z一样)
EN

Stack Overflow用户
提问于 2020-11-24 04:02:37
回答 1查看 135关注 0票数 0

我已经使用gdb多年了,但以前从未见过这种行为。

为了调试来自程序中某个地方的双SIGABRTfree(),我在指向缓冲区的指针上设置了一个观察点。现在,当我再次运行程序时,gdb会“停止”,就好像我按了ctrl或它收到了SIGSTOP。

你知道那是怎么回事吗?我该怎么避免?

代码语言:javascript
运行
复制
# gdb --version
GNU gdb (GDB) Red Hat Enterprise Linux 8.2-6.el8
# uname -a
Linux Centos8 4.18.0-147.el8.x86_64 #1 SMP Wed Dec 4 21:51:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

错误:

代码语言:javascript
运行
复制
(gdb) run
free(): invalid pointer

Program received signal SIGABRT, Aborted.
0x00007ffff6ad48df in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff6ad48df in raise () from /lib64/libc.so.6
#1  0x00007ffff6abecf5 in abort () from /lib64/libc.so.6
#2  0x00007ffff6b17c17 in __libc_message () from /lib64/libc.so.6
#3  0x00007ffff6b1e53c in malloc_printerr () from /lib64/libc.so.6
#4  0x00007ffff6b2210e in free_check.part () from /lib64/libc.so.6
#5  0x00007ffff7bbde99 in MyProgram::parseTSPayload (this=0x6165b0) at MyProgram.cpp:284
...
#8  0x0000000000401b4c in main (argc=6, argv=0x7fffffffea28) at MyProgram.cpp:169
(gdb) f 5
#5  0x00007ffff7bbde99 in MyProgram::parseTSPayload (this=0x6165b0) at MyProgram.cpp:284
284                 delete [] mpPESBuf;

设置观察点:

代码语言:javascript
运行
复制
(gdb) watch mpPESBuf
Hardware watchpoint 2: mpPESBuf
(gdb) info watch
Num     Type           Disp Enb Address            What
2       hw watchpoint  keep y                      mpPESBuf

现在,当我再次运行该程序时,gdb会“停止”,就好像我按了ctrl或它收到了SIGSTOP:

代码语言:javascript
运行
复制
(gdb) run  
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: MyProgram

[1]+  Stopped                 gdb MyProgram
# fg
gdb MyProgram
Error in re-setting breakpoint 2: No symbol "mpPESBuf" in current context.
Error in re-setting breakpoint 2: No symbol "mpPESBuf" in current context.
Error in re-setting breakpoint 2: No symbol "mpPESBuf" in current context.
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments

[1]+  Stopped                 gdb MyProgram
# fg
gdb MyProgram
Error in re-setting breakpoint 2: No symbol "mpPESBuf" in current context.

[PID 687305] MyProgram Version 1.1-18
Built 2020.11.24-11:43:08.  Launched 2020-11-24 11:56:17.
free(): invalid pointer

Program received signal SIGABRT, Aborted.
0x00007ffff6ad48df in raise () from /lib64/libc.so.6
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-24 09:42:05

这是GDB中使用此commit修复的一个bug:

https://sourceware.org/legacy-ml/gdb-patches/2019-05/msg00361.html

此提交在GDB 9中,您正在使用8.2。为了避免这个问题,您需要更新GDB的版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64980070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档