|
| 1 | +# Microsoft Performance Tools Linux / Android - Developer Information |
| 2 | + |
| 3 | +# Prerequisites |
| 4 | + |
| 5 | +See [Readme Dev PreReqs](Readme.md#Dev%20prereqs) |
| 6 | + |
| 7 | +# Code Editing |
| 8 | + |
| 9 | +## Entire Project |
| 10 | +If working on the entire project, or editing .sln or .csproj files |
| 11 | +[Visual Studio](https://visualstudio.microsoft.com/) is recommended |
| 12 | + |
| 13 | +Open [Microsoft-Perf-Tools-Linux-Android.sln](Microsoft-Perf-Tools-Linux-Android.sln) in VS |
| 14 | + |
| 15 | +## Single Files |
| 16 | +Use your favorite editor |
| 17 | + |
| 18 | +## Build & Test |
| 19 | + |
| 20 | +### Cross Platform Cmd-Line |
| 21 | +- ```dotnet build``` |
| 22 | +- ```dotnet test``` |
| 23 | + |
| 24 | +### IDE |
| 25 | +- VS Build Solution or Build Project |
| 26 | + |
| 27 | +# Debugging & Testing |
| 28 | + |
| 29 | +## Dev inner loop |
| 30 | +It's often fastest to debug the Unit Test examples since they wrap the plugins. This method keeps runtime overhead to a minimum. See the various *UnitTest projects |
| 31 | + |
| 32 | +- VS Test Explorer is a great way to visualize / run / debug tests. Test -> Test Explorer |
| 33 | + |
| 34 | +## Plugin visualization and trace testing |
| 35 | +- After getting some stabilization in a plugin, it's often fastest to test or investigate multiple traces using a GUI. |
| 36 | + |
| 37 | +- The plugins are not tied to any specific GUI. However the GUI does need to support the [Microsoft Performance Toolkit SDK](https://github.com/microsoft/microsoft-performance-toolkit-sdk) |
| 38 | + |
| 39 | +### WPA GUI |
| 40 | +- Debugging using WPA |
| 41 | + - We have not figured out to debug attach using Store versions of WPA. Therefore, as a developer, you will need to use a non-Store version |
| 42 | + - For external devs outside Microsoft, use latest [Windows Insider Preview ADK](https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewADK) and install just WPA |
| 43 | + - For internal devs inside Microsoft, use the latest internal WPA |
| 44 | +- Using VS2022 Launch Profiles |
| 45 | + - To Start WPA with your plugin (doesn't auto-open file) |
| 46 | + - Executable |
| 47 | + - "C:\PATH\TO\wpa.exe" |
| 48 | + - Command line arguments - |
| 49 | + - -addsearchdir "C:\src\Microsoft-Performance-Tools-Linux-Android\ThePlugin\bin\Debug" |
| 50 | + - To Start WPA with your plugin AND auto-open file |
| 51 | + - Executable |
| 52 | + - "C:\PATH\TO\wpa.exe" |
| 53 | + - Command line arguments - |
| 54 | + - -addsearchdir "C:\src\Microsoft-Performance-Tools-Linux-Android\ThePlugin\bin\Debug" -i "C:\PATH\TO\tracefile.ext" |
0 commit comments