在我第一次使用 coredumpctl 时,我注意到一个错误反复出现。我创建了一个包含堆栈 BOF 漏洞的小代码片段(编译时没有堆栈保护)。我使用足够长的输入(简单的 AAAAAAA...)执行了该程序,结果正如预期的那样,出现了 SegFault。
当尝试使用 coredumpctl 查找转储时,我注意到列表命令中的 PID 值始终比我匹配时应尝试使用的 PID 值小 3。
如果不清楚的话,我运行了我得到的列表命令:
TIME PID UID GID SIG COREFILE EXE
Tue 2020-03-03 15:29:23 XDD 3681 1000 1000 11 present /path/to/binary/
但是当我尝试读取转储时我得到了:
$ coredumpctl debug _PID=<tab_pressed>
3684
这种情况一次又一次发生,并且调试命令总是以正 3 对齐。
这个错误不会妨碍我的工作,但它仍然是一个奇怪的现象,我想了解更多。如果能对这种情况发生的原因做出一些有趣的解释,我会非常感兴趣。
系统信息:
Ubuntu 19.10(eoan)
Linux 内核——5.3.0-40-通用。
gdb - 版本 8.3
systemd - 版本 242
如果需要更多信息,请告诉我,我会编辑帖子。在此先感谢所有帮助者。