Q&A
前提
IDE: Visual Studio Code(1.69.1)
extension: ms-vscode-cpptools(1.10.8), ms-vscode-remote.remote-wsl(0.66.3)
言語: C言語(gcc 7.5.0, gdb 8.1.1)
OS: WSL Ubuntu 18.04
実現したいこと
- デバッグ中にchar配列の変数を参照したときVARIABLESウインドウやマウスカーソルオーバーで文字列(char*)として表示したい
- 以下Issueの内容
試したこと
- clang・lldbの導入
- 実現したいことの結果が得られたが、gccである必要があるため適用不可
-enable-pretty-printing
設定の導入- 導入前後でchar配列の表示に変化は見られなかった
- launch.json
"logging": {"engineLogging": true}
のログより設定が効いていることは確認
- watchウインドウで
&変数名[0]
と入力- やりたいことに近い結果が得られるが、watchなので対象(変数)が変わるたびに入力が必要
- マウスカーソルオーバーでの参照に対応できない
- .natvisの導入
- githubのIssueではこれを使うことで解消できたような会話をしている
- 設定が動作し、任意の型の表示内容を変えられることまでを確認
- プリミティブ型の配列を参照する設定の書き方がわからない
以下natvisの★箇所の書き方、もしくはgdbとVSCodeで実現したいことを実現する方法があれば教えていただきたいです。
xml:.natvis
1<?xml version="1.0" encoding="utf-8"?> 2<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> 3 <Type Name="char[]"> 4 <DisplayString>★</DisplayString> 5 <Expand> 6 <ArrayItems> 7 <Size>★</Size> 8 <ValuePointer>★</ValuePointer> 9 </ArrayItems> 10 </Expand> 11 </Type> 12</AutoVisualizer>
あなたの回答
tips
プレビュー