What do the first three columns stand for after entering the following command
uf nt!KiSwapContext ?
Here is the result displayed in the Windbg command prompt:
lkd> uf nt!KiSwapContext
nt!KiSwapContext:
fffff803`5c143fa0 4881ec38010000 sub rsp,138h
fffff803`5c143fa7 488d842400010000 lea rax,[rsp 100h]
fffff803`5c143faf 0f29742430 movaps xmmword ptr [rsp 30h],xmm6
fffff803`5c143fb4 0f297c2440 movaps xmmword ptr [rsp 40h],xmm7
fffff803`5c143fb9 440f29442450 movaps xmmword ptr [rsp 50h],xmm8
fffff803`5c143fbf 440f294c2460 movaps xmmword ptr [rsp 60h],xmm9
fffff803`5c143fc5 440f29542470 movaps xmmword ptr [rsp 70h],xmm10
.....
Taking for example the following line as shown above what does the first three column addresses stand for ? Could someone also recommend a good place to start learning about the output rendered by Windbg if I wanted to try other Windbg commands ?
fffff803`5c143fa0 4881ec38010000 sub rsp,138h
CodePudding user response:
The first column (fffff803`5c143fa0
) is the 64 bit instruction address, the backtick in the middle is only there to make the address easier to read by separating the upper and lower 32 bits of the address. More specifically it's the address of the first byte of the instruction.
The second column (4881ec38010000
) is the bytes that make up the instruction, and the remainder of the line (sub rsp,138h
) is the instruction decoded into the corresponding assembly (Intel syntax).