挖井

类库大魔王的挖井日记

挖一口属于自己的井


一次WinDBG调试的心得

前天和TL一起调试了一个程序。

问题是这样的,有个程序启动了两个线程,分别绘制不同的图像,这两个绘制操作是互斥的,通过一个bool型的类成员变量控制,但是测试发现屏幕上两种图像几秒钟内交替出现,这种现象两年来现在是第二次出现,因为是测试环境,所以用WinDBG加载了pdb开始调试。

TL初步调试觉得两个线程里通过线程参数传过去对象指针似乎不一致了,于是两个线程里检测的那个bool型的成员变量值不同。于是花了不少时间去纠结怎样保证多线程环境里获取正确的共享数据。

后来才意识到,WinDBG即使加载了pdb来调试release building程序,也因为代码优化的关系,不能太依赖源代码调试了。在最后通过反汇编跟踪发现,两个线程里跑的代码获取的对象指针确实是同一个,而且是正确的。

本文地址:

https://minidump.info/blog/2015/03/a-windbg-debugging-case/

上一篇

Amazon S3和ElastiCache的传输性能

今天简单地测试了一下Amazon EC2连接Amazon S3和ElastiCache的传输性能,记下以作备忘。EC2、S3、ElastiCache都选的是Tokyo机房的。其中S3是通过这个库做的,ElastiCache其实就是memcache,是用这个库做的。S3上传2.5KB的小文件,耗...…

Job 全文阅读
下一篇

Azure China功能缺失

突然发现Azure中国缺不少我想要的功能,这也是因为前些天看了下AWS才意识到的。之前买了一个Linode东京的VPS,感觉也够用了,可以放程序在上面跑,装上MySQL,memcached,redis,nginx啥的也能满足我的需要了。但是看了AWS后发现,EC2可以跑程序,S3做文件存储,E...…

Cloud 全文阅读