我想通过进程B在进程A中回溯堆栈
我知道我可以使用gdb --pid pid_of_A
,然后使用info stack
来获取进程A中堆栈的回溯。
但是,我想通过代码实现它,而不是使用gdb。我读了gdb源代码来了解gdb是如何做到的,但是gdb要复杂才能理解。
你能帮忙吗?
答案 0 :(得分:0)
您应该使用libgdb。使用 libgdb ,您可以编程方式执行gdb命令,就像有人在进行交互式gdb会话一样。
这是使用的主要功能:
struct gdb_str_output gdb_execute_for_strings (char *cmd)
执行cmd
中的命令(例如backtrace
)并返回包含命令输出的结构。