組み込みの MSVC デバッガーの不可解な動作に直面しました。デバッグ中のプログラムとデバッガー自体が異なる変数セットで動作しているようです。この変数 (arg) の型は llvm::StringRef です。このクラスには、char* Data と size_t Length という 2 つのデータ メンバーがあります。
std::string からの暗黙の変換コンストラクターは自明です。
StringRef(const std::string &Str)
: Data(Str.data()), Length(Str.length())
{}
ただし、この変換の結果は、デバッガーのローカル変数タブで血まみれのように見えます。このオブジェクトのミニダンプを取り、watch (long long*)(&arg) を追加しようとすると、ほとんど同じように見えます。しかし、コンソール ウィンドウに表示されるように、この部分の実行結果は問題ありません。