blf-to-human

blf文件不论读、写、版本控制,都比较困难。

要说不好读,它里面用了太多的十六进制数:有的地方用32位的十六进制数来表示一个标签, 比如:0x55535259 = USRY;有的地方用十六进制数来表示address、size、offset。

要说不好写,首先,不好读的格式基于同样原因肯定也是不好写的。其次,blf文件里用了太 多的冗余信息,比如,每个image都有一个十六进制表示的ID和一个文本表示的NAME,这二者 是完全等价的。再次,blf文件有很大的随机性:每一个Image都会有一个NextImage,这 NextImage的定义看上去简直是任意的。

由于不好读、不好写,所以不好版本控制。牵一发而动全身,一个小改动会生成一个很大的 diff,从而很难进行review。

想要改变这种状况,最好是更新.blf的格式,但这个改动牵扯的太多了,估计不是很现实。

一个折中的办法是从.blf生成一个可读性更强的文件格式,在这两种格式之间进行互相转化。

blf-to-human和human-to-blf就是这样的两个脚本。