Как установить позицию курсора с помощью команды / скрипта?

Если вы предпочитаете оставить /proc/sys/kernel/yama/ptrace_scope установленным по умолчанию значением 1, то в качестве обходного пути вы можете рассмотреть возможность использования gdb для запуска программы, которую вы хотите отлаживать. Затем вы можете вызвать отладчик, просто нажав ^C. Например, чтобы отлаживать (скучную) программу sleep 60, выполните следующие действия:

$ gdb -q sleep -ex 'run 60'

Вот полный пример.

$ gdb -q sleep -ex 'run 60'
Reading symbols from sleep...(no debugging symbols found)...done.
Starting program: /bin/sleep 60
^C
Program received signal SIGINT, Interrupt.
0x00007ffff7ad5d60 in __nanosleep_nocancel () at ../sysdeps/unix/syscall-template.S:81
81      ../sysdeps/unix/syscall-template.S: No such file or directory.
(gdb) backtrace
#0  0x00007ffff7ad5d60 in __nanosleep_nocancel () at ../sysdeps/unix/syscall-template.S:81
#1  0x0000000000403cd7 in ?? ()
#2  0x0000000000403b88 in ?? ()
#3  0x00000000004016c9 in ?? ()
#4  0x00007ffff7a35ec5 in __libc_start_main (main=0x401540, argc=2, argv=0x7fffffffea08, init=<optimized out>, 
    fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe9f8) at libc-start.c:287
#5  0x00000000004017d5 in ?? ()
(gdb) continue
Continuing.
[Inferior 1 (process 3531) exited normally]
(gdb) quit

Поскольку /bin/sleep был (неудивительно), скомпилированный без отладки информации, вышеупомянутая обратная трассировка содержит минимальную информацию.

1
задан 3 July 2016 в 15:03

0 ответов

Другие вопросы по тегам:

Похожие вопросы: