Можно только отладить setuid или setgid программу, если отладчик работает как корень. Ядро не позволит Вам звонить ptrace
на программе, работающей с дополнительными полномочиями. Если бы это сделало, то Вы смогли бы заставить программу выполнить что-либо, которое эффективно означало бы, что Вы могли, например, выполнять корневую оболочку путем обращения к отладчику /bin/su
.
При выполнении Gdb как корня Вы сможете запустить свою программу, но Вы будете только наблюдать ее поведение, когда выполнено корнем.
Если необходимо отладить программу, когда она не запускается корнем, запустите программу за пределами Gdb, сделайте ее паузой некоторым способом прежде, чем добраться до неприятной части, и attach
процесс в Gdb (at 1234
где 1234 является идентификатором процесса).
emacs --eval '(setq-default truncate-lines t)'
-r-------- 1 root root
---------121 спасибо--------147553----! Кавычки имеют все значение, которым это кажется, я принимаю без них, оболочка пытается интерпретировать их как выражение удара скорее затем, команда Lisp передала emacs? – Hooked 12.09.2011, 16:26