问题标签 [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.
winforms - 来自组合的 AccessViolationException:尝试读取或写入受保护的内存
用户在使用我们的应用程序(VB.Net、Winforms、使用框架的 v2)时偶尔会遇到上述错误。我无法重现它。调用栈如下:
: System.AccessViolationException: 试图读取或写入受保护的内存。这通常表明其他内存已损坏。在 System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam) 在 System.Windows.Forms.NativeWindow.DefWndProc(Message& m) 在 System.Windows.Forms.Control.DefWndProc (Message& m) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.ComboBox.WndProc(Message& m) 在 ControlEx.AutoCompleteCombo.WndProc(Message& m) 在 System.Windows.Forms.Control .ControlNativeWindow.OnMessage(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
ControlEx.AutoCompleteCombo.WndProc 的代码如下:
添加了错误处理,因此我们可以在收到 OutOfMemoryException 时确定是哪个组合导致了问题。
任何关于导致这种情况的线索将不胜感激!:-)
c++ - .访问冲突读取位置
我遇到了一个非常奇怪的问题。
代码如下:
我收到以下异常:
我已经检查了pImage
,我确定什么时候graphics.DrawImage
被调用,它不是NULL
。
- 为什么会出现这样的问题?
- 是什么
0xfeeefef2
?
c++ - 在调试器中运行时 VC++ 6.0 访问冲突
我正在尝试为一个 4 岁的 VC++ 6.0 程序添加增强功能。调试版本从命令行运行,但不在调试器中:它因 printf() 内部的访问冲突而崩溃。如果我跳过 printf,那么它会在 malloc() 中崩溃(从 fopen() 中调用),我不能跳过它。
这意味着我不能在调试器中运行,必须依靠旧的 printf 语句来查看发生了什么。这显然使它变得更加困难。
知道为什么 printf() 和 malloc() 在 VC++ 调试器下运行时会失败吗?我不擅长这种低级的东西!
这是访问冲突后的调用堆栈:
这是失败的操作之前的调试反汇编:
这是我们调用 fopen() 并在 malloc() 中失败的源代码
我得到的错误是
问候,
--- 阿利斯泰尔。
windows-mobile - 有哪些技术可以解决 Windows Mobile 设备上非常间歇性的访问冲突?
我有一个大型 Compact Frameworks V2.0 应用程序,在大多数情况下运行良好。在某些设备上大约每天一次,用户会收到一个本机错误 0xC0000005,该错误未被标准托管的 Try/Catch 块捕获。
我的应用程序以固定的时间间隔通过 ASMX 调用与服务器同步。该问题似乎发生在同步期间。除了同步时发生的 ASMX 调用外,还有相当多的业务逻辑,但其中 98% 是托管代码。我已经查看了我所有的 P/Invokes 和应用程序原生 C++ 库,此时我大约 95% 确定这不是问题所在。
由于这只发生在某些设备上并且很少发生(每天少于一次),因此很难隔离。我已经分析了我的代码,它看起来好像发生在应用程序中的随机位置,所以我怀疑某些东西正在破坏内存。
任何有关如何进一步解决此问题的想法将不胜感激。
.net - AccessViolationException on OdbcDataReader.Dispose()
I am getting this exception when disposing an OdbcDataReader just after retrieving data from the database. The reader is actually disposed while leaving a Using block. This should not be causing any errors as far as I know. Any ideas?
Thanks!
EDIT: using Sybase ASE 12.5 database
winapi - 应用程序不再工作 - 任何想法
我不知道为什么我的应用程序突然停止工作 - 也许 SO 社区的集体思想可以提供帮助...
背景:
我有一个大型应用程序直到最近才开始工作。现在,当我尝试运行它时,我收到错误“应用程序无法正确初始化(0xc0000005)”
这发生在应用程序到达_tmain()
. 它发生在发布和调试版本中。我尝试清理和重建项目并重新启动我的电脑。
调用堆栈仅显示 kernel32.dll 和 ntdll.dll
的条目输出窗口显示:
有任何想法吗?
编辑:
好的 - 发现问题 - 它与dll 有关
我的应用程序使用共享 dll a.dll 和 b.dll(和其他)
a.dll 几乎所有更改(并使用 b.dll)
b.dll 被另一个开发人员更改早上和 a.dll 没有重建。
Depends.exe 没有显示任何丢失的 dll,但是由于对 b.dll 的更改,a.dll 不再起作用
sql-server-ce - Sql Compact 随机产生 AccessViolationException
我在多线程应用程序中运行 Sql Server Compact Edition 3.5.1.0 SP1。应用程序在事务中随机运行插入查询。通过短交易,它可以正常工作。但是当事务变得更长并且执行之间的延迟变得更短或者当我在调试模式下运行应用程序时,SqlCE 开始随机抛出以下异常:
AccessViolationException 试图读取或写入受保护的内存。这通常表明其他内存已损坏。
在 System.Data.SqlServerCe.SqlCeCommand.CompileQueryPlan() 在 System.Data.SqlServerCe.SqlCeCommand.ExecuteCommand(CommandBehavior 行为,字符串方法,ResultSetOptions 选项) 在 System.Data.SqlServerCe.SqlCeCommand.ExecuteNonQuery() 在 SqlCompactTest.TransactedCommandGroupExecutionTest.Test () 在 D:\Projects\PlayGround\SqlCompactTest\SqlCompactTest\TransactedCommandGroupExecutionTest.cs: SqlCompactTest.ExecutionTest.RunTest 的第 53 行 D:\Projects\PlayGround\SqlCompactTest\SqlCompactTest\ExecutionTest.cs: SqlCompactTest.ExecutionTest 的第 60 行D:\Projects\PlayGround\SqlCompactTest\SqlCompactTest\ExecutionTest.cs 中的 .TimerElapsed(Object sender, ElapsedEventArgs e):System.Timers.Timer.MyTimerCallback(Object state) 的第 68 行
我正在运行的代码是:
此代码在两个线程中同时运行。连接字符串是:
我在 Internet 上发现了一些荒谬的解决方案,例如恢复到 Framework 1.1、更改方法参数的顺序、启用/禁用优化等,但它们都不适合我。我还在微软网站上迭代了可能的解决方案,但我找不到适合我的解决方案。我的数据库文件版本是 3.5.0.0。
我该如何解决这个问题?
delphi - 我的应用程序中来自组件的非常奇怪的错误
好的,我的应用程序完成了它应该做的所有事情,并且每次都做同样的事情,所以它好像测试已经过去了,没有那么麻烦。
它并不总是“有时”崩溃。当我将鼠标悬停在我最近输出的打开文件对话框中的文件上时,它会执行此操作。不是立即等待大约半秒到一秒,我知道那是 openfiledialog 显示文件大小和创建时间以及它是什么类型的文档等数据的时候..(标准)鼠标悬停信息.. 事情这是使用“opendialog”,我没有写这段代码所以这个错误不是我做的吗??????如果是如何,如果不是如何/我该怎么做才能阻止它..
错误类型是“地址违反访问”...
打开的文件对话框没有过滤器,并且与组件托盘完全一样,并且在我调用“opendialog.execute”后崩溃
我最初认为它可能仍在写入,但在我停止应用程序打开任何新文件后它继续,直到最后一个完成保存过程。
正如我所说,它甚至不会一直 100% 发生,而且它不是特定于机器的.. 在 3 台不同的 win xp 电脑上崩溃。
帮助!!
额外的; 发现我可以打开并运行该文件,只要我不在我创建的文件上弹出提示框,一切都很好。
delphi - 如何找出导致访问冲突错误的原因?
我收到报告说我的应用程序在某些 Vista 机器上导致了 GPF。错误消息是这样的:
0x75784062 处的访问冲突(试图写入 0x00000006)
为了解决这个问题,我首先需要确切地知道是谁导致了这个 GPF:我的主要 exe、一些第三方组件、我自己的一个 activex 组件、一个 dll 等等......
我怎样才能找到这个?什么工具可以查明导致这种混乱的确切模块?
任何帮助将不胜感激。
PS 我的应用程序是用 VB6 编码的,我的 activex 控件是用 Delphi 2007 编写的。
.net - .NET 下的访问冲突错误的常见原因
我正在寻找 .NET 下访问冲突错误的常见原因。
到目前为止我检查过的东西 -
- 对所有实现 IDisposable 的对象调用 Dispose
- 检查对 COM 对象的调用中的有效参数
- 显式删除所有手动添加的事件处理程序
- 不要明确调用 GC.Collect/GC.WaitForPendingFinalizers
- 处理本机对象(位图等)时添加和删除内存压力(已添加)
- 验证有效参数类型的所有 PInvoke 调用
- 确保正确使用 IntPtr、SafeHandle 和 HandleRef
- 线程(线程安全,可重入函数),正确使用等待句柄。(已添加)
- 确保应用程序和 DLL 都针对相同的平台(x86 或 x64)(应用程序和 dll 的目标应与 COM 对象相同。)(已添加)
还有其他建议吗?
编辑- 将故障转储分析移至不同的问题。