admin 管理员组文章数量: 887021
这两天改了一个socket转发程序,并做成了Windows服务,在IDE里面调试的时候,好好的,运行什么的都很稳定,但是,安装成Windows服务后,运行很快就崩溃了。
通过命令行运行,错误的信息为:服务由于未知的错误停止或未能启动,错误代码:1067.若干次都是这样。
通过查看Windows的系统信息,查看Windows应用程序日志,相关的错误信息:
日志名称: Application
来源: Application Error
日期: 2015-11-05 16:39:53
事件 ID: 1000
任务类别: (100)
级别: 错误
关键字: 经典
用户: 暂缺
计算机:
描述:
错误应用程序名称: .exe,版本: 1.0.0.1,时间戳: 0x563b157b
错误模块名称: ntdll.dll,版本: 6.1.7601.17514,时间戳: 0x4ce7ba58
异常代码: 0xc0000008
错误偏移量: 0x00082865
错误进程 ID: 0x1258
错误应用程序启动时间: 0x01d117a58a23fabf
错误应用程序路径:
错误模块路径: C:\windows\SysWOW64\ntdll.dll
报告 ID: c82a4f59-8398-11e5-afcb-ecf4bb702d97
事件 Xml:
ntdll.dll是Windows NT内核的一个核心动态链接库。这个库出的问题,其实很大的原因可能怀疑是不是把系统搞崩溃了。
但是,可能Windows没有想象的那么糟糕,这个Windows的产生是由于我代码中变量未初始化造成的,这个变量还是个临界区。这个变量是动态分配的空间,然后分配完了,当时忘记初始化了,之后再调试的时候,使用IDE在debug和Release的情况下都能正常运行,但是做成服务,安装到Windows系统中之后,一运行就崩溃了。若干次。后来问题排查,将此变量初始化之后,就OK了。
总结:程序中的变量一定要在使用之前进行初始化,否者出现了莫名其妙的崩溃,你都不知道是哪里出的错误。
这半天的调试,也知道了,调试代码一定不能心急,但是也不能盲目,想无头苍蝇一样,自己的看错误的信息,自己的检查代码,会大大提高效率。
版权声明:本文标题:Windows系统错误1001 2015-11-06 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1729009116h1306380.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论