拦截应用程序的调用堆栈


Intercepting an application's call stack

我正在尝试探索监控运行中的应用程序的选项,以确定和预测它们需要的资源,用于研究目的。我对PHP很熟悉,所以我想我应该从尝试监视一个正在运行的PHP应用程序开始。一些搜索显示New Relic是通过PHP扩展/模块来实现的。

我开始阅读PHP扩展,但我找不到任何代码样本或指令拦截调用堆栈像New Relic是怎么做的。我想编写一些原型代码,以机器可读的格式记录调用堆栈。谁能给我指个正确的方向?

以应用程序通用的方式完成这一点很重要,这就是为什么我在看一个模块

纯PHP显然不能查看调用堆栈,因为你不能直接访问内存,这部分必须用C/c++完成,如果你仍然坚持使用PHP,那么你需要把这段代码变成一个库或PHP扩展,但听起来好像你已经有一个这样做了。