当前位置: 首页 > news >正文

可执行程序运行“bus error“问题解决之库依赖

文章目录

    • 1. 背景
    • 2. `bus error` 错误
    • 3. 如何分析
    • 4. 举例

1. 背景

我们很多时候,在运行一个第三方的程序的时候,出现一个bus error问题,然后就卡住了,不能再进行下一步操作。本文个人自身经历出发, 讲解其中一种情况。

2.bus error错误

  • Bus error(总线错误)是 Unix/Linux 系统中一种严重的运行时错误,通常由 硬件无法处理的非法内存访问 引起。它与 Segmentation fault(段错误)类似,但原因更底层,往往涉及内存对齐、硬件限制或物理地址问题。

  • Bus error 的核心是:CPU 能“看到”这块内存,但拒绝以你的方式访问它。

    • 最常见于 未对齐访问 和 mmap 越界,尤其在 ARM 架构设备(如树莓派、手机、嵌入式系统)上高频出现。

3. 如何分析

  • 看情况,如果程序还没运行,就报这个错误,比如main里面最前面的日志都没有打印;运行到某个阶段后报这个错误;

    • 刚开始就报错,大概率是程序寻找相关依赖库的时候,依赖库不对,导致程序进入了异常地址;
    • 运行中报错,运行中某个资源/内存不可访问;
  • 解决方式:

    • 使用ldd指令查看可执行程序的依赖,是不是都可以寻找到,如果找不到,就是库缺失问题,如果都显示不出来,就是错误的库,导致查看异常;
    • 在依赖库可以找到的情况下,在核对一下依赖库是不是都正确;
    • 使用gdb进行动态调试,看看具体问题;

4. 举例

  1. 查看库依赖,都直接bus error; -->肯定依赖库存在问题,导致内存解析异常
  2. 删除可能的依赖库;–>可以看到依赖关系,就是这个依赖库异常;
  3. 重新替换库后,显示正常;
  4. 再次运行可执行程序,正常;
http://www.jsqmd.com/news/73679/

相关文章:

  • 【课程设计/毕业设计】基于springboot高校大学生心理咨询管理系统预约记录、咨询记录、评价记录【附源码、数据库、万字文档】
  • CppCon 2024 学习:Fast and small C++ Whenefficiency matters
  • 苹果手机应用管理全解析:入口位置、核心功能与使用技巧详解
  • Wan2.2-T2V-A14B vs 国际主流T2V模型:画质对比评测
  • 什么是智能体工程Agent Engineering?让 AI从“能跑“到“敢用“的关键
  • 实时视频处理技术:重塑视觉交互体验的未来趋势
  • 2026年全套Java面试合集,终于整理完了!
  • 无硬件模拟灵衢架构:基于openFuyao社区的UB组件一站式开发实践
  • PCB设计中的常见问题
  • 【Git学习】Git分支的多人协作
  • 我为什么要离开家乡,来北京打拼?(说说我自己的故事...)
  • Windows右键菜单终极清理指南:3步打造清爽高效操作体验
  • 春日为你写下了几行诗句
  • 【Git学习】GitLab介绍
  • 在Linux中如何查看内存使用情况?
  • 网络安全工作必须有证吗?
  • Ascend C Tiling维度切分策略全解 - Block、Core与硬件单元的映射艺术
  • Spring AOP 源码深度解析:从代理创建到通知执行的完整链路
  • Kimi-VL-A3B-Thinking-2506焕新发布:多模态AI性能全面跃升,引领开源模型技术革新
  • 多模态向量技术突破:Jina Embeddings V4重构AI搜索范式,38亿参数开启跨模态理解新纪元
  • Wan2.2-T2V-A14B在滑坡灾害预警动画中的土体位移模拟
  • sward全面介绍(7) - 如何将confluence数据导入sward
  • 手撸 Spring 简易版 AOP
  • 从文本到电影级画面:Wan2.2-T2V-A14B视频生成技术拆解
  • Venture Global宣布完成Venture Global Plaquemines LNG, LLC 30亿美元高级担保票据发行
  • 从零配置到高效开发,Cirq代码补全插件实战教程,量子程序员必备技能
  • 车联网时序数据库哪个好
  • **主题:** 医疗数据标准化漏异常值,后来补鲁棒缩放才稳住多中心模型预测
  • 基于PLC的室内空气净化器控制系统设计
  • 别再把数据管道当“体力活”了:从单体任务到事件驱动的升级之路