fish的小屋

fish的小屋

导航

一个Assert引发的血案

     今天在做东东时发现一个非常古怪的问题一开始以为是内存覆写,因为某个数据会变成一个莫名奇妙的值,后来锁定可能改变这个值得函数以后发现更加是莫名奇妙,因为从逻辑上来说除非发生多线程访问否则不会被修改。但是目前又还没有采用多线程,后来发现原来是Assert函数导致因为在自己理解中Assert发生后应该阻塞在这里,但是后来看了调试堆栈后发现Windows的消息循环再弹出Assert后会继续运行,而第2个函数偏偏又是在这时候读取这个数据的值,而这个时候由于第一个函数在Assert中还没返回没有将该数值置回初始值所以第2个函数读到的是一个脏的数据。。。汗=.=不知道有没有让Assert直接中断而不要再运行消息循环的方法。顺便发一下初步的编辑器Ui嘿嘿比公司的那个明显要好看多了。

posted on 2009-01-11 01:28  fish.shadow song(若愚.影歌)  阅读(227)  评论(0编辑  收藏  举报