VS Codeでのデバッグ時に”-t 10”のような引数を渡すときの書き方

Rust 1.29が出ましたね。
最近GoばっかりしてたんでRustの文法ちょっと忘れてきてるような気がします。
今回もGoの話です。
VS CodeでのGoのデバッグでちょっと詰まった所を書いておきます。


デバッグ時にコマンドライン引数を渡すときは、デバッグ構成の以下の"args":の後の[]内に""で囲み、区切りに[,]を付けます。


        "type": "go",
        "request": "launch",
        "mode": "auto",
        "remotePath": "",
        "port": 2345,
        "host": "127.0.0.1",
        "program": "${fileDirname}",
        "env": {},
        "args": [],
        "showLog": false

        "args": ["arg1", "arg2", "arg3"],

引数はflagパッケージで扱っていて、"-t 10"のようなものを渡せます。
正しいflagを渡しているはずなのに定義されていないflagだとUsageが表示されました。
実行ファイルに渡して動くものをコピペしてもダメでした。
実行時とデバッグ時とでos.Argsで内容を表示してみると、実行時は"-t","10"と二つに分かれていて、デバッグ時は"-t 10"になっていました。
二つに分けずにまとめて""で囲んでたんです。


正しい
"args": ["-t","10"],
間違い
"args": ["-t 10"],

スペースで間が空いていても""で囲んだものは一つとして扱われるわけです。
言われてみれば確かにそりゃそうですよね。
スペースが開いているときに区切られないために""を使ったりするわけですから。
json扱っていた時だから、VS Codeの設定では文字列を表すために""で囲っているとか何か思い込んでて、複数のflagも一つの""で囲むとかしてました。


次はピクセル補完の続きの半透明のピクセルのブレンドを書く予定です。

この記事へのコメント

最近のトラックバック