我想在linux中查看特定进程的堆栈。它可以是任何过程。 我知道GDB可以提供帮助,但我想你需要源代码来分析输出。
答案 0 :(得分:2)
唯一的方法是使用调试器或调试API(Linux的ptrace
)。
基本上你想做的是:
PTRACE_ATTACH
)PTRACE_GETREGS
)esp
或rsp
)PTRACE_PEEKDATA
或/proc/<pid>/mem
)PTRACT_DETACH
)从那以后,分析几乎取决于你。您可能想要查看我的调试器edb。有关详细信息,您当然应该man ptrace