当前位置: 代码迷 >> 综合 >> CG03 vehicle运行就退出
  详细解决方案

CG03 vehicle运行就退出

热度:42   发布时间:2024-02-09 14:22:46.0

1.问题

CG03 运行vehicle就退出,但是vehicle在别的车上运行良好

2分析

利用gdb调试,发现在#1  0x00027d1c in HAL_SetDeviceName (device_name=0x0) 设备名称为0导致mqtt库链接溢出导致段错误。

Type "apropos word" to search for commands related to "word".
(gdb) target remote:1234
Remote debugging using :1234
Reading /data/vehicle from remote target...
warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
Reading /data/vehicle from remote target...
Reading symbols from target:/data/vehicle...done.
0x00010360 in _start ()
(gdb) c
Continuing.
[New Thread 1976.2289]
[New Thread 1976.2288]
[New Thread 1976.2290]
[New Thread 1976.2291]
[New Thread 1976.2292]
[New Thread 1976.2293]
[New Thread 1976.2294]Thread 2 "vehicle" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1976.2289]
0x0007e9e4 in strlen ()
(gdb) bt
#0  0x0007e9e4 in strlen ()
#1  0x00027d1c in HAL_SetDeviceName (device_name=0x0)at /home/code/LinkKitSDK/c-sdk-v2.3.0-fc20ef7e6d00b8e3a1a33b732f2effd5447a26b8c-sdk.git/src/ref-impl/hal/os/ubuntu/HAL_OS_linux.c:255
#2  0xf784000e in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) f 1
#1  0x00027d1c in HAL_SetDeviceName (device_name=0x0)at /home/code/LinkKitSDK/c-sdk-v2.3.0-fc20ef7e6d00b8e3a1a33b732f2effd5447a26b8c-sdk.git/src/ref-impl/hal/os/ubuntu/HAL_OS_linux.c:255
255	/home/code/LinkKitSDK/c-sdk-v2.3.0-fc20ef7e6d00b8e3a1a33b732f2effd5447a26b8c-sdk.git/src/ref-impl/hal/os/ubuntu/HAL_OS_linux.c: No such file or directory.
(gdb) f 1
#1  0x00027d1c in HAL_SetDeviceName (device_name=0x0)at /home/code/LinkKitSDK/c-sdk-v2.3.0-fc20ef7e6d00b8e3a1a33b732f2effd5447a26b8c-sdk.git/src/ref-impl/hal/os/ubuntu/HAL_OS_linux.c:255
255	in /home/code/LinkKitSDK/c-sdk-v2.3.0-fc20ef7e6d00b8e3a1a33b732f2effd5447a26b8c-sdk.git/src/ref-impl/hal/os/ubuntu/HAL_OS_linux.c
(gdb) f 0
#0  0x0007e9e4 in strlen ()
(gdb) f 1
#1  0x00027d1c in HAL_SetDeviceName (device_name=0x0)at /home/code/LinkKitSDK/c-sdk-v2.3.0-fc20ef7e6d00b8e3a1a33b732f2effd5447a26b8c-sdk.git/src/ref-impl/hal/os/ubuntu/HAL_OS_linux.c:255
255	in /home/code/LinkKitSDK/c-sdk-v2.3.0-fc20ef7e6d00b8e3a1a33b732f2effd5447a26b8c-sdk.git/src/ref-impl/hal/os/ubuntu/HAL_OS_linux.c
(gdb) bt
#0  0x0007e9e4 in strlen ()
#1  0x00027d1c in HAL_SetDeviceName (device_name=0x0)at /home/code/LinkKitSDK/c-sdk-v2.3.0-fc20ef7e6d00b8e3a1a33b732f2effd5447a26b8c-sdk.git/src/ref-impl/hal/os/ubuntu/HAL_OS_linux.c:255
#2  0xf784000e in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) 

后来查看 mqtt_client_info.txt 里面的内容,发现缺少两个字段DeviceName和 DeviceSecret  

Android Download Music  Notifications Pictures Ringtones neolixmqtt     ping.txt videoRecorder   
sabresd_6dq:/sdcard # cd neolixmqtt/                                                                         
sabresd_6dq:/sdcard/neolixmqtt # ls
mqtt_client_info.txt
sabresd_6dq:/sdcard/neolixmqtt # cat mqtt_client_info.txt                                                    
{"product_key":"a1kYolDPGoj","product_secret":"m6qS9W5zaF62c851"}sabresd_6dq:/sdcard/neolixmqtt # 
sabresd_6dq:/sdcard/neolixmqtt # exit
jiange@ubuntu:/home/code/test/6.9.1/6.9.1.1/pduVehicle$ adb disconnect

这个文件是云龙视频的进程创建的