Crash when scrolling list_create

Description

I created a file selector, but while it’s scrolling down and I select one, crash.

What MCU/Processor/Board and compiler are you using?

ESP32-WROVER

What LVGL version are you using?

v7.5.0
ESP IDF v5

What do you want to achieve?

What have you tried so far?

Code to reproduce

	DIR* dir = opendir("/S/");
	if (dir == NULL) {
	    return;
	}

    lv_obj_t *file_list = lv_list_create(scrHistory, NULL);
    lv_obj_set_size(file_list, DISP_RES_X, DISP_RES_Y/1.3);
    lv_obj_set_pos(file_list, 0, 0);



	while (true) {
	    struct dirent* de = readdir(dir);
	    if (!de) {
	        break;
	    }
	    if(strstr(de->d_name, "_meres.txt")){
	    	printf("Found file: %s\n", de->d_name);
            lv_obj_t *btn = lv_list_add_btn(file_list, LV_SYMBOL_FILE, de->d_name);
            lv_obj_set_event_cb(btn, event_handler_list);
	    }

	}
	closedir(dir);


    lv_obj_t * labelbtn;
    exitBtn = lv_btn_create(scrHistory, NULL);
    lv_obj_align(exitBtn, NULL, LV_ALIGN_CENTER, +DISP_RES_X/3, +DISP_RES_Y/3);
    lv_obj_set_size(exitBtn, DISP_RES_X/4.3, DISP_RES_Y/7);
    labelbtn = lv_label_create(exitBtn, NULL);
    lv_label_set_text(labelbtn, "Exit");
    lv_obj_set_event_cb( exitBtn , event_handler_exit);
    lv_scr_load(scrHistory);

event handler:

static void event_handler_list(lv_obj_t * obj, lv_event_t event)
{
    if(event == LV_EVENT_CLICKED) {
    	ESP_LOGI("list handler", "%s", lv_list_get_btn_text(obj));
        readFile(lv_list_get_btn_text(obj));
    }
}

crash info:

Guru Meditation Error: Core  1 panic'ed (IntegerDivideByZero). Exception was unhandled.

Core  1 register dump:
PC      : 0x400f781d  PS      : 0x00060030  A0      : 0x800f7a55  A1      : 0x3ffc1dd0  
0x400f781d: draw_series_line at /home/molnarm/esp-workspace/project/components/lv_port_esp32/components/lvgl/lvgl/src/lv_widgets/lv_chart.c:984

A2      : 0x00000000  A3      : 0x00000000  A4      : 0x3ffb466c  A5      : 0x3ffb46d4  
A6      : 0x00000000  A7      : 0x00000000  A8      : 0x00000001  A9      : 0x3ffc1db0  
A10     : 0x3ffb46d4  A11     : 0x00000002  A12     : 0x00000003  A13     : 0x3ffb468c  
A14     : 0x00000003  A15     : 0x00000002  SAR     : 0x00000001  EXCCAUSE: 0x00000006  
EXCVADDR: 0x00000000  LBEG    : 0x400029ac  LEND    : 0x400029cb  LCOUNT  : 0x00000000  


Backtrace: 0x400f781a:0x3ffc1dd0 0x400f7a52:0x3ffc1f50 0x400e4f62:0x3ffc1fd0 0x400e4fc7:0x3ffc2020 0x400e5001:0x3ffc2070 0x400e52f0:0x3ffc2090 0x400e5475:0x3ffc2120 0x400e555c:0x3ffc2150 0x400e55c4:0x3ffc2170 0x400eee91:0x3ffc21a0 0x400eef7c:0x3ffc21c0 0x400d7488:0x3ffc21e0 0x4008a771:0x3ffc2250
0x400f781a: draw_series_line at /home/molnarm/esp-workspace/project/components/lv_port_esp32/components/lvgl/lvgl/src/lv_widgets/lv_chart.c:984

0x400f7a52: lv_chart_design at /home/molnarm/esp-workspace/project/components/lv_port_esp32/components/lvgl/lvgl/src/lv_widgets/lv_chart.c:754 (discriminator 1)

0x400e4f62: lv_refr_obj at /home/molnarm/esp-workspace/project/components/lv_port_esp32/components/lvgl/lvgl/src/lv_core/lv_refr.c:677 (discriminator 1)

0x400e4fc7: lv_refr_obj at /home/molnarm/esp-workspace/project/components/lv_port_esp32/components/lvgl/lvgl/src/lv_core/lv_refr.c:717

0x400e5001: lv_refr_obj_and_children at /home/molnarm/esp-workspace/project/components/lv_port_esp32/components/lvgl/lvgl/src/lv_core/lv_refr.c:619

0x400e52f0: lv_refr_area_part at /home/molnarm/esp-workspace/project/components/lv_port_esp32/components/lvgl/lvgl/src/lv_core/lv_refr.c:550

0x400e5475: lv_refr_area at /home/molnarm/esp-workspace/project/components/lv_port_esp32/components/lvgl/lvgl/src/lv_core/lv_refr.c:460 (discriminator 2)

0x400e555c: lv_refr_areas at /home/molnarm/esp-workspace/project/components/lv_port_esp32/components/lvgl/lvgl/src/lv_core/lv_refr.c:382

0x400e55c4: _lv_disp_refr_task at /home/molnarm/esp-workspace/project/components/lv_port_esp32/components/lvgl/lvgl/src/lv_core/lv_refr.c:199

0x400eee91: lv_task_exec at /home/molnarm/esp-workspace/project/components/lv_port_esp32/components/lvgl/lvgl/src/lv_misc/lv_task.c:409 (discriminator 1)

0x400eef7c: lv_task_handler at /home/molnarm/esp-workspace/project/components/lv_port_esp32/components/lvgl/lvgl/src/lv_misc/lv_task.c:142

0x400d7488: menuTask at /home/molnarm/esp-workspace/project/main/guiTask.c:110

0x4008a771: vPortTaskWrapper at /home/molnarm/esp-idf/esp-idf-v5.0.1/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:154

Screenshot and/or video

If possible, add screenshots and/or videos about the current state.

Hi @martin023 ,

Looking at your call stack trace the issue looks to be a divide by zero exception in one of the LVGL internal chart functions draw_series_line() do you have a chart in your project also? If so you probably need to check the setup of the chart carefully first…

draw_series_line at /home/molnarm/esp-workspace/project/components/lv_port_esp32/components/lvgl/lvgl/src/lv_widgets/lv_chart.c:984

I hope that gives you a clue…

Kind Regards,

Pete

1 Like