在 Windows 上构建并接入最新发布分支的 breakpad
新直播姬项目重构的差不多了,于是前几天 leader 对我说:组织已经决定了,你来接入 crash dump 的处理收集!
于是我就念了句口号:Hail Hydra,然后开始研究怎么接入 google-breakpad。
新直播姬项目重构的差不多了,于是前几天 leader 对我说:组织已经决定了,你来接入 crash dump 的处理收集!
于是我就念了句口号:Hail Hydra,然后开始研究怎么接入 google-breakpad。
这篇主要内容是吐槽,干货不多。
曾经我以为只要是我设计的代码结构里,基本不会碰到需要 multiple inheritance 的情况,更不用说需要 virtual inheritance,结果没想到这周就被啪啪啪打脸了。
起因在于我要为底层的 obs properties 体系设计一个 wrapper,为上层提供类似的等价物。
大约从 Windows 8 开始,微软开始觉得大家之前那种不同系统版本给不同的代码的方式太不和谐了,怎么可以搞 discrimination 呢?要和谐,要有爱!于是把常用的 GetVersionEx()
给标记成了 deprecated,并且建议大家使用另外一套更加政治正确的 version verification API。
几天前给 KAdBlockEngine 加上了 README 之后,这个 repo 算是正式的结了。
对别人来说,这只是一个很普通的 repo;但是对我而言,却意义重大。
这个论断来自于前段时间重构 pickle 时的想法。
Pickle
是一个二进制序列化设施,内部维护一块 buffer 用以保存被序列化的二进制数据,语义上看,一个 Pickle
对象对内部 buffer 具有无争议的 resource owner 语义。
昨天在给 KAdBlockEngine 的 AdFilter
加上序列化/反序列化的支持时,意外的又一次被 data type promotion 坑了,导致一晚上的时间都在 debug…
模板参数类型约束在 C++ 中一直以来大概得算不上不下的一个处境。
因为非运行时(编译期)的优势,对于参数类型约束的需求不像 C# 那样紧迫;但是同时又因为实例化完成的时期过早,编译器对于模板代码的处理并不能上升到一个精确的语义层次,导致的后果就是模板相关的代码的出错信息一直在井喷,而且相当一部分的错误信息完全没有卵用。