WinGDB for Mobile Systems

WinGDB for Mobile Systems is a special edition of WinGDB targeted at mobile systems development. Currently it supports Android system.

Documentation is available here - section "Development for Android system".

Any feedback is greatly appreciated.

Features
  • Integration with Visual Studio project management: you can manage your projects and source files in similar way as regular Visual Studio projects.
  • The whole Android project structure described in AndroidManifest.xml file, as well as native subproject structure, are visible in Solution Explorer window. All manifest properties are editable. Components (e.g. activities, services, etc.) may be added/removed. Currently only activities can be debugged.
  • Building the projects with standard NDK-build system. WinGDB works directly with *.mk and *.xml files used by NDK-build, so that it is interoperable with other tools. No conversions are required. In addition, WinGDB adds its own project file (wgaproj) that contains a small amount of its own metadata.
  • Building and deployment of Android packages (APK) by utilising standard Android tools.
  • Debugging applications on an Android emulator (AVD). Both launching activities and attaching to existing ones is supported. Most Visual Studio debug windows and features can be used.
  • Debugging on physical devices. Need not to be rooted. The reference device is the Nexus One. Currently we stated testing also on NVIDIA's development kits Ventana (dual core) and Cardhu (quad core). Since WinGDB uses only standard SDK tools (adb), theoretically any device with suitable drivers should work.
  • Limited Java support. In current version there is a possibility to edit Java files (with syntax coloring), so that you can fix small bugs, build the project and test the result. An experimental version of Java debugger has also been included in current release. Debugging sessions may be started either for native or Java code. Mixed Java/C++ debugging is a work in progress.
  • Device monitor. A special window allowing to examine the state of connected Android device or emulator. There are mulitple pages, presenting different aspects of the state: running processes, installed packages, CPU information, CPU cores availability, active services, system properties, etc. Many pages have additional options available in a right-click menu, e.g. uninstalling packages, examining detailed process information, killing processes, etc. New pages and options are being added on each release.
Major features in development
Some screenshots

Creating new project.

Project structure view in Solution Explorer.

Attaching to a process on the Android emulator.

Device monitor.

Known problems

Here are the most important problems: