`
swimmer2000
  • 浏览: 36460 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

多线程里的OutputDebugString

阅读更多

早就有人说过,调试多线程程序是挑战。今天我才算是对这句话有个比较深入的了解。事情这样的:我的程序有一个工作线程不停的读取USB口上传的数据,然后将读到的数据导出到文本文件。用户反映导出的数据有部分丢失,于是我就修改读取数据的方式,并在收到数据的时候做了前后两笔数据ID是否连续的判断,还把数据通过OutputDebugString输出到VC6的Debug输出窗口。奇怪的是,每当我调整VC IDE左边的Workspace窗口的大小后,ID就不连续了,用BusHound抓到的数据ID是连续的啊!

 

然后我猜测,这都是因为OutputDebugString这个函数惹的祸,调整Workspace窗口大小后,VC的Debug输出窗口也要重画嘛,既然是重画,就需要时间,而在等待重画的这段时间内,USB口上传的数据就像手中沙一样随时间流失了。So,虽然OutputDebugString简单方便,但也不是完全无毒无副作用。

分享到:
评论

相关推荐

    C++ 输出调试信息和所用时间长度 outputdebugstring

    使用outputdebugstring输出调试信息,支持 流操作符 支持时间统计,极短只有十来行。codeproject上有相同功能的实现,几百上千行呢。真不知道作者是在干什么,练手吗?不像是要解决问题的杨紫。

    HotLog 源代码

    我自己用得最多最顺手的 Log 工具。把这份PAS单元文件加入到你的工程里,随时可以写LOG。尤其是多线程情况下很难用断点跟踪时。个人感觉比 OutputDebugString 好用。

    LLYF ToolBox

    不但可以查看所有的进程名,还可以查看到进程对应的启动命令行、占用的CPU时间、占用的内存数量、优先级、包含的程序模块、内存映射文件、线程。另外,还可以查看系统中的服务列表、驱动程序列表以及BHO。  LLYF ...

    【轻巧简便】LE-Log日志调试工具-例子-易语言

    对于一直崩溃的程序,没有用异常捕获,我们可以再相应的地方加上一句LE_Log 打印或者OutPutDebugString 即可清楚的看到程序运行状况,从而判断程序异常位置(以前我一般用DbgView,哈哈)。 我以前研究过QQ协yi,...

    微软Sysinternals Suite工具包 2018.12.18 官方版.zip

    用好Windows Sysinternals Suite里的工具,你将更有能力处理Windows的各种问题,而且不花一毛钱。 Sysinternals之前为Winternals公司提供的免费工具,Winternals原本是一间主力产品为系统复原与资料保护的公司,...

    SysinternalsSuite windows工具集合

    DebugView: Sysinternals 的又一首创: 该程序可以拦截设备驱动对 DbgPrint 的调用和Win32程序对OutputDebugString 的调用. 程序可以浏览或记录本机或远程计算机上调试会话的输出,而无须激活调试器. Desktops:...

    注册表批量修改权限命令

    Sysinternals 的另一个优先程序:此程序截取设备驱动程序对 DbgPrint 的调用和 Win32 程序生成的 OutputDebugString。它允许在不使用活动的调试器的情况下,在本地计算机上或通过 Internet 查看和记录调试会话输出。...

    调试开发工具集

    Sysinternals 的另一个优先程序:此程序截取设备驱动程序对 DbgPrint 的调用和 Win32 程序生成的 OutputDebugString。它允许在不使用活动的调试器的情况下,在本地计算机上或通过 Internet 查看和记录调试会话输出。...

    SysinternalsSuite

     Sysinternals 的另一个优先程序:此程序截取设备驱动程序对 DbgPrint 的调用和 Win32 程序生成的 OutputDebugString。它允许在不使用活动的调试器的情况下,在本地计算机上或通过 Internet 查看和记录调试会话输出...

    Windows Sysinternals Suite v2019.06.29.zip

    Sysinternals 的另一个优先程序:此程序截取设备驱动程序对 DbgPrint 的调用和 Win32 程序生成的 OutputDebugString。它允许在不使用活动的调试器的情况下,在本地计算机上或通过 Internet 查看和记录调试会话输出。...

    Sysinternals 实用程序全集 (完整版 49.2M)

    Another first from Sysinternals: This program intercepts calls made to DbgPrint by device drivers and OutputDebugString made by Win32 programs. It allows for viewing and recording of debug session ...

    Sysinternals 微软系统监控实用工具

    Sysinternals 的另一个优先程序:此程序截取设备驱动程序对 DbgPrint 的调用和 Win32 程序生成的 OutputDebugString。它允许在不使用活动的调试器的情况下,在本地计算机上或通过 Internet 查看和记录调试会话输出。...

Global site tag (gtag.js) - Google Analytics