首页
社区
课程
招聘
[原创]调试器断下时,我发现一个有歧义的说法
发表于: 2024-2-26 07:31 3788

[原创]调试器断下时,我发现一个有歧义的说法

2024-2-26 07:31
3788

一直以来,关于编写调试器的教程都说“当断下时,应当立即调用suspendthread暂停线程,然后再取寄存器的值,否则线程会继续运行,取到的寄存器值就不是断下时的值了”。

那么问题来了,调用suspendthread这个函数难道不需要更长时间?等它暂停线程已经过了万分之一秒的时间,这个时间线程早已经继续执行几百条指令了,取到的寄存器值岂不照样不是断下时的值?那还不如直接取寄存器的值,比执行suspendthread时间更短呢?到底断下时,线程是否还是在运行的?如果是,调用suspendthread暂停难道不晚了?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (11)
雪    币: 1532
活跃值: (4588)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
断下时,线程没有运行?
2024-2-26 12:16
0
雪    币: 1825
活跃值: (5354)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
逆向爱好者 断下时,线程没有运行?

断下后

最后于 2024-2-26 14:07 被PEDIY编辑 ,原因:
2024-2-26 14:05
1
雪    币: 1825
活跃值: (5354)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
逆向爱好者 断下时,线程没有运行?
最后于 2024-2-26 14:07 被PEDIY编辑 ,原因:
2024-2-26 14:06
0
雪    币: 4734
活跃值: (4281)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
断点是一种异常机制,触发异常后 操作系统需要处理这个指令异常 在没得到处理之前是不会让这个指令往后继续执行的。
2024-2-26 14:11
0
雪    币: 1825
活跃值: (5354)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
木志本柯 断点是一种异常机制,触发异常后 操作系统需要处理这个指令异常 在没得到处理之前是不会让这个指令往后继续执行的。

那么那些教程上的“当断下时,应当立即调用suspendthread暂停线程,然后再取寄存器的值,否则线程会继续运行,取到的寄存器值就不是断下时的值了”是错误的了?其实不会继续执行?

2024-2-26 17:18
1
雪    币: 3
活跃值: (466)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
挂起是挂起   断下是断下  
2024-2-26 18:00
0
雪    币: 1532
活跃值: (4588)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
PEDIY 逆向爱好者 断下时,线程没有运行? 断下后
我多打了一个问号,就是断下的时候没有运行
2024-2-26 18:11
0
雪    币: 1532
活跃值: (4588)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
PEDIY 那么那些教程上的“当断下时,应当立即调用suspendthread暂停线程,然后再取寄存器的值,否则线程会继续运行,取到的寄存器值就不是断下时的值了”是错误的了?其实不会继续执行?
教程错了
2024-2-26 18:14
1
雪    币: 1532
活跃值: (4588)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
拉闸太子 挂起是挂起 断下是断下
你说的应该是这条线程被断下,这个线程所属其他线程的处理办法就是suspendthread,暂停掉,等异常处理完毕全部恢复执行
2024-2-26 18:15
0
雪    币: 30
活跃值: (1332)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
断下后,cpu不执行指令,触发暂停;
2024-3-13 17:58
0
雪    币: 12
活跃值: (399)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
断下后windows调试体系会自动给你把整个进程suspend 不需要再有什么额外操作了。
2024-3-18 21:27
0
游客
登录 | 注册 方可回帖
返回
//