ksco 的工作日志
245 subscribers
168 photos
10 videos
4 files
84 links
内容主要取决于我正在做的东西,目前主要是模拟器 / DBT 之类的散乱话题。
Download Telegram
[11:18 PM] ksco: I was tired of debugging so I took a nap, after waking up, it took me like 5 minutes to find the cause.
[11:19 PM] ksco: amazing.
好久没写 PPT 了
我的 BENQ 显示器和 M1/M2 的机器好像不太对付,经常会闪屏,但今天这个属实有点离谱了
🤔️
🤔4
^ 单是把这样一个复杂的东西循序渐进讲得这么清楚易懂感觉就非常厉害了。
一天没上 tg 怎么多了这么多订阅?🤔️
🔥3
感觉任何想要 fancy 一点的用户空间模拟器都免不了要自己实现动态链接器,QEMU 在这方面是不太入流的)
#DynamoRIO 目前针对 thread pointer 的做法是:在进入 guest 之前,把 tp 存起来,然后把 tp 指向 spill state。guest 所有的访问 tp 的指令当然都需要 mangle。从 guest 中退出的时候,再把 tp 恢复即可。这样有个好处就是,不需要再偷一个寄存器放 tp 的原始值(host thread pointer)了。

但今天发现一个大问题是,如果 client 设置了 itimer,跳转的地方是 guest 代码时,tp 的值其实是 spill state 而不是 host thread pointer,这样一来 sighandler 在读 thread private context 的时候就炸掉了。

所以合适的做法可能还是要偷一个寄存器,让 tp 的值始终保持 host thread pointer 不变。明天把这部分重写一下吧。
才发现 HomePod 上灯的亮度是会随着环境光变化的。
#DynamoRIO 遇到了大问题。对于类似 lr beq sc 这种指令序列,因为中间的 cbr 存在,所以这个序列会被 DynamoRIO 撕成两个 basic block,然后两个 basic block 中间,就不可避免的会执行一些访存指令。这在 Unmatched 上就会直接卡死,这是正常的,因为 spec 不允许 lr sc 中间插访存。

这可咋办了,感觉要识别这种序列,然后特殊处理了,先睡觉吧。
连提了 5 个 PR,竟然一次性全 approve 了🔥
🔥9
Super Morning-O Bros! 🌞
新桌子
开心
这机器感觉好厉害