首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kprobe和Uprobe如何在可执行文件中插入调试prinkk --它们是否扩展了运行模块或程序的地址空间

Kprobe和Uprobe如何在可执行文件中插入调试prinkk --它们是否扩展了运行模块或程序的地址空间
EN

Stack Overflow用户
提问于 2021-01-17 20:54:13
回答 1查看 45关注 0票数 0

我只是不能理解调试器和探测工具的概念。

如何在运行中的内核模块或用户空间应用程序中插入调试printk语句--使用Kprobe和Uprobe。使用什么术语来定义Kprobe和Uprobe在内存方面的行为--如何在程序运行状态下扩展地址空间。

EN

回答 1

Stack Overflow用户

发布于 2021-01-17 21:41:30

通常有一些单字节指令会导致断点(软件中断),然后处理器中也会有一些调试寄存器。

有了这些,就可以在内存中的任何地方插入一个跳转到内核陷阱处理程序的陷阱,而无需扩展任何“内存空间”-您只需设置调试寄存器或将断点处的所需指令替换为该陷阱指令。

在内核陷阱处理程序中,内核将知道故障发生的确切地址,并因此检查寄存器的状态等。在单字节指令的陷阱情况下,您可以用原始指令替换陷阱指令;可能使用处理器技巧来单步执行它;然后再次替换为陷阱指令……

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65760819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档