You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

GDB调试汇编作业时重复出现“Program timed out after 5 seconds”问题排查

解决GDB调试bufbomb时重复运行超时的问题

GDB绝对不是只能运行一次!你遇到的问题是bufbomb程序本身的超时检测机制和GDB调试时的输入交互冲突导致的,和GDB的核心功能无关。下面给你几个实用的解决办法:

问题根源

bufbomb会在等待用户输入测试字符串时设置严格的超时限制(默认5秒)。第一次调试时你在断点处停留,输入时机匹配程序预期;但第二次启动时,可能因为GDB的输入缓冲区残留、终端关联异常等问题,导致程序误判为用户未及时输入,直接触发超时退出。

解决方法

1. 强制绑定终端输入(快速修复)

在GDB中执行以下命令,让调试的程序直接关联当前终端作为输入源,避免输入通道异常:

set inferior-tty /dev/tty

之后再正常启动程序:

run -u 2014-14459

这样程序就能正常等待你手动输入字符串,不会无故触发超时。

2. 提前准备输入文件(推荐方案)

把你要测试的溢出payload写入一个文件,比如payload.txt,然后在GDB中用重定向启动程序,彻底跳过手动输入的等待环节:

run -u 2014-14459 < payload.txt

这个方法特别适合缓冲区溢出调试,你可以反复修改payload文件内容,快速验证调试效果,完全避开超时限制。

3. 清理残留进程

有时候程序异常退出后会留下僵尸进程,干扰后续运行。先退出GDB,在终端执行:

ps aux | grep bufbomb

找到相关进程的ID(pid),然后强制杀掉:

kill -9 <pid>

重新启动GDB后再尝试运行程序,大概率能恢复正常。

4. 修改程序禁用超时(需源码支持)

如果你能拿到bufbomb的源代码,找到超时检测的代码段(比如检查时间差的逻辑),注释掉或者把超时时间改长(比如改成300秒),重新编译后再调试,就能彻底解决超时问题。

你的调试会话记录

(gdb) run -u 2014-14459 //首次运行成功
Starting program: /home/devel/Desktop/lab/seokyoung-kook/buflab-handout/bufbomb -u 2014-14459
Userid: 2014-14459
Cookie: 0x3beba64f
Breakpoint 1, 0x08048db0 in getbuf ()
(gdb) s
Single stepping until exit from function getbuf, which has no line number information.
Program timed out after 5 seconds
Type string:[Inferior 1 (process 2794) exited with code 01]
(gdb) s
The program is not being run.
(gdb) s
The program is not being run.
(gdb) run -u 2014-14459 //第二次尝试
Starting program: /home/devel/Desktop/lab/seokyoung-kook/buflab-handout/bufbomb -u 2014-14459
Userid: 2014-14459
Cookie: 0x3beba64f
Program timed out after 5 seconds //未运行
Type string:[Inferior 1 (process 2797) exited with code 01]
(gdb) run -u 2014-14459 //第三次尝试
Starting program: /home/devel/Desktop/lab/seokyoung-kook/buflab-handout/bufbomb -u 2014-14459
Userid: 2014-14459
Cookie: 0x3beba64f
Program timed out after 5 seconds //未运行
Type string:[Inferior 1 (process 2798) exited with code 01]
(gdb) s
The program is not being run.

内容的提问来源于stack exchange,提问作者Seokyoung Kook

火山引擎 最新活动