delphi - 当我的程序在地址 0 处崩溃并出现异常 0xc0000005 时,我该怎么办?

标签 delphi debugging crash

我的 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 指针。您只需在服务运行时对其进行调试即可找出它正在访问的内容。如果无法在调试器中运行它,那么至少安装第三方异常记录器框架,例如 EurekaLogMadExcept ,了解您的服务在 AV 发生时正在做什么。

关于delphi - 当我的程序在地址 0 处崩溃并出现异常 0xc0000005 时,我该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14949904/

相关文章:

html - 如何在 TImage 上显示 Div 背景图像

德尔福:idHttp+SSL

MetroGridHelper 的 Android 替代品

crash - libevent-2.1.4-alpha,启用IOCP初始化时服务器无法接收连接事件

json - Delphi:将 JSON 数组添加到 JSON 对象

debugging - gdb:寄存器值为 0xffaa 时的断点

c# - 异常处理帮助

python-2.7 - 当我的 PyQt 窗口变为非事件状态/调整大小时,为什么 Python 会崩溃?

c - 从类型 'char[50]' 分配给类型 'char *' 时,类型不兼容

delphi - 浮点 double 常数被视为扩展