Debugger release GDB 9

Alex Alex 09 February 2020
Debugger release GDB 9

Introduced debugger release GDB 9.1 (first release of 9.x series, branch 9.0 was used for development). GDB supports source level debugging for a wide range of programming languages (Ada, C, C++, Objective-C, Pascal, Go, etc.) on various hardware (i386, amd64, ARM, Power, Sparc, RISC-V, etc.) and software platforms (GNU/Linux, *BSD, Unix, Windows, macOS).

Key improvements:

  • Support for Solaris 10 and Cell Broadband Engine platforms is no longer available;
  • Added new simulator of PRU (Programmable Real-time Unit) subsystem used in Texas Instruments (pru-*-elf) processors;
  • Added experimental mode for fast loading of debug symbols in multithreading mode (enabled via 'maint set worker-threads unlimited' setting);
  • It is possible to use the '.' symbol in command names;
  • Added ability to set breakpoints on nested functions and subprograms in Fortran;
  • The work has been done to bring the commands to the same style and improve their readability;
  • OEM infrastructure for passing command arguments using the character dash ('-OPT') has been implemented, which allows for the application of autocompletion with the tab key;
  • Printf" and "eval" commands support the output of lines in C and Hell styles without a direct function call in the program;
  • Support for filtering output files based on regular expressions has been added to the "info sources" command;
  • The "presence" parameter is implemented in the "set print frame-arguments" setting, when setting it, only the presence indicator "..." is displayed for arguments instead of the name and value output;
  • In the TUI commands "focus", "winheight", "+", "-", ">", "<" are now sensitive in character case;
  • For commands "print", "compile print", "backtrace", "frame apply", "tfaas" and "faas" options are implemented to override global settings (for example, set print [...]");
  • The "-q" option has been added to the "info types" command to disable the output of some headers;
  • In the settings you can now specify "u" instead of "unlimited";
  • New commands have been added:
    • "define-prefix" to define your own prefix commands;
    • "|" or "pipe" to start the command and redirect the output to the shell command;
    • "with" to launch the specified command with temporarily changed settings;
    • "set may-call-functions" to control the ability to call a subroutine from GDB;
    • "set print finish [on|off]" to control the display of the returned value when using "finish" command;
    • "set print max-depth" to limit the output of nested structures;
    • "set print raw-values [on|off]" to enable/disable formatting of the output value;
    • "set logging debugredirect [on|off]" to control saving of debug output into log file;
    • A series of new commands "set style";
    • "set print frame-info [...]" to define the information to be output when displaying the state of the stack frame;
    • "set tui compact-source" to enable compact mode of code display in TUI (Text User Interface);
    • "info modules [...]" to request information about Fortran modules;
  • Instead of "set/show print raw frame-arguments" the command "set/show print raw-frame-arguments" is offered (it uses a dash instead of a space as a separator);
  • New commands "-complete", "-catch-throw", "-catch-rethrow", "-catch-catch", "-symbol-info-functions", "-symbol-info-types", "-symbol-info-variables", "-symbol-info-modules", "-symbol-info-module-functions" and "-symbol-info-module-variables", equivalent to the similar GDB commands, were added to the GDB/MI management interface. By default, the third version of the MI interpreter is activated (-i=mi3);
  • Added new built-in variables:
    • $_gdb_major, $_gdb_minor;
    • $_gdb_setting, $_gdb_setting_str, $_gdb_maint_setting,
    • $_gdb_maint_setting_str
    • $_cimag, $_creal
    • $_shell_exitcode, $_shell_exitsignal
  • The "--with-system-gdbinit-dir" option has been added to the configure build script to determine the path to gdbinit system files;
  • Added a few improvements to the Python API. Added ability to build from Python 3 on Windows;
  • Increased requirements to the build environment. At least GNU make 3.82 is now required to build GDB and GDBserver. When building with an external readline library, at least GNU readline 7.0 is now required.

Comments (0)

    No comments yet

You must be logged in to comment.