【问题标题】:'Access violation' when running application through Visual Studio通过 Visual Studio 运行应用程序时出现“访问冲突”
【发布时间】:2015-10-26 13:37:14
【问题描述】:

当我从 Visual Studio 中运行我的命令行应用程序时,一个命令总是失败并出现以下错误:

The program '[7316] MyProgram.vshost.exe' has exited with code -1073741819 (0xc0000005) 'Access violation'.

当我调试代码时,这发生在最后一个执行行之后。意味着应用程序正确执行其功能但随后崩溃。当我构建项目并在命令行中运行 exe 文件时,我没有收到任何错误,并且工作正常。

该项目使用第 3 方 dll,而 AFAIK 又调用 C 或 C++ dll,例如。 .Net 中没有编码的东西。

我的问题:我可以忽略这个错误,因为应用程序在构建时可以正常工作吗?如果不是,可能是什么潜在问题,我该如何解决?

【问题讨论】:

  • 在不知道为什么首先发生访问冲突的情况下,任何人都无法安全地回答这个问题。可能是 dll 在附加调试器时崩溃,但在不知道这些情况的情况下,没有人能在没有猜测的情况下说是或否。
  • 应用程序在构建时运行良好 - 所以你做了测试。所以你可以忽略。

标签: c# visual-studio debugging access-violation


【解决方案1】:

我可以忽略这个错误,因为应用程序在构建时可以正常工作吗?

我不会忽视这个问题。如果您的应用程序在关闭期间失败,则在破坏对象并将句柄返回给 Windows(很可能是后者)时可能有问题。这最终可能会让您进入生产场景。

如果不是,可能是什么潜在问题,我该如何解决?

如前所述,我认为释放句柄是问题所在。如果您使用一些用 C++ 编写的第三方 DLL,则可能存在问题。尝试设置一些日志记录并查看异常的堆栈跟踪是什么。这可能会让您了解问题的根源。也许这甚至是您可以向 DLL 供应商报告的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    相关资源
    最近更新 更多