CLion WSL 调试在 Windows 10 上不起作用

问题描述 投票:0回答:2

我可以在 WSL(Ubuntu 22.04 LTS) 上执行我的项目,但无法调试我的项目。 CLion 安装在 Windows 10 上。

错误信息如下。

com.jetbrains.cidr.execution.debugger.backend.gdb.GDBDriver$GDBCommandException: Warning:
Cannot insert breakpoint 3.
Cannot access memory at address 0x806be6e

Process finished with exit code -1

我期待您明智的答复。 谢谢你。

windows-subsystem-for-linux clion
2个回答
2
投票

您使用的是 wsl 版本 1 还是 2?我在 wsl 1 上遇到了和你一样的问题。我通过将 wsl 升级到 wsl 2 解决了这个问题。

要查看您的 Linux 发行版是否设置为 WSL 1 还是 WSL 2,请使用命令:

wsl -l -v
。 要更改版本,请使用命令:
wsl --set-version <distro name> 2
替换为您要更新的 Linux 发行版的名称。例如,
wsl --set-version Ubuntu-20.04 2
会将您的 Ubuntu 20.04 发行版设置为使用 WSL 2。

如果升级过程中出现错误,请参考微软官方文档。 这是链接


0
投票

警告信息

Cannot insert breakpoint 3.
Cannot access memory at address 0x806be6e

直接来自gdb,而不是CLion。尽管我认为他们可以清楚地指出这一点。

虽然这个 gdb 问题是指 WSL 的一个已知且未解决的问题:[WSL1]升级到 22.04 后无法调试任何内容

我把这个问题的简要描述摘录如下:

这个问题的真正原因是WSL1缺少/proc/*/mem文件,旧版本的gdb在读取/proc//mem失败时会回退到使用ptrace。 但在 2021 年 7 月之后,Gdb 禁用了此类回退,并始终假设 /proc//mem 可用,因此 Ubuntu 22.04 上的 gdb 无法访问 WSL1 下的内存。

一个简单的解决方案是:

只需下载 GDB 13.2 tarball,构建它,并替换系统中的旧 gdb。

> ./configure && make && make install
© www.soinside.com 2019 - 2024. All rights reserved.