In order to create user mode dump, it is using Dbghelp.dll and this is why dbghelp.dll exists in the same folder.
For uploading, SQLDumper is using Watson client program (DW20.EXE, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PCHealth\ErrorReporting\DW\Installed)
Here is the SQLDumper usage help. (sqldumper.exe -?)
There are quite a few options for SQLDumper.exe but generally we use a few arguments.
(You see some Ptr arguments such as SqlInfoPtr, ExceptionRecordPtr, these are for internal use. Some SQL tools calls sqldumper and passes some contextual pointers)
To show simple case, here is how to create mini dump for SQL service.
(1) Let’s say we found PID (368) for SQL Server service by using tlist.exe.
(Technically it can dump any user process but the example focuses on SQL related process)
C:\Program Files\Microsoft SQL Server\100\Shared> tlist /s 0 System Process 4 System 368 sqlservr.exe Svcs: MSSQLSERVER 7636 SQLAGENT.EXE Svcs: SQLSERVERAGENT 3548 Ssms.exe Title: Microsoft SQL Server Management Studio …….
(2) Now run SQLDUMPER.EXE as below. 368 is PID for sqlservr.exe and 0 means not specifying particular thread. 0x130 is OR combination of 0x100 (Verbose display to console) and 0x20 (dump all threads info).
(You can check those FLAGS in usage help as seen above.)
If you want to all memory dump, then you can specify 0x130 instead of 0x120. You can specify 0x1000 for full dump, and 0x400 to send to Watson site. Developers like to have full dump since it has more information but the dump file is way bigger, so not always good. Once ran successfully, in this case(see output below), the SQLDumpr0008.dmp was generated in the current folder.
(You can check those FLAGS in usage help as seen above.)
If you want to all memory dump, then you can specify 0x130 instead of 0x120. You can specify 0x1000 for full dump, and 0x400 to send to Watson site. Developers like to have full dump since it has more information but the dump file is way bigger, so not always good. Once ran successfully, in this case(see output below), the SQLDumpr0008.dmp was generated in the current folder.
C:\Program Files\Microsoft SQL Server\100\Shared> Sqldumper 368 0 0x120
If you look at the usage help, you can see MiniDumpFlags. This gives more options for mini dump.
In simple case above, the option was 0x120 and with this option Handle information was not generated.
0:000> !handle ERROR: !handle: extension exception 0x80004002. "Unable to read handle information"
C:\Program Files\Microsoft SQL Server\100\Shared> SqlDumper 368 0 0x120:4
0:000> !handle 00000b38 7 Handle 00000b38 Type File Attributes 0 GrantedAccess 0x120089: ReadControl,Synch Read/List,ReadEA,ReadAttr HandleCount 2 PointerCount 3
No comments:
Post a Comment