Introduction
WinGDB is an extension for Visual Studio development environment.
It allows you to develop programs for the following targets:
- Linux/Unix systems, using native development tools remotely,
- Android/ARM mobile systems,
- Windows, using MinGW or Cygwin tools,
- embedded Linux/Unix systems, using cross-development tools,
- embedded devices through JTAG/OCD interface.
WinGDB scope extends over the following development phases:
- Editing the code: standard Visual Studio editors are used, with several
WinGDB extensions. You can also write Java code (for Android targets) even under
Visual Studio versions which do not support Java anymore. WinGDB adds
simple (but continuously improved) support for Java language.
- Project build: you can launch makefile builds and jump to errors directly
from Visual Studio console. WinGDB provides also a simple makefile generator,
which can be used to convert Visual Studio project to a makefile buildable with
GNU make. For Android targets, standard SDK/NDK projects are directly supported
in the Solution Explorer window (no project conversion is required).
- Project deploy: the resulting files can be copied to target machine, or
a custom deploy script may be called. For Android targets, the package is
being created and deployed using standard package manager commands.
- Debugging: GDB debugger is run in the background, either via SSH connection
to target machine, or GDB serial protocol. Attach, launch and examine core scenarios
are supported. WinGDB provides a convenient user interface based on Visual Studio Debugger,
including: source code view inside Visual Studio, code stepping, breakpoints, locals, autos,
watch, modules, disassembly, I/O console. Most standard Visual Studio Debugger features are
supported. Visualizers feature allows to view contents of complex containers. Also Java
debugging is supported, as WinGDB provides its own implementation of Java debugger
engine based on JDI API.
WinGDB is designed to be as easy and convenient as possible. If you are familiar with Visual Studio Debugger,
you won't need much additional learning. Most features work exactly the same way. However, there are some
platform-related differences and additional concepts specific to Unix operating systems (e.g. signal handling).
This manual contains sections explaining such subjects.
For quick start, please read the following sections.
Editions
WinGDB for Mobile Systems
WinGDB for Mobile Systems is an extension for Visual Studio allowing you to develop
Java and native Android applications under Visual Studio. Other mobile systems support is also in plans.
WinGDB for Mobile Systems offers the following features:
-
Integration with Visual Studio project management: you can manage your projects and
source files in similar way as regular Visual Studio projects.
-
Building the projects with standard NDK-build system. WinGDB works directly with
*.mk 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 Nexus One. Since WinGDB uses only standard SDK tools (adb), 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. Java debugging is also quite functional.
The ultimate goal is to provide mixed Java/C++ debugging
in order to debug through JNI.
WinGDB for Embedded Systems
WinGDB for Embedded Systems is an extension for Visual Studio allowing you to develop
applications with locally installed GNU tools under Visual Studio. This development scenario
usually targets embedded systems (both with and without OS), but you can also use this
edtition to develop for Windows with MinGW or Cygwin tools.
WinGDB for Embedded Systems offers the following features:
-
Building the projects with GNU make. WinGDB includes a makefile generator to
convert a Visual Studio project to makefile. You can also use your own makefiles.
Build errors and warnings can be viewed in Visual Studio console.
-
Deployment based on copying files, running scripts or FLASH programming commands.
-
Debugging with GDB running in background, using GDB serial protocol to communicate.
-
Running GDBServer on targets, where applicable.
WinGDB for Remote Linux Development
WinGDB for Remote Linux Development is an extension for Visual Studio allowing you to develop
applications on a remote Linux/Unix machine with remotely installed GNU tools under Visual Studio.
This development scenario usually targets desktop Linux (or other Unix) systems.
WinGDB for Remote Linux Development offers the following features:
-
Connection to the remote machine with SSH protocol.
-
Editing remote source files, using either simple local caching, directory synchonization,
or Samba sharing.
-
File transfer over SCP or SFTP protocol.
-
Building the projects with GNU make. WinGDB includes a makefile generator to
convert a Visual tudio project to makefile. You can also use your own makefiles.
Build errors and warnings can be viewed in Visual Studio console.
-
Deployment based on copying files or running scripts.
-
Debugging with GDB running on the remote machine (through SSH), with possibility
of using GDBServer in addition.
-
Running GDBServer on targets, where applicable.
WinGDB Enterprise
WinGDB Enterprise contains all variants mentioned above in single package.
Requirements and installation
Describes the requirements that both your local system (Windows-based)
and remote system (Unix-based) should meet.
Describes the installation process.
Explains how to handle with license and register product.
Release notes of all published versions.
Describes the limitations of demo version.
Development for Android system
Explains general development options that should be configured first.
Explains how to use standard Android SDK/NDK projects in Visual Studio.
Explains how to debug Java code.
Explains how to debug native code.
Explains how to use the Device Monitor window.
Lists known problems and workarounds.
Development for embedded devices and remote Linux systems
Explains how to store WinGDB settings in Visual C++ projects and solutions.
Explains general development options that should be configured first.
Describes methods of authentication supported by WinGDB.
Explains how to use WinGDB to develop and debug applications remotely on desktop/server Linux machines.
Explains how to use WinGDB to develop and debug applications indirectly (with gdbserver) on desktop/server Linux machines.
Explains how to use WinGDB to develop and debug Windows applications using MinGW or Cygwin tools.
Explains how to use WinGDB to develop and debug embedded or mobile Linux applications.
Explains how to use WinGDB to develop and debug embedded "bare metal" devices using OpenOCD.
Reference
Explains how to attach to a process on remote host and start debugging.
Explains how to launch a process on remote host (or local host when using Cygwin/MinGW) and start debugging.
Explains how to launch a X11 process on remote host with a connection to local X-server.
Explains how to examine a core dump on remote host.
Explains how to map source directories between different locations/hosts.
Explains how to generate a makefile from Visual Studio project.
Explains how to run build on remote machine.
Explains how to manage TCP connections established by WinGDB.
Explains how to use complex data type visualizers (e.g. for STL containers).
Explains how to use specifiers to format values.
WinGDB also allows to use the Visual Studio editor to edit remote source files. This section explains
how to use this feature.
Explains how to configure WinGDB for Cygwin support.
Describes configuration options for WinGDB.
Explains how to write custom initialization scripts.
Explains how to configure debugger to break execution when an exception is thrown or caught.
Visual Studio tips
Describes how to configure your project to be able to use IntelliSense.
Describes how to create project configurations for multiplatform development.
Copyright (C) 2008-2012 WinGDB.com. All rights reserved.