记录一下几个debug的问题 (2)

问题表征

我负责的功能使用了一个MAP(我们团队重写的std::map),在往MAP里添加元素的时候segv。

问题分析

这个MAP的key是个struct,里面有6个VECTOR(重写的std::vector)。先是研究了半天这个struct的lessThan函数,发现没有问题。

下一步,gdb查看了每个元素添加进MAP的过程,一共添加了3000+次,也没有问题。

后来发现,MAP本身所在的memPool和MAP中key里6个VECTOR使用的memPool不一致。进一步发现插入key前的struct使用的memPool和MAP的memPool不是一个。

MAP所在的memPool会被用来做cache,即会被保留将来使用。而struct的memPool是每次计算用的临时memPool,每次计算完会rewind。所以MAP中的key指向的位置可能已经无效了。

至于为什么在MAP加入key的时候(copy一份key在MAP中),使用的是key的memPool而不是MAP的memPool,原因在VECTOR的copy构造函数使用的是VECTOR的memPool。如果是一般对象就没有问题了。

解决方法

创建struct对象的时候,使用MAP所在的memPool。

Posted in DIARY.


记录一下几个debug的问题 (1)

问题表征

严重内存泄漏。
我负责的部分使用了一个第三方的库。研究发现两部分代码都没有内存问题。
我们公司的代码全是建立在mempool申请的内存上,好处是只要创建对象,不用析构,省时间而且能控制内存泄露。
第三方的库使用正常heap上分配的内存,析构函数中释放这部分内存。
所以两方配套时就出现了问题:我们的对象从来不析构,导致对象中第三方库的对象也不能正常析构,造成了内存泄漏。

解决方法

  1. 把所有第三方库的动态内存调配切换到mempool上。一劳永逸但是工作量巨大;
  2. 把所有第三方对象建立在函数stack上,用完自动释放。这样对象不能重用;
  3. 手动析构第三方对象。需要小心谨慎,稍有不慎就内存泄漏或者释放野指针。

最终解决方案:3。

Posted in DIARY.


2014年快乐!

不知不觉又过一年。。。。2013年发生了好多,祝福2014年会更好!

ps,2013年摄影合集已收录于http://photo.coronasky.net/。欢迎收看!

Posted in DIARY.


Google Reader要关闭啦

订阅了这么多好朋友的博客和分类信息呢,难道都要整合到微博里面去弄个大杂烩嘛?orz…原来我每天翻rss源的习惯已经被时代抛弃了吖。

总之在关掉之前,还是尽快找个替代品吧^^

Posted in DIARY.


呼呼被黑客黑了!

唔起因是昨天发现这个站忽然被供应商suspended了。昨天给客服发信,回复说有人举报我的页面有malware所以把我的关了。我:-_-|||。

于是请求帮忙再开放我看看,开完发现被穆斯林圣战黑客黑了|||。被黑的页面点这里(放心我改了没有malware…)。好想对他们说:兄弟别开枪!是我!我们中国人民是世界人民的老朋友!啊!

然后去后台查找所有带hacked的文件…查出来黑客只改了3个php(好厚道||),于是下了干净版本的php替换,被修改过的保存下来留念。以为弄完了,然后发现主页又显示为hack by Badi,咦怎么同时被好几个人黑了呢?然后google一下,先后台恢复了wp的admin密码,登录wp控制台改字符编码(居然被绿绿改成utf-7…)再改一个widget,嗯,这下终于搞定了!

哈哈哈于是现在又可以打字发blog啦。

Posted in DIARY.

Tagged with , .


话说微博个人首页不显示个人网站地址了

那应该很少人会找到这里吧^-^。

Posted in DIARY.


人生中第一篇journal

这周得知5月份投的TCAD中了,hoho,人生中投的第一篇journal啊~

这样博士毕业完成一半了,继续加油!(cv页等final之后再做更新吧)

Posted in DIARY.


25了!

奔三的路上已经过半~

理想是美好的,现实是残酷的,对自己说加油!!

Posted in DIARY.

Tagged with .


台湾游记 第六篇——台北下

下午泡完汤出来之后浑身硫磺味,回家之后洗了1一个月才彻底洗干净。晚饭时匆匆跑到孙大炮纪念馆,结果居然关门了已经。从玻璃门望进去,布局和常公纪念馆差不多,也是大炮石像坐在大厅中央。我们就在周围逛了圈,又去市政府、101下面逛了一圈。101也没上去,因为作为摄日落狂的我来说,天已经完全黑了,没有天色的城市灯光完全没有吸引力。然后去了令人激动的师大夜市!师大夜市果然名不虚传,美女太多了,不过人人都浓妆,天生丽质白腿大胸的mm也不少。吃完回去睡觉。

第三天早上去总统府玩。结果正好马囧出发去非洲外交了(真是少见啊),然后也没有对外开放。。。此时开始下雨了,就匆匆在门口拍照留念。正好看到总统府前面一块地砖上画着:台湾土狗,我一眼看成了台湾土共|||

然后228纪念公园就在不远处。此公园是用来纪念台湾民煮的。里面有个民主墙,上面有些写着字的条子(见图),228公园里面的台北博物馆那天也不开,尼玛那天真是什么都没开门,太背了。

由于第二天就要出发回家,所以下午去西门买手迅。在西门逛了一下午,我买了600台币的手迅。然后逛了西门的诚品书店。诚品书店是台北最有名的一个连锁书店,每家都很大,有看出的地方,环境很好。我随便买了2本书带回去看。台湾书价总体比香港略低,但是还远高于大陆。

我们的飞机是第二天早上8点。为了省钱,我们一致决定当晚到桃园机场过夜,省下一天住宿钱。晚上坐大巴到了机场,居然不能办checkin,要第二天早上才行。于是我们找了个卖咖啡的店坐下,开始打牌。在教会了俩女生打升级之后我们玩了一晚上找朋友。第二天日出后飞回香港。

Posted in 2012台湾游记.

Tagged with , , .


台湾游记 第五篇——台北中

第二天我们去逛蒋公纪念堂和去北投泡温泉。一大早地铁去到自由广场,相当于天安门广场了。广场上也是轴对称,一端是巨大的自由广场牌坊,两边是对称的一模一样的国家戏剧院和国家音乐厅。外卖都酷似天安门。广场另一端就是常公纪念堂。当然里面没有腊肉。见图片。

纪念堂上层类似鼓楼,里面中空大概5层楼样子,蒋公石像安坐当中。石像底座上面刻有他的遗嘱。坐像前有帅哥仪仗队表演。

从底层进入纪念馆,是蒋公生平介绍展,非常不错值得一看,从他出生到挂掉。最后一个展厅是蒋公办公室。旁边刻有一个鲜为大陆人知的故事:好像是什么人类第一次登月带了个板,上面有各种文字给外星文明的问候,然后中文的就是常公的话,云云。出来之后有一个礼品店,里面各种恶搞蒋公的纪念品出售。

中午吃了顿台湾卤肉饭,尼玛真是一股骚臭味。。。好在下午出发去北投泡温泉!北投是台北北面不到阳明山那块,日占时期日本人兴起的泡温泉活动,因为周围有活火山地热啥的。不过其实都不是天然的。。。。我们到了之后先去看了北投的温泉博物馆。然后找了一家店泡了俩小时,一人300新台币。我们要的是一个大池秘汤,男女一起的。当然不像日本动作片里面的情节,什么都没发生。。。

Posted in 2012台湾游记.

Tagged with , , .