问题标签 [access-violation]

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 投票
3 回答
3192 浏览

c++ - C++ STL 容器中的 NULL 指针

不幸的是,我没有完全开发自己开发的程序。我最近注意到 unordered_set 的运算符 - 上的 Visual Studio 致命错误,它是通过简单插入指向 unordered_set 的指针来调用的。在查看了当地人之后,我注意到 set 只有 2 个元素,最后一个是 NULL (所以我想这就是它崩溃的原因)。现在问题来了:(理论上)unordered_set(或任何其他 STL 容器)如何将 NULL 指针作为其元素之一。程序是多线程的,但根据我的评论,这部分代码只能从一个线程访问。谢谢。

调用堆栈和部分源代码供感兴趣的人 参考: http ://privatepaste.com/c8e7f35a4e(PushToProcessed 是从 Object 本身调用的,它传递对自身的引用,因此不能为 NULL)

0 投票
1 回答
2290 浏览

c# - Word2007:执行 Selection.Find.Execute 时未处理访问冲突异常

我阅读了很多关于这个可怕而烦人的错误的帖子:“访问冲突异常未处理”。但在 Word2007 上只有一篇文章和提升命令“Selection.Find.Execute”。建议的解决方案是重新安装Word2007,这有点微不足道!

我试图解释我的环境。

我有一个使用 WinForms 用 C# 编写的小应用程序,并通过 InteropServices (word.dll) 调用 Word 在 Word 中创建新文档(引发 Word2007 实例)。所有代码都在 .NET Framework 3.5 上运行。在 C# 代码中,我创建了文档,然后搜索了一些内容以替换它。

该程序仅在某些机器上会引发引用的错误,而在其他机器上它正确运行。

这是代码段:

当代码以粗体执行时,它会引发“访问冲突”异常,并显示消息“尝试读取或写入受保护的内存。这通常表明其他内存已损坏。”。如果我评论此代码,则文档已创建,这可能意味着异常与整个 Word 无关,而仅与其中的某些特定配置有关。

这是一个例外:

有人可以建议我以更合理的方式代替重新安装 Word 2007 吗?

0 投票
1 回答
1538 浏览

c# - 之前没有的访问冲突

我正在 P/Invoking 到 Graphviz ,如下所示。当我写那个博客条目时,代码运行得很好。现在,我正在整理一个HttpModule使用该代码呈现 Graphviz 图形的组件,但我得到了一个AccessViolationExceptionat agmemread

就像我说的,这在以前很有效。但是现在,我无法让我的代码在任何事情上工作。甚至我基于相同代码的旧 Graphviz 应用程序也不再工作了。

我可能会改变什么会导致这种情况?我什至没有下载新版本的 Graphviz 或任何东西,所以 DLL 都是一样的。

编辑:我尝试更改stringStringBuilder,但产生了相同的结果。然后,我添加了一个MarshalAs属性:

这样,我不再得到一个AccessViolationException,但 Graphviz 无法正确读取字符串并返回一个空指针。

0 投票
2 回答
7938 浏览

mysql - MySQL Zend Framework - SQLSTATE [42000]:语法错误或访问冲突:1064

在发布这个问题之前,我已经阅读了我可以很好的所有回复。虽然相似,但没有一个解决我的特定问题(或者我不认识他们这样做)。

我有一个扩展 Zend_Db_Table_Abstract 的表类。在模型中,我尝试使用 join() 方法并基于这样的表 ID 返回单行:

当我回显 sql 对象时,我得到了这个:

奇怪的是,如果我使用这种格式,

我的输出是“WHERE(e.idEvent = 1)”。该值未包含在刻度中,但似乎都适用于 MySQL。当我在 phpMyAdmin 中运行查询时,我得到了这个:

idCategory 类型 displayOrder 描述 localStartTime events_idEvent
1 个人 1 5k 跑步/步行 2010-02-18 23:59:59 1
2 团队 2 5k 团队类别 2010-02-18 23:59:591 1

这是我期望看到的。但是当我在浏览器中运行我的应用程序时,我得到了这样的丑陋:

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'SELECT c.* FROM categoriesAS cINNER JOIN eventsAS eON c.events_id'附近使用正确的语法

我已经检查了我能想到的所有资源。希望 SO 超级专家的联合令人敬畏将使它成为我的最后一站。:D

0 投票
1 回答
211 浏览

windows - 使用 Registry 模块会导致 Perl 因访问冲突而崩溃

我们的 perl 程序在客户的 Windows 机器上启动时崩溃。进一步的测试表明,使用我们提供的 perl 发行版,一个简单的“hello world”脚本可以工作,但如果它包含以下行就会中断:

它因访问零指针而因访问冲突而崩溃。堆栈指向registry.dll

知道如何解决此问题吗?我在谷歌搜索中没有找到任何关于它的信息,也无法在我的环境中重新创建它。

0 投票
4 回答
2880 浏览

c++ - 为什么我的 char* 在 C++ 中是可写的,有时是只读的

我最近遇到了很大的问题char*。假设我创建了一个递归函数来恢复 achar*但取决于我如何初始化它,我会遇到一些访问冲突,并且在我的 C++ 入门中我没有找到任何可以让我理解正确路径的东西,所以我正在寻求你的帮助。

案例 1 尝试交换字母时遇到访问冲突的第一种情况:

案例2然后我尝试了这个让它工作

案例 3但是当我做了一个 cout 时,我在最后得到了一些随机的废话,所以我把它改成了

案例 4那行得通,所以我告诉自己为什么那时不行

案例 5,但它失败了,我还在某处读过你可以做类似的事情

然后添加一些东西。我的问题是为什么有些失败而有些失败,最好的方法是什么?

0 投票
7 回答
8418 浏览

c++ - 调用方法时访问冲突异常

我这里有一个奇怪的问题。假设我有一个带有一些虚拟方法的类。在某些情况下,此类的实例应调用其中一种方法。大多数时候那个阶段没有问题,但有时发现无法调用虚拟方法,因为指向该方法的指针为NULL(如VS所示),因此发生内存访问冲突异常。怎么会这样?

应用程序相当大而且很复杂,所以我真的不知道是什么低级步骤导致了这种情况。发布原始代码没有用。

UPD:好的,我看到我对问题的描述是相当不确定的,所以示意性代码看起来像

不涉及构造函数或析构函数。

0 投票
1 回答
1177 浏览

c++ - ObReferenceObjectByHandle 错误检查,内存访问冲突

我正在开发一个动态禁用键盘的项目。我已经编写了一个驱动程序,它试图获取键盘物理设备对象,然后用它调用 IoInvalidateDeviceState,但是我在获取它的物理设备对象时遇到了问题。每当我尝试使用设备对象的句柄调用 ObReferenceObjectByHandle 时,都会发生错误检查并且错误是内存访问冲突。这是我的源代码:

我意识到这可能不是实现此目的的最佳方法(甚至可能是最坏的方法),但我所知道的仅有的另外两种方法是拔下键盘或安装过滤器驱动程序,这需要重新启动。如果有另一种方法可以做到这一点,告诉我它会很棒。在此先感谢您的帮助!

0 投票
5 回答
259 浏览

c++ - 对象在堆栈上创建之前可以展开吗?

几天来我们一直在调试一个奇怪的案例,并在一定程度上隔离了这个错误,但它仍然没有任何意义。也许这里的任何人都可以给我一个关于发生了什么的线索。

问题是发生在部分代码中的访问冲突。

基本上我们有这样的东西:

在调试器中,它实际上看起来像是在破坏 UnreachableClass,并且当我插入 DummyDestruct 对象时,它不会在调用奇怪的析构函数之前被破坏。因此,LargeObject 的破坏似乎并没有出错。

所有这些都在生产代码的中间,很难将其隔离为一个小示例。

我的问题是,有没有人知道是什么原因造成的,发生了什么?我有一个功能齐全的调试器(Embarcadero RAD 工作室),但现在我不确定如何处理它。

谁能给我一些关于如何进行的建议?

更新:

我在 throw 子句下方放置了一个 DummyDestruct 对象,并在析构函数中放置了一个断点。输入了这个对象的析构函数(只有我们在这段代码中)。

0 投票
3 回答
9003 浏览

c# - “试图读取或写入受保护的内存。这通常表明其他内存已损坏” DllImporting C#

在尝试将数据编组到我的 DLL 函数并返回到 C# 代码时,我遇到了这个奇怪的错误。我看不到我在哪里传递 null 或读取无效内存,而且这个错误非常模糊。有什么线索吗??

下面的代码:

FeeCalculation 函数在 DLL 中导出如下:

在约翰的建议下:

...