Table of Contents

Basic concepts and general configuration

This chapter explains basic concepts of WinGDB and general configuration options that should be set first. You should familiarize with these before starting working with WinGDB.

Quick and project mode

WinGDB allows two general schemes of operation:

Development targets

GDB can be used in many kinds of environments: Linux systems, Windows development under MinGW or Cygwin, mobile/embedded platforms, embedded devices and many more. WinGDB supports continuously growing number of these configurations. Due to various differences in GDB behavior and usage between the configurations, WinGDB needs to know in advance the type of development target. The types differ mainly in what machine performs the role of the build host and debugging target, and how to interact with them.

Development machines

There can be three kinds of machines involved in debugging single program. These are the logical roles rather than physical machines. Several roles may be performed by a single machine depending on the mode (and typically are).

These machines can run different operating systems. For example, for many types of embedded systems, GDB is being run under Windows (as well as GCC in cross-compile mode), but the program is debugged under Linux. On the other hand, when debugging Linux applications, GDB and debugged program are often both executed on the same Linux machine and WinGDB uses SSH connection to communicate with GDB.

Supported target types

Current version of WinGDB supports the following target types:

General settings page

The General settings page is present when configuring most of WinGDB debugging functions: launching proceses, attaching, examining core dumps. It's also the first one in the project settings.

The page contains a target type selector and fields to enter login information for three machine roles described above.

Depending on target type, some of the fields may by grayed out when the corresponding machine is assumed to be local computer. Some settings are required for some target types. The following table summarizes it.

Target type Debug host Debug target Build host
Native Linux Required Same as debug host Optional
Indirect Linux Required Required Optional
Native Windows Assumed local Assumed local Assumed local
Embedded Linux Assumed local Optional (required for some functions) Assumed local
Embedded device Assumed local Not used Assumed local

For the Embedded device type of target, there is one more fundamental option, the Target specification located on the Target options page:

Here you specify how to connect to the target device, in the format of GDB target command. You can find more information on development for embedded devices in this section.

Login specification strings format

WinGDB has simple unified format for specification strings for develoment machines. You enter strings in this format into fields like Debug host login in the Properties and similar dialogs. The string has several variants, depending on what kind of machine is the target of the connection.

Remote Linux/Unix machine connected through SSH

The format is:


The user name is mandatory. The password (with ':' character) is optional. If you do not specify the password, WinGDB will ask you for it when attempting connection. The host address may be an IP address or a resolvable host name. The port (with ':' character) is also optional. Default port 22 is assumed if not specified explicitly.

Local machine (not using Cygwin)

The string is just a single word:


You can specify this type when using the local machine. Usually this is not necessary, as WinGDB knows for which target types local or remote machine would be used. In such cases, the login fields may be grayed out when only local machine is allowed. It is very unlikely that you might ever have to enter local manually.

Local machine (using Cygwin)

The string is just a single word:


You can specify this type when using the local machine with Cygwin. WinGDB uses this type internally to enable some Cygwin-specific path translations. Same remarks apply as with local connections.

Environment settings page

The Environment settings page contains some additional settings related to environment in which WinGDB runs.

WinGDB toolbar

WinGDB provides a toolbar in Visual Studio for quick access to most frequently used options. In order to show or hide the toolbar, open the Customize dialog in Visual Studio, click Toolbars tab and select or deselect the WinGDB row.

Multiplatform development

All WinGDB options (except those from WinGDB/Preferences) can be set per configuration and platform. You can have multiple configurations and target multiple platforms, all with different settings. It is described in detail in this section of the manual.

Configuration guidelines for available target types

The following chapters describe how to configure WinGDB for each target type. They assume using the project mode, but the options and their meaning is the same for the quick mode.

Native Linux

Indirect Linux

Native Windows

Embedded Linux

Embedded device

Table of Contents

Copyright (C) 2008-2019 SOFT-ERG. All rights reserved.