diff --git a/kdlibcpp b/kdlibcpp
index 60f7380..daa1b20 160000
--- a/kdlibcpp
+++ b/kdlibcpp
@@ -1 +1 @@
-Subproject commit 60f7380b1dcfe762f5fec6f33df40e93315874dc
+Subproject commit daa1b20092839ad58c77d9747ce672545ef1dc3c
diff --git a/setup/setup.py b/setup/setup.py
index f8e03f1..8540d58 100644
--- a/setup/setup.py
+++ b/setup/setup.py
@@ -5,10 +5,11 @@ import os
import shutil
import zipfile
import sys
+import itertools
_name = "pykd"
_desc = "python windbg extension"
-_version = '0.3.4.2'
+_version = '0.3.4.8'
def getReleaseSrc():
return 'Release_%d.%d' % sys.version_info[0:2]
@@ -60,7 +61,7 @@ if "bdist_wheel" in sys.argv:
elif "bdist_zip" in sys.argv:
- #make package catalog
+ #make package catalog
if "--plat-name=win32" in sys.argv:
plat_name="win32"
@@ -105,6 +106,26 @@ elif "bdist_zip" in sys.argv:
archive.write( os.path.join(package_dir, srcFile), compress_type = zipfile.ZIP_DEFLATED)
print("OK")
+
+elif "bdist_pdb" in sys.argv:
+
+ #make pdb archive
+ pyVersion = ('2.7', '3.5', '3.6', '3.7')
+ platform = ('Win32', 'x64')
+
+ pdbFiles = [ os.path.join( platform, 'Release_' + version, 'pykd.pdb') for version, platform in itertools.product( pyVersion, platform ) ]
+
+ zip_name = "pykd-%s-symbols.zip" % _version
+
+ with zipfile.ZipFile(os.path.join(os.path.curdir, 'dist', zip_name), mode='w' ) as archive:
+ for pdbFile in pdbFiles:
+ print( "zipped %s" % (pdbFile) )
+ archive.write( os.path.join(os.path.curdir, '..', 'out', pdbFile), pdbFile, compress_type = zipfile.ZIP_DEFLATED)
+
+ #pdbFileList = [ os.path.join( os.path.curdir, '..', 'out', fileName) for fileName in (
+
+
+ pass
@@ -122,127 +143,3 @@ elif "bdist_zip" in sys.argv:
-#from setuptools import setup
-#from wheel.bdist_wheel import bdist_wheel
-#import pkg_resources
-#import argparse
-#import os
-#import shutil
-#import zipfile
-#import sys
-
-#_name = "pykd"
-#_desc = "python windbg extension"
-#_version = '0.3.1.2'
-
-#def getReleaseSrc():
-# return 'Release_%d.%d' % sys.version_info[0:2]
-
-#def makeWheel(args):
-
-# # remove build catalog
-# build_dir = os.path.join(os.path.curdir, 'build' )
-# if os.path.exists(build_dir):
-# shutil.rmtree(build_dir)
-
-# # make package catalog
-# package_dir = os.path.join(os.path.curdir, _name )
-# if os.path.exists(package_dir):
-# shutil.rmtree(package_dir)
-# os.mkdir(package_dir)
-
-# shutil.copy("__init__.py", package_dir)
-
-# bin_dir = os.path.join( os.path.curdir, '..', 'bin')
-# pykd_dir = os.path.join( os.path.curdir, '..', 'out')
-# if args.plat_name == 'win32':
-# bin_dir = os.path.join( bin_dir, 'x86')
-# pykd_dir = os.path.join(pykd_dir, 'Win32', getReleaseSrc())
-# elif args.plat_name == 'win-amd64':
-# bin_dir = os.path.join( bin_dir, 'x64')
-# pykd_dir = os.path.join(pykd_dir, 'X64', getReleaseSrc())
-# else:
-# assert(0)
-
-# assert(os.path.isdir(bin_dir))
-
-# for binFile in [ f for f in os.listdir(bin_dir) if not os.path.isdir(f) ]:
-# shutil.copy( os.path.join(bin_dir, binFile), os.path.join(package_dir, binFile) )
-
-# shutil.copy( os.path.join(pykd_dir, 'pykd.pyd'), os.path.join(package_dir, 'pykd.pyd') )
-
-# setup(
-# name = _name,
-# version = _version,
-# description = _desc,
-# cmdclass = { 'bdist_wheel' : bdist_wheel },
-# packages = ['pykd'],
-# package_dir = {'pykd': package_dir},
-# package_data = { 'pykd' :["*.pyd", "*.dll"]},
-# include_package_data=True,
-# zip_safe = False,
-# universal = True,
-# #python_tag = args.python_tag
-# )
-
-#def makeZip(args):
-# #make package catalog
-
-# package_dir = os.path.join(os.path.curdir, _name )
-# if os.path.exists(package_dir):
-# shutil.rmtree(package_dir)
-# os.mkdir(package_dir)
-
-# bin_dir = os.path.join( os.path.curdir, '..', 'bin')
-# pykd_dir = os.path.join( os.path.curdir, '..', 'out')
-# if args.plat_name == 'win32':
-# bin_dir = os.path.join( bin_dir, 'x86')
-# pykd_dir = os.path.join(pykd_dir, 'Win32', getReleaseSrc())
-# elif args.plat_name == 'win-amd64':
-# bin_dir = os.path.join( bin_dir, 'x64')
-# pykd_dir = os.path.join(pykd_dir, 'X64', getReleaseSrc())
-# else:
-# assert(0)
-
-# pyver="%d%d" % sys.version_info[0:2]
-
-# zip_str = "pykd-%s-py%s-%s" % ( _version, pyver, args.plat_name )
-# zip_name = zip_str + ".zip"
-
-# assert(os.path.isdir(bin_dir))
-
-# for binFile in [ f for f in os.listdir(bin_dir) if not os.path.isdir(f) ]:
-# shutil.copy( os.path.join(bin_dir, binFile), os.path.join(package_dir, binFile) )
-
-# shutil.copy( os.path.join(pykd_dir, 'pykd.pyd'), os.path.join(package_dir, 'pykd.pyd') )
-
-# dist_dir = os.path.join(os.path.curdir, 'dist')
-# if not os.path.exists(dist_dir):
-# os.mkdir(dist_dir)
-
-# with zipfile.ZipFile(os.path.join(os.path.curdir, 'dist', zip_name), mode='w' ) as archive:
-# for srcFile in os.listdir(package_dir):
-# print( "zipped %s" % (srcFile) )
-# archive.write( os.path.join(package_dir, srcFile), compress_type = zipfile.ZIP_DEFLATED)
-
-# print("OK")
-
-
-
-
-#parser = argparse.ArgumentParser()
-
-#subparsers = parser.add_subparsers()
-#wheelParser = subparsers.add_parser('bdist_wheel')
-#wheelParser.add_argument('--plat-name', choices = ['win32', 'win-amd64'], default=pkg_resources.get_build_platform() )
-#wheelParser.add_argument('--python-tag', choices=['2.7', '3.5'])
-#wheelParser.set_defaults(func=makeWheel)
-
-#zipParser = subparsers.add_parser('bdist_zip')
-#zipParser.add_argument('--plat-name', choices = ['win32', 'win-amd64'], default=pkg_resources.get_build_platform() )
-#zipParser.set_defaults(func=makeZip)
-
-#args = parser.parse_args()
-#args.func(args)
-
-
diff --git a/test/scripts/pykdtest.py b/test/scripts/pykdtest.py
index f3b9109..2d30961 100644
--- a/test/scripts/pykdtest.py
+++ b/test/scripts/pykdtest.py
@@ -66,6 +66,7 @@ def getTestSuite( singleName = "" ):
unittest.TestLoader().loadTestsFromTestCase( breakpoint.BreakpointTest ),
unittest.TestLoader().loadTestsFromTestCase( stacktest.StackTest ),
+ unittest.TestLoader().loadTestsFromTestCase( stacktest.InlineStackTest ),
unittest.TestLoader().loadTestsFromTestCase( mspdbtest.MsPdbTest ),
unittest.TestLoader().loadTestsFromTestCase( targetprocess.ProcessTest ),
unittest.TestLoader().loadTestsFromTestCase( ehloadtest.EhLoadTest ),
diff --git a/test/scripts/pykdtest.pyproj b/test/scripts/pykdtest.pyproj
index 64fbacd..cc86995 100644
--- a/test/scripts/pykdtest.pyproj
+++ b/test/scripts/pykdtest.pyproj
@@ -8,18 +8,18 @@
pykdtest.py
- ..\..\out\x64\Debug_2.7
+ C:\Users\User\Documents\projects\pykd2017\out\x64\Debug_3.7
.
pykdtest
pykdtest
Standard Python launcher
- C:\proj\pykd-dev\out\x64\Debug\targetapp.exe
+ C:\Users\User\Documents\projects\pykd2017\out\x64\Debug_2.7\targetapp.exe
True
False
- Global|PythonCore|2.7
+ Global|PythonCore|3.7
true
@@ -63,6 +63,8 @@
+
+
diff --git a/test/scripts/typeinfo.py b/test/scripts/typeinfo.py
index c0f2a2c..b01266d 100644
--- a/test/scripts/typeinfo.py
+++ b/test/scripts/typeinfo.py
@@ -385,4 +385,11 @@ class TypeInfoTest( unittest.TestCase ):
def testIsConstField(self):
ti = pykd.typeInfo("classChild")
self.assertTrue(ti.isStaticField("m_staticConst"))
- self.assertFalse(ti.isConstField("m_staticConst"))
\ No newline at end of file
+ self.assertFalse(ti.isConstField("m_staticConst"))
+
+ def testClangCompile(self):
+ src = "#include \r\n";
+ opt = "-I\"C:/Program Files (x86)/Windows Kits/8.1/Include/um\" -I\"C:/Program Files (x86)/Windows Kits/8.1/Include/shared\" -w";
+ symEnum = pykd.getSymbolEnumeratorFromSource(src, opt)
+ for sym in symEnum:
+ print(sym)
\ No newline at end of file