solaris - 如何编写 dtrace 脚本来转储 Solaris 10 上崩溃进程的堆栈?

标签 solaris crash-reports dtrace

我有一个在 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/

相关文章:

c - gcc如何判断默认生成32位还是64位的可执行文件?

linux - Linux 上 Solaris Studio 中的原子操作

macos - 如何在不以 root 身份运行的情况下从一开始就跟踪程序

ios - 应用在启动时崩溃

objective-c - 是否可以在dtrace中获取objc方法的结果?

macos - 解释 dtruss 输出,如 “psynch_cvwait(...) = -1 Err#316”

c# - 检测远程计算机是 Windows 还是 Linux 操作系统

c++ - 构造函数定义和声明不匹配

iOS symbolicate crash log 只符号化几行

windows - 有没有办法将 Windows 崩溃报告重定向到应用程序开发人员?