【发布时间】:2022-11-22 22:53:16
【问题描述】:
在正常调试时(在我没有遇到这种问题之前)GDB 返回消息:
转换字符集时出现内部错误:无错误。
仅用于查看字符串或字符类型的变量。
我试图禁用 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 用于 MinGW-W64 x86_64,由 Brecht Sanders 构建
GDB 从 MSYS2 存储库安装。
这是我的 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,它是从哪里安装的? Provide an MRE。
-
显然它必须从一个字符集转换为另一个字符集,错误是明确的,因此,我可以得出结论,这个问题可能是由 2 个 senarios 中的 1 个引起的。您使用的一个字符集可以由 GDB 转换,但是您使用的是 GDB 无法转换的字符集中的一个字符。#2是:您使用的字符集根本无法被 GDB 转换。无论哪种方式,更改文档所在的字符集应该可以解决问题,只要它是 GDB 原生的字符集,我猜它是 Latin-1。
-
您是否尝试过将 VSCode 设置为
"Western Europe 1"?我相信"Western Europe 1"(又名"ISO-88591") 与Latin-1相同的 ISO 标准。您可以通过单击状态栏或设置菜单中的字符编码显示在 VS Code 中切换到它。 -
顺便说一句,这是一个很好的问题,我无法使用 DDG、Google 或 Bing 找到任何相关信息。
-
@J-D3V 不幸的是它不起作用:(我很想重新安装,但是因为这个错误是如此奇异以至于我也在等待并试图解决它。
标签: c++ visual-studio-code gdb