Ano ang isang DMP file?
Ang DMP file ay pangunahing nauugnay sa MemoryDump o Minidump file format. Ito ay ginagamit sa Microsoft Windows operating system upang mag-imbak ng data na na-dump mula sa memory space ng computer. Karaniwan, ang mga DMP file ay nalilikha kapag nag-crash ang isang file o naganap ang isang error. Kung minsan ang mga DMP file ay napakahalaga para sa mga teknikal na eksperto o advanced na mga gumagamit ng computer upang i-troubleshoot ang mga problemang kinakaharap mo at malutas ang anumang uri ng isyu sa application. Ang mga DMP file ay naka-imbak bilang isang proprietary na format sa Microsoft na ginagamit ng operating system upang i-debug ang anumang application na naka-install sa system.
Teknikal na Detalye ng DMP File Format
Sa Windows, ang tool ng system na “savedump.exe” ay bumubuo ng mga .dmp na file na maaaring iproseso ng iba’t ibang mga kagamitan sa pag-debug na magagamit. Ang mini dump (64/128 Kb) ay iniimbak ng mga bintana sa ‘%SystemRoot%\Minidump’ na direktoryo. Sa kabilang banda, ang kernel memory at full memory dumps ay naka-imbak sa system root bilang ‘Memory.dmp’ file. Ang mga memory dump file ay medyo malalaking file, kaya maaaring tumagal ng sapat na dami ng espasyo sa imbakan. Kaya pinapayuhan na ang mga walang kwentang .dmp file na sa tingin mo ay hindi magiging kapaki-pakinabang para sa pag-troubleshoot ng mga problema pagkatapos ay tanggalin ang mga ito.
Maaari mong tanggalin ang mga .dmp file nang manu-mano o sa pamamagitan ng paggamit ng default na “clean disk wizard” sa iyong computer. Ang mga extension ng DMP ay ginagamit ng mga produkto ng database ng Oracle upang gamitin ang mga .dmp file sa backup at recovery database file na ginawa at ginamit. Ang mga DMP file na nilikha ng Oracle ay mga backup ng database na maaaring magamit para sa pag-import o pagpapanumbalik sa isang tumatakbong instance ng database sa pamamagitan ng isang database server. Sa karamihan ng mga kaso, ang mga .dmp file ay may mga selyo ng oras at petsa bilang kanilang mga filename.
Mga Nilalaman ng DMP File
Ang isang memory dump file ay naglalaman ng:
- Ang stop statement at ang mga parameter nito;
- Isang listahan ng mga naka-load na driver;
- Ang konteksto ng processor (PRCB) para sa mga prosesong nagpahinto sa normal na operasyon ng Windows;
- Ang konteksto ng kernel at impormasyon ng processor (EPROCESSES) para sa mga prosesong nahinto;
- Ang konteksto ng kernel at impormasyon ng processor (ETHREAD) para sa thread na huminto;
- Ang kernel-mode call stack para sa thread na nagtapos sa proseso mula sa pagganap.
Halimbawa ng DMP
Ang stop error 0XC0000218 (Registry_File_Failure) ay lumilikha ng isang DMP file bilang sumusunod:
Symbol search path is: srv*
Executable search path is:
Windows XP Kernel Version 2600 (Service Pack 1) UP Free x86 compatible
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 2600.xpsp2.030422-1633
Kernel base = 0x804d4000 PsLoadedModuleList = 0x80543530
Debug session time: Fri Jun 11 10:22:46 2004
System Uptime: 0 days 0:00:24.187
Loading Kernel Symbols
.................................................
Loading unloaded module list
Loading User Symbols
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck C0000218, {e144c418, 0, 0, 0}
Probably caused by : ntoskrnl.exe ( nt!ExRaiseHardError+13c )
Followup: MachineOwner
---------
kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Unknown bugcheck code (c0000218)
Unknown bugcheck description
Arguments:
Arg1: e144c418
Arg2: 00000000
Arg3: 00000000
Arg4: 00000000
Debugging Details:
------------------
BUGCHECK_STR: 0xc0000218
ERROR_CODE: (NTSTATUS) 0xc0000218 - {Registry File Failure} The registry cannot load the hive (file): %hs or its log or alternate. It is corrupt, absent, or not writable.
DEFAULT_BUCKET_ID: DRIVER_FAULT
LAST_CONTROL_TRANSFER: from 8062be87 to 804f4103
STACK_TEXT:
f96f0870 8062be87 0000004c c0000218 f96f09d4 nt!KeBugCheckEx+0x19
f96f0a20 805e9f96 c0000218 00000001 00000001 nt!ExpSystemErrorHandler+0x44c
f96f0bcc 805ea21c c0000218 00000001 00000001 nt!ExpRaiseHardError+0x9a
f96f0c3c 805fb94c c0000218 00000001 00000001 nt!ExRaiseHardError+0x13c
f96f0dac 805aa2b6 00000000 00000000 00000000 nt!CmpLoadHiveThread+0x16a
f96f0ddc 805319c6 805fb7e2 00000001 00000000 nt!PspSystemThreadStartup+0x34
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16
FOLLOWUP_IP:
nt!ExRaiseHardError+13c
805ea21c 837dfc00 cmp dword ptr [ebp-0x4],0x0
SYMBOL_STACK_INDEX: 3
FOLLOWUP_NAME: MachineOwner
SYMBOL_NAME: nt!ExRaiseHardError+13c
MODULE_NAME: nt
IMAGE_NAME: ntoskrnl.exe
DEBUG_FLR_IMAGE_TIMESTAMP: 3ea80977
STACK_COMMAND: kb
BUCKET_ID: 0xc0000218_nt!ExRaiseHardError+13c
Followup: MachineOwner