news 2026/6/26 22:45:02

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
可执行程序运行“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. 再次运行可执行程序,正常;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 15:39:15

2026年全套Java面试合集,终于整理完了!

一、Java并发面试题 1、 ThreadLocal 1.1 谈谈你对ThreadLocal的理解? ThreadLocal的作用主要是做数据隔离,填充的数据只属于当前线程,变量的数据对别的线程而言是相对隔离的。它不是针对程序的全局变量,只是针对当前线程的全局…

作者头像 李华
网站建设 2026/6/26 9:49:44

数字孪生技术有哪些实际应用?

数字孪生,作为一种将物理实体或系统在其全生命周期内,通过数据驱动在虚拟空间中构建动态镜像的技术,正深刻改变着众多行业的运作模式。它不仅是一个简单的三维模型,更是一个集成了实时数据、模拟分析、预测决策能力的综合系统。随…

作者头像 李华
网站建设 2026/6/25 9:54:44

我为什么要离开家乡,来北京打拼?(说说我自己的故事...)

建了一个新号:1. 讲职场与第二曲线;2. 聊自己的故事,内心的感悟。谢谢大家,听我的故事。希望对大伙也有帮助。最近做了一个新产品:70天,每天30分钟,短视频行动营(第二曲线最佳选择&a…

作者头像 李华
网站建设 2026/6/26 6:59:37

如何在 LTspice放置 .op data 并能够设置显示的小数点个数?

简 介: 本文介绍了在LTspice中格式化.op数据标签的方法。通过使用round函数可以设置显示数据的小数点位数,使仿真结果更加简洁直观。具体操作是右键点击.op数据标签,使用round函数调整小数位数。这种方法能有效优化电路静态偏置量的显示效果&…

作者头像 李华
网站建设 2026/6/25 1:27:38

Wan2.2-T2V-A14B支持长时间序列生成吗?实测60秒连续输出

Wan2.2-T2V-A14B支持长时间序列生成吗?实测60秒连续输出 在影视制作、广告创意和虚拟内容生产领域,一个长期悬而未决的难题是:AI能否真正理解“时间”? 不是简单拼接几帧画面,也不是靠后期插值强行延长视频&#xff…

作者头像 李华