![]() |
1
17
64位时间戳是应用程序的主线程自1601年1月1日(UTC)以来以100纳秒的间隔创建的时间(这称为
我想说,0x0002d160是模块加载地址的偏移量(对于绝对地址来说,它似乎太低了)。启动Visual Studio,启动调试器,查看“模块”调试窗口。您的exe文件应该列在那里。找到加载模块的地址,将0x0002D160添加到该地址,并查看结果地址处的反汇编。Visual Studio显示的源代码与程序集混合在一起,您应该可以毫无问题地确定是什么源代码行导致了该问题。 |
![]() |
2
7
你用这些信息做验尸工作的能力不多。 有用的信息位是异常代码0xC0000005,在这种情况下,它只是表示访问冲突。因此,您取消了空值或其他一些您不拥有的内存。 我怀疑,fault offset是加载到内存中的dll的偏移量,因此理论上可以将其添加到基地址并找到有问题的代码,但我不确定。 调试此项的最佳选择是下次在调试器中捕获它。你可以使用 Image File Execution Options 在 debugger .确保您已经准备好了符号(如果您当前正在使用版本,请考虑构建调试)。 |
![]() |
3
6
调试上帝约翰·罗宾斯构建了一个叫做故障查找器的小工具来帮助处理这样的情况: https://www.wintellect.com/crashfinder-2-8-yes-native-code-still-lives/ 保存发布给公众的每个构建的PDB始终是一个好主意(这听起来像是一个仅在私有环境中使用的工具,但最好保留PDB符号以用于最新的构建)。 |
![]() |
4
1
看起来这里仍然没有很好的答案,如果崩溃发生在开发环境之外怎么办? 我认为偏移集是汇编代码崩溃的地址。 但您需要知道该dll的程序集代码的起始位置。或者您可能不需要知道起始地址,因为您可以使用汇编工具打开dll,并通过向起始地址添加偏移量来查找汇编代码。 |
![]() |
hdw3 · 文本视图。片段崩溃应用程序中的setText() 6 年前 |
![]() |
Michael Hutter · 乌龟冻结悬挂碰撞 6 年前 |
![]() |
RMP · 什么是mqt\U native\u模块以及如何处理其崩溃 6 年前 |
![]() |
3c71 · getView()在getDrawable()中崩溃 6 年前 |
![]() |
Riccardo Perego · Swift设置值为空可选产量失败 7 年前 |