首页
社区
课程
招聘
如何调试线程?
发表于: 2004-6-5 12:47 5223

如何调试线程?

2004-6-5 12:47
5223
收藏
免费 5
支持
分享
最新回复 (6)
雪    币: 227
活跃值: (130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
中断在createthread看参数
2004-6-5 13:53
0
雪    币: 182
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
当单步步过createthread时,线程是否运行了呢?
2004-6-5 18:50
0
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
4
这个问题我也一直搞不明白:
是不是用调试器加载以后,所有的线程都挂起呢?
线程的执行顺序是否跟调试的顺序有关?
2004-6-6 00:31
0
雪    币: 329
活跃值: (343)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
5
最初由 cyclotron 发布
这个问题我也一直搞不明白:
是不是用调试器加载以后,所有的线程都挂起呢?
线程的执行顺序是否跟调试的顺序有关?


用调试器加载后主线程被挂起在EP处,其他所有线程都还没有启动。线程的执行顺序就很复杂了,要看线程之间是用什么方法同步,如果没有同步代码的话,拿就只能看运气了,看谁先抢到CPU时间
2004-6-6 01:25
0
雪    币: 211
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
线程的调试真难理解,据说,OD是将被调试程序作为一个线程加载的,这里有几个问题:
1.正如liauh所说的,当单步步过createthread时,线程是否运行了呢?

2.如果单步过ExiThread或TerminateThread中止自己时,将跟踪到哪里?
3.单步跟踪线程时,如果实际上所有的线程都处于挂起,GetCurrentThread返回的是本线程的伪句柄还是OD本身主线程的伪句柄?
2004-6-6 10:25
0
雪    币: 182
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我所调试的程序若用f8步过createthread的话,在waitforxxxxxx时就过不去。(若线程运行的话应该能过去)

若用f9过createthread的话就会断在线程入口。
2004-6-6 11:12
0
游客
登录 | 注册 方可回帖
返回
//