多线程调试问题(观察一段代码运行中的线程切换)

tramper2000 2005-06-02 12:56:08
我有一段代码执行时间应在1ms以内,现有时候会有100ms左右的情况。我想观察在这段代码运行期间,都切换到了哪几个线程,应该怎样做?

谢谢!
...全文
123 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
danscort2000 2005-06-03
  • 打赏
  • 举报
回复
这好象很难吧,
一般只有用TRACE+断点来跟踪,
因为线程切换是OS的问题,不同OS在不同软硬环境下切换算法是不一致的,
你在这台机器上看到的,并不见得在另外一台上也这样运行。
没有什么意义的,
真想看,
那么用同步,加CONSEL输出,用INTERLOCKED系列函数,
对变量进行实时输出检查。
tramper2000 2005-06-03
  • 打赏
  • 举报
回复
有俩思路:
1.用DebugEvent,好像没有线程切换的EVENT
2.用PViewer的实现思路

大家再想想~~~~
tramper2000 2005-06-02
  • 打赏
  • 举报
回复
各位:
因为我不知到切换到哪去了,可能都不是这个进程了,是没法用日志或Trace的
这是很大一问题◎
DentistryDoctor 2005-06-02
  • 打赏
  • 举报
回复
可以考虑TRACE/OutputDebugString,但这有何意义?这是操作系统的事,你又干预不了。
吹泡泡的小猫 2005-06-02
  • 打赏
  • 举报
回复
线程切换是操作系统的事情,线程自己是不知道的,通过TRACE线程特征(比如线程ID)只能知道代码在那个线程执行,至于是否这个线程被切换了或切换了多少次是无法得知的
younggle 2005-06-02
  • 打赏
  • 举报
回复
线程间的上下文切换是很占资源的,如果想查看切换了哪些线程,可以有很多办法,例如你采用调试的方式,在线程内断点;或者使用TRACE宏在线程中输出有线程特征的变量;或者采用写日志的方式来记录哪些线程调用了。
===========================================================================
一般是这样了:调试,输出调试信息,写日记。
betsyalan 2005-06-02
  • 打赏
  • 举报
回复
线程间的上下文切换是很占资源的,如果想查看切换了哪些线程,可以有很多办法,例如你采用调试的方式,在线程内断点;或者使用TRACE宏在线程中输出有线程特征的变量;或者采用写日志的方式来记录哪些线程调用了。
tramper2000 2005-06-02
  • 打赏
  • 举报
回复
高手请支招!

xtjqu 2005-06-02
  • 打赏
  • 举报
回复
关注,这个问题太典型了,顶

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧