Hasher/gdb

Материал из ALT Linux Wiki

Для работы 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