前提
最近C++でデバッグが使えるということを知り、VSCodeでデバッグを挑戦したのですが、うまくいかないので教えていただけると嬉しいです。
実現したいこと
- CMakeで作成したビルド済み実行ファイルをデバッグしたいです。
- デバッグはできますが、なぜかターミナルに出力されません。
- また、なぜかargcの値が4になってしまっています。
- CMakeでコードをrunすることは、VSCode下部の三角のボタンを押すことでできるのですが、コマンドライン引数はどのようにして指定したらいいのか知りたいです。
- できればCMakeでデバックする方法も教えていただきたいです。
発生している問題・エラーメッセージ
- デバッグの時になぜか標準出力が出力されない。
- argcの値がおかしい。
該当のソースコード
main.cpp
1#include "hello.hpp" 2 3int main(int argc, char const *argv[]) { 4 cout << "argc is " << argc << endl; 5 hello(); 6} 7
hello.cpp
1#include "hello.hpp" 2 3void hello() { 4 cout << "Hello, world!" << endl; 5}
hello.hpp
1#include <iostream> 2 3using namespace std; 4 5void hello();
CMakeLists.txt
1cmake_minimum_required(VERSION 3.0.0) 2project(CMakePractice VERSION 0.1.0) 3 4include(CTest) 5enable_testing() 6 7add_executable(main main.cpp hello.cpp) 8 9set(CPACK_PROJECT_NAME ${PROJECT_NAME}) 10set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) 11include(CPack)
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}\\build\\main.exe", 12 "args": [], 13 "stopAtEntry": false, 14 "cwd": "${fileDirname}", 15 "environment": [], 16 "externalConsole": false, 17 "MIMode": "gdb", 18 "miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe", 19 "setupCommands": [ 20 { 21 "description": "gdb の再フォーマットを有効にする", 22 "text": "-enable-pretty-printing", 23 "ignoreFailures": true 24 }, 25 { 26 "description": "逆アセンブリ フレーバーを Intel に設定", 27 "text": "-gdb-set disassembly-flavor intel", 28 "ignoreFailures": true 29 } 30 ] 31 } 32 33 ] 34}
試したこと
https://rinatz.github.io/cpp-book/debug-vscode/
上記もサイトを参考にして、launch.jsonを作成しました。
補足情報(FW/ツールのバージョンなど)
OS: Windows 11
VSCode: 1.71.2
MinGW:
g++ (MinGW.org GCC-6.3.0-1) 6.3.0
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。