作者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/m.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