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>
5.1 KiB
5.1 KiB
Bug Report Tool
The Bug Report Tool is a utility that collects logs and system information to help diagnose issues with PowerToys. It creates a comprehensive report that can be shared with developers to help troubleshoot problems.
Location and Access
- Source code:
/tools/BugReportTool/
- Users can trigger the tool via:
- Right-click on PowerToys tray icon → Report Bug
- Left-click on tray icon → Open Settings → Bug Report Tool
What It Does
The Bug Report Tool creates a zip file on the desktop named "PowerToys_Report_[date]_[time].zip" containing logs and system information. It:
- Copies logs from PowerToys application directories
- Collects system information relevant to PowerToys functionality
- Redacts sensitive information
- Packages everything into a single zip file for easy sharing
Information Collected
Logs
- Copies logs from:
%LOCALAPPDATA%\Microsoft\PowerToys\Logs
- Regular logs%USERPROFILE%\AppData\LocalLow\Microsoft\PowerToys
- Low-privilege logs
System Information
- Windows version and build information
- Language and locale settings
- Monitor information (crucial for FancyZones and multi-monitor scenarios)
- .NET installation details
- PowerToys registry entries
- Group Policy Object (GPO) settings
- Application compatibility mode settings
- Event Viewer logs related to PowerToys executables
- PowerToys installer logs
- Windows 11 context menu package information
PowerToys Configuration
- Settings files
- Module configurations
- Installation details
- File structure and integrity (with hashes)
Key Files in the Report
compatibility-tab-info.txt
- Information about compatibility settings set for certain PowerToys executables both in the user and system scope.context-menu-packages.txt
- Information about the packages that are registered for the new Windows 11 context menu.dotnet-installation-info.txt
- Information about the installed .NET versions.EventViewer-*.xml
- These files contain event logs from the Windows Event Viewer for the executable specified in the file name.EventViewer-Microsoft-Windows-AppXDeploymentServer/Operational.xml
- Contains event logs from the AppXDeployment-Server which are useful for diagnosing MSIX installation issues.gpo-configuration-info.txt
- Information about the configured GPO.installationFolderStructure.txt
- Information about the folder structure of the installation. All lines with files have the following structure:FileName Version MD5Hash
.last_version_run.json
- Information about the last version of PowerToys that was run.log_settings.json
- Information about the log level settings.monitor-report-info.txt
- Information about the monitors connected to the system. This file is created by the monitor info report tool.oobe_settings.json
- Information about the OOBE settings.registry-report-info.txt
- Information about the registry keys that are used by PowerToys.settings_placement.json
- Information about the placement of the settings window.settings-telemetry.json
- Information about the last time telemetry data was sent.UpdateState.json
- Information about the last update check and the current status of the update download.windows-settings.txt
- Information about the Windows language settings.windows-version.txt
- Information about the Windows version.
Privacy Considerations
The tool redacts certain types of private information:
- Mouse Without Borders security keys
- FancyZones app zone history
- User-specific paths
- Machine names
Implementation Details
The tool is implemented as a C# console application that:
- Creates a temporary directory
- Copies logs and configuration files to this directory
- Runs commands to collect system information
- Redacts sensitive information
- Compresses everything into a zip file
- Cleans up the temporary directory
Core Components
BugReportTool.exe
- Main executable- Helper classes for collecting specific types of information
- Redaction logic to remove sensitive data
Extending the Bug Report Tool
When adding new PowerToys features, the Bug Report Tool may need to be updated to collect relevant information. Areas to consider:
- New log locations to include
- Additional registry keys to examine
- New GPO values to report
- Process names to include in Event Viewer data collection
- New configuration files to include
Build Process
The Bug Report Tool is built separately from the main PowerToys solution:
- Path from root:
tools\BugReportTool\BugReportTool.sln
- Must be built before building the installer
- Built version is included in the PowerToys installer
Building from the Command Line
nuget restore .\tools\BugReportTool\BugReportTool.sln
msbuild -p:Platform=x64 -p:Configuration=Release .\tools\BugReportTool\BugReportTool.sln
Building from Visual Studio
- Open
tools\BugReportTool\BugReportTool.sln
- Set the Solution Configuration to
Release
- Build the solution