全部博文(51)
发布时间:2021-09-17 16:41:46
脚本中(区别于默认的链接脚本),这些脚本存储在arch,如arm64该文件使用了linux/include/asm-generic/vmlinux.lds.h本文介绍一个特殊段, __ex_table, 定义如下:#define _ASM_EXTABLE(from, to) &nbs.........【阅读全文】
发布时间:2021-09-04 22:12:58
上一篇介绍了Arm64 FP/LR两个寄存器,并通过一个简单的例子来解释了它们在函数调用中作用。这里继续介绍x86的子函数调用及stact frame,其中用到同上篇的toy example来帮助理解所讲的内容。Register首先简单介绍下寄存器与栈帧,这个是理解subroutine call的基础。来看一下几个与本节内容相关的x86-64 arch的寄存器.........【阅读全文】
发布时间:2021-08-04 22:35:48
ARM64 PCS(procedure Call Stanard)定义:X29 is the frame pointer register (FP). 用来定位有效的栈帧记录。X30 is the link register (LR). The branch-and-linkinstructions that store a return address in the link register (BL and BLR), settingthe register X30 to PC+4. Calls tosubroutines,.........【阅读全文】
发布时间:2021-01-06 21:22:12
最近阅读kprobe的内核代码,目标指令被替换为brk指令;这个过程需要刷新cache,从代码中没能理解背后的原理。最近找到一篇文章给出的一些相关的解释,非常受用。源文链接:https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/caches-and-self-modifying-codeThe processor can .........【阅读全文】