我的 Delphi 程序作为 NT 服务运行,并且已经正常运行了 2 个多月,然后突然停止并生成故障转储:
Faulting application name: tca_shctisvc_ip.exe, version: 7.1.0.1843, time stamp: 0x2a425e19 Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000 Exception code: 0xc0000005 Fault offset: 0x00000000
根据 Windows 事件日志中的信息,没有可以使用的真实地址。我能够将迷你转储加载到 WinDbg 中,它说存在异常,但发现堆栈帧存在问题。另一个工具(Viewminidump)能够向我显示正在运行的线程的堆栈。
我从哪里开始解决这个问题?
最佳答案
异常代码0xc0000005
是访问冲突。错误偏移 0x00000000
的 AV 意味着您的服务代码中的某些内容正在访问 nil
指针。您只需在服务运行时对其进行调试即可找出它正在访问的内容。如果无法在调试器中运行它,那么至少安装第三方异常记录器框架,例如 EurekaLog或MadExcept ,了解您的服务在 AV 发生时正在做什么。
关于delphi - 当我的程序在地址 0 处崩溃并出现异常 0xc0000005 时,我该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14949904/