From 15a99d60de63e66701fdb1d0f5e3bc44335ccfc8 Mon Sep 17 00:00:00 2001 From: ussrhero Date: Tue, 24 Sep 2019 01:36:00 +0300 Subject: [PATCH] updated kdlibcpp --- kdlibcpp | 2 +- setup/setup.py | 149 ++++++----------------------------- test/scripts/pykdtest.py | 1 + test/scripts/pykdtest.pyproj | 8 +- test/scripts/typeinfo.py | 9 ++- 5 files changed, 38 insertions(+), 131 deletions(-) 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