Table of Contents

Working with configurations and multiple platforms

Besides having been divided into user and persistent, all options and parameters in WinGDB are keyed by three coordinates: configuration, platform and system. Configuration and platform are standard Visual Studio concepts and WinGDB uses them in the same way. There is also third coordinate, named system. It is added by WinGDB. System allows additional differentiation between WinGDB settings for various targeted systems. A system is abstract concept, it can represent either an OS (like Linux or Windows), or particular target machine. This is because you can alter any WinGDB properties for different systems: debugging mode, makefile generator settings, machine IP and login, and so on. Also, system coordinate works both on user and persistent level.


Configuration has standard Visual Studio meaning. In most typical scenario, you will have Debug and Release configurations. They will differ mainly in makefile generator settings, as the compiler and linker options are main differentiator here.

In order to add new configurations, use the standard Visual Studio Configuration manager dialog.


Platform in Visual Studio has somewhat specific and rigid meaning: it is being understood as CPU architecture: x86, x86-64, ARM or other. It determines the toolset. In the context of WinGDB, reasonable usage of this coordinate is also to distingush between 32-bit or 64-bit versions (if you use both).

Adding a new platform in Visual Studio is somewhat complicated. Therefore this coordinate is not being suitable for differentiation between target systems (e.g. Windows/Linux/device). Use the system part for that means.


To overcome limitations of platform setting in Visual Studio, WinGDB adds third coordinate called system. This way, you can specify completely different options for various target systems, or even particular machines.

Setting current system

There are two ways of selecting current system. The first one is by using WinGDB toolbar. It includes the system selector:

The second way is to open System manager and use the system selector from there:

Adding, removing and renaming systems

With the System Manager you can also add new system, remove or rename existing one. To open the system manager, use Manage systems... option from main WinGDB menu.

Old WinGDB projects

WinGDB versions prior to 4.2 did not support the system coordinate. Configurations were used for different OS targets. You can open such legacy projects with new WinGDB. Such projects will use <Default> fake system name. You can create any number of systems on top of that (settings will be copied from the default system). However, if you open a project saved under WinGDB 4.1 on older version of WinGDB, it will not recognize those non-default systems. This feature is backward-compatible but not completely forward-compatible. If you plan to use systems, you need to upgrade your WinGDB installations consistently.

Targeting native Windows

You can also use system setting feature to easily switch between targeting Linux/Unix and native Windows in single application. To make WinGDB use regular Visual Studio build toolset and debugger, set the Intercept standard IDE commands option on Environment page to No. This setting is recognized per configuration, platform, system triple, same as other settings. You can then make a Windows system, having this setting set to No and a Linux system, with Yes value.

Table of Contents

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