skillfed

pyxdia

Extract useful program information from PDB files

pyxdia v0.1.1 279.1K downloads/30d#8,125 on PyPI3
License unclear Copyright 2024 Matt Borgerson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the… (full text in the JSON record) Active released

What it is and what it does

pyxdia is a Python wrapper around xdia, a native tool for reading Windows PDB (Program Database) files. It provides cross-platform access to debug symbol information—function names, global variables, addresses, and metadata—that is normally locked into Windows-only tooling. The library bundles xdia as a native executable and uses a compatibility layer (xdialdr) plus the Blink emulator to run it on macOS and Linux, making PDB analysis accessible from Python on any major platform.

The package is designed for developers and reverse engineers who need to programmatically extract symbol tables and program structure from compiled binaries. It has no Python runtime dependencies, only the bundled native components. Installation is straightforward via pip, though the wheels are larger due to the included binaries. The project is actively maintained but young (first released in mid-2024), so production use should account for potential API changes.

Use it for:

  • Extract function and variable names from compiled Windows binaries for reverse engineering or security analysis
  • Analyze debug symbols in PDB files to map addresses to source-level identifiers
  • Automate symbol extraction in CI/CD pipelines for binary instrumentation or profiling workflows
  • Build tools that depend on PDB metadata without requiring Windows-only debugging infrastructure

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

pyxdia extracts program metadata and symbol information from PDB (Program Database) files, enabling analysis of compiled binaries across Windows, macOS, and Linux.

Yes, if you need to parse PDB files from Python on non-Windows platforms or want a programmatic interface to symbol extraction. The bundled binaries and active maintenance make installation straightforward, but verify that the included binary licenses (xdia, Blink) align with your use case. The 0.1.1 version and small user base suggest treating it as a specialized tool rather than a production-critical dependency without additional vetting.

Install

pyxdia on PyPI

pip

pip install pyxdia

uv

uv add pyxdia

poetry

poetry add pyxdia

Installing pyxdia

Before you install

Medium install friction due to bundled native binaries (xdia executable and Blink emulator) included in wheels; active maintenance with recent commits, though the project is young with limited adoption signals.

License in practice

pyxdia source is MIT-licensed, but wheels bundle additional binaries under separate licenses documented in *.LICENSE.txt files within the package; review those bundled licenses before use in proprietary or restricted environments.

Quickstart

from pyxdia import PDB

pdb = PDB("./program.pdb")
globals_list = pdb.globals
for global_sym in globals_list:
    print(global_sym['name'], global_sym['addressOffset'])

Requires Python 3.12 or later; wheels include prebuilt binaries for macOS (Intel/ARM), Linux (x86_64/aarch64), and Windows (x86_64).

Verify before relying

  • Whether the bundled xdia binary and Blink emulator licenses are compatible with your intended use case
  • Performance characteristics when parsing large or complex PDB files
  • Stability guarantees given the 0.1.1 version number and early release date

Package facts

License Copyright 2024 Matt Borgerson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the… (full text in the JSON record) (unclear)
Python support supports the current Python release (>=3.12)
Install friction medium — platform-specific wheel
Runtime dependencies none
Maintenance actively maintained — 59 days since the last release
Last repo commit
First released
Downloads 279,138/month — #8,125 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pyxdia-0.1.1-py3-none-macosx_13_0_x86_64.whl; pyxdia-0.1.1-py3-none-macosx_14_0_arm64.whl; pyxdia-0.1.1-py3-none-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; pyxdia-0.1.1-py3-none-manylinux_2_28_aarch64.whl; pyxdia-0.1.1-py3-none-win_amd64.whl

Programming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14

Tags

pdb file parserextract program symbolsdebug information extractionbinary metadata analysispdb reader libraryprogram database parser
binary-analysisdebug-symbolsreverse-engineering

More Software Development packages