ウォッチで変数を指定するときに「var,h
」のようにカンマに続けて書式指定子を記述することで、ウォッチでの表示形式を変更できます。
言語によって、適用できる書式指定子が一部異なります。
書式指定子 | 形式 | 表示例 | |
---|---|---|---|
値 | 表示 | ||
d | 10進整数 (decimal integer) | 10 | 10 |
x または h | 16進整数 (hexadecimal integer) | 10 | 0x0000000a |
︙ | |||
wm | Windows メッセージ番号 | 16 | WM_CLOSE |
︙ |
記述例 | 出力内容 |
---|---|
p,3 または p,[3] | ポインタpの、先頭から3個の要素 |
p+1,3 | ポインタpの、2個目から3個の要素 |
ポインタの要素に対して書式指定するときには、p,3xのように数の後に書式指定子を記述します。
オブジェクト | 適用例 |
---|---|
int a = 10; |
|
int p[] = { 1, 2, 3 }; int* pp = p; |
書式指定子 | 形式 | 表示例 |
---|---|---|
d または i | 符号付き10進整数 | |
u | 符号なし10進整数 | |
o | ||
︙ |
C++/CLIでも、C++同様にポインタを配列として表示できます。C++/CLI での相互運用機能デバッグでの配列としてのポインターのサイズ指定子 - C++ の書式指定子 | MSDN
ただしそのためには、デバッガのマネージ互換モードを有効にする必要があります。
書式指定子 | 形式 | 表示例 | |
---|---|---|---|
値 | 表示 | ||
d | 10進整数 | 10 | 10 |
h | 16進整数 | 10 | 0x0000000a |
ac | 式の評価の強制 | ||
nq | クオートなしの文字列 | "My String" | My String |
hidden | |||
raw | |||
results |
変数にマウス ポインタを合わせることで、その変数の値などをツールチップのような表示で確認できる機能です。コード エディターでのデータ ヒントのデータ値の表示 | MSDN
データヒントで使用されるフォントは、オプションの[フォントおよび色]の[データヒント]の項目で変更できます。[フォントおよび色] ([オプション] ダイアログ ボックス - [環境]) - Visual Studio (Windows) | Microsoft Learn
エラー内容 | 解決方法 |
---|---|
「Unable to resolve identifier: '***"」 | ***の名前が解決されるように、名前空間などを指定する |
「***.dll!0x*** (追加情報のためのシンボルの読み込み)」 | エラーを右クリックして、[シンボルの読み込み]からシンボルを読み込む |
「式エバリュエーターでの内部エラーです。(The expression evaluator encountered an internal error.)」 | デバッグの設定で[従来の C# および VB の式エバリュエーターを使用する]を有効にする c# - "Internal error in the expression evaluator" - Stack Overflow Expression Evaluator Error CXX0031 | Microsoft Learn |
「To inspect the native object, enable native code debugging」 | プロジェクトの設定で[ネイティブ コードのデバッグを有効にする (Enable native code debugging)]を有効にする |
「この式の値は適切でない可能性があります。次の理由により、評価できませんでした:」 | |
「'エラー: マネージ EE は式の構文を理解しません'」 |
ウィンドウ上で右クリックすることで、表示内容を変更できます。
表示されるのはアクティブなスレッドの履歴だけのため、他のスレッドの内容はスレッド ウィンドウから切り替えてから確認します。
項目 | 意味 |
---|---|
状態 | 矢印が表示されているのが、アクティブなスレッド |
ID | スレッドの識別番号。現在のスレッドのIDは、
|
マネージド ID (Managed ID) |
マネージド スレッドの識別番号。このマネージド IDは、Thread.ManagedThreadIdで取得できる |
カテゴリ (分類) (Category) |
|
名前 (Name) |
スレッド名 |
場所 (Location) |
スレッドに関連付けられている関数名またはアドレス
場所がアドレスで表示されるときには、そのファイルのシンボルを読み込むことで関数名を確認できる。場所を展開することで、スレッドの呼び出し履歴を確認できる |
優先度 (優先順位) (Priority) |
スレッドのスケジューリングの優先度 |
関係マスク (Affinity Mask) |
|
中断回数 (中断) (Suspended Count) |
スレッドの中断回数 |
プロセス名 (Process Name) |
詳細を確認できないスレッドは、Process Explorerで対象のプロセスのPropertiesを開き、それの[Threads]タブで確認します。
名前 | |
---|---|
ntdll.dll!TppWorkerThread | c++ - Why does Windows 10 start extra threads in my program? - Stack Overflow |
出力される内容は、コンテキストメニューから変更できます。
ビルド時に出力される内容は、MSBuildの出力設定から変更できます。
ブレークポイントを設定することで、変数の値やメッセージを出力できます。またコード上から出力することもできます。
ウィンドウ内にコードを記述し、式の評価や変数の値の確認などを行えます。[イミディエイト ウィンドウ] | MSDN
中断モード時に、エディタ上のコンテキストメニューから[逆アセンブルを表示]を選択することで、逆アセンブルしたコードを確認できます。[混合モード] ウィンドウ | MSDN
指定の例外が発生したときに、デバッガの実行を中断させられます。これを指定しておくことで、例外の発生場所を簡単に特定できます。[例外設定] ウィンドウで例外を管理する - デバッガーでの例外を管理する - Visual Studio | Microsoft Learn
一覧にない例外に対しては、例外の大別ごとにある[<この一覧にない *** すべて>]をチェックすることで対応できます。