wince
flyound
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
win32上多线程使用setTimeEvent可能引起死锁
今天在写UI框架的时候需要定时器主动刷新UI,用普通WM_TIMER事件不能满足需求,所以换成setTimerEvent函数,当在多线程时同时访问时就出现死锁。原因为在setTimerEvent的回调函数调用前系统会做同步操作(临界区),而刚好在回调函数中有自己的临界区操作,而刚好在另外一线程进入该临界区后调用setTimerEvent函数时就会出现死锁。原创 2011-10-28 14:56:09 · 1986 阅读 · 1 评论 -
wince多线程上使用FindWindow可能导致死锁
今天同事问我这个事情,我原本也不大相信的后来测试发现果真存在这个问题,PC上不存在的,测试代码如下:DWORD WINAPI TestThreadProc(void * pParam) // 查找Window句柄线程{printf("\nStart:%s\n", __FUNCTION__);FindWindow(NULL, L"asdasdqwejqwe");原创 2012-10-12 15:23:48 · 1235 阅读 · 0 评论 -
Wince如何生成Dump文件,通过Windbg进行错误现场还原和Bug修复
本文来源于本人的培训PPT文档,时间原因,本人也就懒得去重新梳理这些文本的表达方式了,看起来可能有些吃力,还望见谅,下面就开始正题吧。当我们编写的程序出现错误现象时,我们是怎么去解决的?让测试人员复现错误步骤,然后调试。分析错误发生原因,然后调试工程试图复现错误。根据错误地址查找错误代码行。增加日志输出记录函数运行的流水线。......原创 2012-10-08 18:04:30 · 2119 阅读 · 1 评论 -
Wince内存泄露检测工具Application Verifier的使用和如何快速定位泄露语句(二)
通过Application Verifier在wince端生成日志文件后,我们将文件拷贝到PC上通过PC端的工具进行日志分析,我们就可以定位出泄漏地址的代码行位置了,这里有个前提条件,那就是需要我们在编译程序时将程序的调试信息打开,VS2008设置选项配置方法如下:1.配置属性 => C/C++ => 常规 => 调试信息格式 => 程序数据库(/Zi)2.配置属性 => 链接器 => 调原创 2012-11-29 18:28:28 · 1903 阅读 · 1 评论 -
Wince内存泄露检测工具Application Verifier的使用和如何快速定位泄露语句(一)
大家在wince开发过程会发现跟PC上的开发的差距很大,一些在PC上的调试技巧之类的辅助功能都无法使用,比如内存泄露的检测等,那么这篇文章就是告诉大家如何使用wince上的内存检测工具帮助大家找出内存泄露。这里给大家介绍的软件为Application Verifier,是微软自己开发用于监测wince系统的内存和一些内核对象未释放造成内存泄露的辅助工具。该工具只需要在wince上运行指定监控的程序原创 2012-11-29 16:41:28 · 3688 阅读 · 3 评论 -
关于多线程操作同步对象造成死锁的解决方式(二)
上篇文字介绍到如果有效避免死锁的发生,那么这篇文件将介绍当死锁发生时我们如何知道并能够得知死锁发生的情形,然后快速解决它。 那么这篇文章主要讲解原理性东西不会贴很多代码,下面进入正题。 在上篇文件定义了自动锁安全类后,我们看到有些函数进行了重载,其中参数有文件名,函数名,代码行等参数,那么这个信息就是帮助我们定位死锁时代码执行到哪个位置的信息,那么我们如何传入这些参数呢?我们可以用宏原创 2012-11-28 18:52:13 · 1266 阅读 · 0 评论 -
关于多线程操作同步对象造成死锁的解决方式(一)
在多线程编程成中经常需要进行数据同步等操作,在临界区等对象使用时容易出现忘记退出临界区操作或中间执行的代码发生异常导致退出临界区代码未被正常执行,这个时候就很容易出现死锁现象了,那么我们这么解决上述问题呢? 这个问题解决的办法其实很简单,采用临时对象的方式去解决,也就是写一个自动锁的类,这个类用于接收一个临界区指针或引用,在构造时自动进入临界区,析构时自动退出临界区,那么我们也原创 2012-11-28 18:13:46 · 1387 阅读 · 7 评论
分享