VSCode GDB调试转换字符集时出现内部错误

3
在像平常一样调试时(以前我没有这种问题),GDB返回消息:
“转换字符集时发生内部错误:没有错误。”
仅适用于查看字符串或char类型的变量。
我尝试禁用Windows beta UTF-8引擎,从 StackOverflow尝试了其他命令。
不幸的是,什么都没用。
添加GDB日志的附加命令时,我收到相同的消息。
“1: (394137) -> 1059^error,msg =”在转换字符集时发生内部错误:没有错误。“
编辑:
如@rainbow.gekota所要求的那样,我添加了更多信息。
当前操作系统:Windows 10 21H2(编译:19044:2006)
VSCode版本。 :1.72.0 x64 - > 64bbfbf67ada9953918d72e1df2f4d8e537d340e GDB版本:12.1 for MinGW-W64 x86_64,由Brecht Sanders构建

我从MSYS2仓库安装了GDB。

以下是我的launch.json,我试图通过它来修复使用set charset UTF-8出现的错误。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Start debugging",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\main.exe",
            "args": ["arg1", "arg2", "arg3"],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "Fix pretty-printing for gdb",
                    "text": "set charset UTF-8"
                }
            ],
            "preLaunchTask": "Build program",
            "logging": { "engineLogging": true }
        }
    ]
}

我不知道如何重现这个错误。过去一直正常工作,突然有一天就出问题了。


你需要提供更多细节。你使用的操作系统版本是什么?你使用的GDB版本是什么,它是从哪里安装的?请提供一个最小可重现示例(MRE)。 - rainbow.gekota
显然需要将一个字符集转换成另一个字符集,错误非常明确,因此我可以得出结论,问题很可能是由以下两种情况之一引起的。第一种情况是您正在使用的字符集可以被GDB转换,但是您正在使用GDB无法转换的字符。**#2** 是:您使用的字符集根本无法被GDB转换。无论哪种情况,只要文件所使用的字符集是GDB默认支持的字符集(我猜应该是Latin-1),更改该字符集应该就能解决问题。 - JΛYDΞV
你尝试过将VSCode设置为“西欧1”吗?我相信“西欧1”(又名“ISO-88591”)与Latin-1是相同的ISO标准。您可以通过单击状态栏中的字符编码显示或在设置菜单中切换到它来在VS Code中进行设置。 - JΛYDΞV
1
顺便说一下,这是一个很好的问题,我在使用DDG、Google或Bing时都找不到任何相关信息。 - JΛYDΞV
@rainbow.gekota 我提供了你要求的更多信息。 - gunhasiz
1
@J-D3V 很不幸,它不起作用:(我很想重新安装,但由于这个错误如此奇特,我正在等待并尝试解决它。 - gunhasiz
1个回答

0

很遗憾,我没有找到任何逻辑上的答案来回答我的问题。唯一有用的方法是删除已安装gdb和gcc的MSYS2,并重新安装它。

现在我无法再次复制这些问题,所以也许将来我会再次遇到同样的错误。我们拭目以待。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接