debug
bug
IDE
cppBuilder

C++ Builder 10.2 Tokyo > IDE > Bug > カーソル位置の変数の詳細表示は最初の一回しか実行されない | 回避策

動作環境
RAD Studio 10.2 Tokyo Update 2
RAD Studio 10.2 Tokyo Update 3

RAD Studioではブレークポイントで止めたとき、コードの各場所にカーソルを置くと、その地点の変数や関数の内容が表示される機能がある。

qiita.png

10.2 Tokyoにおいて、上記が表示されない状況が見つかった。

再現手順

  1. procDate1上にカーソルを置く
    • procDate1の内容が表示される (正常)
  2. procDate2上にカーソルを置く
    • procDate2の内容が表示されない (不具合)
    • procDate1に再度カーソルを合わせても表示されない

手順2において、StrToDate()や他の関数上にカーソルを置いた場合は関数の詳細情報は表示される (正常)。
変数に対する処理が失敗しているのかもしれない。

XE4では手順2においてもきちんと表示されていた。

デバッグ作業の効率が下がる。

code

Uni1t.cpp
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include <stdint.h>

#include <memory>
#include <DateUtils.hpp>

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{

}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TDate procDate1 = StrToDate(L"2016/07/07");
    TDate procDate2 = StrToDateTime(L"2016/07/07 12:30:45");
}

備考

(追記 2018/01/09)

上記の不具合が発生するのはTDateTime型の変数を表示してからかもしれない。

いったん表示されなくなると、「監視式」に変数を表示させようとしても「????」になる。

とりあえずの回避策

(追記 2018/01/09)

変数の詳細表示がされないのはデバッグ時の作業効率を大きく低減する。

回避策としては以下を行う。

  1. 変数をダブルクリック
  2. ドラッグして「監視式」ペインにドロップ
  3. 次の変数に対して手順1から繰り返す

詳細表示後にバグるため、詳細表示でなく監視式を使う。