Skip to content

踩坑GitHub Livox-SDK/livox_ros_driver21 个月前

Livox Viewer 2 Linux启动SIGSEGV:getifaddrs返回ifa_addr。 ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:Livox Viewer 2 Linux SIGSEGV when getifaddrs() returns ifa_addr == NULL(GitHub Livox-SDK/livox_ros_driver2 #263)

状态:有绕过办法

问题 ​

Livox Viewer 2在Linux启动时触发SIGSEGV,GDB定位到访问struct ifaddrs::ifa_addr偏移0x18处。因Clash Verge等代理创建的TUN接口使getifaddrs()返回ifa_addr==NULL条目,程序未做空指针检查直接解引用sa_family导致崩溃。该问题与LiDAR硬件无关,在Viewer 2.3.0至2.6.0版本均复现。

环境 ​

Ubuntu 22.04 x86_64;NVIDIA RTX 3080/3060 Laptop;Driver 550/575/580;Livox Viewer 2.3.0-2.6.0;Clash Verge Rev/Mihomo代理软件。

解决办法 ​

  1. 彻底停止创建TUN/TAP接口的代理/VPN服务及其后台核心进程(仅关闭GUI无效),执行ip link确认虚拟接口消失后运行./LivoxViewer2.sh。
  2. 若需保留代理,将fix_ifaddrs.c与LivoxViewer2-fixed.sh置于LivoxViewer2.sh同级目录。
  3. 执行gcc -shared -fPIC -O2 fix_ifaddrs.c -o libfix_ifaddrs.so -ldl编译兼容库。
  4. 通过LivoxViewer2-fixed.sh脚本以LD_PRELOAD方式加载libfix_ifaddrs.so启动Viewer,拦截并过滤空地址条目。

讨论原作者:@ENDLESS0321 等,版权归原作者所有。

来源

本页事实对应的公开页面,以原文为准。

  1. GitHub Livox-SDK/livox_ros_driver2 #263:Livox Viewer 2 Linux SIGSEGV when getifaddrs() returns ifa_addr == NULL访问 2026-10-26