在某种程度上可以同时使用ltrace
和gdb
吗?我有一个小的剥离二进制程序,我希望看到变量内容,我可以看到ltrace
的一些库调用。
以某种方式可以将gdb和ltrace附加到同一个进程吗?
答案 0 :(得分:1)
不,gdb和ltrace都使用ptrace
来调试和跟踪进程,而tracee(目标)进程可能只附加到单个ptrace跟踪器。
您可以尝试使用breakpoint function_name
或b function_addr
在gdb内部实现一些调用跟踪,获取断点ID并添加gdb commands
to execute at this breakpoint,例如对于编号为1的断点:
commands 1
bt 2
p/x $rax
continue
gdb将打印backtrace(bt)和rax寄存器值,然后执行continue(更多示例和禁用分页位于What are the best ways to automate a GDB debugging session?)。
或者您可以尝试内核跟踪解决方案,例如sysdig
。