One of the areas that we have improved in VS2012 updates is dump debugging. In this post, I will explain dump debugging feature specific to the ARM architecture. We want to enable all developers who are building Windows Store applications targeting the Surface RT and other ARM devices.

Even though we had the live debugging support for apps targeting ARM from day one, dump debugging needed additional work that we were able to do post-RTM. Arm Dump debugging support allows developers to investigate crashes and other bugs that occur on the customer’s device.

Debugging an existing ARM dump

As a first step to achieve this, we have enabled native debugging of ARM dumps in VS2012 Update 1.

(Update 1 of VS2012 opens ARM dump and has native debugging link available)

(Update 1 of VS2012 opens ARM dump and has native debugging link available)

This support will be useful for all the developers out there writing native apps and games for Windows RT. This support will also help some developers with the apps that use mixed mode (both managed and native code). They will be able to debug the problems that originate from or in the native code.

To start debugging an ARM dump natively, follow these easy steps.

  1. For basic guidelines about dump debugging, follow this MSDN article.
  2. Open the dump file in visual studio.
  3. If the process architecture specifies “ARM”, you should have “Debug with Native Only” link on the dump summary page.
  4. Simply click on the link and you shall be in the familiar debug mode for the app and will also be able to navigate through the call stack and source code if available.

(After starting native debugging for an ARM dump, walking through call stack and source code)

(After starting native debugging for an ARM dump, walking through call stack and source code)

Saving an ARM dump for debugging

You often need to save a dump in a tricky scenario when live debugging an app remotely on an ARM machine. This can be for any reason including performance issues, hangs or even a crash. When saving a dump for an ARM machine in a live debugging scenario, one inconvenience is to manually copy those dumps to the development machine for debugging purposes. This gets more painful when machines are not in close proximity to use a flash drive and copy the dump over.

To streamline this process, we have added a new feature in remote debugging. Now you are able to save a dump locally (where VS is installed) even when debugging an app on a remote machine.

This is not specific to ARM but folks developing apps for ARM would definitely benefit the most.

To use this feature, there is nothing new to learn. Same old steps with a slight change.

  1. While debugging an app remotely, just use the good old menu to save a dump.
    (Debug menu to save a dump)
  2. You will notice that the dialog to save the dump is now a little different (for remote debugging only).
    (Updated dialog to save remote dumps locally)
  3. If you simply click “Save” a dump will be generated and then will be copied on the local machine (where VS is installed and running/debugging) at the path specified in “File name”. Same will happen if you try to browse for a file path and then click save.
  4. If you still want to keep the dump on remote machine (the ARM device in current scenario), simply check the highlighted box. Now, file will not be copied locally but will be saved on ARM device instead at the path mentioned in “File name”. Please note that if the box is checked, you will need to enter the remote path manually just like before.

That is all in terms of dump debugging improvements for ARM.

As always, we want to hear your feedback. Feel free to leave your comments below, and for general debugger, profiler and IntelliTrace questions please use Diagnostics MSDN forum.