最后还是通过看汇编代码定位了问题。有位同事在用数组的时候不检查下标,结果在并发状态下刷到了-1。不过问题的根源还是线程安全性。底层数据引擎设计时并没考虑并发问题,因此才会在正常工作的时候变出非法的数据出来。
借此机会又再次温习了汇编语言,大学时候学的8086/8088汇编指令虽然早已过时,但思想还算没忘。那些关于现在的大学念了白念的说法,我觉得还是需要探讨。
之前用tds2dbg完成的工作也有价值,帮我把代码段确定了。C++代码能定位到就这一两句,那么再来对照汇编指令就比较好理解了。
另外,今天还学习到了LEA指令的相关知识,顺便网摘一篇对我有点帮助的博文:
http://www.cnitblog.com/textbox/articles/51912.html
没有评论:
发表评论