[0.3.x] fixed : issue #12956 ( setCurrentThread not actually switch current thread )

git-svn-id: https://pykd.svn.codeplex.com/svn@88124 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
SND\kernelnet_cp 2014-04-28 08:41:43 +00:00 committed by Mikhail I. Izmestev
parent 07a4dc9d3c
commit bd19263aed
4 changed files with 445 additions and 140 deletions

View File

@ -9,27 +9,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{A7AF
EndProjectSection EndProjectSection
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "snippets", "snippets", "{AAB21DD2-B0EE-493E-8415-5195F18879EB}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "snippets", "snippets", "{AAB21DD2-B0EE-493E-8415-5195F18879EB}"
ProjectSection(SolutionItems) = preProject
snippets\accessmask.py = snippets\accessmask.py
snippets\avl.py = snippets\avl.py
snippets\cr0.py = snippets\cr0.py
snippets\cr4.py = snippets\cr4.py
snippets\ctlcode.py = snippets\ctlcode.py
snippets\export.py = snippets\export.py
snippets\findhandle.py = snippets\findhandle.py
snippets\findtag.py = snippets\findtag.py
snippets\gdt.py = snippets\gdt.py
snippets\help.py = snippets\help.py
snippets\iat.py = snippets\iat.py
snippets\nbl.py = snippets\nbl.py
snippets\ndis.py = snippets\ndis.py
snippets\ntobj.py = snippets\ntobj.py
snippets\pytowiki.py = snippets\pytowiki.py
snippets\ssdt.py = snippets\ssdt.py
snippets\stkdelta.py = snippets\stkdelta.py
snippets\stkwalk.py = snippets\stkwalk.py
snippets\wfp.py = snippets\wfp.py
EndProjectSection
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "um", "um", "{EEFC9510-DFA7-439E-801E-48FCE72766AD}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "um", "um", "{EEFC9510-DFA7-439E-801E-48FCE72766AD}"
ProjectSection(SolutionItems) = preProject ProjectSection(SolutionItems) = preProject
@ -48,16 +27,26 @@ Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "pykdtest", "test\scripts\py
{C4C45791-0201-4406-BC5C-A384B01E3BF5} = {C4C45791-0201-4406-BC5C-A384B01E3BF5} {C4C45791-0201-4406-BC5C-A384B01E3BF5} = {C4C45791-0201-4406-BC5C-A384B01E3BF5}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "snippets", "snippets\snippets.pyproj", "{6471FEDC-3129-410F-BFFC-4BC89707E5EC}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug_2.7|Any CPU = Debug_2.7|Any CPU Debug_2.7|Any CPU = Debug_2.7|Any CPU
Debug_2.7|Mixed Platforms = Debug_2.7|Mixed Platforms Debug_2.7|Mixed Platforms = Debug_2.7|Mixed Platforms
Debug_2.7|Win32 = Debug_2.7|Win32 Debug_2.7|Win32 = Debug_2.7|Win32
Debug_2.7|x64 = Debug_2.7|x64 Debug_2.7|x64 = Debug_2.7|x64
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release_2.7|Any CPU = Release_2.7|Any CPU Release_2.7|Any CPU = Release_2.7|Any CPU
Release_2.7|Mixed Platforms = Release_2.7|Mixed Platforms Release_2.7|Mixed Platforms = Release_2.7|Mixed Platforms
Release_2.7|Win32 = Release_2.7|Win32 Release_2.7|Win32 = Release_2.7|Win32
Release_2.7|x64 = Release_2.7|x64 Release_2.7|x64 = Release_2.7|x64
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_2.7|Any CPU.ActiveCfg = Debug|Win32 {0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_2.7|Any CPU.ActiveCfg = Debug|Win32
@ -70,6 +59,15 @@ Global
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_2.7|x64.ActiveCfg = Debug|x64 {0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_2.7|x64.ActiveCfg = Debug|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_2.7|x64.Build.0 = Debug|x64 {0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_2.7|x64.Build.0 = Debug|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_2.7|x64.Deploy.0 = Debug|x64 {0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug_2.7|x64.Deploy.0 = Debug|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug|Any CPU.ActiveCfg = Debug|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug|Mixed Platforms.Deploy.0 = Debug|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug|Win32.ActiveCfg = Debug|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug|Win32.Build.0 = Debug|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug|Win32.Deploy.0 = Debug|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug|x64.ActiveCfg = Debug|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Debug|x64.Build.0 = Debug|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_2.7|Any CPU.ActiveCfg = Release|Win32 {0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_2.7|Any CPU.ActiveCfg = Release|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_2.7|Mixed Platforms.ActiveCfg = Release|Win32 {0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_2.7|Mixed Platforms.ActiveCfg = Release|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_2.7|Mixed Platforms.Build.0 = Release|Win32 {0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_2.7|Mixed Platforms.Build.0 = Release|Win32
@ -80,6 +78,15 @@ Global
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_2.7|x64.ActiveCfg = Release|x64 {0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_2.7|x64.ActiveCfg = Release|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_2.7|x64.Build.0 = Release|x64 {0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_2.7|x64.Build.0 = Release|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_2.7|x64.Deploy.0 = Release|x64 {0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release_2.7|x64.Deploy.0 = Release|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release|Any CPU.ActiveCfg = Release|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release|Mixed Platforms.Build.0 = Release|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release|Mixed Platforms.Deploy.0 = Release|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release|Win32.ActiveCfg = Release|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release|Win32.Build.0 = Release|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release|Win32.Deploy.0 = Release|Win32
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release|x64.ActiveCfg = Release|x64
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF}.Release|x64.Build.0 = Release|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_2.7|Any CPU.ActiveCfg = Debug|Win32 {3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_2.7|Any CPU.ActiveCfg = Debug|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_2.7|Mixed Platforms.ActiveCfg = Debug|Win32 {3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_2.7|Mixed Platforms.ActiveCfg = Debug|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_2.7|Mixed Platforms.Build.0 = Debug|Win32 {3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_2.7|Mixed Platforms.Build.0 = Debug|Win32
@ -90,6 +97,15 @@ Global
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_2.7|x64.ActiveCfg = Debug|x64 {3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_2.7|x64.ActiveCfg = Debug|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_2.7|x64.Build.0 = Debug|x64 {3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_2.7|x64.Build.0 = Debug|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_2.7|x64.Deploy.0 = Debug|x64 {3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug_2.7|x64.Deploy.0 = Debug|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug|Any CPU.ActiveCfg = Debug|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug|Mixed Platforms.Deploy.0 = Debug|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug|Win32.ActiveCfg = Debug|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug|Win32.Build.0 = Debug|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug|Win32.Deploy.0 = Debug|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug|x64.ActiveCfg = Debug|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Debug|x64.Build.0 = Debug|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_2.7|Any CPU.ActiveCfg = Release|Win32 {3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_2.7|Any CPU.ActiveCfg = Release|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_2.7|Mixed Platforms.ActiveCfg = Release|Win32 {3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_2.7|Mixed Platforms.ActiveCfg = Release|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_2.7|Mixed Platforms.Build.0 = Release|Win32 {3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_2.7|Mixed Platforms.Build.0 = Release|Win32
@ -100,6 +116,15 @@ Global
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_2.7|x64.ActiveCfg = Release|x64 {3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_2.7|x64.ActiveCfg = Release|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_2.7|x64.Build.0 = Release|x64 {3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_2.7|x64.Build.0 = Release|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_2.7|x64.Deploy.0 = Release|x64 {3E9C538F-F060-4E86-AB7D-D44439615B63}.Release_2.7|x64.Deploy.0 = Release|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release|Any CPU.ActiveCfg = Release|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release|Mixed Platforms.Build.0 = Release|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release|Mixed Platforms.Deploy.0 = Release|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release|Win32.ActiveCfg = Release|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release|Win32.Build.0 = Release|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release|Win32.Deploy.0 = Release|Win32
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release|x64.ActiveCfg = Release|x64
{3E9C538F-F060-4E86-AB7D-D44439615B63}.Release|x64.Build.0 = Release|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_2.7|Any CPU.ActiveCfg = Debug_2.7|Win32 {C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_2.7|Any CPU.ActiveCfg = Debug_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_2.7|Mixed Platforms.ActiveCfg = Debug_2.7|Win32 {C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_2.7|Mixed Platforms.ActiveCfg = Debug_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_2.7|Mixed Platforms.Build.0 = Debug_2.7|Win32 {C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_2.7|Mixed Platforms.Build.0 = Debug_2.7|Win32
@ -110,6 +135,15 @@ Global
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_2.7|x64.ActiveCfg = Debug_2.7|x64 {C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_2.7|x64.ActiveCfg = Debug_2.7|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_2.7|x64.Build.0 = Debug_2.7|x64 {C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_2.7|x64.Build.0 = Debug_2.7|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_2.7|x64.Deploy.0 = Debug_2.7|x64 {C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug_2.7|x64.Deploy.0 = Debug_2.7|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug|Any CPU.ActiveCfg = Debug_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug|Mixed Platforms.ActiveCfg = Debug_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug|Mixed Platforms.Build.0 = Debug_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug|Mixed Platforms.Deploy.0 = Debug_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug|Win32.ActiveCfg = Debug_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug|Win32.Build.0 = Debug_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug|Win32.Deploy.0 = Debug_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug|x64.ActiveCfg = Debug_2.7|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Debug|x64.Build.0 = Debug_2.7|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_2.7|Any CPU.ActiveCfg = Release_2.7|Win32 {C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_2.7|Any CPU.ActiveCfg = Release_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_2.7|Mixed Platforms.ActiveCfg = Release_2.7|Win32 {C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_2.7|Mixed Platforms.ActiveCfg = Release_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_2.7|Mixed Platforms.Build.0 = Release_2.7|Win32 {C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_2.7|Mixed Platforms.Build.0 = Release_2.7|Win32
@ -120,6 +154,15 @@ Global
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_2.7|x64.ActiveCfg = Release_2.7|x64 {C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_2.7|x64.ActiveCfg = Release_2.7|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_2.7|x64.Build.0 = Release_2.7|x64 {C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_2.7|x64.Build.0 = Release_2.7|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_2.7|x64.Deploy.0 = Release_2.7|x64 {C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release_2.7|x64.Deploy.0 = Release_2.7|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release|Any CPU.ActiveCfg = Release_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release|Mixed Platforms.ActiveCfg = Release_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release|Mixed Platforms.Build.0 = Release_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release|Mixed Platforms.Deploy.0 = Release_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release|Win32.ActiveCfg = Release_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release|Win32.Build.0 = Release_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release|Win32.Deploy.0 = Release_2.7|Win32
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release|x64.ActiveCfg = Release_2.7|x64
{C4C45791-0201-4406-BC5C-A384B01E3BF5}.Release|x64.Build.0 = Release_2.7|x64
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_2.7|Any CPU.ActiveCfg = Debug|Any CPU {3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_2.7|Any CPU.ActiveCfg = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_2.7|Any CPU.Build.0 = Debug|Any CPU {3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_2.7|Any CPU.Build.0 = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_2.7|Mixed Platforms.ActiveCfg = Debug|Any CPU {3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_2.7|Mixed Platforms.ActiveCfg = Debug|Any CPU
@ -127,12 +170,48 @@ Global
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_2.7|Win32.ActiveCfg = Debug|Any CPU {3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_2.7|Win32.ActiveCfg = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_2.7|Win32.Build.0 = Debug|Any CPU {3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_2.7|Win32.Build.0 = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_2.7|x64.ActiveCfg = Debug|Any CPU {3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug_2.7|x64.ActiveCfg = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug|Win32.ActiveCfg = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Debug|x64.ActiveCfg = Debug|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_2.7|Any CPU.ActiveCfg = Release|Any CPU {3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_2.7|Any CPU.ActiveCfg = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_2.7|Any CPU.Build.0 = Release|Any CPU {3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_2.7|Any CPU.Build.0 = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_2.7|Mixed Platforms.ActiveCfg = Release|Any CPU {3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_2.7|Mixed Platforms.ActiveCfg = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_2.7|Mixed Platforms.Build.0 = Release|Any CPU {3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_2.7|Mixed Platforms.Build.0 = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_2.7|Win32.ActiveCfg = Release|Any CPU {3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_2.7|Win32.ActiveCfg = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_2.7|x64.ActiveCfg = Release|Any CPU {3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release_2.7|x64.ActiveCfg = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release|Any CPU.Build.0 = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release|Win32.ActiveCfg = Release|Any CPU
{3F0BE77E-19B0-4192-B432-44A25805BCB8}.Release|x64.ActiveCfg = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug_2.7|Any CPU.ActiveCfg = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug_2.7|Any CPU.Build.0 = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug_2.7|Mixed Platforms.ActiveCfg = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug_2.7|Mixed Platforms.Build.0 = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug_2.7|Win32.ActiveCfg = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug_2.7|x64.ActiveCfg = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug|Win32.ActiveCfg = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Debug|x64.ActiveCfg = Debug|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release_2.7|Any CPU.ActiveCfg = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release_2.7|Any CPU.Build.0 = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release_2.7|Mixed Platforms.ActiveCfg = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release_2.7|Mixed Platforms.Build.0 = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release_2.7|Win32.ActiveCfg = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release_2.7|x64.ActiveCfg = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release|Any CPU.Build.0 = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release|Win32.ActiveCfg = Release|Any CPU
{6471FEDC-3129-410F-BFFC-4BC89707E5EC}.Release|x64.ActiveCfg = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -141,5 +220,6 @@ Global
{0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF} = {5A3C2DA6-AE91-4025-AC03-A58BD03CEBCD} {0E4CC688-F2F5-499F-9C07-0F2CAEE0D3EF} = {5A3C2DA6-AE91-4025-AC03-A58BD03CEBCD}
{3F0BE77E-19B0-4192-B432-44A25805BCB8} = {5A3C2DA6-AE91-4025-AC03-A58BD03CEBCD} {3F0BE77E-19B0-4192-B432-44A25805BCB8} = {5A3C2DA6-AE91-4025-AC03-A58BD03CEBCD}
{EEFC9510-DFA7-439E-801E-48FCE72766AD} = {A7AF87D2-983B-4B3A-823F-5A2C6989672E} {EEFC9510-DFA7-439E-801E-48FCE72766AD} = {A7AF87D2-983B-4B3A-823F-5A2C6989672E}
{6471FEDC-3129-410F-BFFC-4BC89707E5EC} = {AAB21DD2-B0EE-493E-8415-5195F18879EB}
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

View File

@ -9,13 +9,16 @@ namespace pykd {
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
python::object CPUContextAdapter::getRegisterByName( kdlib::CPUContextPtr& cpu, const std::wstring &name ) python::object getRegisterByName( const std::wstring &name )
{ {
kdlib::NumVariant var; kdlib::NumVariant var;
do { do {
AutoRestorePyState pystate; AutoRestorePyState pystate;
var = cpu->getRegisterByName(name);
var = kdlib::getRegisterByName(name);
} while(false); } while(false);
return NumVariantAdaptor::convertToPython( var ); return NumVariantAdaptor::convertToPython( var );
@ -23,30 +26,14 @@ python::object CPUContextAdapter::getRegisterByName( kdlib::CPUContextPtr& cpu,
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
python::object CPUContextAdapter::getRegisterByIndex( kdlib::CPUContextPtr& cpu, unsigned long index ) python::list getCurrentStack()
{
kdlib::NumVariant var;
std::wstring name;
do {
AutoRestorePyState pystate;
var = cpu->getRegisterByIndex(index);
name = cpu->getRegisterName(index);
}while(false);
return python::make_tuple( name, NumVariantAdaptor::convertToPython( var ) );
}
///////////////////////////////////////////////////////////////////////////////
python::list CPUContextAdapter::getStack( kdlib::CPUContextPtr& cpu )
{ {
kdlib::StackPtr stack; kdlib::StackPtr stack;
unsigned long numberFrames; unsigned long numberFrames;
do { do {
AutoRestorePyState pystate; AutoRestorePyState pystate;
stack = kdlib::getStack(cpu); stack = kdlib::getStack();
numberFrames = stack->getFrameCount(); numberFrames = stack->getFrameCount();
} while(false); } while(false);
@ -72,7 +59,6 @@ std::wstring StackFrameAdapter::print( kdlib::StackFramePtr& frame )
return sstr.str(); return sstr.str();
} }
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
python::list StackFrameAdapter::getParamsList( kdlib::StackFramePtr& frame) python::list StackFrameAdapter::getParamsList( kdlib::StackFramePtr& frame)
@ -191,4 +177,176 @@ python::dict StackFrameAdapter::getLocalsDict(kdlib::StackFramePtr& frame)
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
//python::object CPUContextAdapter::getRegisterByIndex( kdlib::CPUContextPtr& cpu, unsigned long index )
//{
// kdlib::NumVariant var;
// std::wstring name;
//
// do {
// AutoRestorePyState pystate;
// var = cpu->getRegisterByIndex(index);
// name = cpu->getRegisterName(index);
// }while(false);
//
// return python::make_tuple( name, NumVariantAdaptor::convertToPython( var ) );
//}
//
/////////////////////////////////////////////////////////////////////////////////
//
//python::list CPUContextAdapter::getStack( kdlib::CPUContextPtr& cpu )
//{
// kdlib::StackPtr stack;
// unsigned long numberFrames;
//
// do {
// AutoRestorePyState pystate;
// stack = kdlib::getStack(cpu);
// numberFrames = stack->getFrameCount();
// } while(false);
//
// python::list lst;
// for ( unsigned long i = 0; i < numberFrames; ++i )
// lst.append( stack->getFrame(i) );
//
// return lst;
//}
//
/////////////////////////////////////////////////////////////////////////////////
//
//std::wstring StackFrameAdapter::print( kdlib::StackFramePtr& frame )
//{
// AutoRestorePyState pystate;
//
// std::wstringstream sstr;
// sstr << L"Frame: ";
// sstr << L"IP=" << std::hex << frame->getIP() << L" ";
// sstr << L"Return=" << std::hex << frame->getRET() << L" ";
// sstr << L"Frame Offset=" << std::hex << frame->getFP() << L" ";
// sstr << L"Stack Offset=" << std::hex << frame->getSP();
//
// return sstr.str();
//}
//
/////////////////////////////////////////////////////////////////////////////////
//
//python::list StackFrameAdapter::getParamsList( kdlib::StackFramePtr& frame)
//{
// typedef std::vector< std::pair< std::wstring, kdlib::TypedVarPtr> > FuncParamList;
//
// FuncParamList paramLst;
// unsigned long paramCount;
//
// do {
// AutoRestorePyState pystate;
// paramCount = frame->getTypedParamCount();
// for ( unsigned long i = 0; i < paramCount; ++i )
// {
// kdlib::TypedVarPtr param = frame->getTypedParam(i);
// std::wstring paramName = frame->getTypedParamName(i);
//
// paramLst.push_back( std::make_pair( paramName, param) );
// }
// } while(false);
//
// python::list pyLst;
//
// for ( unsigned long i = 0; i < paramCount; ++i )
// pyLst.append( python::make_tuple( paramLst[i].first, paramLst[i].second ) );
//
// return pyLst;
//}
//
/////////////////////////////////////////////////////////////////////////////////
//
//python::dict StackFrameAdapter::getParamsDict( kdlib::StackFramePtr& frame)
//{
// typedef std::vector< std::pair< std::wstring, kdlib::TypedVarPtr> > FuncParamList;
//
// FuncParamList paramLst;
// unsigned long paramCount;
//
// do {
// AutoRestorePyState pystate;
// paramCount = frame->getTypedParamCount();
// for ( unsigned long i = 0; i < paramCount; ++i )
// {
// kdlib::TypedVarPtr param = frame->getTypedParam(i);
// std::wstring paramName = frame->getTypedParamName(i);
//
// paramLst.push_back( std::make_pair( paramName, param) );
// }
// } while(false);
//
// python::dict pyLst;
//
// for ( unsigned long i = 0; i < paramCount; ++i )
// pyLst[paramLst[i].first] = paramLst[i].second;
//
// return pyLst;
//}
//
/////////////////////////////////////////////////////////////////////////////////
//
//python::list StackFrameAdapter::getLocalsList(kdlib::StackFramePtr& frame)
//{
// typedef std::vector< std::pair< std::wstring, kdlib::TypedVarPtr> > LocalVarList;
//
// LocalVarList localLst;
// unsigned long localCount;
//
// do {
// AutoRestorePyState pystate;
// localCount = frame->getLocalVarCount();
// for ( unsigned long i = 0; i < localCount; ++i )
// {
// kdlib::TypedVarPtr param = frame->getLocalVar(i);
// std::wstring paramName = frame->getLocalVarName(i);
//
// localLst.push_back( std::make_pair( paramName, param) );
// }
// } while(false);
//
// python::list pyLst;
//
// for ( unsigned long i = 0; i < localCount; ++i )
// pyLst.append( python::make_tuple( localLst[i].first, localLst[i].second ) );
//
// return pyLst;
//}
//
/////////////////////////////////////////////////////////////////////////////////
//
//python::dict StackFrameAdapter::getLocalsDict(kdlib::StackFramePtr& frame)
//{
// typedef std::vector< std::pair< std::wstring, kdlib::TypedVarPtr> > LocalVarList;
//
// LocalVarList localLst;
// unsigned long localCount;
//
// do {
// AutoRestorePyState pystate;
// localCount = frame->getLocalVarCount();
// for ( unsigned long i = 0; i < localCount; ++i )
// {
// kdlib::TypedVarPtr param = frame->getLocalVar(i);
// std::wstring paramName = frame->getLocalVarName(i);
//
// localLst.push_back( std::make_pair( paramName, param) );
// }
// } while(false);
//
// python::dict pyLst;
//
// for ( unsigned long i = 0; i < localCount; ++i )
// pyLst[localLst[i].first] = localLst[i].second;
//
// return pyLst;
//}
///////////////////////////////////////////////////////////////////////////////
} // end namespace pykd } // end namespace pykd

View File

@ -64,51 +64,45 @@ public:
} }
}; };
/////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
python::object getRegisterByName( const std::wstring &name );
inline kdlib::CPUContextPtr loadCPUCurrentContext() {
AutoRestorePyState pystate;
return kdlib::loadCPUCurrentContext();
}
inline kdlib::CPUContextPtr loadCPUContextByIndex( unsigned long index ) {
AutoRestorePyState pystate;
return kdlib::loadCPUContextByIndex(index);
}
inline unsigned long long loadMSR( unsigned long msrIndex ) inline unsigned long long loadMSR( unsigned long msrIndex )
{ {
AutoRestorePyState pystate; AutoRestorePyState pystate;
return kdlib::loadCPUCurrentContext()->loadMSR( msrIndex ); return kdlib::loadMSR(msrIndex);
} }
inline void setMSR( unsigned long msrIndex, unsigned long long value ) inline void setMSR( unsigned long msrIndex, unsigned long long value )
{ {
AutoRestorePyState pystate; AutoRestorePyState pystate;
return kdlib::loadCPUCurrentContext()->setMSR( msrIndex, value ); return kdlib::setMSR( msrIndex, value );
} }
inline kdlib::CPUType getProcessorMode() { inline kdlib::CPUType getProcessorMode() {
AutoRestorePyState pystate; AutoRestorePyState pystate;
return kdlib::loadCPUCurrentContext()->getCPUMode(); return kdlib::getCPUMode();
} }
inline kdlib::CPUType getProcessorType() { inline kdlib::CPUType getProcessorType() {
AutoRestorePyState pystate; AutoRestorePyState pystate;
return kdlib::loadCPUCurrentContext()->getCPUType(); return kdlib::getCPUType();
} }
inline void setProcessorMode( kdlib::CPUType mode ) { inline void setProcessorMode( kdlib::CPUType mode ) {
AutoRestorePyState pystate; AutoRestorePyState pystate;
kdlib::loadCPUCurrentContext()->setCPUMode(mode); kdlib::setCPUMode(mode);
} }
inline void switchProcessorMode() { inline void switchProcessorMode() {
AutoRestorePyState pystate; AutoRestorePyState pystate;
kdlib::loadCPUCurrentContext()->switchCPUMode(); kdlib::switchCPUMode();
} }
python::list getCurrentStack();
inline kdlib::StackFramePtr getCurrentFrame() { inline kdlib::StackFramePtr getCurrentFrame() {
AutoRestorePyState pystate; AutoRestorePyState pystate;
return kdlib::getStack()->getFrame(0); return kdlib::getStack()->getFrame(0);
@ -122,73 +116,148 @@ inline kdlib::TypedVarPtr getParam( const std::wstring &name ) {
return StackFrameAdapter::getParam( getCurrentFrame(), name ); return StackFrameAdapter::getParam( getCurrentFrame(), name );
} }
inline python::list getLocals() {
return StackFrameAdapter::getLocalsList( getCurrentFrame() );
}
inline kdlib::TypedVarPtr getLocal( const std::wstring &name ) { inline kdlib::TypedVarPtr getLocal( const std::wstring &name ) {
return StackFrameAdapter::getLocal( getCurrentFrame(), name ); return StackFrameAdapter::getLocal( getCurrentFrame(), name );
} }
inline python::list getLocals() {
class CPUContextAdapter return StackFrameAdapter::getLocalsList( getCurrentFrame() );
{
public:
static python::object getRegisterByName( kdlib::CPUContextPtr& cpu, const std::wstring &name );
static python::object getRegisterByIndex( kdlib::CPUContextPtr& cpu, unsigned long index );
static python::list getStack( kdlib::CPUContextPtr& cpu );
static kdlib::MEMOFFSET_64 getIP( kdlib::CPUContextPtr& cpu )
{
AutoRestorePyState pystate;
return cpu->getIP();
}
static kdlib::MEMOFFSET_64 getSP( kdlib::CPUContextPtr& cpu )
{
AutoRestorePyState pystate;
return cpu->getSP();
}
static kdlib::MEMOFFSET_64 getFP( kdlib::CPUContextPtr& cpu )
{
AutoRestorePyState pystate;
return cpu->getFP();
}
static kdlib::CPUType getCPUType( kdlib::CPUContextPtr& cpu )
{
AutoRestorePyState pystate;
return cpu->getCPUType();
}
static kdlib::CPUType getCPUMode( kdlib::CPUContextPtr& cpu )
{
AutoRestorePyState pystate;
return cpu->getCPUMode();
}
static void setCPUMode( kdlib::CPUContextPtr& cpu, kdlib::CPUType mode )
{
AutoRestorePyState pystate;
cpu->setCPUMode(mode);
}
static void switchCPUMode( kdlib::CPUContextPtr& cpu )
{
AutoRestorePyState pystate;
cpu->switchCPUMode();
}
};
inline python::object getRegisterByName( const std::wstring &name )
{
return CPUContextAdapter::getRegisterByName( kdlib::loadCPUCurrentContext(), name );
} }
inline python::list getCurrentStack() {
return CPUContextAdapter::getStack( kdlib::loadCPUCurrentContext() );
}
//
//
//inline kdlib::CPUContextPtr loadCPUCurrentContext() {
// AutoRestorePyState pystate;
// return kdlib::loadCPUCurrentContext();
//}
//
//inline kdlib::CPUContextPtr loadCPUContextByIndex( unsigned long index ) {
// AutoRestorePyState pystate;
// return kdlib::loadCPUContextByIndex(index);
//}
//
//inline unsigned long long loadMSR( unsigned long msrIndex )
//{
// AutoRestorePyState pystate;
// return kdlib::loadCPUCurrentContext()->loadMSR( msrIndex );
//}
//
//inline void setMSR( unsigned long msrIndex, unsigned long long value )
//{
// AutoRestorePyState pystate;
// return kdlib::loadCPUCurrentContext()->setMSR( msrIndex, value );
//}
//
//inline kdlib::CPUType getProcessorMode() {
// AutoRestorePyState pystate;
// return kdlib::loadCPUCurrentContext()->getCPUMode();
//}
//
//inline kdlib::CPUType getProcessorType() {
// AutoRestorePyState pystate;
// return kdlib::loadCPUCurrentContext()->getCPUType();
//}
//
//inline void setProcessorMode( kdlib::CPUType mode ) {
// AutoRestorePyState pystate;
// kdlib::loadCPUCurrentContext()->setCPUMode(mode);
//}
//
//inline void switchProcessorMode() {
// AutoRestorePyState pystate;
// kdlib::loadCPUCurrentContext()->switchCPUMode();
//}
//
//inline kdlib::StackFramePtr getCurrentFrame() {
// AutoRestorePyState pystate;
// return kdlib::getStack()->getFrame(0);
//}
//
//inline python::list getParams() {
// return StackFrameAdapter::getParamsList( getCurrentFrame() );
//}
//
//inline kdlib::TypedVarPtr getParam( const std::wstring &name ) {
// return StackFrameAdapter::getParam( getCurrentFrame(), name );
//}
//
//inline python::list getLocals() {
// return StackFrameAdapter::getLocalsList( getCurrentFrame() );
//}
//
//inline kdlib::TypedVarPtr getLocal( const std::wstring &name ) {
// return StackFrameAdapter::getLocal( getCurrentFrame(), name );
//}
//
//
//class CPUContextAdapter
//{
//public:
// static python::object getRegisterByName( kdlib::CPUContextPtr& cpu, const std::wstring &name );
// static python::object getRegisterByIndex( kdlib::CPUContextPtr& cpu, unsigned long index );
// static python::list getStack( kdlib::CPUContextPtr& cpu );
//
// static kdlib::MEMOFFSET_64 getIP( kdlib::CPUContextPtr& cpu )
// {
// AutoRestorePyState pystate;
// return cpu->getIP();
// }
//
// static kdlib::MEMOFFSET_64 getSP( kdlib::CPUContextPtr& cpu )
// {
// AutoRestorePyState pystate;
// return cpu->getSP();
// }
//
// static kdlib::MEMOFFSET_64 getFP( kdlib::CPUContextPtr& cpu )
// {
// AutoRestorePyState pystate;
// return cpu->getFP();
// }
//
// static kdlib::CPUType getCPUType( kdlib::CPUContextPtr& cpu )
// {
// AutoRestorePyState pystate;
// return cpu->getCPUType();
// }
//
// static kdlib::CPUType getCPUMode( kdlib::CPUContextPtr& cpu )
// {
// AutoRestorePyState pystate;
// return cpu->getCPUMode();
// }
//
// static void setCPUMode( kdlib::CPUContextPtr& cpu, kdlib::CPUType mode )
// {
// AutoRestorePyState pystate;
// cpu->setCPUMode(mode);
// }
//
// static void switchCPUMode( kdlib::CPUContextPtr& cpu )
// {
// AutoRestorePyState pystate;
// cpu->switchCPUMode();
// }
//};
//
//inline python::object getRegisterByName( const std::wstring &name )
//{
// return CPUContextAdapter::getRegisterByName( kdlib::loadCPUCurrentContext(), name );
//}
//
//inline python::list getCurrentStack() {
// return CPUContextAdapter::getStack( kdlib::loadCPUCurrentContext() );
//}
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////

View File

@ -328,13 +328,13 @@ BOOST_PYTHON_MODULE( pykd )
"Return MSR value" ); "Return MSR value" );
python::def( "wrmsr", pykd::setMSR, python::def( "wrmsr", pykd::setMSR,
"Set MSR value" ); "Set MSR value" );
python::def( "getProcessorMode", pykd::getProcessorMode, python::def( "getCPUMode", pykd::getProcessorMode,
"Return current processor mode: CPUType" ); "Return current processor mode: CPUType" );
python::def( "getProcessorType", pykd::getProcessorType, python::def( "getCPUType", pykd::getProcessorType,
"Return type of physical processor: CPUType" ); "Return type of physical processor: CPUType" );
python::def( "setProcessorMode",pykd::setProcessorMode, python::def( "setCPUMode",pykd::setProcessorMode,
"Set current processor mode (CPUType)" ); "Set current processor mode (CPUType)" );
python::def( "switchProcessorMode", pykd::switchProcessorMode, python::def( "switchCPUMode", pykd::switchProcessorMode,
"Switch processor mode ( X86 <-> X64 )" ); "Switch processor mode ( X86 <-> X64 )" );
// stack and local variables // stack and local variables
@ -342,8 +342,6 @@ BOOST_PYTHON_MODULE( pykd )
"Return a current stack as a list of stackFrame objects" ); "Return a current stack as a list of stackFrame objects" );
python::def( "getFrame", pykd::getCurrentFrame, python::def( "getFrame", pykd::getCurrentFrame,
"Return a current stack frame" ); "Return a current stack frame" );
// python::def( "getStackWow64", &getCurrentStackWow64,
// "Return a stack for wow64 context as a list of stackFrame objects" );
python::def( "getLocals", pykd::getLocals, python::def( "getLocals", pykd::getLocals,
"Get list of local variables" ); "Get list of local variables" );
python::def( "getLocal", pykd::getLocal, python::def( "getLocal", pykd::getLocal,
@ -671,20 +669,20 @@ BOOST_PYTHON_MODULE( pykd )
"return the function's local variable by it's name") "return the function's local variable by it's name")
.def( "__str__", StackFrameAdapter::print ); .def( "__str__", StackFrameAdapter::print );
python::class_<kdlib::CPUContext, kdlib::CPUContextPtr, boost::noncopyable>( "cpu", //python::class_<kdlib::CPUContext, kdlib::CPUContextPtr, boost::noncopyable>( "cpu",
"class for CPU context representation", python::no_init ) // "class for CPU context representation", python::no_init )
.def("__init__", python::make_constructor(pykd::loadCPUCurrentContext) ) // .def("__init__", python::make_constructor(pykd::loadCPUCurrentContext) )
.def("__init__", python::make_constructor(pykd::loadCPUContextByIndex) ) // .def("__init__", python::make_constructor(pykd::loadCPUContextByIndex) )
.add_property("ip", CPUContextAdapter::getIP ) // .add_property("ip", CPUContextAdapter::getIP )
.add_property("sp", CPUContextAdapter::getSP ) // .add_property("sp", CPUContextAdapter::getSP )
.add_property("fp", CPUContextAdapter::getSP ) // .add_property("fp", CPUContextAdapter::getSP )
.def("getCPUType", CPUContextAdapter::getCPUType ) // .def("getCPUType", CPUContextAdapter::getCPUType )
.def("getCPUMode", CPUContextAdapter::getCPUMode ) // .def("getCPUMode", CPUContextAdapter::getCPUMode )
.def("setCPUMode", CPUContextAdapter::setCPUMode ) // .def("setCPUMode", CPUContextAdapter::setCPUMode )
.def("switchCPUMode", CPUContextAdapter::switchCPUMode ) // .def("switchCPUMode", CPUContextAdapter::switchCPUMode )
.def("getStack", CPUContextAdapter::getStack ) // .def("getStack", CPUContextAdapter::getStack )
.def("__getattr__", CPUContextAdapter::getRegisterByName ) // .def("__getattr__", CPUContextAdapter::getRegisterByName )
.def("__getitem__", CPUContextAdapter::getRegisterByIndex ); // .def("__getitem__", CPUContextAdapter::getRegisterByIndex );
python::class_<kdlib::SystemInfo>( python::class_<kdlib::SystemInfo>(
"systemVersion", "Operation system version", python::no_init) "systemVersion", "Operation system version", python::no_init)