Overview
angr Management is a PySide6 (Qt) application that can be debugged using standard Python debugging tools. This guide covers debugging techniques for both the GUI and backend components.Running in Development Mode
Standard Launch
Run angr Management directly from source:Command Line Options
Useful debugging flags:Headless Mode
For testing without the GUI:Python Debugger
Using pdb
Insert breakpoints in code:Using debugpy
angr Management bundlesdebugpy for remote debugging. Start with debugpy:
Using VS Code
Launch configuration for direct debugging:Qt Debugging
Enable Qt Debug Output
Set environment variables:- Plugin loading details
- Qt internal warnings
- Event processing information
Qt Inspector
For visual debugging of the Qt widget hierarchy:QTest for Interactive Testing
Test UI components programmatically:Logging
Application Logging
angr Management uses Python’s logging system:angr Profiling
Enable angr’s profiling logger:Interactive Mode
IPython Console
Launch with interactive mode:script_globals variable.
Embedded Console
angr Management includes an embedded IPython console (via qtconsole). Access it from:- Menu: View → Console
- Keyboard: Check command palette for shortcuts
Debugging Analysis Jobs
Job Manager
angr Management runs analyses in background threads via the Job Manager. Debug jobs:Thread Debugging
Identify the GUI thread:Memory Profiling
Using pytest-profiling
Run tests with memory profiling:Using memory_profiler
Install and use memory_profiler:Common Debugging Scenarios
Debugging a Crash
- Enable core dumps (Linux/macOS):
- Run with faulthandler:
- Check Qt crash handlers:
Debugging UI Freezes
- Check for blocking operations in GUI thread:
- Use QTimer to defer work: