IOS如何对当前线程的寄存器进行读写操作?

看到lldb调试可以register write/read,以及HookZz框架也可以实现寄存器读写,最近有需求要实现读写寄存器。
失败的思路

网上有对获取任意callStack的实现其中是配合系统API接口thread_get_state函数获取寄存器信息,但是翻看thread_get_state实现时发现内部实现会对线程进行锁定,也明确写出不能获取当前线程信息。
难道是内联汇编

目前想法

//使用内联汇编
uint64_t x0;
………
_asm这里不能打第二个下划线(“mov %[x0],%%x0\n\t”

: [x0]"=r"(x0)
:
:
);
printf(“Current X0 is %lX”,x0);

不知有没有其他方法,欢迎讨论:sailboat:

inline asm 他不香么?

除了这个还有别的吗。。。静态写代码麻烦
如果要加入hook的话就要十六进制码,没法获取这么多。
而且汇编与c对接的时候有许多问题,例如用汇编读写c语言的结构体,还得是静态的

register int r_r0 __asm(“r0”);
网上看到这种写法,这种写法可以获取吗

可以利用调试器技术实现。比如硬断