我正在尝试使用WSL的gdb在vscode上调试C++程序。但是我在我的WSL 1(Ubuntu 22.04 LTS)上遇到了问题。每当我尝试设置断点并运行程序时,都会出现以下错误:
Starting program: /mnt/d/Informatics/vscode/test/a.out
warning: opening /proc/PID/mem file for lwp 7674.7674 failed: No such file or directory (2)
Warning:
Cannot insert breakpoint 1.
Cannot access memory at address 0x10e0
程序内容无关紧要,总是出现错误。代码使用以下行编译:
g++ -Wall -pedantic-errors -O2 -std=c++23 -ggdb3 -fdiagnostics-color=always /mnt/d/Informatics/vscode/test/*.cpp
gdb版本: GNU gdb (Ubuntu 12.0.90-0ubuntu1) 12.0.90
g++版本: 12.0.1
(也尝试过 11.2.0
- 没有区别)
在Windows上,使用MinGW提供的g++和gdb时,问题不存在,这应该意味着我没有错误地使用gdb调试器。
编辑:按照评论中的建议尝试了从源代码编译gdb 11.2,但未能解决问题。唯一的区别是现在不显示/proc/PID/mem
警告。
Starting program: /mnt/d/Informatics/vscode/test/a.out
Warning:
Cannot insert breakpoint 1.
Cannot access memory at address 0x10e0
编辑2:从源代码编译gdb 10.2并且它能正常工作,问题没有出现。我不知道为什么任何高于10.2版本的都无法使用。这是gdb的bug还是WSL的bug?
Ubuntu 20.04 LTS
吗? - PhilippeUbuntu 22.04
,没有20.04版本。 - Lassie