From 81321ac0c103cfc97b583f69566ec57ce90fdc4a Mon Sep 17 00:00:00 2001 From: "SND\\kernelnet_cp" Date: Wed, 30 Jul 2014 17:26:57 +0000 Subject: [PATCH] [0.3.x] updated : stkdelta.py git-svn-id: https://pykd.svn.codeplex.com/svn@88869 9b283d60-5439-405e-af05-b73fd8c4d996 --- snippets/stkdelta.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/snippets/stkdelta.py b/snippets/stkdelta.py index d652ff0..ea30069 100644 --- a/snippets/stkdelta.py +++ b/snippets/stkdelta.py @@ -6,14 +6,18 @@ def printThreadInfo(): nt = module("nt") - thread = nt.typedVar( "_KTHREAD", getThreadOffset( getCurrentThread() ) ) + thread = nt.typedVar( "_KTHREAD", getCurrentThread() ) stackPointer = addr64( reg("rsp") if is64bitSystem() else reg("esp") ) - dprintln("") - - dprintln( "Stack Base: %x Limit: %x Current: %x Used: %x Unused: %x" % - ( thread.InitialStack, thread.StackLimit, stackPointer, thread.InitialStack - stackPointer, stackPointer - thread.StackLimit ) ) + dprintln("") + + if stackPointer >= addr64(thread.StackLimit): + dprintln( "Stack Base: %x Limit: %x Current: %x Used: %x Unused: %x" % + ( thread.InitialStack, thread.StackLimit, stackPointer, addr64(thread.InitialStack) - stackPointer, stackPointer - addr64(thread.StackLimit) ) ) + else: + dprintln( "Stack Base: %x Limit: %x Current: %x Used: %x !!!Overflow!!!: %x" % + ( thread.InitialStack, thread.StackLimit, stackPointer, addr64(thread.InitialStack) - stackPointer, addr64(thread.StackLimit) - stackPointer ) ) def printDeltaStat():