実現したいこと
gdbによるデバックによって実行中のプログラムをブレークポイントで停止させて、そこで変数の内容を確認したい。
期待する動作は以下のような画面です。
(VScode で GDB のコマンドを実行する,https://qiita.com/BenjaminBenton7/items/282250313e02ad4d50d6)
発生している問題・エラーメッセージ
vscodeでC++を使用するためにデバックやインテリセンスの設定を行い、gdbによるデバックを行った。
するとブレークポイントで停止自体はするのだが、以下のようにlocal変数に何も表示されない状態になってしまった。
実行したソースコードは以下のとおりです。
c++
1#include <stdio.h> 2 3int calc_sum(int* a, int size) 4{ 5 int sum = 0; 6 for (int i = 0; i < size; ++i) { 7 sum += a[i]; 8 } 9 10 return sum; 11} 12 13int main(void) 14{ 15 int data[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 16 int sum = calc_sum(data, sizeof data / sizeof *data); 17 printf("%d\n", sum); 18 19 return 0; 20}
またtasks.jsonとlaunch.jsonは以下の通りになっています。
tasks.json
1{ 2 // See https://go.microsoft.com/fwlink/?LinkId=733558 3 // for the documentation about the tasks.json format 4 "version": "2.0.0", 5 "tasks": [ 6 { 7 "label": "g++", 8 "type": "shell", 9 "command": "g++", 10 "args": ["-g", "-o", "${fileDirname}/${fileBasenameNoExtension}.exe", "${file}"], 11 "group": { 12 "kind": "build", 13 "isDefault": true 14 } 15 16 } 17 18 ] 19}
launch.json
1{ 2 // IntelliSense を使用して利用可能な属性を学べます。 3 // 既存の属性の説明をホバーして表示します。 4 // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387 5 "version": "0.2.0", 6 "configurations": [ 7 { 8 "name": "(gdb) 起動", 9 "type": "cppdbg", 10 "request": "launch", 11 "program": "${workspaceFolder}\\${fileBasenameNoExtension}.exe", // <- test.exe 12 "args": [], 13 "stopAtEntry": false, 14 "cwd": "${workspaceFolder}", 15 "environment": [], 16 "externalConsole": true, 17 "MIMode": "gdb", 18 "miDebuggerPath": "C:/mingw64/bin/gdb.exe", 19 "setupCommands": [ 20 { 21 "description": "gdb の再フォーマットを有効にする", 22 "text": "-enable-pretty-printing", 23 "ignoreFailures": true 24 } 25 ] 26 } 27 ] 28}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。