竸プロでc++を使っているのですが、その為にデバッグをしようとしております。環境のほうはMacでコンパイラはclangです。デバッグをするのに苦戦しております。一応デバッグ自体は(恐らく)起動しておりますが、ステップイン等が出来ないので困惑しております。自分で解決しようと試みましたが、心が折れたので質問をする事に決めました。
私の情報開示が不十分で回答者様に何回も手間を取らせないよう、極力多くかつ丁寧に書きますので分かる方がいましたら何卒回答の方をお願い致します。
VScodeでデバッグをする環境を構築する際、公式ホームページに載っている手順を基本そのまま真似しました。(少し変えた部分はあります。後述します。)
以下デバッグしようとしているソースコードとlaunch.json,c_cpp_properties.json, task.jsonとデバッグコンソールの方に出ているエラーメッセージの方を載せておきます。
以下ファイルとソースコード
{ //launch.json // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { c "name": "(lldb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/helloworld.out", "args": [], "stopAtEntry": true, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "lldb", "logging": { "trace": true, "traceResponse": true, "engineLogging": true } } ] }
{//c_cpp_properties.json "configurations": [ { "name": "Mac", "includePath": [ "${workspaceFolder}/**" ], "defines": [], "macFrameworkPath": [ "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks" ], "compilerPath": "/usr/bin/clang", "cStandard": "c11", "intelliSenseMode": "clang-x86", "cppStandard": "c++14" } ], "version": 4 }
{//task.json "version": "2.0.0", "tasks": [ { "label": "Build with Clang", "type": "shell", "command": "clang++", "args": [ "-std=c++14", "-stdlib=libc++", "helloworld.cpp", "-o", "helloworld.out", "--debug" ], "group": { "kind": "build", "isDefault": true } }, { "type": "shell", "label": "clang++ build active file", "command": "/usr/bin/clang++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}" ], "options": { "cwd": "/usr/bin" } } ] }
//helloworld.cpp #include <iostream> #include <vector> #include <string> using namespace std; int main() { string s; cin >> s; cout << s << endl; return 0; }
以下エラーメッセージ(デバッグコンソールから抜粋)
Warning: Debuggee TargetArchitecture not detected, assuming x86_64.
問題点について
具体的に何に困っているのか、実際の自分の操作を踏まえて書きます。
まずVScodeのサブフォルダーの中にtask等の三っつのファイルが入っており、helloworld.ccpのみがカレンとディレクトリ上にある状態です。ここでVScodeでhelloworld.cppを開き、コマンド+⇧+Bを押してビルドします。そして成功し、適当にボタンを押してターミナルを閉じ、ここでhelloworld.outとhelloworld.out.dYSMのファイルが生成されます。
ここでhelloworld.cppを開きデバッグ画面を開き右上の緑の右向きの矢印をクリックしデバッグを開始します。ブレークポイントは'cout << s << endl;'の所にしました。
一見正常に動いているかのように感じるのですが、まず左側の方の変数の中身が表示されません。そしてステップイン、ステップアウト、ステップオーバーの三つがクリック出来ないようになっております。
そしてデバッグコンソールには先述してエラー(warning)メッセージが表示された次第です。
自分で試みた事
私がしたのはtask.jsonのintelliSenseModeを86系にしたくらいです。ターミナルで自分のclangを調べたらx86_64とあったからです。ちなみに動作の方は変わりませんでした。困ったままです。竸プロ用にcppstadardをc++14にしました。あとファイルの名前やパスを多少弄りましたが、何も変わらず(余計にエラーしただけでビルドができなくなっただけ)困ったままです。
ビルドは成功しているのは確かで、デバッグも起動しているが動作が理解できないのでこのような質問させて頂きました。理想としてはstring s の中身をデバッグ画面で見ることができるような状態です。
長々と申し訳ありません。何が問題なのかご教授していただければ嬉しいです。
何か私の説明で不十分な所があれば対応させて頂きますので遠慮なく言って下さい。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/19 16:07