首页 > 解决方案 > VSCode C++插件在调试文件名中包含汉字的文件时损坏

问题描述

github 问题移动以找到解决方法。详情如下。感谢帮助。

无法打开“test 262342312324.cpp”:找不到文件(file:///c:/Users/me/Documents/C++ Code/test 262342312324.cpp)。</p>

重现

重现行为的步骤:(下面的相关文件)

  1. 创建一个文件并用中文或任何其他符号命名,并添加一个断点。

  2. 按 F5 开始调试。

  3. 出现错误信息。

启动.json

{ "version": "0.2.0", "configurations": [ { "name": "G++", "type": "cppdbg", "request": "launch", "program": "${fileDirname}/${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "C:\MinGW\bin\gdb.exe", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true }, ], "preLaunchTask": "Compile", "logging": { "engineLogging": true, "trace": true, "traceResponse": true } } ] }

任务.json

{ "version": "2.0.0", "tasks": [ { "label": "Compile", "command": "g++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.exe", "-std=c++11", "-finput-charset=utf-8", "-fexec-charset=gbk" ], "problemMatcher": "$gcc", }, ] }

标签: c++debuggingvisual-studio-codegdb

解决方案


正如我在 GitHub 问题中提到的,这是 gdb 的 MI 解释器无法正确处理中文字符的问题。正如@jesper_juhl 提到的,解决方法是在路径中只包含ASCII 字符。


推荐阅读