命令 / GDB / 多进程调试 + 多线程调试
生活随笔
收集整理的這篇文章主要介紹了
命令 / GDB / 多进程调试 + 多线程调试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、多進程調試
| 命令 | 值 | 功能 |
| follow-fork-mode | parent | 進入父進程。(默認) |
| child | 進入子進程。 | |
| datch-on-fork | on | 調用 fork 之后,未被調試的進程正常運行。(默認) |
| off | 調用 fork 之后,未被調試的進程被阻塞。 | |
| info inferiors | (null) | 查看進程信息。 |
| inferior | num | 切換到 num 進程。 |
?對于 gdb 來說,指令 datch-on-fork 就是想詢問大家 gdb debugger 是否需要與 child fork 分離?分離就意為著 child fork 可以擺脫 gdb 的約束,從而無憂無慮的運行。如果該指令為 on,則 child fork 正常運行即可,否則阻塞。
二、多線程調試
| 命令 | 值 | 功能 |
| scheduler-locking | off | 調試本線程時,無論使用 n、s還是 c 指令,其他線程正常運行。(默認) |
| on | 調試本線程時,無論使用 n、s還是 c 指令,其他線程均阻塞。 | |
| step | 調試本線程時, 使用 n 和 s 時,其他線程阻塞。 使用 c 時,其他線程正常運行。 | |
| info threads | (null) | 查看本進程所有線程的信息。 |
| thread | num | 切換到編號為 num 線程。該編號是由 gdb 提供的。 |
?對于 gdb 來說,指令 scheduler-locking 就是想詢問大家 gdb debugger 是否需要對其他線程的運行加鎖?當為 on 時,就實時加鎖,off 時為永不加鎖,step 時為只在單步下加鎖。
?
(SAW:Game Over!)
總結
以上是生活随笔為你收集整理的命令 / GDB / 多进程调试 + 多线程调试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OS / Linux / epoll 各
- 下一篇: Linux / TCPIP / 判断 c