Состоялся (https://sourceware.org/ml/gdb-announce/2016/msg00001.html) релиз отладчика GDB 7.11 (http://www.gnu.org/software/gdb/), поддерживающего отладку на уровне исходных текстов для широкого спектра языков программирования (Ada, C, C++, Objective-C, Pascal, Go и т.д.) на различных аппаратных (i386, amd64, ARM, Power, Sparc и т.д.) и программных платформах (GNU/Linux, Unix, Windows, OS X).Ключевые улучшения (https://sourceware.org/git/?p=binutils-gdb.git;a=blob_plain;...):
- Число потоков теперь указывается не глобально, а в привязке к объекту отладки (inferior (https://sourceware.org/gdb/onlinedocs/gdb/Inferiors-and-Prog...));
- Реализован синтаксис точного определения местонахождения точки останова ("explicit location (https://sourceware.org/gdb/onlinedocs/gdb/Explicit-Locations...)"). Например, командой "break -s main.c -li 3" можно установить точку останова в 3 строке файла main.c;
- Новые вспомогательные переменные $_gthread и $_inferior;- При срабатывании точки останова или получения сигнала во время отладки многопоточной программы, отладчик теперь показывает в каком именно потоке произошло событие;
- Реализован непрерывный режим (non-stop) записи данных btrace;- Серия улучшений, связанных с поддержкой архитектуры AArch64 GNU/Linux, в том числе поддержка многоархитектурной отладки и поддержка установки точке трассировки в GDBserver;
- Добавлена поддержка потоков ядра FreeBSD;
- Поддержка чтения и записи памяти, а также извлечения значений на архитектурах с адресацией памяти любыми блоками, кратными 8 битам;
- Многочисленные улучшения средств удалённой отладки, в том числе поддержка новых пакетов для задействования таких возможностей, как
follow-exec-mode, exec catchpoints, syscall catchpoints и т.п.- Незначительные улучшения в Python API;
- Удалена поддержка следующих типов систем мониторинга ПЗУ:
- target dbug (Motorola ColdFire)
- target picobug (Motorola picobug)
- target dink32 (DINK32 ROM для PowerPC)
- target m32r (Renesas M32R/D ROM)
- target mon2000 (mon2000 ROM)
- target ppcbug (PPCBUG ROM для PowerPC)
URL: https://sourceware.org/ml/gdb-announce/2016/msg00001.html
Новость: http://www.opennet.me/opennews/art.shtml?num=43936
> Например, командой "break -s main.c -li 3" можно установить точку останова в 3 строке файла main.c;Гм, а разве "break main.c:3" раньше не работал?
Вроде, да. Может имеется ввиду, "точно 3-я строка", даже если она пустая или по-другому особенна?
Даже, если она пустая.
Нет, не это имеется в виду, сходи по ссылке из новости. Для немощных вот онаhttps://sourceware.org/gdb/onlinedocs/gdb/Explicit-Locations...
Да нет. Аноним спрашивал про брейки вообще.
> отладчик теперь показывает в каком именно потоке произошло событиеНекоторые совершенно очевидные вещи наконец-то здесь.
> Реализован синтаксис точного определения местонахождения точки остановаБез указания namespace как не работало, так и не работает.
(gdb) b bar
Function "bar" not defined.
(gdb) b foo::bar
Breakpoint 1 at 0x422187: file foo.cpp, line 129.у LLDB все гладко
(lldb) b bar
Breakpoint 1: where = foo_bar`foo::bar() + 25 at foo.cpp:129, address = 0x0000000000422187
VLA так и не добавили?
Когда сделают нормальное дополнение по TAB ? Чтобы когда сто пицот миллионов символов, gdb не сносило бы крышу? LLDB такое прочухивает на раз.
> Когда сделают нормальное
>LLDB такое прочухивает на раз.И здесь ты пишешь длинный список, чего тебе не хватает в LLDB, и почему без GDB ну никак?
Прыгай!