ksco 的工作日志
245 subscribers
168 photos
10 videos
4 files
84 links
内容主要取决于我正在做的东西,目前主要是模拟器 / DBT 之类的散乱话题。
Download Telegram
昨睡眠大失败,故没有任何产出,离被辞退又近了一步。
寝床爆破!元気盛盛!今日生産力 MAX
2
在 fragment_create 打断点,continue 3 次继续 debug,先出去玩了
晚归,然后轻轻松松就修复了这个以为很难的 bug,惊喜
断点打在 jit code 上,第三个 bb segfaulted,问题出在 emit_indirect_branch_lookup ,明天继续!!终于开始着手实现 ibl 相关的东西了,进展比预计的要顺利很多,DR 设计得真是不错。
放假了为什么同事还在卷啊
预计最晚今晚七点开始工作!已经迫不及待
终于下定决心找找为什么 DynamoRIO RV64 port 会重复编译。预期要花很久,但实际很快就解决了:https://github.com/DynamoRIO/dynamorio/pull/6252

发现 CMake 还挺直观的,虽然从来没学过,但还是可以根据直觉来修 bug。
啊,一直被各种事情打扰导致完全没有工作效率哎
从 Revy 那里用将近半价的价格收了一台 Matebook E Go (Windows on ARM),用了四天了,这设备真的是一堆破问题。

本身就不太喜欢 Windows,再加上 ARM 原生的应用不多(尤其是华为自带的软件竟然全都是 x86_64 的,简直不可原谅),Windows x86 Emulation 转译的效率又极其低下,体验真是一言难尽(微软你看看隔壁罗塞塔 2!)。

所以我把能卸载 x86 的应用全都卸载了,好在我日常用的软件都是有 ARM 原生的,最可惜的就是失去了华为生态的所有功能(比如笔和键盘的电量显示)。

但我还是很喜欢这个设备,硬件素质很好,生产力/娱乐性都可以吊打 iPad,还有 WSL/WSA,多核性能直逼 M1 的 80%,只要 3000 块,还要什么自行车。
测了一下 7z b,结果意外的还不错,那为什么用起来感觉那么卡顿呢
#DynamoRIO

emit fragment 分为两个阶段:1)求大小;2)emit 代码

fragment prefix 大小固定为 8,两个阶段一致;exit stub size 固定为 64,两个阶段一致;所以问题应该出在 bb 本身的代码上。

大小差了 2,猜测大概率是 compressed 指令导致的?
第一阶段算出来的 offset 是 122,检查过了,这个数字是对的,所以问题应该出在第二阶段的 set_linkstub_fields 函数里,step 进去看一下。
上游放假了吗,怎么还不来 review 我的 PR
我怎么会在 encode 里面写死 pc + 4 啊,头疼。因为 bb 里的正常指令都有 raw bits,所以走的 fast pass,只有最后面的一条 cti 因为被 mangle 过了 rawbits 被取消了,才走到 pc + 4。
patch_branch 拿到了一个奇怪的 branch pc,往前走两个字节是 c.beqz ,所以怀疑又是某个地方错误地加了 4。
彻底解决了,是因为写压缩指令内存的时候,把高 16 位写进去了,所以糊了
开心,我可以在峰会三楼演示 box64 了!