标签
Nia Deckers 在 RustWeek 上介绍了一种利用 ptrace 和 SIGSEGV 为 Miri 实现 FFI 执行的新方案,通过 fork 进程、设置内存保护、反汇编指令来确定内存访问细节,并结合互斥锁解决竞态问题。该方法能以“每秒8000个段错误”的代价让 Miri 追踪任意外部函数调用,并意外提供了调试器功能。
作者调试了内核安装过程中遇到的段错误,将其追溯到 dracut 调用的 'hardlink' 命令,并使用 gdb 调查崩溃。