質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1571閲覧

VSCodeでC++をデバッグしたい

DaiFukunaga

総合スコア3

CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2022/09/27 14:39

前提

最近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.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。
.vscodeのフォルダ内に、以下のファイルを作れば、コマンドライン引数を指定できました。

settings.json

1{ 2 "cmake.debugConfig": 3 { 4 "stopAtEntry": true, 5 "args": [], 6 "MIMode": "gdb", 7 "externalConsole": false 8 } 9}

こちらのサイトを参考にしました。https://nvdungx.github.io/vscode-cmake/

投稿2022/10/13 02:50

DaiFukunaga

総合スコア3

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問