Profiling XBox UWP application
Hello,
is it possible to use dotMemory for profiling and finding memory leaks in XBox One (UWP, C#) application, using Windows 10?
There is this information: https://www.jetbrains.com/help/dotmemory/Profiling_Guidelines__Windows_Store_Applications.html which says that "Compile with .NET Native tool chain" needs to be disabled so I have disabled it. There is also information about packages "you should specify the following parameter" - but where should this Packages parameter be specified?
When I choose "Remote Machine" in Visual Studio (the same happens for "Local Machine") and then ReSharper -> Profile -> Run Startup Project Memory Profiling, then "Profile External Application" window appears. However, when I choose "WinRT Application" ("Windows Store and Universal Windows Platform applications"), there is nothing in the list of packages. Pressing "Refresh" doesn't help. And I cannot click "Run" because of the error message "No application package is selected".
I have also tried "Run Application Memory Profiling" instead of "Run Startup Project Memory Profiling" but also without success. I've tried both Debug and Release modes.
How to do profiling of XBox application? How to find memory leaks?
Thanks!
Please sign in to leave a comment.
> where should this Packages parameter be specified
Select 'WinRT Application' in "Profile External Application" window then choose your package in drop down list. If the application you are looking for is missing, try to deploy it again and click Refresh to update the list.
> when I choose "WinRT Application" ("Windows Store and Universal Windows Platform applications"), there is nothing in the list of packages
It looks like your application isn't deployed on this machine. Please deploy it again and refresh the list, does your package appears in this case?
> When I choose "Remote Machine" in Visual Studio
This setting affects Visual Studio behavior only. If you want to run profiling on remote machine, please use Remote profiling in dotMemory. You need to run standalone dotMemory product in this case: https://www.jetbrains.com/help/dotmemory/Starting_Remote_Profiling_Process.html
If all of these suggestions don't help please collect dotMemory logs for us:
Also you can try to use "global" profiling mode as a workaround. It can be done via ".NET Process" profiling configuration: https://www.jetbrains.com/help/dotmemory/Profiling_Guidelines__dotNET_Process.html
Does it help in your case?
Thank you a lot for your response. I can see the application on my local computer by pressing Windows button and typing its name. Also, when I go to Home in XBox, I can see the application icon too. So it's deployed in both places, locally and on XBox.
I was able to run diagnostics with your tool for locally deployed application by running dotMemory as standalone application, instead of from VS. But it doesn't help me as I need to debug it on XBox.
The first link you've provided shows that I need to run exe file on XBox. However, according to https://answers.microsoft.com/en-us/xbox/forum/xba_gapp/xbox-one-support-for-exe-files/531cb3c1-4ea0-4150-b133-3d83425e924d it is not possible to run exe files on XBox.
I'm not sure how to use that workaround that you've mentioned at the end. It also relates to exe file so I suspect it's not relevant to remote debugging of XBox applications. And in which window should I select this 'Advanced' option? I assume it's from standalone tool - "New Session" - "Local" so not useful to me, as I need remote.
Another question - is it possible to use dotMemory with simulator available from VS?
> And in which window should I select this 'Advanced' option
Advanced options exist for ".NET Process" configuration type in both Local and Remote cases.
> is it possible to use dotMemory with simulator available from VS?
You can try to profile your application such way. I've try to run ".NET Process" configuration and run simulator for the simple UWP project in Visual Studio, both processes have been picked up by profiler: