WinGDB is an extension for Visual Studio IDE allowing to debug processes with GDB debugger, using native Visual Studio debugging user interface. There are two editions:
- WinGDB for remote Linux debugging: Allows debugging on remote machines running Linux (or other Unix systems).
- WinGDB for Cygwin/MinGW/Embedded Targets: Allows debugging programs compiled by Cygwin/MinGW on Windows, or embedded system targets.
There are many environments and toolchains for embedded systems development based on GNU tools. While the WinGDB/MinGW edition is generally usable for debugging on these platforms, it may not work with your environment, or have problems.
Features:
- An Add-In for the Visual Studio IDE providing integration with the VS debugger interface.
- Remote connection to the target machine over SSH.
- Support for the GDB debugger as a backend (support for other debuggers is planned for the future).
- Seamless integration with native Visual Studio projects.
- Embedded systems support.
- Cygwin support.
- MinGW support.
- The "Attach to process" command, allowing attaching to remote processes with GDB. The process to attach can be selected using a remote process browser. Also the additional source directories, debug file directory and shared libraries parameters can be specified. Beside custom script can be executed after debugger has been initialized.
- Remote build – run makefile (it may be any command, it doesn’t have to be make only) on remote machine. The output of compiler/linker dumps to VisualStudio Console/Task-Window. User can comfortably navigate between errors and easily browse source files (they will be automatically downloaded from remote host).
- Mapping source directories allows to map local directories with source code to their remote equivalents.
- Remote source code browsing in the Visual Studio editor. The files are fetched as needed using SCP protocol and cached over a session.
- Remote creation/edition of the source code in the Visual Studio editor. Edited file is automatically sent back to the target machine after saving it.
- Custom scripts for additional configuration (useful for embedded devices).
- Visualizers (aka "pretty printers" or "auto expanders").
- Basic debugger commands: Run, Step over/into/out, Break All, Continue, Run to cursor, Set Next Statement.
- Breakpoint setting in remote source files browsed locally.
- Breakpoint setting by function name or through call-stack window.
- Additional breakpoint properties: conditions, hit counting, temporary disabling.
- Data breakpoint (write-watchpoint in GDB nomenclature).
- Call stack window.
- Watch window.
- Auto / Locals window.
- Processes window.
- Modules window.
- Threads window.
- Memory window.
- Registers window.
- Signals window.
- Disassembler view.
ChangeLog:
- Visualizers (aka pretty-printers) support for GDB 7.0 and above.
- Improved embedded systems support, incl. proper breaking.
- Debugging options are now stored per project and solution.
- Easy one-click "Start debugging" option.
- WinGDB context menu for Solution Explorer projects.
- Cygwin support.
- A crash handler, for reporting crashes in WinGDB.
- Sources for remote debugging can be loaded from separate host.
- Pointers can be expanded to view target object in the Locals and other windows.
- ‘Suppress init files’ option in Preferences.
- Improvements in handling source paths.
- List views: keep widths between sessions.
- Fixed: All commands allowed in custom scripts.
- Fixed: matching non-full paths.
- Fixed: crashes related to Autos Window.
- Fixed: breakpoints for non-full gdb paths.
- Fixed: reassigning disassembly breakpoints after restart session.
- Fixed: proper error when cannot connect to target.
- Fixed: BusyBox issues.