问题标签 [sigbus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - R ffdfappend SIGBUS 错误
我有一个使用ffbase
andff
包的 R 脚本。在 Windows 中,脚本运行良好。在 Linux 中(不同的机器,虽然 RAM 更高)它会因总线 (SIGBUS) 错误而崩溃。
Windows(版本 6.1.7601)会话信息:
- R 版本 3.1.0 (2014-04-10)
- 平台:x86_64-w64-mingw32/x64(64位)
- 附包:ffbase_0.11.3 ff_2.2-13 bit_1.1-12
Linux(Linux xenja 3.5.0-54-generic #81~precise1-Ubuntu SMP Tue Jul 15 04:02:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux)会话信息:
- R 版本 3.1.1 (2014-07-10)
- 平台:x86_64-pc-linux-gnu(64位)
- 附包:ffbase_0.11.3 ff_2.2-13 bit_1.1-12
R 脚本崩溃的点位于循环中,循环重复读取不同的文件内容并通过函数将它们连接到ff
数据帧中。ffdfappend
循环如下:
当我在 Linux 中运行 R 脚本时,在标准错误中写入以下内容(我故意用@@@截断了很长的行)
当我将 R 脚本附加到 时gdb
,我在崩溃时收到以下相关消息:
gdb 回溯:
当我运行 R 脚本时,strace
我在崩溃点得到以下相关信息:
任何有关如何进行的建议表示赞赏。
非常感谢您的宝贵时间。
-乔治。
ios - iOS Application crashes in release version on device
I am facing a strange issue, and have already spent quite a lot of time on this.
A crash occurs in my application, specifically in release build, on the device.
The crashlog is:
I understand that there is some issue related to byte alignment. But don't have any idea about what I need to do.
The crash location code snippet is a valid value function call to :
Any help would be appreciated.
Thanks
Adding more details [caller snippet]
The problem is the log "BeaconFence 42" is never printed at all. The code crashes while calling isBeaconInsideZoneAndDwellTime. In the console logs, we get sigbus 10
c++ - “未对齐的地址错误”是什么意思?
首先 - 对细节感到抱歉。我通常会尝试将我的 SO 问题归结为仅包含相关内容的通用“A 类”内容,但我不确定这里问题的根源是什么。
我有一个看起来像这样的矩阵类模板(仅显示我认为的相关部分):
我对整个班级进行了单元测试,乘法和身份工厂似乎都工作正常。但是,然后我在这个方法中使用它,它被调用了很多次(我认为如果你曾经写过一个渲染器,很明显我在这里想要做什么):
经过一段时间和对该方法的一些随机调用后,我得到了这个:
但是,如果我将行更改identity<4>()
为Matrix<4,4>()
错误不会发生。我是 C++ 新手,所以它一定很愚蠢。
那么,(1)这个错误是什么意思,(2)我是如何设法射中自己的腿的?
更新:当然,这个错误不会在 LLDB 调试器中重现。
更新 2:这是我通过 Valgrind 运行程序后得到的结果:
并且draw_triangle
正是调用world_to_screen_space
和使用它的结果的方法。
更新 3:我发现了问题的根源,它与这段代码没有任何关系——而且它也很明显。现在真的不知道该怎么处理这个问题。
c++ - 在 OS X Yosemite 上诊断 SIGBUS 错误
我正在尝试将一些代码转换为在 OS X 上运行,并且在一些低级内存编写代码(适用于 Linux/Windows 平台上)遇到问题。
具体被调用的方法是:
相关测试代码(GTest)为:
在 gdb 中运行(使用自制软件安装)时,我得到:
我尝试添加似乎没有什么区别的显式演员表。
我找不到任何线索说明为什么这会在 OS X 上失败。任何有关如何诊断此问题的帮助将不胜感激。
php - Apache 崩溃报告 - is_closing_session(): no DBUS_SESSION_BUS_ADDRESS in environment
我注意到我的系统一直在生成此崩溃报告。我不确定为什么,而且我对 apache 内部情况的了解是有限的。我不确定是什么原因造成的,因为服务器上没有任何特别的变化。任何帮助表示赞赏。我应该寻找和检查什么?可能是什么原因造成的?
批准:
java - 是否存在一种万无一失的跨平台方式来重现 SIGBUS?
这个问题纯粹是出于好奇。我个人已经看到这个信号被提出,但很少如此。
我在C 聊天室问是否有可靠的方法来重现它。在这个房间里,用户@Antti Haapala找到了一个。至少在 Linux x86_64 系统上……经过一番折腾,同样的模式可以用三种语言重现——但是,仅在基于 x86_64 Linux 的系统上,因为这些是唯一可以测试的系统……方法如下:
C
Python
爪哇
再次重申:以上所有示例均仅适用于 Linux x86_64 系统;我没有别的东西可以支配。
有没有办法在其他系统上重现这个?
附带问题:如果上面的示例可以在没有 的系统上重现SIGBUS
,会发生什么?
ios - iOS 应用程序崩溃 - SIGBUS - BUS_ADRALN
我的应用程序崩溃了iPhone 4 iOS 7.1.3
。开iOS 9
,iP6
一切正常。
它是由使用两种泛型类型实例化相当复杂的泛型类引起的。
我可以提供有关实现的详细信息,但该类有数百行。
代码:
和一部分crashlog
:
assembly - SIGBUS 错误 - 在 RaspberryPi 上组装 ARM 处理器
我在业余时间学习汇编,因为我对低级操作感兴趣。 我尝试运行本教程中的代码。
代码可以在这里和下面找到:
我在 Raspberry Pi 中编译代码:
它编译没有任何问题,但是当我运行它时,我收到以下错误:
程序收到信号 SIGBUS,总线错误。
main() 中的 0x00010428
我已经对导致 SIGBUS 错误的原因进行了一些研究,在这里我唯一能想到的是访问未对齐的内存,但是十进制的 0x00010428 = 66,600 可以被 4 整除,所以我不确定问题是什么.
跑步
我得到以下信息:
处理器:0
型号名称:ARMv6 兼容处理器 rev 7 (v6l)
BogoMIPS:2.00
特点:half thumb fastmult vfp edsp java tls
CPU 实现者:0x41
CPU 架构:7
CPU 变体:0x0
CPU 部分:0xb76
CPU 修订:7硬件:BCM2708
修订:0002
c - 带有 MAP_FIXED 的 mmap 上的 SIGBUS | MAP_FILE | MAP_SHARED
:) 我正在尝试将一些遗留代码(大型程序)移植到 CentOS 7,但我遇到了障碍。代码的核心是一个相当尴尬的结构,它使用 mmap 来分配硬编码地址并将文件映射到它。该文件就像一个数据库(由一个数据库构建),并包含指向映射内存不同部分的硬编码指针。非常丑陋,但它就是这样。整个程序都是围绕这种结构构建的,没有人会资助重写。
问题出现在 mmap 行上。这以前有效,但不再在 CentOS 7 上:
... 哪里SMAddr
是0x8000000
,SMA_WINDOW_SIZE
是127926272
, 并且readOnly
是假的。所以基本上它试图将文件映射到0x8000000
大小为 122MB 的地址。
版本之间可能发生了什么变化,我不知道。但我确实注意到它映射的文件只有 1.5MB。我不确定为什么它需要映射比文件大小更多的东西,但我知道它是必需的,而且我知道出于某种原因选择大小“122MB”有很多细微差别。
实际文件大小和分配大小之间的不匹配在过去是否很好,但现在不行了?我知道这SIGBUS
意味着尝试访问无效的内存区域。鉴于 mmap 不采用任何类型的分配指针,这必须是它在内部做的事情。
我尝试捕捉和阻止SIGBUS
(认为它可能会被忽略?),但程序仍然在同一个SIGBUS
地方崩溃。也许我做错了。
想法?
linux - 带有 AC 标志的未对齐内存访问不会在 Windows 上引发任何陷阱
使用英特尔 x86_64 CPU。我试图在 Windows 上捕获“未对齐的内存访问错误”。这在 Linux (Ubuntu) 上完美运行。
例如,我可以像这样打开 EFLAGS 寄存器上的 AC 标志
然后,未对齐的内存访问(例如,0x804a003 上的 DWORD 读/写)会引发 Linux 进程的 SIGBUS 错误。
但是,使用相同的 CPU,如果我在 Windows(7 和 8)上做同样的事情,什么也不会发生。有人可以解释我为什么吗?这是因为 Windows 禁用了 CR0.AM 标志而 Linux 没有吗?
我会很感激一些建议。谢谢你。