gdb(借用vscode)无法击中断点

gdb(用vscode)无法击中断点

问题描述

我是用vscode remote到wsl上,使用wsl里的gdb进行调试;在设置条件断点后无法击中

类似于这种情况(使用的调试器不是本机的),请优先查看or查找远程连接的机子上调试器是否正常工作

虽然乍一看可能是vscode的问题,但是当我利用vscode终端、直接使用gdb进行调试时也无法击中断点。所以优先将问题锁定到gdb无法正常工作上。观察到经过断点处代码,但程序没有停下。

解决思路

分析:可能是把gdb挂在了父进程,而下断点部分的代码运行在子进程上。

考虑gdb的进程问题:gdb里执行该命令,将fork出来的子进程也被调试,而父进程不受影响(The new process is debugged after a fork. The parent process runs unimpeded.)

set follow-fork-mode child

(因为我这里并没有使用wsl,是借用vscode进行各种操作和调试的,所以我没有用这个方式)

考虑vscode终端窗口的问题:vscode提供了多样的终端窗口,而观察vscode对于新窗口的创建(从一个窗口调试会得到多个终端窗口)、猜测它相当于fork,则关掉所有窗口后再ctrl+j,此时进行调试即可击中断点

posted @ 2022-10-26 21:13  比萨在哭  阅读(917)  评论(0编辑  收藏  举报