NAME=: DMP64 Check
FILE=bins/dmp/bmp.dmp
CMDS=i~format
EXPECT=<<EOF
format   dmp64
EOF
RUN

NAME=: DMP64 Info
FILE=bins/dmp/bmp.dmp
CMDS=iI
EXPECT=<<EOF
arch     x86
cpu      N/A
baddr    ----------
binsz    0x05455038
bintype  dmp64
bits     64
retguard false
class    N/A
compiler N/A
dbg_file N/A
endian   LE
hdr.csum N/A
guid     N/A
intrp    N/A
laddr    0x00000000
lang     N/A
machine  AMD64
maxopsz  16
minopsz  1
os       Unknown
cc       N/A
pcalign  0
rpath    N/A
subsys   
stripped false
crypto   false
havecode true
va       true
sanitiz  false
static   true
linenum  false
lsyms    false
canary   false
PIE      false
RELROCS  false
NX       false
EOF
RUN

NAME=: DMP header & bmp header
FILE=bins/dmp/bmp.dmp
CMDS=iH
EXPECT=<<EOF
DUMP_HEADER64:
  MajorVersion : 0x0000000f
  MinorVersion : 0x000047ba
  DirectoryTableBase : 0x00000000006d4002
  PfnDataBase : 0xfffff80510c22468
  PsLoadedModuleList : 0xfffff80510af62f0
  PsActiveProcessHead : 0xfffff80510ae6980
  MachineImageType : 0x00008664
  NumberProcessors : 0x00000001
  BugCheckCode : 0x00000000 (Not a crash)
  BugCheckParameter1 : 0x0000000000000000
  BugCheckParameter2 : 0x0000000000000000
  BugCheckParameter3 : 0x0000000000000000
  BugCheckParameter4 : 0x0000000000000000
  KdDebuggerDataBlock : 0xfffff80510ad45e0
  SecondaryDataState : 0x45474150
  ProductType : 0x45474150
  SuiteMask : 0x45474150

BITMAP_DUMP:
  HeaderSize : 0x0000a038
  BitmapSize : 0x00040000
  Pages : 0x0000544b
EOF
RUN

NAME=: DMP BMP Page maps
FILE=bins/dmp/bmp.dmp
CMDS=oml~?
EXPECT=<<EOF
398
EOF
RUN

NAME=: Resolve vaddr
FILE=bins/dmp/bmp.dmp
CMDS=px 64 @ 0x1000
EXPECT=<<EOF
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00001000  0000 0000 0000 0000 0000 f9ff 0000 0000  ................
0x00001010  0006 0101 0000 0000 0000 0000 0000 0000  ................
0x00001020  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x00001030  0000 0000 0000 0000 0000 0000 0000 0000  ................
EOF
RUN

NAME=: Triage Dump Debug x64
FILE=dmp://bins/dmp/triage_x64.dmp
CMDS=<<EOF
%RZ_CURL=1
e pdb.server=https://raw.githubusercontent.com/rizinorg/test-pdb-repository/main/
e cfg.debug=1
iH
dl dmp
dpa
dr
s rip
e asm.sub.names=false
pi 4
dbt
EOF
EXPECT=<<EOF
DUMP_HEADER64:
  MajorVersion : 0x0000000f
  MinorVersion : 0x00004a61
  DirectoryTableBase : 0x00000000001ad000
  PfnDataBase : 0xfffff8047c6fc500
  PsLoadedModuleList : 0xfffff8047c62a390
  PsActiveProcessHead : 0xfffff8047c61e200
  MachineImageType : 0x00008664
  NumberProcessors : 0x00000010
  BugCheckCode : 0x1000007e (SYSTEM_THREAD_EXCEPTION_NOT_HANDLED_M)
  BugCheckParameter1 : 0xffffffffc0000005
  BugCheckParameter2 : 0xfffff8048b58334c
  BugCheckParameter3 : 0xffff850429891ee8
  BugCheckParameter4 : 0xffff850429891720
  KdDebuggerDataBlock : 0xfffff8047c600b20
  SecondaryDataState : 0x45474150
  ProductType : 0x00000001
  SuiteMask : 0x00000110

TRIAGE_DUMP64:
  ServicePackBuild : 0x00000000
  SizeOfDump : 0x0013a28c
  ValidOffset : 0x0013a288
  ContextOffset : 0x00000348
  ExceptionOffset : 0x00000f00
  MmOffset : 0x00002080
  UnloadedDriversOffset : 0x000020d0
  PrcbOffset : 0x000021b8
  ProcessOffset : 0x0000d0b8
  ThreadOffset : 0x0000daf8
  CallStackOffset : 0x0000e390
  SizeOfCallStack : 0x00002118
  DriverListOffset : 0x00010828
  DriverCount : 0x00000097
  StringPoolOffset : 0x00015d18
  StringPoolSize : 0x00003720
  BrokenDriverOffset : 0x00000000
  TriageOptions : 0xffffffff
  TopOfStack : 0xffff850429890ee8
  BStoreOffset : 0x00000000
  SizeOfBStore : 0x00000000
  LimitOfBStore : 0x0000000000000000
  DataPageAddress : 0x0000000000000000
  DataPageOffset : 0x00000000
  DataPageSize : 0x00000000
  DebuggerDataOffset : 0x000104a8
  DebuggerDataSize : 0x00000380
  DataBlocksOffset : 0x00019438
  DataBlocksCount : 0x00000727
mxcsr = 0x00001f80
rflags = 0x00040286
rax = 0xffff850429891720
rcx = 0x0000007e
rdx = 0xffffffffc0000005
rbx = 0xfffff8047ba82b68
rsp = 0xffff850429890ee8
rbp = 0xffff850429892c10
rsi = 0x00000000
rdi = 0x00000000
r8 = 0xfffff8048b58334c
r9 = 0xffff850429891ee8
r10 = 0xffff850429891ee8
r11 = 0xffff8afd53400000
r12 = 0xffff850429892c10
r13 = 0xffff850429891ee8
r14 = 0xffff850429891560
r15 = 0xfffff8047ba00000
rip = 0xfffff8047bdf5a80
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
0  0xfffff8047bdf5a80 sp: 0xffff850429890ee8  0    [??]  pdb.ntkrnlmp.KeBugCheckEx pdb.ntkrnlmp.KeBugCheckEx0
1  0xfffff8047be0f4e1 sp: 0xffff850429890ef0  56   [??]  pdb.ntkrnlmp.string_::3655334267::_Kernel_MUI_Lang_::1575215452+5649 
2  0xfffff8047bdcc052 sp: 0xffff850429890f30  104  [??]  pdb.ntkrnlmp.__C_specific_handler+162 
3  0xfffff8047bdfe942 sp: 0xffff850429890fa0  40   [??]  pdb.ntkrnlmp.RtlpExecuteHandlerForException+18 
4  0xfffff8047bd2bf97 sp: 0xffff850429890fd0  1816 [??]  pdb.ntkrnlmp.RtlDispatchException+663 
5  0xfffff8047bd2ab86 sp: 0xffff8504298916f0  1720 [??]  pdb.ntkrnlmp.KiDispatchException+390 
6  0xfffff8047be07bac sp: 0xffff850429891db0  472  [??]  pdb.ntkrnlmp.KiExceptionDispatch+300 
7  0xfffff8047be031f5 sp: 0xffff850429891f90  400  [??]  pdb.ntkrnlmp.KiSegmentNotPresentFault+821 
8  0xfffff8048b58334c sp: 0xffff850429892120  40   [??]  pdb.amdppm.WriteIoMemRawEx+112 
9  0xfffff8048b58313f sp: 0xffff850429892150  40   [??]  pdb.amdppm.WriteGenAddrEx+107 
10  0xfffff8048b583234 sp: 0xffff850429892180  40   [??]  pdb.amdppm.WriteGenAddrMaybeHiddenEx+24 
11  0xfffff8048b5a0e8f sp: 0xffff8504298921b0  88   [??]  pdb.amdppm.InitAcpiCpc+791 
12  0xfffff8048b5a83f6 sp: 0xffff850429892210  296  [??]  pdb.amdppm.ProcLibDeviceStart+2182 
13  0xfffff8048b59f852 sp: 0xffff850429892340  56   [??]  pdb.amdppm.EvtDevicePrepareHardware+210 
14  0xfffff804799cc027 sp: 0xffff850429892380  72   [??]  pdb.Wdf01000.protected_virtual:_long_int___cdecl_FxPnpDevicePrepareHardware::InvokeClient_void____ptr64+39 
15  0xfffff80479966f81 sp: 0xffff8504298923d0  56   [??]  pdb.Wdf01000.public:_long_int___cdecl_FxPrePostCallback::InvokeStateful_enum_FxCxCallbackProgress_____ptr64__enum_FxCxCallbackCleanupAction____ptr64+105 
16  0xfffff804799cb227 sp: 0xffff850429892410  72   [??]  pdb.Wdf01000.protected:_long_int___cdecl_FxPkgPnp::PnpPrepareHardware_unsigned_char_____ptr64__enum_FxCxCallbackProgress_____ptr64____ptr64+223 
17  0xfffff804799c9e21 sp: 0xffff850429892460  56   [??]  pdb.Wdf01000.protected:_static_enum__WDF_DEVICE_PNP_STATE___cdecl_FxPkgPnp::PnpEventHardwareAvailable_class_FxPkgPnp_____ptr64+81 
18  0xfffff804799c99da sp: 0xffff8504298924a0  136  [??]  pdb.Wdf01000.protected:_void___cdecl_FxPkgPnp::PnpEnterNewState_enum__WDF_DEVICE_PNP_STATE____ptr64+350 
19  0xfffff804799cb6b1 sp: 0xffff850429892530  104  [??]  pdb.Wdf01000.protected:_void___cdecl_FxPkgPnp::PnpProcessEventInner_struct_FxPostProcessInfo_____ptr64____ptr64+465 
20  0xfffff804799cb47a sp: 0xffff8504298925a0  136  [??]  pdb.Wdf01000.public:_void___cdecl_FxPkgPnp::PnpProcessEvent_enum_FxPnpEvent__unsigned_char____ptr64+386 
21  0xfffff804799d299e sp: 0xffff850429892630  40   [??]  pdb.Wdf01000.protected:_static_long_int___cdecl_FxPkgPnp::_PnpStartDevice_class_FxPkgPnp_____ptr64__class_FxIrp_____ptr64+30 
22  0xfffff8047995cc5f sp: 0xffff850429892660  104  [??]  pdb.Wdf01000.protected_virtual:_long_int___cdecl_FxPkgPnp::Dispatch_struct__IRP_____ptr64____ptr64+175 
23  0xfffff8047995a866 sp: 0xffff8504298926d0  88   [??]  pdb.Wdf01000.public:_static_long_int___cdecl_FxDevice::DispatchWithLock_struct__DEVICE_OBJECT_____ptr64__struct__IRP_____ptr64+342 
24  0xfffff8047bc52f55 sp: 0xffff850429892730  56   [??]  pdb.ntkrnlmp.IofCallDriver+85 
25  0xfffff8047c1548a6 sp: 0xffff850429892770  56   [??]  pdb.ntkrnlmp.PnpAsynchronousCall+234 
26  0xfffff8047bce0d1e sp: 0xffff8504298927b0  104  [??]  pdb.ntkrnlmp.PnpSendIrp+158 
27  0xfffff8047bd6ab7c sp: 0xffff850429892820  136  [??]  pdb.ntkrnlmp.PnpStartDevice+136 
28  0xfffff8047c123760 sp: 0xffff8504298928b0  136  [??]  pdb.ntkrnlmp.PnpStartDeviceNode+236 
29  0xfffff8047c12362f sp: 0xffff850429892940  72   [??]  pdb.ntkrnlmp.PipProcessStartPhase1+115 
30  0xfffff8047c126bdd sp: 0xffff850429892990  200  [??]  pdb.ntkrnlmp.PipProcessDevNodeTree+793 
31  0xfffff8047c1bdf0c sp: 0xffff850429892a60  72   [??]  pdb.ntkrnlmp.PiProcessStartSystemDevices+96 
32  0xfffff8047bd6c2ec sp: 0xffff850429892ab0  184  [??]  pdb.ntkrnlmp.PnpDeviceActionWorker+1228 
33  0xfffff8047bc25975 sp: 0xffff850429892b70  152  [??]  pdb.ntkrnlmp.ExpWorkerThread+261 
34  0xfffff8047bd17e25 sp: 0xffff850429892c10  72   [??]  pdb.ntkrnlmp.PspSystemThreadStartup+85 
35  0xfffff8047bdfd0d8 sp: 0xffff850429892c60  40   [??]  pdb.ntkrnlmp.KiStartSystemThread+40 
36  0x0                sp: 0xffff850429892c90  0    [??]   
EOF
RUN

NAME=: Triage Dump Debug arm64
FILE=dmp://bins/dmp/triage_arm64.dmp
CMDS=<<EOF
%RZ_CURL=1
e pdb.server=https://raw.githubusercontent.com/rizinorg/test-pdb-repository/main/
e cfg.debug=1
iH
dl dmp
dpa
dr
s pc
e asm.sub.names=false
pi 4
dbt
EOF
EXPECT=<<EOF
DUMP_HEADER64:
  MajorVersion : 0x0000000f
  MinorVersion : 0x000055f0
  DirectoryTableBase : 0x00000000946aa000
  PfnDataBase : 0xfffff803f3b19960
  PsLoadedModuleList : 0xfffff803f3a2aa20
  PsActiveProcessHead : 0xfffff803f3a1d1c0
  MachineImageType : 0x0000aa64
  NumberProcessors : 0x00000008
  BugCheckCode : 0x000001c8 (MANUALLY_INITIATED_POWER_BUTTON_HOLD)
  BugCheckParameter1 : 0x0000000000001b58
  BugCheckParameter2 : 0xfffff803f3a20860
  BugCheckParameter3 : 0x0000000000000000
  BugCheckParameter4 : 0x0000000000000000
  KdDebuggerDataBlock : 0xfffff803f3a00d00
  SecondaryDataState : 0x45474150
  ProductType : 0x00000001
  SuiteMask : 0x00000110

TRIAGE_DUMP64:
  ServicePackBuild : 0x00000000
  SizeOfDump : 0x000ac46c
  ValidOffset : 0x000ac468
  ContextOffset : 0x00000348
  ExceptionOffset : 0x00000f00
  MmOffset : 0x00002080
  UnloadedDriversOffset : 0x000020d0
  PrcbOffset : 0x00002340
  ProcessOffset : 0x0000b9c0
  ThreadOffset : 0x0000c640
  CallStackOffset : 0x0000cf50
  SizeOfCallStack : 0x00000b60
  DriverListOffset : 0x0000de30
  DriverCount : 0x000000f5
  StringPoolOffset : 0x00016800
  StringPoolSize : 0x00006eb0
  BrokenDriverOffset : 0x00000000
  TriageOptions : 0xffffffff
  TopOfStack : 0xffffe00e0e4bc4a0
  BStoreOffset : 0x00000000
  SizeOfBStore : 0x00000000
  LimitOfBStore : 0x0000000000000000
  DataPageAddress : 0x0000000000000000
  DataPageOffset : 0x00000000
  DataPageSize : 0x00000000
  DebuggerDataOffset : 0x0000dab0
  DebuggerDataSize : 0x00000380
  DataBlocksOffset : 0x0001d6b0
  DataBlocksCount : 0x000002a7
cpsr = 0x80000144
x0 = 0x00000000
x1 = 0x00000001
x2 = 0xffffffffffffff80
x3 = 0xfffff803f3a36aa0
x4 = 0x00000000
x5 = 0x00000000
x6 = 0xfffff803f3a16000
x7 = 0x0000064d
x8 = 0x00000000
x9 = 0xfffff803f3a2d000
x10 = 0x00008000
x11 = 0xffffe00e0e4bd000
x12 = 0xffffe00e0e4b5000
x13 = 0x00000017
x14 = 0x00124925
x15 = 0x00000fff
x16 = 0x80000001
x17 = 0x6402a279369a
x18 = 0xfffff803efd00000
x19 = 0xfffff803efd00980
x20 = 0x00000001
x21 = 0x00000001
x22 = 0x00000000
x23 = 0x00000000
x24 = 0x00000000
x25 = 0x00001b58
x26 = 0xfffff803f3a20860
x27 = 0x00000000
x28 = 0x00000000
fp = 0xffffe00e0e4bc4a0
lr = 0x00000000
sp = 0xffffe00e0e4bc4a0
pc = 0xfffff803f32de014
fpcr = 0x00000000
fpsr = 0x00000010
add x0, x19, 0x40
bl 0xfffff803f318f560
adrp x8, 0xfffff803f3a23000
ldr x11, [x8, 0xa40]
0  0xfffff803f32de014 sp: 0xffffe00e0e4bc4a0  0    [??]  pdb.ntkrnlmp.KeBugCheck2+452 
1  0xfffff803f33442a0 sp: 0xffffe00e0e4bc4b0  1632 [??]  pdb.ntkrnlmp.PopPowerButtonWorkCallback+752 
2  0xfffff803f309ff1c sp: 0xffffe00e0e4bcb20  432  [??]  pdb.ntkrnlmp.ExpWorkerThread+460 
3  0xfffff803f3173340 sp: 0xffffe00e0e4bcce0  80   [??]  pdb.ntkrnlmp.PspSystemThreadStartup+80 
4  0xfffff803f3007de4 sp: 0xffffe00e0e4bcd40  0    [??]  pdb.ntkrnlmp.KiStartSystemThread+36 
EOF
RUN

NAME=: Bitmap Dump Debug
FILE=dmp://bins/dmp/bmp.dmp
CMDS=<<EOF
%RZ_CURL=1
e pdb.server=https://raw.githubusercontent.com/rizinorg/test-pdb-repository/main/
iH
dl dmp
dpa
e cfg.debug=1
dr
s rip
e asm.sub.names=false
pi 4
dbt
EOF
EXPECT=<<EOF
DUMP_HEADER64:
  MajorVersion : 0x0000000f
  MinorVersion : 0x000047ba
  DirectoryTableBase : 0x00000000006d4002
  PfnDataBase : 0xfffff80510c22468
  PsLoadedModuleList : 0xfffff80510af62f0
  PsActiveProcessHead : 0xfffff80510ae6980
  MachineImageType : 0x00008664
  NumberProcessors : 0x00000001
  BugCheckCode : 0x00000000 (Not a crash)
  BugCheckParameter1 : 0x0000000000000000
  BugCheckParameter2 : 0x0000000000000000
  BugCheckParameter3 : 0x0000000000000000
  BugCheckParameter4 : 0x0000000000000000
  KdDebuggerDataBlock : 0xfffff80510ad45e0
  SecondaryDataState : 0x45474150
  ProductType : 0x45474150
  SuiteMask : 0x45474150

BITMAP_DUMP:
  HeaderSize : 0x0000a038
  BitmapSize : 0x00040000
  Pages : 0x0000544b
mxcsr = 0x00001f80
rflags = 0x00040202
rax = 0x00000003
rcx = 0x00000001
rdx = 0xfffff805135684d0
rbx = 0xfffff8050f4e9f70
rsp = 0xfffff805135684f8
rbp = 0xfffff80513568600
rsi = 0x00000100
rdi = 0xfffff8050f4e9f80
r8 = 0x00000003
r9 = 0xfffff805135684b8
r10 = 0x00000000
r11 = 0xffffa8848825e000
r12 = 0xfffff8050f4e9f80
r13 = 0xfffff80510c3c958
r14 = 0x00000000
r15 = 0x00000052
rip = 0xfffff805108776a0
int3
ret
int3
int3
0  0xfffff805108776a0 sp: 0xfffff805135684f8  0    [??]  pdb.ntkrnlmp.RtlpBreakWithStatusInstruction pdb.ntkrnlmp.RtlpBreakWithStatusInstruction0
1  0xfffff805110dd222 sp: 0xfffff80513568500  568  [??]  pdb.ntkrnlmp.string_::2500419057::__Device_Ramdisk_::253687359+25426 
2  0xfffff80510c50204 sp: 0xfffff80513568740  776  [??]  pdb.ntkrnlmp.KiInitializeKernel+1364 
3  0xfffff80510c45219 sp: 0xfffff80513568a50  1448 [??]  pdb.ntkrnlmp.KiSystemStartup+521 
4  0x0                sp: 0xfffff80513569000  0    [??]   
EOF
RUN
