欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > ./build/bin/dlt-viewer 在使用tcp连接时出现dltviewer闪退

./build/bin/dlt-viewer 在使用tcp连接时出现dltviewer闪退

2025/4/2 2:23:29 来源:https://blog.csdn.net/weixin_45778311/article/details/146590404  浏览:    关键词:./build/bin/dlt-viewer 在使用tcp连接时出现dltviewer闪退

在使用 dlt-viewer 通过 TCP 连接时出现闪退,可能由以下原因导致。请按以下步骤排查和解决:

  1. 确认 dlt-daemon 的 TCP 服务正常运行
  • 检查进程状态:
    ps aux | grep dlt-daemon
    
    确保输出中包含 --tcp-port=29448(默认端口)和 --tcp-ip=0.0.0.0(允许远程连接)。
  • 验证端口监听:
    sudo ss -tuln | grep 29448
    
    若无输出,重启 dlt-daemon 并显式指定参数:
    dlt-daemon --tcp-port=29448 --tcp-ip=0.0.0.0
    

  1. 检查防火墙/网络策略
  • 临时关闭防火墙测试:
    sudo ufw disable  # Ubuntu/Debian
    sudo systemctl stop firewalld  # CentOS/RHEL
    
  • SELinux 策略(如启用):
    sudo setenforce 0  # 临时禁用 SELinux
    

  1. 依赖库完整性
  • 安装缺失的库(常见缺失项):
    sudo apt-get install libqt5core5a libqt5gui5 libqt5network5 libssl-dev libgbm-dev
    
  • 验证动态库链接:
    ldd ./build/bin/dlt-viewer | grep "not found"
    
    若有缺失库,通过 apt-cache search 库名 定位并安装。

  1. 捕获调试信息
  • 启用详细日志:
    ./build/bin/dlt-viewer --verbose --host=目标IP --port=29448
    
    观察输出中是否有连接错误或权限提示。
  • 使用 gdb 调试:
    gdb ./build/bin/dlt-viewer
    (gdb) run --host=目标IP --port=29448
    
    根据崩溃时的堆栈信息(如 段错误未定义符号)定位问题。

  1. 版本兼容性
  • 确保 dlt-viewerdlt-daemon 版本一致:
    • 从同一 GitHub Commit 或 Tag 编译两者。
    • 检查版本号:
      dlt-daemon --version
      ./build/bin/dlt-viewer --version
      

  1. 重新编译项目
    清理构建缓存并重新编译(Debug 模式):
cd dlt-viewer/build
make clean
cmake -DCMAKE_BUILD_TYPE=Debug ..  # 启用调试符号
make

  1. 禁用 GPU 加速(可选)
    若使用远程桌面或虚拟机,尝试禁用硬件加速:
./build/bin/dlt-viewer --no-gpu --host=目标IP --port=29448

  1. 权限问题
  • 以普通用户运行(避免 sudo):
    ./build/bin/dlt-viewer --host=目标IP --port=29448
    
  • 检查文件权限:
    确保 /tmp 目录可写(dlt-viewer 可能临时存储数据):
    sudo chmod 1777 /tmp
    

总结命令

# 1. 重启 dlt-daemon 并监听 TCP
killall dlt-daemon
dlt-daemon --tcp-port=29448 --tcp-ip=0.0.0.0 &
# 2. 安装依赖
sudo apt-get install libqt5core5a libqt5gui5 libssl-dev
# 3. 运行 dlt-viewer 并捕获日志
./build/bin/dlt-viewer --verbose --host=目标IP --port=29448

若问题仍存在
请提供以下信息以便进一步分析:

  1. gdb 输出的崩溃堆栈(如 Backtrace)。
  2. --verbose 模式下的完整日志。
  3. dlt-daemondlt-viewer 的版本号。
    可通过以下命令获取详细日志:
./build/bin/dlt-viewer --verbose --host=目标IP --port=29448 > viewer.log 2>&1

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词