问题标签 [general-protection-fault]

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.

0 投票
0 回答
427 浏览

javascript - node.js 中的一般保护错误

节点因一般保护故障而崩溃。从系统日志:

我假设 Node 本身是原因,因为 JS 是内存管理的 - 如果这不正确,请告诉我。

节点 0.8.19 中是否存在导致此问题的已知问题?

如何使节点不崩溃?

0 投票
0 回答
818 浏览

java - JVM 在 DozerBeanMapper 中执行代码时发出一般保护错误

这里有点奇怪,我们正在我们的一个应用程序(在 IBM 64 位 JVM 中)中运行 Dozer (5.3.2)。上周五,由于 JVM 发出一般保护错误,我们的一个生产机器突然停止。不幸的是,我们没有任何有用的日志记录来向我们展示当时发生的事情,但是 JVM 的 javacore 文件表明问题是在 Dozer 的 DozerBeanMapper 中执行代码时发生的:

我快速查看了 DozerBeanMapper 的 Dozer 源代码,并注意到javacore 日志中报告的代码行使用了 Sun 的java.util.concurrent.atomic.AtomicBoolean,它本身使用sun.misc.Unsafe。根据对它的理解,sun.misc.Unsafe它允许比 JVM 通常公开的更直接和任意的内存分配功能。我当然在这里推测,但这让我想知道我们看到的 gpf 是否可能与 Dozer 使用sun.misc.Unsafe.

不幸的是,我们在应用程序中使用了多个 DozerBeanMapper 使事情变得更加复杂(我们正在努力解决这个问题……继承代码不是很有趣吗)。这些映射器至少只在应用程序启动时实例化一次,而不是在每个请求的基础上。

不幸的是,我还没有弄清楚如何复制这个问题,所以我想在尝试这样做的同时收集一些信息,因为我目前正在努力思考如何证明/反驳我的理论。有没有其他人在使用 Dozer 时遇到过任何 gpf 情况?我们使用多个 DozerMapperBeans 是否可能导致问题?

感谢任何想法,

埃德

0 投票
0 回答
3085 浏览

segmentation-fault - dmesg 显示 segfault,一般保护错误,“阻塞超过 120 秒”,但程序仍在运行

我正在运行一些代码,虽然它在任何时候都没有退出或给我一个可见的错误消息,但它似乎停滞了很长一段时间,然后再次启动,然后停止,所以我运行 dmesg 和得到以下内容:

无论如何,我不确定该怎么做,或者如何找出发生这种情况的地方,因为程序永远不会退出..谁能告诉我如何调试这个?

谢谢

0 投票
3 回答
3269 浏览

ios - 64 位模式下的 objc_setAssociatedObject 函数错误不在 32 位

我在我的项目中使用了一个名为SKSTableView的简洁表视图控制器,它允许每个表行有多个子行。此代码在32 位模式下完美运行,但当我在 iPhone 5S 或模拟器中以 4 英寸 64 位模式运行它时,当您点击一行以获取子行时,它会崩溃。我对 64 位和 32 位 iOS 系统的区别一无所知。我很想了解这里发生了什么。

您会注意到 *SubRowObjectKey 设置为 void - 我得到的错误是: EXC_BAD_ACCESS_(code=EXC_I386_GPFLT)
这是试图访问不存在的东西的一般保护错误(?)

当它崩溃时,Xcode 会突出显示这行代码:
objc_setAssociatedObject(self, SubRowObjectKey, subRowObj, OBJC_ASSOCIATION_ASSIGN);

Also there is this: Printing description of *(subRowObj): (id) [0] = Printing description of SubRowObjectKey:

It seems to be working great in 32bit mode but some how in 64bit it seems to loose where it is. Here below is the section of the code I am looking at.

您可以在此处下载并使用代码:https ://github.com/sakkaras/SKSTableView

0 投票
0 回答
940 浏览

segmentation-fault - Ubuntu 一般保护故障 - CPU 相关?

Ubuntu 运行内核 3.2.0-60。

昨天一大早,机器的平均负载开始持续上坡。CPU 使用率非常低,大约 85% 空闲。内存使用率也很低,只有大约 2 MB 的交换空间显示为已使用。

我的第一个想法是因为这两个项目都没问题 - 一定是硬盘驱动器有问题,并且硬盘驱动器无法读取/写入。

进程数量定期约为 185 个。大约五个小时后,负载达到了 400 多个 - 进程数达到了近 900 个。随着 cron 作业或其他进程的运行,它们只是不断增加。

当负载大约为 180 时,我能够 ssh 进入机器并运行 top 来观察进程。该机器仍在响应 DNS 查询,并且 ping 正常工作。这是早上 8 点 30 分左右。

syslog 一直运行到大约上午 8:16 才停止。下一个日志行来自机器重新启动时(大约下午 1:10)。

当我尝试执行重启或关机命令时,我收到了“分段错误”的响应。

在 Syslog 中,有数以千计的一般保护故障。它们都有不同的进程 ID 和不同的可执行文件。但是所有这些似乎都保持不变-CPU 3。错误的第二行都说CPU 3。以下是一些示例行:

示例 1:

示例 2:

示例 3:

其他人是否能够提供他们认为可能的一些想法/反馈?所有行都被写入的事实表明硬盘驱动器是可访问和可写的。

0 投票
0 回答
579 浏览

c++ - 异常 13 一般保护故障....错误代码=0240

在 turboc++ 上编译时出现此错误,然后它崩溃了。我用谷歌搜索了它,但没有得到任何帮助。你们能帮帮我吗?

提前问候和感谢 tanmay darmorha

0 投票
0 回答
69 浏览

x86 - x86 恢复中的 GP 错误

我想自动化一些在基于 IA-32 x86 架构的目标上运行的测试用例,其中一些测试用例会生成一般保护错误(作为验证过程的一部分的预期结果)。我想知道是否有办法从这个故障中恢复并继续进行其余的测试用例。如果不是,测试自动化的其他潜在方法是什么?

0 投票
0 回答
452 浏览

assembly - x86“32位”中的软复位是否会在复位后清除RAM?

我正在使用 Intel Quark SoC,并在发生三重故障后尝试从 RAM 读取一些数据。我在重置发生之前保存了一些数据,并希望在我的程序重新启动后读取它。这是可能的还是RAM被清除了?

0 投票
2 回答
375 浏览

nasm - 在 iso 上运行 os 时出现一般保护故障

我有以下引导加载程序代码,它似乎在硬盘上运行得很好:

问题是当我使用以下命令将其转换为 ISO 时:

...它因三重故障而失败。当我使用 运行它时qemu-system-i386 -boot d -cdrom os-image.iso -m 512 -d int -no-reboot -no-shutdown,它会输出(不包括无用的 SMM 异常):

这意味着我得到了 0x0d(一般保护故障),然后是 0x08(双重故障),然后是三重故障。为什么会这样?

编辑:我已将命令更改为:

但我现在收到以下错误:

有谁知道这意味着什么?

编辑2:

我已将代码更改为使用 ah=0x02 读取,如下所示:

但它仍然是三重故障。为什么?

0 投票
0 回答
526 浏览

c - 操作系统开发:设置 idt 后的一般保护故障问题

我正在尝试从头开始编写一个没有任何库和东西的操作系统。所以我正在设置我的 IDT 和其他东西,我终于完成了。所以当我尝试它时,它一直在重新启动。我只写了 int 0x0,所以我写了前 16 个来处理我至少看到的任何异常。所以我所做的是创建一个 set_background 函数并给每个异常一个从 0 到 15 个异常的颜色我给了 20 到 2f 的颜色(我在模式 13h:320x200p 256 色)当我运行操作系统时,我发现我的异常是带有 2d 颜色代码的那个。这是一个位于 isr 13 的一般保护故障。我知道当抛出一般保护故障时,它指向通过 eip 的指令。所以我使用我的模拟器控制台(qemu 监视器)来获取引发异常的指令的值。

内核如下

我没有写太多内核代码,因为我不需要

OS.h文件如下

我认为导致故障的fill rect函数包含在screen.h中

我认为 fill_Rect 函数是导致错误的函数

顺便说一句,导致异常的函数在地址 1170 中显示为 83 45 f8 01 (我在 0x1000 加载我的内核)

编辑:

额外文件

引导加载程序:

IO.h:

这是我的生成文件

当我用 -v 运行它时,它给出了这个

并再次出现相同的错误代码