Page 1 of 3

【已解决】linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

Posted: 2022年 Nov 4日 15:06
by liuzx

新接入的linux3.4.2SD打开设备后,无论是在手机涂鸦APP还是在中控屏上,控制设备都会死机。附件是带有死机转储数据的日志。


Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

Posted: 2022年 Nov 7日 11:08
by luoji

明天安排处理


Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

Posted: 2022年 Nov 9日 18:10
by lightthgil

是控制“RGBCW彩灯”导致死机吗?日志显示最后一条是控制这个设备 开关:关。不过前面分别操作过该设备的颜色、场景、亮度、开关、模式,都是正常的。同时我添加虚拟该设备测试,也没有出现死机。
分析死机日志信息不够,需要提供死机时的堆栈


Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

Posted: 2022年 Nov 14日 17:58
by liuzx

这次复现问题还没到控制设备时就死机了,目前是在同步设备的时候打开设备(模拟控制时打开设备),然后中控直接段错误死机。
以下为在同步设备时打开设备的代码:

OPERATE_RET tuya_home_control_dev_room_sync_event(TY_INFO_SYNC_TP_E* sync_type)
{
TUYA_CHECK_NULL_RETURN(sync_type, OPRT_INVALID_PARM);

Code: Select all

if ((*sync_type != TY_SYNC_TP_ROOM) && (*sync_type != TY_SYNC_TP_DEV)) {
    return OPRT_OK;
}

TUYA_DEV_BRIEF_INFO_S* dev_list;
UINT_T dev_count = 0;
OPERATE_RET result = tuya_get_dev_brief_info_list(&dev_list, &dev_count);
if (OPRT_OK != result) {
    PR_ERR("tuya_get_dev_brief_info_list failed %d", result);
    return OPRT_COM_ERROR;
}

TY_HOME_CTRL_DEV_CB cb;
TY_HOME_CTRL_DEV_T des = NULL;
for(UINT_T level1 = 0; level1 < dev_count; ++level1)
{
    if(0 == strcmp("dj", dev_list[level1].category))
    {
        des = tuya_home_ctrl_dev_open(dev_list[level1].id, &cb);
        printf("--%d-- --%s-- 打开设备:%s des:%d name:%s\n", __LINE__, __FILE__, dev_list[level1].id, (int)des,dev_list[level1].name);
    }
    printf("--%d-- --%s-- 添加设备:%s \n", __LINE__, __FILE__, dev_list[level1].name);
}

test_devices_dp(dev_list, dev_count);

tuya_dev_brief_info_list_free(dev_list, dev_count);

return OPRT_OK;

}


Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

Posted: 2022年 Nov 23日 11:02
by luoji

目前其他sdk客户没有类似反馈,也无法从提供的log看出问题。需要你们提供挂死时的详细函数栈


Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

Posted: 2022年 Nov 23日 13:56
by liuzx

这个详细函数栈信息怎么弄出来??


Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

Posted: 2022年 Nov 23日 14:49
by luoji

使用gdb等调试工具


Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

Posted: 2022年 Nov 24日 10:03
by liuzx

死机的时候报错的位置识别成了??:
Thread 8 "cmmod" received signal SIGSEGV, Segmentation fault.
[Switching to LWP 1355]
0x44e2e308 in ?? ()

这个应该是进入了静态库文件里面了,所以不知道函数名称是什么。


Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

Posted: 2022年 Nov 24日 17:13
by luoji

没有打印出函数说明符号表信息被去除了。不要对bin进行strip


Re: linux 3.4.2SDK 打开设备后无论是在中控还是手机涂鸦APP上控制设备死机

Posted: 2022年 Nov 28日 10:29
by liuzx

这是用你们写的Makefile直接编译的,里面没有strip操作。是不是你们的静态库strip过了,如果是这样的话,麻烦提供没有strip过的库一下