mirror of
https://github.com/microsoft/PowerToys
synced 2025-08-22 10:07:37 +00:00
## Summary of the Pull Request Accumulated information from internal transition about the modules development, and reworked it to be added in dev docs. Also the dev docs intself was restructured to be more organized. New pages was verified by transition team. ## PR Checklist - [x] **Dev docs:** Added/updated --------- Co-authored-by: Zhaopeng Wang (from Dev Box) <zhaopengwang@microsoft.com> Co-authored-by: Hao Liu <liuhao3418@gmail.com> Co-authored-by: Peiyao Zhao <105847726+zhaopy536@users.noreply.github.com> Co-authored-by: Mengyuan <162882040+chenmy77@users.noreply.github.com> Co-authored-by: zhaopeng wang <33367956+wang563681252@users.noreply.github.com> Co-authored-by: Jaylyn Barbee <51131738+Jaylyn-Barbee@users.noreply.github.com>
112 lines
3.2 KiB
Markdown
112 lines
3.2 KiB
Markdown
# PowerToys Debugging Tools
|
|
|
|
PowerToys includes several specialized tools to help with debugging and troubleshooting. These tools are designed to make it easier to diagnose issues with PowerToys features.
|
|
|
|
## FancyZones Debugging Tools
|
|
|
|
### FancyZones Hit Test Tool
|
|
|
|
- Location: `/tools/FancyZonesHitTest/`
|
|
- Purpose: Tests FancyZones layout selection logic
|
|
- Functionality:
|
|
- Simulates mouse cursor positions
|
|
- Highlights which zone would be selected
|
|
- Helps debug zone detection issues
|
|
|
|
### FancyZones Draw Layout Test
|
|
|
|
- Location: `/tools/FancyZonesDrawLayoutTest/`
|
|
- Purpose: Tests FancyZones layout drawing logic
|
|
- Functionality:
|
|
- Visualizes how layouts are drawn
|
|
- Helps debug rendering issues
|
|
- Tests different monitor configurations
|
|
|
|
### FancyZones Zonable Tester
|
|
|
|
- Location: `/tools/FancyZonesZonableTester/`
|
|
- Purpose: Tests if a window is "zonable" (can be moved to zones)
|
|
- Functionality:
|
|
- Checks if windows match criteria for zone placement
|
|
- Helps debug why certain windows can't be zoned
|
|
|
|
## Monitor Information Tools
|
|
|
|
### Monitor Info Report
|
|
|
|
- Location: `/tools/MonitorPickerTool/`
|
|
- Purpose: Diagnostic tool for identifying WinAPI bugs related to physical monitor detection
|
|
- Functionality:
|
|
- Lists all connected monitors
|
|
- Shows detailed monitor information
|
|
- Helps debug multi-monitor scenarios
|
|
|
|
## Window Information Tools
|
|
|
|
### Styles Report Tool
|
|
|
|
- Location: `/tools/StylesReportTool/`
|
|
- Purpose: Collect information about an open window
|
|
- Functionality:
|
|
- Reports window styles
|
|
- Shows window class information
|
|
- Helps debug window-related issues in modules like FancyZones
|
|
|
|
### Build Process
|
|
|
|
The Styles Report Tool is built separately from the main PowerToys solution:
|
|
|
|
```
|
|
nuget restore .\tools\StylesReportTool\StylesReportTool.sln
|
|
msbuild -p:Platform=x64 -p:Configuration=Release .\tools\StylesReportTool\StylesReportTool.sln
|
|
```
|
|
|
|
## Shell-Related Debugging Tools
|
|
|
|
### PowerRenameContextMenu Test
|
|
|
|
- Location: `/tools/PowerRenameContextMenuTest/`
|
|
- Purpose: Tests PowerRename context menu integration
|
|
- Functionality:
|
|
- Simulates right-click context menu
|
|
- Helps debug shell extension issues
|
|
|
|
## Verification Tools
|
|
|
|
### Verification Scripts
|
|
|
|
- Location: `/tools/verification-scripts/`
|
|
- Purpose: Scripts to verify PowerToys installation and functionality
|
|
- Functionality:
|
|
- Verify binary integrity
|
|
- Check registry entries
|
|
- Test module loading
|
|
|
|
## Other Debugging Tools
|
|
|
|
### Clean Up Tool
|
|
|
|
- Location: `/tools/CleanUp/`
|
|
- Purpose: Clean up PowerToys installation artifacts
|
|
- Functionality:
|
|
- Removes registry entries
|
|
- Deletes settings files
|
|
- Helps with clean reinstallation
|
|
|
|
### Using Debugging Tools
|
|
|
|
1. Most tools can be run directly from the command line
|
|
2. Some tools require administrator privileges
|
|
3. Tools are typically used during development or for advanced troubleshooting
|
|
4. Bug Report Tool can collect and package the output from several of these tools
|
|
|
|
## Adding New Debugging Tools
|
|
|
|
When creating new debugging tools:
|
|
|
|
1. Place the tool in the `/tools/` directory
|
|
2. Follow existing naming conventions
|
|
3. Document the tool in this file
|
|
4. Include a README.md in the tool's directory
|
|
5. Consider adding the tool's output to the Bug Report Tool if appropriate
|