Coroutine::getBackTrace

最后更新于:2022-04-02 06:25:59

# Coroutine::getBackTrace [TOC] 获取协程函数调用栈。 ~~~ function Coroutine::getBackTrace(int $cid=0, int $options=DEBUG_BACKTRACE_PROVIDE_OBJECT, int $limit=0) : array; ~~~ > 需要`4.1.0`或更高版本 ## 参数 * `$cid`协程的`ID`,默认为当前协程 * `$options`设置选项 * `DEBUG_BACKTRACE_PROVIDE_OBJECT`: 是否填充`object`的索引 * `DEBUG_BACKTRACE_IGNORE_ARGS`: 是否忽略`args`的索引,包括所有的`function/method`的参数,能够节省内存开销 * `$limit`限制返回堆栈帧的数量 ## 返回值 * 指定的协程不存在,将返回`false` * 成功返回数组,格式与[debug\_backtrace](http://php.net/manual/zh/function.debug-backtrace.php)函数返回值相同 ## 使用实例 ~~~ function test1() { test2(); } function test2() { while(true) { co::sleep(10); echo __FUNCTION__." \n"; } } $cid = go(function () { test1(); }); go(function () use ($cid) { while(true) { echo "BackTrace[$cid]:\n-----------------------------------------------\n"; //返回数组,需要自行格式化输出 var_dump(co::getBackTrace($cid))."\n"; co::sleep(3); } }); ~~~
';