中国服务器网

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

在Windows中分析崩溃:错误消息告诉我们什么?

我个人使用的一个小实用工具(用C ++编写)昨天随机地崩溃了(我用了大约100多个小时,目前为止没有问题),虽然我通常不这样做,但我感觉有点冒险的,并想尝试和了解更多的问题。 我决定进入事件查看器,看看Windows已经logging了有关崩溃的信息: Faulting application StraightToM.exe, version 0.0.0.0, time stamp 0x4a873d19 Faulting module name : StraightToM.exe, version 0.0.0.0, time stamp 0x4a873d19 Exception code : 0xc0000005 Fault offset : 0x0002d160, Faulting process id: 0x17b4 Faulting application start time: time 0x01ca238d9e6b48b9. 我的问题是,这些事情都意味着什么,我将如何使用这些来debugging我的程序? 以下是我迄今为止所了解的内容:exception代码描述错误,而0xc0000005是内存访问冲突(试图访问它不拥有的内存)。 我特别想知道更多关于以下内容: 错误抵消是什么意思? 这是否代表文件中发生错误的位置,还是代表发生错误的程序集“行”? 知道错误偏移量,我将如何使用像OllyDbg这样的程序来查找导致错误的相应汇编代码? 或者 – 甚至更好 – 是否可以(容易地)确定C ++源代码中的哪一行导致了这个错误? 很明显,时间戳对应于崩溃时的32位UNIX时间,但64位应用程序的启动时间意味着什么? 如果时间标记是32,为什么它是64位呢? 请注意,我主要是一个C ++程序员,所以虽然我知道关于程序集的一些东西,但是我对它的了解非常有限。 […]