破案,为啥没生成CoreDump

[复制链接]
查看188 | 回复17 | 2024-7-31 09:30:57 | 显示全部楼层 |阅读模式

1. 缘起

偶然一次听泽哥说对于出现crash的这种问题,bl616/618的芯片我们可以配置让他生成core dump文件。这样我们使用gdb 调试core dump文件就可以找到crash的原因了。

这个过程听起来和内核调试一毛一样。单片机强大到这样吗?带着这样的疑问,问了泽哥,泽哥说只要makefile中配置上就可以通过串口打印出来core dump。就像下面这样:

image.png

2. 尝试

带着好奇,我打开aithinker_Ai-M6X_SDK\examples\helloworld,刻意的制造了一个crash。编译烧录后发现并没有core dump的生成。

image.png

泽哥又说需要在使用FreeRTOS的时候, 才有用。遂简单的将代码放在了task中。

#include "bflb_mtimer.h"
#include "board.h"
#include <FreeRTOS.h>
#include "task.h"

#define DBG_TAG "MAIN"
#include "log.h"

#define STACK_SIZE (1536)
#define TASK_PRIORITY (16)

static TaskHandle_t crash_task_hd;

void crash_task(void *params)
{
    char* pBuffer = 0x80000000;
    uint32_t i = 0;
    while(1)
    {
        pBuffer[i] = i++;
        printf("%d\r\n", pBuffer[i]);
        bflb_mtimer_delay_ms(500);
    }
}

int main(void)
{
    board_init();

    xTaskCreate(crash_task, "crash_task",  STACK_SIZE, NULL, TASK_PRIORITY, &crash_task_hd);
    vTaskStartScheduler();
    while (1) {
    }
}

再次编译烧录,还是没有core dump生成。

3. 溯源

上班的路上我就在想,这些配置无非都是作用到gcc 编译参数上的,我追寻下这个core_dump的配置参数不就知道原因了吗?

当我打开aithinker_Ai-M6X_SDK,在里面搜了下关于coredump的参数解析的,竟然没有找到!

image.png

这就能解释了,这个配置项人家压根都没有关注,咱们在上层一通配置肯定啥也不是啊。但是泽哥说这个能用,难道是我的SDK太老了?但是看了下安信可官方github上也没有更新sdk呀!

那我就转向了博流的SDK。打开就直接找到了相关内容了:

image.png

至此,破案了。想要使用core_dump, 那就用bl_sdk,或者把bl_sdk中的core_dump引用过来。

选择去发光,而不是被照亮
回复

使用道具 举报

爱笑 | 2024-7-31 09:34:29 | 显示全部楼层
瞧你越来越聪明了!
用心做好保姆工作
回复 支持 反对

使用道具 举报

WT_0213 | 2024-7-31 09:35:33 | 显示全部楼层
回复

使用道具 举报

bzhou830 | 2024-7-31 09:55:24 | 显示全部楼层
爱笑 发表于 2024-7-31 09:34
瞧你越来越聪明了!

选择去发光,而不是被照亮
回复 支持 反对

使用道具 举报

bzhou830 | 2024-7-31 14:24:14 | 显示全部楼层

image.png

选择去发光,而不是被照亮
回复 支持 反对

使用道具 举报

WangChong | 2024-7-31 15:15:44 | 显示全部楼层
这个怎么分析啊
回复 支持 反对

使用道具 举报

bzhou830 | 2024-7-31 15:33:16 | 显示全部楼层

打印出来的base64格式的,我猜他们肯定有解析的工具。
搜了下esp的,和这个很像,用一个espcoredump.py来解析,然后gdb分析。
选择去发光,而不是被照亮
回复 支持 反对

使用道具 举报

WangChong | 2024-7-31 18:43:40 | 显示全部楼层
bzhou830 发表于 2024-7-31 15:33
打印出来的base64格式的,我猜他们肯定有解析的工具。
搜了下esp的,和这个很像,用一个espcoredump.py来 ...

好麻烦
回复 支持 反对

使用道具 举报

iiv | 2024-7-31 22:49:34 | 显示全部楼层
这个有啥用,不懂
回复 支持 反对

使用道具 举报

bzhou830 | 2024-8-1 06:38:34 | 显示全部楼层
iiv 发表于 2024-7-31 22:49
这个有啥用,不懂

调试用啊,写的程序挂了,不知道怎么回事,就可以抓一个coredump来放分析。
选择去发光,而不是被照亮
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则