Installation as a WinDBG extension with pykd bootstrapper
If you are going to run pykd in the windbg it is easiest way. Follow this link pykd bootstrapper 2.0 to install pykd bootstrapper and get started.Python 3.5 support
Pykd bootstrapper 2.0 fully supports python 3.x. You can use 2.x and 3.x python both inside the same windbg session.Installation as a Python package with pip:
You can install pykd as a common python package with pip:pip install pykd
Or upgrade existing version:
pip install pykd --upgrade
Pip documentation: https://pip.pypa.io
Pykd page on the PyPI: https://pypi.python.org/pypi/pykd
If pip can not install pykd from PyPI
Sometimes pip can not install packages from PyPi, for example due proxy with NTLM authorization. In this situation you can download a python wheel ( file with wlh extension ) and install it with pip locally:pip install pykd-0.3.1.1-cp27-none-win32.whl
Manual Installation guide:
0. choose x86 or x64 and download it1. unpack archive to any catalog
2. run windbg and load pykd:
.load path-to-pykd
3. to use pykd within python program add a path to pykd to the PYTHONPATH or via registry ( \SOFTWARE\Python\PythonCore\version\PythonPath )
Attention!!! Do not attempt to copy pykd.pyd of the 0.3.x version over 0.2.x . It will not work properly!
Where is an automatic installer?
We still have a problem with the installer (see https://pykd.codeplex.com/workitem/13172 ) and can not upload fixed version now.New Features
- Set of function for memory modification by address: setByte, setWord, setDWord, setQWord, setFloat, setDouble
- Set of function for writing array to the target memory: writeBytes, writeWords, writeDwords, writeQWords, writeFloats, writeDoubles
- targetSystem.setCurrent method ( set the system as a current )
- targetProcess.setCurrent method ( set the process as a current )
- targetProcess.getModuleByOffset ( return a module object by it's offset )
- targetProcess.getModuleByName ( return a module object by it's name )
- targetSystem.getProcessBySystemId method ( return process by PID )
- targetProcess.getThreadBySystemId method ( return thread by tid )
Bug fixed:
issue #13949( IndexError: Index out of range (stackFrame.getParams) )issue #13948( DbgException: AMD64 context: unsupported register index 365 )issue #13946( dbgCommand fails on python 3.5 remote connection )issue #13938(module.findSymbol long time execution)