-
Notifications
You must be signed in to change notification settings - Fork 385
Description
Motivation
In some platforms, LLDB is either not readily available (e.g. SmartOS) or not available for prime time debugging (e.g. Alpine Linux and other muscle-libc based distros where it crashes).
More generally:
- chances of a working GNU debugger available via package manager (or preinstalled) on an arbitrary Unix are higher than that of LLDB.
- the additional ~20 years of experience GDB has over LLDB makes it mature, stable and richer in terms of features, such as, non-stop debugging, reverse-debugging (and some others in lldb wishlist) etc.
Therefore, I think in addition to lldbplugin, if SOS commands and managed code debugging support is extended to GDB, it would bring about significant value for consumers.
Implementation
There are multiple extension points for GDB that IDEs and tools make use of. A quick glance at GDB frontends list, for a rough idea https://sourceware.org/gdb/wiki/GDB%20Front%20Ends.
In my understanding, one of these two GDB facilities could be used for SOS integration:
- JIT interface:
- used by LLVM and v8 engine. LLVM provides DWARF debugging information to GDB.
- Mono added its support in 2009 mono/mono@9c7af7f#diff-499ab2170cdda019ebc31342389233b3R5545
- Machine interface (invokes with
--interpreterswitch).- From home page:
Note that GDB/MI is still under construction, so some of the features described below are incomplete and subject to change (see GDB/MI Development and Front Ends).
- From home page: