Metadata-Version: 2.2
Name: pyxdia
Version: 0.0.1
Summary: pyxdia
Home-page: https://github.com/mborgerson/xdia
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Provides-Extra: docs
Requires-Dist: furo; extra == "docs"
Requires-Dist: ipython; extra == "docs"
Requires-Dist: myst-parser; extra == "docs"
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints; extra == "docs"

pyxdia
======
pyxdia is a Python library for extracting useful program information from a [PDB file](https://en.wikipedia.org/wiki/Program_database). pyxdia runs on Windows, macOS, Linux, and other platforms.

## Dependencies

pyxdia depends on [xdia](https://github.com/mborgerson/xdia), a native Windows executable. For cross-platform support, a thin loader and compatibility layer (xdialdr) and emulator ([Blink](https://github.com/jart/blink)) are used to run xdia. These dependencies are included in wheels for convenient installation, and in source distributions will be downloaded at installation time.

## License

pyxdia source is released under MIT license. pyxdia wheels include binaries that are released under individual licenses, with license text available within the wheel.

## Installation

Install pyxdia with:

```
pip install pyxdia
```

## Usage

Read globals:

```
In [1]: from pyxdia import PDB

In [2]: pdb = PDB("./hello-wdm.pdb")

In [3]: pdb.globals[0]
Out[3]:
{'addressOffset': 48,
 'addressSection': 1,
 'name': '_guard_dispatch_icall_nop',
 'relativeVirtualAddress': 4144,
 'symTag': 'Function',
 'undecoratedName': '_guard_dispatch_icall_nop'}
```
