You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.1 KiB
43 lines
1.1 KiB
#include "windows.h"
|
|
#define KDEXT_64BIT
|
|
#include "wdbgexts.h"
|
|
#include "stdlib.h"
|
|
#include "stdio.h"
|
|
#include "fusiondbgext.h"
|
|
|
|
DECLARE_API( actctxstack )
|
|
{
|
|
try
|
|
{
|
|
|
|
ULONG64 ulTebAddress = 0;
|
|
ULONG ulStackFlags = 0;
|
|
ULONG64 ulTopOfRtlFrameList = 0;
|
|
ULONG ulNextCookie = 0;
|
|
|
|
GetTebAddress( &ulTebAddress );
|
|
|
|
GetFieldValue( ulTebAddress, "nt!TEB", "ActivationContextStack.Flags", ulStackFlags );
|
|
GetFieldValue( ulTebAddress, "nt!TEB", "ActivationContextStack.ActiveFrame", ulTopOfRtlFrameList );
|
|
GetFieldValue( ulTebAddress, "nt!TEB", "ActivationContextStack.NextCookieSequenceNumber", ulNextCookie );
|
|
|
|
dprintf(
|
|
"Current activation stack information in TEB %p:\n"
|
|
" Flags : 0x%08lx\n"
|
|
" ActiveFrame : 0x%p\n"
|
|
" NextCookieSequence : 0x%08lx\n",
|
|
ulTebAddress,
|
|
ulStackFlags,
|
|
ulTopOfRtlFrameList,
|
|
ulNextCookie);
|
|
|
|
DumpActCtxStackFullStack( ulTopOfRtlFrameList );
|
|
|
|
}
|
|
catch (const COutOfMemory &)
|
|
{
|
|
dprintf("Out of memory\n");
|
|
}
|
|
}
|
|
|
|
|