Open ueJone opened 3 years ago
我这边也出现同样的问题, 原因我这边大致找到了,在打印堆栈调用信息的地方,如果使用的是ulog日志模块,那么打印不出来,只需要 print_call_stack 函数中, cmb_println(print_info[PRINT_CALL_STACK_INFO], fw_name, CMB_ELF_FILE_EXTENSION_NAME, cur_depth * (8 + 1), call_stack_info); 中, cmb_println 替换成 rt_kprintf,堆栈调用信息就可以打印出来了。
我这边也出现同样的问题, 原因我这边大致找到了,在打印堆栈调用信息的地方,如果使用的是ulog日志模块,那么打印不出来,只需要 print_call_stack 函数中, cmb_println(print_info[PRINT_CALL_STACK_INFO], fw_name, CMB_ELF_FILE_EXTENSION_NAME, cur_depth * (8 + 1), call_stack_info); 中, cmb_println 替换成 rt_kprintf,堆栈调用信息就可以打印出来了。
有道理,系统崩溃的时候ulog线程不一定能跑,谢谢提醒,我验证一下您的方法。
和bt库似乎没关系,后来增加调试信息发现
print_call_stack()
执行一半mcu就停止运行了,最重要的调用关系没来得及打印,不知道为什么会没执行到最后