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,
- 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.
- 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. Another option is to use CMake or QMake cross-platform build systems,
for which WinGDB provides special support.
- Project deploy: the resulting files can be copied to target machine, or
a custom deploy script may be called.
- 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.
-
Remote machine control: you can use integrated remote terminal window to log in to the
target machine. There is also remote package manager window, allowing to manage packages
on remote Linux hosts in easy and uniform (distro-independent) way.
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.
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 register the product.
Release notes of all published versions.
Getting started
Explains basic concepts of WinGDB and general configuration options.
Explains how to start a quick development session, without opening and configuring
a Visual Studio project.
Explains basic concepts related to the usage of Visual Studio projects with 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.
Projects reference
Explains how to use the New project wizard to create a new Visual Studio
project and configure it in simplified way.
Explains how to use the New project wizard to create a new Visual Studio
project from existing sources (not built by Visual Studio) and configure it in
simplified way.
Explains how to configure existing Visual Studio projects for multiplatform development.
Explains how to recursively import source directories into an existing project.
Shows how to use the Project configuration wizard.
Describes how to use WinGDB with CMake projects.
Describes how to use WinGDB with QMake projects.
Explains how to manange WinGDB settings in Visual C++ projects and solutions.
Describes how to configure your project to be able to use IntelliSense.
Describes how to create project configurations for multiplatform development.
Remote development
Describes methods of authentication supported by WinGDB.
Explains how to manage TCP connections established by WinGDB.
Explains how to connect to remote machines using integrated remote terminal.
Explains how to manage software packages on remote systems.
Explains how to use the process console window.
Explains how to copy files to the remote machine and back.
Configuration reference
Summarizes settings for the debugger and explains their meaning.
Summarizes settings for the build and deploy actions and explains their meaning.
Explains how to map source directories between different locations/hosts.
Explains how to configure the makefile generator.
Describes the enhanced makefile editor.
Explains configuration options for optional automated tasks:
file transfers, connection opening and makefile updates.
Describes global configuration options for WinGDB.
Scriptable services
Contains an overview of WinGDB Automation API, a library allowing
to control WinGDB from external add-in or macro.
Contains an introduction to the Lua scripting language.
Contains a detailed documentation of the Lua scripting language.
Contains a reference of the Lua-based scripting language of makefile generators.
This section describes classes and methods WinGDB provides to Lua scripts.
Debugging tasks
Explains how to attach to a process with WinGDB 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 use complex data type visualizers (e.g. for STL containers).
Explains how to use text data visualizers.
Explains how to use specifiers to format values.
Explains how to debug multiple processes simultaneously.
Explains how to enter GDB commands directly and use GDB scripts.
Explains how to configure debugger to break execution when an exception is thrown or caught.
Explains how to configure WinGDB for Cygwin support.
Copyright (C) 2008-2019 SOFT-ERG. All rights reserved.