linux是否提供任何调试api,如windows?

linux是否提供任何调试api,如windows?,linux,debugging,gdb,extend,Linux,Debugging,Gdb,Extend,Windows提供了一组调试API,以便程序可以在某些位置停止并转储相应的信息,以编写我们自己的调试器,等等,如 我的问题是,linux是否也提供了这样一系列的调试api,以便我们可以轻松地编写自己的调试器,或者扩展gdb,而不必了解linux内核等等?linux(和一些Unix)中有ptrace()用户空间api来实现调试器(gdb)或跟踪程序(strace): *Linux中的ptrace()手册页 *Wikipedia页面上的ptrace,包含其他UNIX中的历史记录和概述 ptrace(

Windows提供了一组调试API,以便程序可以在某些位置停止并转储相应的信息,以编写我们自己的调试器,等等,如

我的问题是,linux是否也提供了这样一系列的调试api,以便我们可以轻松地编写自己的调试器,或者扩展gdb,而不必了解linux内核等等?

linux(和一些Unix)中有
ptrace()
用户空间api来实现调试器(
gdb
)或跟踪程序(
strace
): *Linux中的
ptrace()
手册页 *Wikipedia页面上的
ptrace
,包含其他UNIX中的历史记录和概述

ptrace()
可用于停止/启动进程、获取/设置其寄存器、读取和写入其内存、单步执行或在每次系统调用时停止

一些基本信息、内存映射和对内存的访问也可以导出到
/proc
特殊文件系统(对于当前进程为
/proc/self/
目录,对于PID为
PID
的进程为
/proc/PID

到目前为止,您可以使用gdb命令或and,这比重新实现gdb的基本部分要容易得多(有时更便于移植)

linux是否也提供了这样一系列的调试api,以便我们可以轻松地编写自己的调试器,或者扩展gdb,而不必了解linux内核等

这是一种错觉,人们可以在不了解Windows内核的情况下轻松编写Windows调试器

在Linux上,提供的API更难使用,使用
ptrace
编写调试器几乎肯定需要深入理解内核进程管理