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!

0
3 comments

> 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:

  • Close standalone dotMemory and Visual Studio with integrated dotMemory
  • Clear %temp%\JetLogs folder
  • Go to dotMemory installation folder: %localappdata%\JetBrains\Installations\dotMemory[N]
  • Using Windows command-line start dotMemory with arguments: /LogLevel=Trace
  • Start creating a profiling session (e.g., on dotMemory Home page, choose Local (Remote) | WinRT Application)
  • Try to find your package in drop-down list
  • Close dotMemory
  • Look for logs in the %temp%\JetLogs folder. You can upload log files to our ftp: https://uploads.services.jetbrains.com/ Please provide the package name you're looking for

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?

0

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?

0

> 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:

 

0

Please sign in to leave a comment.