mirror of
https://github.com/microsoft/PowerToys
synced 2025-08-31 14:35:18 +00:00
[DevDocs] More content and restructure (#40165)
## 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>
This commit is contained in:
@@ -1,24 +1,56 @@
|
||||
# [Bug report tool](/tools/BugReportTool/)
|
||||
# Bug Report Tool
|
||||
|
||||
This tool is used to collect logs and system information for bug reports. The bug report is then saved as a zip file on the desktop.
|
||||
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.
|
||||
|
||||
## Launching
|
||||
## Location and Access
|
||||
|
||||
It can launch from the PowerToys tray icon by clicking "Report Bug", by clicking the bug report icon in the PowerToys flyout or by running the executable directly.
|
||||
- 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
|
||||
|
||||
## Included files
|
||||
## What It Does
|
||||
|
||||
The bug report includes the following files:
|
||||
The Bug Report Tool creates a zip file on the desktop named "PowerToys_Report_[date]_[time].zip" containing logs and system information. It:
|
||||
|
||||
1. Copies logs from PowerToys application directories
|
||||
2. Collects system information relevant to PowerToys functionality
|
||||
3. Redacts sensitive information
|
||||
4. 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
|
||||
|
||||
* Settings files of the modules.
|
||||
* Logs of the modules and the runner.
|
||||
* Update log files.
|
||||
* `compatibility-tab-info.txt` - Information about [compatibility settings](https://support.microsoft.com/windows/make-older-apps-or-programs-compatible-with-windows-783d6dd7-b439-bdb0-0490-54eea0f45938) 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](/doc/gpo/README.md).
|
||||
* `gpo-configuration-info.txt` - Information about the configured [GPO](doc/devdocs/processes/gpo.md).
|
||||
* `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.
|
||||
@@ -30,3 +62,58 @@ The bug report includes the following files:
|
||||
* `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:
|
||||
1. Creates a temporary directory
|
||||
2. Copies logs and configuration files to this directory
|
||||
3. Runs commands to collect system information
|
||||
4. Redacts sensitive information
|
||||
5. Compresses everything into a zip file
|
||||
6. 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:
|
||||
|
||||
1. New log locations to include
|
||||
2. Additional registry keys to examine
|
||||
3. New GPO values to report
|
||||
4. Process names to include in Event Viewer data collection
|
||||
5. New configuration files to include
|
||||
|
||||
## Build Process
|
||||
|
||||
The Bug Report Tool is built separately from the main PowerToys solution:
|
||||
|
||||
1. Path from root: `tools\BugReportTool\BugReportTool.sln`
|
||||
2. Must be built before building the installer
|
||||
3. 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
|
||||
|
||||
1. Open `tools\BugReportTool\BugReportTool.sln`
|
||||
2. Set the Solution Configuration to `Release`
|
||||
3. Build the solution
|
Reference in New Issue
Block a user