在C ++中jstack等价

时间:2009-04-09 06:07:11

标签: c++ gcc solaris jstack

jstack对我检查实时运行进程的堆栈跟踪非常有帮助。

C ++中是否有任何工具可以执行此任务。我正在使用Solaris / GCC编译器。

实际上GDB / DBX可以做到这一点。但我的过程很少有人暂停。所以,当它挂起时,我想知道哪里出错了。只需在现场跟踪即可。

由于 D. L. Kumar

4 个答案:

答案 0 :(得分:3)

承租人......在solaris上,不能使用gdb ......我觉得你要找的是'pstack' 在我的solaris 8系统上,它位于

/usr/bin/pstack
usage:  pstack [-F] { pid | core } ...

man pstack

显示了一个很好的相关工具列表,您可能会发现它们在诊断中非常有用。

答案 1 :(得分:1)

我相信GDB也有这个功能,请参考相同的

的gdb文档

答案 2 :(得分:1)

考虑到您在Solaris上运行,并且您不想使用GDB,DTrace似乎是显而易见的剩余解决方案。

但是你是否因为错误的原因而解雇GDB?您可以将GDB附加到现有的挂起进程。

答案 3 :(得分:1)

我写了一篇文章,几年前在DDJ中使用Windows和Unix / Linux在C / C ++中转储堆栈。也许它可以帮助你:

请参阅http://www.ddj.com/architect/185300443