Skip to main content

Python interface for Microsoft's Debug Interface Access (DIA) SDK.

Project description

pydia

The ultimate Python wrapper for the Microsoft's DIA SDK (Debug Interface Access)


Goal

pydia aims to ease the manual handling of PDB files. No more hacking together some IDA-Python - you can now use your favorite python ditribution and simply install a package! pydia makes all the common functionality used when working with PDB files extremely accessible.

My future vision

Hopefully, we can make pydia so powerful we will be able to accurately recreate header files from PDBs alone.

How?

The ideaology of pydia is as follows:

  • Every DIA2 SDK COM function is wrapped by a neat C++ function which handles all memory allocation/de-allocation and reference count tracking. These C++ wrappers are found in DiaLib.
  • Each DIA2 SDK "class" is implemented as a C-API Python class in pydia (the sub-project).
    • The C-Python wrapper will never directly call a COM function - rather it will call a DiaLib method which will wrap the low level memory managment.
  • The C-Python wrappings (pydia) must be as user-friendly and safe as possible. It should be actively difficult to missuse pydia's exported Python API.
  • The DiaLib wrappings should be 100% responsible for all low-level management - especially memory-wise. Unless the user is a dehydrated donkey they should not be able to cause DiaLib to "seg-fault" (0xC0000005 - STATUS_ACCESS_VIOLATION).

Internals

Directory structure

  • CTests
    • Testing framework for DiaLib based on Microsoft's CppUnitTestFramework.
    • Resources
    • Generally useful binary/misc resources for tests.
  • DiaLib
    • Implementation of the C++ wrapper library for the DIA2 SDK.
  • PyTests
    • Testing framework for pydia (the C-API Python module) based on pytest.
  • pydia
    • Implementation of the C-API Python module which wraps DiaLib (and by transitivity also the DIA2 SDK)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydia3-0.1.2.tar.gz (107.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydia3-0.1.2-py3-none-any.whl (2.5 kB view details)

Uploaded Python 3

File details

Details for the file pydia3-0.1.2.tar.gz.

File metadata

  • Download URL: pydia3-0.1.2.tar.gz
  • Upload date:
  • Size: 107.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.1

File hashes

Hashes for pydia3-0.1.2.tar.gz
Algorithm Hash digest
SHA256 21d7d65e80453f3e6ce7252da52896e12e10f92960384a80bb8aaf7bf044310a
MD5 c9245f45c9732900df2465e36b402135
BLAKE2b-256 c7a81710bef33af1addf0267b09ea85a553ff5bceca1e6a62af6b6e9cec6162b

See more details on using hashes here.

File details

Details for the file pydia3-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: pydia3-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 2.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.1

File hashes

Hashes for pydia3-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6282c2aebccbb9fafe7ba527c109397ff542f0dd13f9bd250eddd3eb8fd4130a
MD5 ce414a7442a08a574f592b31000534d0
BLAKE2b-256 0c2f9f2b012e5bd3ce8ef95032e76cb7e770aac1c271b13303d2dfc3b4e6d61f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page