Coroutine::getBackTrace
获取协程函数调用栈。
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 函数返回值相同
使用实例
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);}});
