gdb 调试路径中的中文字符问题

gdb 调试路径中的中文字符问题

运行环境

  • Windows 10 2004
  • MinGW-W64 8.1.0

问题描述

无法使用 gdb 调试带有中文字符的路径或文件名的代码文件。

解决思路

查阅资料,看到了 cpptools 插件里 2017 年的 issues:https://github.com/microsoft/vscode-cpptools/issues/602,文中指出,问题在于 gdb MI 模式对于 Unicode 文件名的错误处理,相关的 Bug Report 已经提交到了 gdb https://sourceware.org/bugzilla/show_bug.cgi?id=14903。

由于中文 Windows 的字符集(代码页)为 936,也就是 GBK,因此想到能否改为 65001,也就是 UTF-8 来解决中文编码问题。但是使用 chcp 65001命令更改代码页的效果是暂时的,系统语言修改为英文也不太实用,毕竟工作生活中总有用到中文的时候,因此采用如下方法:

  1. 重启电脑,尝试调试中文路径下的 C 程序。

问题

解决方法的原理未知。。。因为使用的是 Unicode 字符集,与 issues 和 Bug Report 中提到的“对 Unicode 字符处理有问题”有矛盾。