ltrace и gdb присоединяются к одному и тому же процессу - PullRequest
0 голосов
/ 06 июня 2018

Можно ли как-то использовать ltrace и gdb одновременно?У меня есть небольшая раздвоенная двоичная программа, в которой я хотел бы видеть содержимое переменных, некоторые вызовы библиотек, которые я вижу с помощью ltrace.

Возможно ли каким-либо образом подключить gdb и ltrace к одному и тому же процессу?

1 Ответ

0 голосов
/ 06 июня 2018

Нет, и gdb, и ltrace используют ptrace для отладки и трассировки процесса, а процесс tracee (target) можно подключить только к одному трассировщику ptrace.

Вы можете попробовать реализоватьнекоторая трассировка вызовов внутри gdb с помощью breakpoint function_name или b function_addr, получение идентификатора точки останова и добавление gdb commands для выполнения в этой точке останова , например, для точки останова с номером 1:

  commands 1
  bt 2
  p/x $rax
  continue 

GDB выведет значение backtrace (bt) и значение регистра rax, затем он продолжит выполнение (больше примеров и отключение пагинации в Каковы лучшие способы автоматизации сеанса отладки GDB?).

Или вы можете попробовать решение для трассировки в ядре, например sysdig.

...