如何打印Linux内核中的寄存器?
我想从 ARM 上运行的 Linux 内核代码中打印出几个寄存器的值。特别是我在 Linux 中有以下程序集 -
e3c52007 bic r2, r5, #7 ; 0x7
e1520003 cmp r2, r3
0a000003 beq c011fa60 <smem_find+0x40>
如何在 kmsg 中打印出 r2、r3 和 r5 的值?我不想使用变量名,而是想从寄存器中获取值。
I want to print out values of a couple of registers from the linux kernel code running on ARM. Particularly I have the following assembly in linux -
e3c52007 bic r2, r5, #7 ; 0x7
e1520003 cmp r2, r3
0a000003 beq c011fa60 <smem_find+0x40>
How do I print out the values of r2, r3 and r5 in kmsg? I do not want to use the variable names and want to get the values from registers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不太熟悉内核开发和简单的调试方法,但我想这可以完成工作。
编辑:现在使用 ARM 汇编而不是 x86 :p
I'm not that familiar with kernel development and easy ways to debug, but this would do the job I guess.
Edit: Now with ARM assembly instead of x86 :p
您可以调用show_regs(struct pt_regs * regs)。该函数将显示 pt_regs 结构上的所有寄存器。
You can call
show_regs(struct pt_regs * regs)
. This function will diplay all the registrs on the pt_regs structure.