作者radom (缺水中...)
看板C_and_CPP
标题[问题] set scheduler_locking off 之後...
时间Wed Oct 21 11:01:57 2020
开发平台(Platform): (Ex: Win10, Linux, ...)
Llinux
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
GCC
问题(Question):
程式为multi-thread
在GDB中,为了停在有问题的code中,不要被其他thread干扰,
而下了 set scheduler-locking on
之後不小心下了 continue 的指令(应该先下 set scheduler-locking off)
出现了类似
[Thread 0x2ade69eee700 (LWP 31869) exited]
然後它就不理我了....
请问我该怎麽跳到别的thread让它继续执行下去呢?
按了ctrl-c、ctrl-z都没用
看top中我的程式也没在跑的样子 ...
谢谢 ~~~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 192.5.98.28 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1603249320.A.3A4.html
1F:推 ucrxzero: 所以你还在gdb的shell内吗 10/21 11:04
2F:→ ucrxzero: 直接r? 10/21 11:04
3F:→ radom: 还在啊...按了r不就重run了? 10/21 11:22
4F:推 b0920075: info thread 看编号然後 thread 编号? 10/21 11:30
5F:推 LPH66: gdb 是有个 thread 指令可以切换 thread 啦... 10/21 11:33
6F:推 ucrxzero: 对啊看不懂你为啥可以top还能再gdb shell内 你是用shel 10/21 11:51
7F:→ ucrxzero: l top? 10/21 11:51
是的,切换到其他视窗打top,
原本的cpu usage大概都>1000...现在是0..
8F:→ ucrxzero: 反正只知道你的那个执行绪已经跑完了 10/21 11:52
9F:→ ucrxzero: 重现那个状况 移过去那个执行绪看bt 为啥死在那可行吗 10/21 11:53
10F:→ ucrxzero: 你都可以Ctenophora+c了为啥不能重跑 10/21 11:53
11F:→ ucrxzero: Ctrl +c 10/21 11:53
目前怀疑系统loading太大所以整个hang住了
按 ctrl-z, ctrl-c 没反应是因为当掉了
所以只好把所有的process都砍了...Orz
下次试试跳到别的thread然後下 set scheduler-locking off ,再下 continue
看能不能把 process 救活
谢谢各位的回应~~
※ 编辑: radom (192.5.98.28 美国), 10/21/2020 14:58:30