URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 117333
[ Назад ]

Исходное сообщение
"Выпуск отладчика GDB 8.3"

Отправлено opennews , 12-Май-19 08:32 
Представлен (https://sourceware.org/ml/gdb/2019-05/msg00018.html) релиз отладчика GDB 8.3 (http://www.gnu.org/software/gdb/), поддерживающего отладку на уровне исходных текстов для широкого спектра языков программирования (Ada, C, C++, Objective-C, Pascal, Go и т.д.) на различных аппаратных (i386, amd64, ARM, Power, Sparc, RISC-V  и т.д.) и программных платформах (GNU/Linux, *BSD, Unix, Windows, macOS).

Ключевые улучшения (https://sourceware.org/git/?p=binutils-gdb.git;a=blob_plain;...):

-  В интерфейсах CLI и TUI реализована возможность определения стиля терминала (добавлена команда "set style"). При наличии GNU    Highlight реализована подсветка исходных текстов;

-  Реализована экспериментальная поддержка компиляции и подстановки исходного кода на языке C++ в контролируемый при помощи GDB процесс
(inferior (https://sourceware.org/gdb/onlinedocs/gdb/Inferiors-and-Prog...)). Для работы требуется наличие как минимум версии GCC 7.1б, собранной с libcp1.so;
-  В  GDB и GDBserver добавлена поддержка  IPv6. Для задания адресов IPv6 следует использовать формат "[ADDRESS]:PORT";
-  Для целевых систем  RISC-V добавлена поддержка описания цели  в формате XML (Target Description Format (https://sourceware.org/gdb/onlinedocs/gdb/Target-Description...));

-  На платформе FreeBSD обеспечена поддержка установки точек перехвата
(catchpoint) на системные вызовы, используя их псевдонимы, специфичные для разных ABI (например, для 'kevent' доступен псевдоним 'freebsd11_kevent' для привязки к старому ABI);

-  В команду "target remote" добавлена поддержка Unix-сокетов (Unix Domain socket);
-  Добавлена возможность отображения всех файлов, открытых процессом (команда "info proc files");

-  Реализована возможность автоматического сохранения на диск индексов символов DWARF для ускорения последующей загрузки того же исполняемого файла;


-  В GDBserver для платформы PowerPC GNU/Linux добавлена поддержка доступа к регистрам PPR, DSCR, TAR, EBB/PMU и HTM;


-  Добавлены новые команды "set/show debug compile-cplus-types" и
"set/show debug skip" для настройки вывода данных о преобразованиях типов C++ и  информации о пропускаемых файлах и функциях;

-  Добавлены команды "frame apply COMMAND", "taas COMMAND",  "faas COMMAND", "tfaas COMMAND" для применения команд к кадрам стека и потокам;

-  Внесены улучшения в команды "frame", "select-frame", "info frame",
     - "info functions", "info types", "info variables", "info thread", "info proc";
-  При запуске в пакетном режиме GDB теперь возвращает код ошибки 1 в случае сбоя выполнения последней команды;

-  Добавлена возможность сборки GDB с предоставляемым GCC детектором неопределённого поведения (Undefined Behavior Sanitizer);

-  Добавлены настройки базовой системы (native configuration, для отладки на той же системе) для платформ RISC-V GNU/Linux (riscv*-*-linux*) и RISC-V FreeBSD (riscv*-*-freebsd*);
-  Добавлены настройки целевых систем (target configuration): CSKY ELF (csky*-*-elf), CSKY GNU/Linux (csky*-*-linux), NXP S12Z ELF (s12z-*-elf),  OpenRISC GNU/Linux (or1k*-*-linux*), RISC-V GNU/Linux (riscv*-*-linux*) и RISC-V FreeBSD (riscv*-*-freebsd*);

-  Отладка на той же системе в Windows теперь требует наличия Windows XP или более новых выпусков;
-  Для использования Python API теперь требуется Python 2.6 или новее.


URL: https://sourceware.org/ml/gdb/2019-05/msg00018.html
Новость: https://www.opennet.me/opennews/art.shtml?num=50668


Содержание

Сообщения в этом обсуждении
"Выпуск отладчика GDB 8.3"
Отправлено Аноним , 12-Май-19 08:32 
> Отладка на той же системе в Windows теперь требует наличия Windows XP или более новых выпусков;

Они Миллениум задепрекейтили? Или Win2000?


"Выпуск отладчика GDB 8.3"
Отправлено Аноним , 12-Май-19 15:32 
пожалуй, лучший инструмент для отладки systemd

"Выпуск отладчика GDB 8.3"
Отправлено segesg , 12-Май-19 16:45 
А фичу пошаговой отладки *назад* ещё не запилили?
Как вот здесь https://rr-project.org/

"Выпуск отладчика GDB 8.3"
Отправлено anonymous , 12-Май-19 17:26 
Есть уже вроде(7.12):
>6 Running programs backward ...

"Выпуск отладчика GDB 8.3"
Отправлено Аноним , 13-Май-19 06:51 
Это не отладчик. Отладчик - это OllyDbg, а не это консольное недоразумение.

"Выпуск отладчика GDB 8.3"
Отправлено fatlortroll , 13-Май-19 07:44 
Вот кнопкодавов спросить забыли.

"Выпуск отладчика GDB 8.3"
Отправлено Аноним , 13-Май-19 09:04 
Так толсто, что аж тонко.

"Выпуск отладчика GDB 8.3"
Отправлено Аноним , 13-Май-19 20:18 
И что же такого умеет OllyDbg, чего не умеет в gdb? Если палец к мышке прирос (нахрена тогда отладчик? может лучше косынку разложить?), для gdb есть куча гуишных оболочек

"Выпуск отладчика GDB 8.3"
Отправлено Аноним , 14-Май-19 04:43 
А есть этот ваш гдб под винду? Если нет, то ненужон.

"Выпуск отладчика GDB 8.3"
Отправлено fatlortroll , 14-Май-19 09:20 
Ты дурак, шоле? GDB есть чуть менее, чем подо всё.

"Выпуск отладчика GDB 8.3"
Отправлено adolfus , 14-Май-19 15:21 
> для gdb есть куча гуишных оболочек

??? Вы это серьезно ???
Я вот ищу с начала 2000-х, как с полуоси пересел на линукс. За двадцать лет ничего, хотя бы отдаленно напоминающее IPMD, даже близко не появилось. А для ассемблерного кода вообще по нулям.
Почему этот gdb при отладке ассемблерного кода вместо того, чтобы работать с листингом или исходниками, занимается дизассемблированием? Ради чего я придумываю имена переменным и меткам? Чтобы gdb их превратил в EA?


"Выпуск отладчика GDB 8.3"
Отправлено Аноним , 15-Май-19 15:30 
> Почему этот gdb при отладке ассемблерного кода вместо того, чтобы работать с листингом или исходниками, занимается дизассемблированием?

Рили?

$ cat > hello.s
# ----------------------------------------------------------------------------------------
# Writes "Hello, World" to the console using only system calls. Runs on 64-bit Linux only.
# To assemble and run:
#
#     gcc -c hello.s && ld hello.o && ./a.out
#
# or
#
#     gcc -nostdlib hello.s && ./a.out
# ----------------------------------------------------------------------------------------

        .global _start

        .text
_start:
        # write(1, message, 13)
        mov     $1, %rax                # system call 1 is write
        mov     $1, %rdi                # file handle 1 is stdout
        mov     $message, %rsi          # address of string to output
        mov     $13, %rdx               # number of bytes
        syscall                         # invoke operating system to do the write

        # exit(0)
        mov     $60, %rax               # system call 60 is exit
        xor     %rdi, %rdi              # we want return code 0
        syscall                         # invoke operating system to exit
message:
        .ascii  "Hello, world\n"
^D
$ gcc -g -no-pie -nostdlib hello.s
$ gdb a.out
GNU gdb (Debian 8.2.1-2) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from a.out...done.
(gdb) break hello.s:20
Breakpoint 1 at 0x401015: file hello.s, line 20.
(gdb) run
Starting program: /home/anon/a.out

Breakpoint 1, _start () at hello.s:20
20            mov     $13, %rdx               # number of bytes
(gdb) list
15    _start:
16            # write(1, message, 13)
17            mov     $1, %rax                # system call 1 is write
18            mov     $1, %rdi                # file handle 1 is stdout
19            mov     $message, %rsi          # address of string to output
20            mov     $13, %rdx               # number of bytes
21            syscall                         # invoke operating system to do the write
22    
23            # exit(0)
24            mov     $60, %rax               # system call 60 is exit
(gdb) detach
Detaching from program: /home/anon/a.out, process 28910
[Inferior 1 (process 28910) detached]
Hello, world
(gdb) quit
$


Что это было, по-твоему, если не исходник?

"Выпуск отладчика GDB 8.3"
Отправлено adolfus , 16-Май-19 20:45 
Это выход дизассемблера, приправленный символами из отладочных секций объектного модуля. Локальные метки не попадают в отладочную секцию и gdb их не показывает.
Не знаю, как студия, но старый codeview из pwb работал с исходником, поэтому мог показывать нераскрытые макросы и ходить над ними, как над процедурами. Аналогично работал межделмашевский ipmd со своим асемблером alp.

"Выпуск отладчика GDB 8.3"
Отправлено Аноним , 15-Май-19 15:10 
> Отладчик - это OllyDbg

Вот когда он сумеет во что-нибудь кроме x86 32-bit, тогда станет отладчиком.


"Выпуск отладчика GDB 8.3"
Отправлено Аноним , 15-Май-19 18:38 
интересно, как поживает проприетарный SoftIce, врят ли для systemd годится. но вот на венде 98 это было лучшим, для человека без средств, инструментом борьбы с регнумами )