一个内存转储文件的分析调试过程

一个内存转储文件的分析调试过程

内核符号表

http://msdn.microsoft.com/zh-cn/windows/hardware/gg463028

 

 

《SQL2012实施与管理指南》P583  十三章 任务调度和CPU问题

当SQL产生重大意外时(服务不响应、崩溃等),会自动产生一个或者几个内存转储文件,这些文件

被称为“dump”。分析SQL产生的DUMP文件,可以帮助我们解决很多关于SQL OS的棘手问题

在很多场合都会有所使用。

为了调试一个SQLSERVER,需要做一些准备工作

1、安装调试器,使用微软提供的windbg

下载地址:https://files.cnblogs.com/lyhabc/winsdk_web.rar

 http://msdn.microsoft.com/en-us/windows/hardware/hh852365

安装完debugging tools for Windows之后,windbg就已经被安装了

 

所谓dump(内存转储),其实就是当时内存状态的一个快照。如果不做任何配置,里面就是一些0101的二进制值,一般是无法读懂的。

为了能够将某个内存地址和某个函数或者变量对应起来,还需要一种东西,叫做符号表(symbol)

 

大家编译自己写的程序时,可以获得两种符号表,共有符号表和私有符号表。出于知识产权保护的原因,微软只是提供了公有符号表供大家下载

对于私有符号表,一般被看作是微软的知识产权和源代码一起被严格保护起来。

今天这里的这些实例只是用微软提供的公有符号表。微软的公有符号表可以在下面的链接下载到:

 http://msdl.microsoft.com/download/symbols

 

1、打开windbg,在file菜单选择open crash dump,打开sqlserver产生的一个dump文件。这些文件会跟errorlog保存在同一个目录下,

一般叫SQLDMPR####.MDMP

 

 1

 

2

3

 

4

5

 6

7

8

9

10

11

12

13

 

 

 

 

 

posted @ 2014-05-25 16:02  桦仔  阅读(2608)  评论(0编辑  收藏  举报