我想转储正在运行的进程的核心,根据/proc/<pid>/status
,当前正在阻塞磁盘活动。实际上,它正忙于在 GPU 上工作(应该是 4 小时的工作,但现在花费的时间明显更长)。我想知道进程的工作完成了多少,所以最好能够转储进程的内存。但是,据我所知,“阻塞磁盘活动”意味着不可能以任何方式中断进程,并且核心转储进程(例如使用 gdb)需要中断并暂时停止进程以便通过 ptrace 附加,对吗?
我知道我可以/proc/<pid>/{maps,mem}
以 root 身份读取以获取(可能是不一致的)内存状态,但我不知道有什么方法可以获取进程的用户空间 CPU 寄存器值......当进程在内部时它们保持不变内核,对吧?