php - 在 PHP 扩展 C++ 中获取函数返回值
问题描述
我在 C++ 中创建了一个 php 扩展,它跟踪每个请求的调用图(centos7-64 位,PHP5.6)。现在,我想获取每个函数的函数返回值。它可以通过使用 zend_excute_data 结构(original_return_value)来完成。
zend_execute_data *data;
data = EG(current_execute_data);
if(data->original_return_value)
{
zval *rvalue = *(data->original_return_value); // crashing here
switch (Z_TYPE(argument_element))
{
..
..
..
}
}
在这里,在将 original_return_value 分配给 rvalue 时,我的 php 扩展程序崩溃了。这是正确的做法吗?或其他任何东西。
解决方案
最后我得到了它。
zval **return_value_ptr = &EX_TMP_VAR(execute_data, execute_data->opline->result.var)->var.ptr;
return_value_ptr 是当前执行函数的返回值。
推荐阅读
- c# - Select two comparers in two list with same property value
- ssl - Socket.IO: Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource
- bash - 如何确定文件是否在 FreeBSD 上的 bash 脚本中打开
- c# - How to save html input variables after session timeout
- pytorch - Autograd.grad() for Tensor in pytorch
- html - align-items : flex-start 和 Stretch 有什么区别?
- javascript - json调用不同文件后获取对象
- c - 在 Makefile 中使用 patsubst 添加项目的路径
- sql-server - SSIS - SharePoint - 未找到网络路径
- javascript - .value on form group shows numeric values as null or ""