Metadata-Version: 2.5
Name: hotflow
Version: 0.1.1
Summary: A probabilistic control-flow graph analyzer
Author-email: Jarkko Sakkinen <jarkko.sakkinen@iki.fi>
License: GPL-3.0-or-later
License-File: LICENSE
Requires-Python: >=3.10
Requires-Dist: capstone>=5.0.0
Requires-Dist: networkx>=3.0
Requires-Dist: numpy>=1.24
Requires-Dist: pyelftools>=0.30
Requires-Dist: tabulate>=0.10.0
Description-Content-Type: text/markdown

# HotFlow

```
usage: hotflow [-h] [--version] COMMAND ...

Explore probabilistic control flow in ELF functions.

positional arguments:
  COMMAND
    summary       Compare functions using compact hotness and complexity metrics.
    blocks        Show basic-block hotness and reachability.
    edges         Show branch probabilities and edge frequencies.
    loops         Show natural loops and estimated iterations.
    calls         Show call sites and their execution frequency.
    instructions  Show instructions as machine-readable or tabular rows.
    metrics       Show every computed metric by name.
    inspect       Show a detailed report for selected functions.
    disassembly   Show frequency-annotated disassembly for one function.
    graph         Write a Graphviz control-flow graph for one function.

options:
  -h, --help      show this help message and exit
  --version       show program's version number and exit

examples:
  hotflow summary vmlinux 'tcp_*'
  hotflow inspect vmlinux tcp_v4_rcv
  hotflow loops vmlinux --limit 10
  hotflow edges vmlinux tcp_v4_rcv --explain
  hotflow instructions vmlinux tcp_v4_rcv --format json
  hotflow graph vmlinux tcp_v4_rcv > tcp_v4_rcv.dot
```

**HotFlow** is a probabilistic control-flow graph (*CFG*) analyzer for ELF
binaries.

## License

HotFlow is licensed under GPL-3.0-or-later. See [`LICENSE`](LICENSE) for more
information.
