Debuginfo

Материал из ALT Linux Wiki
Версия от 22:38, 17 декабря 2020; Vt (обсуждение | вклад) (Новая страница: «Для отладки или получения информативного stack trace необходима отладочная информация ([https://…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Для отладки или получения информативного stack trace необходима отладочная информация (DWARF). В Альте™ отладочная информация отделена от основных пакетов в debuginfo пакеты. Для установки пакетов с отладочной информацией к нужному вам приложению необходимо добавить компонент debuginfo в /etc/apt/sources.list. Пример для Сизифа на x86_54:

   rpm [alt] http://ftp.altlinux.org/pub/distributions ALTLinux/Sisyphus/x86_64 classic debuginfo
   rpm [alt] http://ftp.altlinux.org/pub/distributions ALTLinux/Sisyphus/noarch classic

После apt-get update нужно установить -debuigifo пакет соответствующий основному пакету. Например, определяем в каком пакете лежит бинарник /bin/ls:

   # rpm -qf /bin/ls
   coreutils-8.31.0.3.6bd78-alt2.x86_64

Следовательно, отладочный пакет будет называться coreutils-debuginfo. Устанавливаем:

   # apt-get install coreutils-debuginfo

далее /bin/ls можно полноценно отлаживать в gdb:

   $ gdb -q /bin/ls
   Reading symbols from /bin/ls...
   Reading symbols from /usr/lib/debug/bin/ls.debug...
   (gdb) b main
   Breakpoint 1 at 0x403770: file src/ls.c, line 1452.
   (gdb) run
   Starting program: /bin/ls
   
   Breakpoint 1, main (argc=1, argv=0x7fffffffe3b8) at src/ls.c:1452
   1452    {
   (gdb) list
   1447      signal_setup (false);
   1448    }
   1449
   1450    int
   1451    main (int argc, char **argv)
   1452    {
   1453      int i;
   1454      struct pending *thispend;
   1455      int n_files;
   1456
   (gdb)

Отладочная информация для /bin/ls загрузилась из /usr/lib/debug/bin/ls.debug.