【问题标题】:"Assertion failed!" error when exiting program (HDF5 1.8.6)“断言失败!”退出程序时出错 (HDF5 1.8.6)
【发布时间】:2011-08-31 23:28:12
【问题描述】:

我在 Windows7 32 位系统上通过数据采集 C#/.Net 应用程序使用 HDF5 1.8.6(使用 HDFDotNet 包装器)。

在发生以下行为后退出应用程序时,我注意到一个运行时错误(AssertionFailed)弹出窗口:

1.) 我在 USB 驱动器(或网络共享驱动器)上打开一个 HDF5 文件 2.) 我开始采样数据并将其存储到 HDF5 文件中。 3.)我(粗鲁地)移除USB驱动器(或断开网络共享驱动器) 4.) 处理写异常(看起来很恰当……没有崩溃) 5.) 我关闭应用程序。

此时我收到错误消息,其中提到 File:......\src\H5F.c(第 1737 行)和“Expression: f->file_id>0”

我假设 HDF5 库正在尝试清理某些内容,并且对找不到它正在使用的文件感到困惑……但它似乎仍然应该能够在无法恢复时恢复。我错过了什么吗?

谢谢!

乔什·安德森

【问题讨论】:

    标签: c# hdf5 assertion


    【解决方案1】:

    我敢打赌,HDF5 有一个关闭/退出/关机功能,您应该在退出之前调用它。

    【讨论】:

    • 感谢您的快速响应。看起来好像最新版本 (1.8.7) 确实提供了对执行此操作的方法 (H5.close) 的访问。它没有列在“1.8.7 中的新功能”列表中,但查看源代码确实似乎在那里。我会试一试。谢谢!
    • 我能够调用 H5.close 方法(如前所述),它似乎确实解决了问题。谢谢!!
    • 说得太早了:我现在在调用 H5.close 时收到“System.AccessViolationException was unhandled”(它只是在 HDF5 中调用 H5close)
    猜你喜欢
    • 2020-08-25
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多