首页
社区
课程
招聘
[求助]ptrace多线程下,怎样才能收到线程的信号?类似waitpid()
发表于: 2019-12-30 23:41 3958

[求助]ptrace多线程下,怎样才能收到线程的信号?类似waitpid()

2019-12-30 23:41
3958
某进程有两条运行的线程,tidA为主线程,tidB为非主线程
ptrace调用 PTRACE_ATTACH 附加tidB, 成功后调用waitpid()或wait(), 返回值都为-1
waitpid(0,NULL,NULL)
waitpid(-1,NULL,NULL)
waitpid(tidA,NULL,NULL) 
waitpid(tidB,NULL,NULL)   
waitpid(-tidA,NULL,NULL) 
waitpid(-tidB,NULL,NULL)   
上面的调用方式我都试过,返回值都是-1,完全没用
同时ATTACH两条线程,waitpid也只能收到tidA的停止信号
请问要怎样才能收到tidB的信号?
要用其他的函数吗?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-1-1 00:14 被mistyes编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 1110
活跃值: (3384)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
加参数 `PTRACE_SETOPTIONS`
选项 `PTRACE_O_TRACECLONE`
2019-12-31 12:14
0
雪    币: 276
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
Amun 加参数 `PTRACE_SETOPTIONS` 选项 `PTRACE_O_TRACECLONE`
谢谢,我试试
2019-12-31 12:18
0
雪    币: 276
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4

最后于 2020-1-1 00:00 被mistyes编辑 ,原因:
2019-12-31 23:58
0
雪    币: 276
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
Amun 加参数 `PTRACE_SETOPTIONS` 选项 `PTRACE_O_TRACECLONE`
试了一下PTRACE_SETOPTIONS 不行
看了SETOPTIONS的各种选项说明,好像是在被跟踪进程调用clone() fork()等方法创建新的子进程时, 暂停其运行并自动跟踪新子进程
我想要的是接收进程早已经运行了的某条非主线程的停止信号,设置这个选项好像没用
2019-12-31 23:59
0
雪    币: 1984
活跃值: (811)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
老哥,怎么attach俩个进程?
2020-1-2 10:37
0
雪    币: 276
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
PTRACE函数本来就可以多线程多进程附加
2020-2-8 10:03
0
雪    币: 2334
活跃值: (1354)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
8
https://www.cnblogs.com/get1t/p/9878869.html
2020-2-9 17:02
0
游客
登录 | 注册 方可回帖
返回
//