.coredumpctl pid 奇怪的对齐

.coredumpctl pid 奇怪的对齐

在我第一次使用 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

如果需要更多信息,请告诉我,我会编辑帖子。在此先感谢所有帮助者。

相关内容