是否可以同时使用ltrace
和gdb
?我有一个小型的剥离二进制程序,我想在其中查看一些库调用的变量内容,我可以使用ltrace
.
是否可以将 gdb 和 ltrace 附加到同一个进程?
不,gdb 和 ltrace 都ptrace
用于调试和跟踪进程,并且 tracee(目标)进程只能附加到单个 ptrace 跟踪器。
您可以尝试在 gdb 中使用breakpoint function_name
or实现一些调用跟踪b function_addr
,获取断点 id 并添加 gdbcommands
以在此断点处执行,例如编号为 1 的断点:
commands 1
bt 2
p/x $rax
continue
gdb 将打印回溯 (bt) 和 rax 寄存器值,然后它将继续执行(更多示例和禁用分页在What are the best ways to automatic a GDB debugging session?)。
或者您可以尝试内核跟踪解决方案,例如sysdig
.