Closed illusionzhy closed 5 years ago
问题已经修复,问题原因为:”estrndup/estrdup函数参数为NULL时,产生的段错误问题;” 需修改molten_set_traceid 代码如下:
/* {{{ molten_set_traceid */
PHP_FUNCTION(molten_set_traceid)
{
char *trace_id = NULL;
size_t trace_id_len, len;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &trace_id, &trace_id_len) == FAILURE) {
return;
}
efree(PTG(pct).pch.trace_id->val);
PTG(pct).pch.trace_id->val = estrndup(trace_id, trace_id_len);
/* RETURN_STRING(PTG(pct).pch.trace_id->val); */
}
/* }}} */
在php方法使用前设置traceid 可自定义参数;示例如下:
[~]# vi test_get.php
<?php
molten_set_traceid("8a1224f28a84ced7");
$redis = new Redis();
$redis->connect('192.168.10.43', 10003);
$redis->select(2);
$redis->set( "testKey" , "Hello Redis");
# echo $redis->get("testKey");
echo molten_get_traceid();
# $trace_id="22224f28a84ced7";
# molten_set_traceid("11224f28a84ced7");
# echo molten_get_traceid();
?>
关于molten_set_traceid() 问题,函数如何定义使用?执行提示错误,能否帮忙答疑下;