microsoft / microsoft/vscode-cpptools
C++ debugging character arrays and strings: <error reading variable> and "Converting character sets: Invalid argument."
まだ誰も着手していません。
- 主要言語
- TypeScript
- スター
- 6.2k
- フォーク
- 1.7k
- 平均マージ
- 14時間 46分
- マージ済み PR(30日)
- 61
説明
When debugging a C++ file containing character arrays or strings, the contents of the array/string are not shown, but instead shows "<error reading variable>" for character arrays and "Converting character sets: Invalid argument." for strings. Integer arrays are not affected:

However, what puzzles me is that on a different machine but with the exact same VSCode version (1.52.1), C/C++ extension version (v1.1.3) and C++ compiler (mingw-w64 x86_64-8.1.0-posix-seh-rt_v6-rev0), and launch.json file, the contents of the array/string appears normally:

The contents of launch.json are given below:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe build active file"
}
]
}
This problem has been posted elsewhere but with no solutions, as seen here and here
- VSCode Version: 1.52.1
- OS Version: Windows 10 20H2
- C/C++ extension Version: 1.1.3
Steps to Reproduce:
- Create a character array in C++ file
- Start debugging
The issue still persists after disabling all extensions apart from the C/C++ tools extension.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
報告されている launch.json 構成から始め、VS Code 1.52.1 と C/C++ 拡張機能 1.1.3 を使用して、Windows 上で文字配列と文字列のデバッグ手順を再現します。問題が発生するマシンと正常に動作するマシンの環境を、MinGW ツールチェーンと gdb のパスを含めて比較します。文字配列と文字列が、報告されているどちらのエラーも発生させずに値を表示すれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cpp, vscode
- 領域
- developer-experience, devtools
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100