我有一个在 Solaris 10 上运行的进程,由于 SIGSEGV 而终止。由于各种无趣的原因,我不可能通过通常的方式获得回溯(gdb、回溯调用、corefile 都已退出)。但我认为 dtrace 可能有用。
如果是这样,我想编写一个 dtrace 脚本,该脚本将在进程被终止时打印进程的线程堆栈。我对 dtrace 不太熟悉,但这对于了解它的人来说似乎一定很容易。我希望能够以监视特定进程的方式运行它。有什么想法吗?
最佳答案
以防万一其他人偶然发现这个问题,我正在使用我拼凑在一起的以下脚本在 OS X 上进行实验,取得了一些进展:
#!/usr/sbin/dtrace -s
proc:::fault
/pid == $1/
{
ustack();
}
当我有了一个完整的解决方案时,我会更新它。
关于solaris - 如何编写 dtrace 脚本来转储 Solaris 10 上崩溃进程的堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17113297/