Hasher/gdb

Материал из ALT Linux Wiki
< Hasher
Версия от 15:31, 16 апреля 2022; Vt (обсуждение | вклад) (Новая страница: «Для работы '''gdb''' внутри ''hasher'' необходим <tt>/proc</tt> замонтированый в read-write (rw). === Как проявляется проблема === (gdb) b main (gdb) r Starting program: ... Warning: Cannot insert breakpoint 1. Cannot access memory at address 0x5555556377c0 Program received signal SIGSEGV, Segmentation fault. 0x00007ffff3019207 in ?? () (gdb) bt #0 0x0000...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Для работы gdb внутри hasher необходим /proc замонтированый в read-write (rw).

Как проявляется проблема

   (gdb) b main
   (gdb) r
   Starting program: ...
   Warning:
   Cannot insert breakpoint 1.
   Cannot access memory at address 0x5555556377c0
   Program received signal SIGSEGV, Segmentation fault.
   0x00007ffff3019207 in ?? ()
   (gdb) bt
   #0  0x00007ffff3019207 in ?? ()
   Backtrace stopped: Cannot access memory at address 0x7fffffffdd80

Причина

Причина описана тут https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=05c06f318fd9a112529dfc313e6512b399a645e4

Решение проблемы

  1. В /etc/hasher-priv/system добавить /proc в allowed_mountpoints, например:
    allowed_mountpoints=/proc,/dev/pts,/dev/shm,/sys
  2. В /etc/hasher-priv/fstab добавить
    proc /proc proc rw,nosuid,nodev,noexec,gid=proc,hidepid=2 0 0
    главное тут добавление rw, так как по умолчанию /proc будет смонтирован в ro (read-only).
  3. Заходить в hasher командой hsh-shell --mountpoints=/proc