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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

Q&A

解決済

3回答

4710閲覧

[c言語]VSCodeのデバック機能を使って、デバック実行を行いたい。

kakuwane

総合スコア7

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

0グッド

0クリップ

投稿2019/08/23 04:00

編集2019/08/23 06:31

前提・実現したいこと

VSCodeにて、C言語のデバッグ実行ができるようにしたい。
ググって見様見真似で設定していますが、VSCODEが正常動作しない状態です。

現状、VScodeのデバック実行を行うと実行ファイルは作成されますが、
エラーが発生してデバックができない状態です。

解決策やヒントなどご教示頂けると助かります。

発生している問題・エラーメッセージ

VScodeの下記設定を行ってから、デバックの実行を行う。
下図の▶ボタンを実行する。
イメージ説明

◆エラーの画面
イメージ説明

> Executing task in folder test: C:\MinGW\bin\gcc.exe -g -O0 test.c -otest.exe < ターミナルはタスクで再利用されます、閉じるには任意のキーを押してください。

デバックコンソール

=thread-group-added,id="i1" GNU gdb (GDB) 7.6.1 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "mingw32". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Warning: Debuggee TargetArchitecture not detected, assuming x86_64. =cmd-param-changed,param="pagination",value="off" [New Thread 6720.0x8] [New Thread 6720.0x3f48] Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Symbols loaded. Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Symbols loaded. Loaded 'C:\Windows\SysWOW64\msvcrt.dll'. Symbols loaded. The program 'C:\test\test.exe' has exited with code 0 (0x00000000).

設定したこと

構築環境:Windows10
・MinGW のインストール
イメージ説明
・Path設定
イメージ説明
・cmdでgccの確認
イメージ説明
イメージ説明

・vscode に c/c++のインストール
イメージ説明

・c_cpp_properties.jsonの作成

{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}" ], "defines": [ "_DEBUG", "UNICODE" ], "compilerPath": "c:/mingw/bin/gcc.exe", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "gcc-x64", "browse": { "path": [ "${workspaceFolder}" ], "limitSymbolsToIncludedHeaders": true } } ], "version": 4 }

・launch.jsonの作成

{ "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "c:/mingw/bin/gdb.exe", "windows": { }, "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "Debug Build" } ] }

・tasks.jsonの作成

{ "version": "2.0.0", "tasks": [ { "type": "process", "label": "Debug Build", "command": "gcc", "args": [ "-g", "-O0", "${fileBasename}", "-o${fileBasenameNoExtension}.exe" ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": "$gcc" }, ] }

・ファイルの配置
イメージ説明

C言語のソース

#include <stdio.h> int main(void) { printf("Hello, world!\n"); return 0; }

補足情報

vscodeのターミナルから直接コマンドを叩けば、コンパイルと実行はできています。
コマンドプロンプトから直接コンパイルと実行はできているので、当たり前ですが・・・Orz

イメージ説明

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

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

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

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

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

guest

回答3

0

ベストアンサー

launch.jsonの"externalConsole"を false にしてみてはどうでしょうか?

投稿2019/08/24 10:02

nomuken

総合スコア1627

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

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

kakuwane

2019/08/24 15:05

ありがとうございます。 できました!
guest

0

言ってる意味がわからないのですが、vs code内のターミナルからコンパイル
できているのであれば問題ないかと思いますし

VSCodeのデバック機能を使って、直接コンパイルしたい。

これはgdb を使いたいという意味ですか?
デバック機能を使ってコンパイルしたいという意図がわかりません。
デバッグするためにはコンパイルす時に-gオプションをつけるだけだとおもいますが・・・

投稿2019/08/23 04:20

nanami12

総合スコア1015

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

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

kakuwane

2019/08/23 04:30

直接、ターミナルからコマンドを叩けば、コンパイルはできるけど VScodeの機能を使って、デバック実行をおこなうとエラーが発生しています。 原因が分からなく、検索して調べているのですが解決できていないです。 > Executing task in folder test: C:\MinGW\bin\gcc.exe -g -O0 test.c -otest.exe < ターミナルはタスクで再利用されます、閉じるには任意のキーを押してください。 とエラー表示がでて、できないです。 原因が分からなく、調べているところです。
nanami12

2019/08/23 04:33

gcc -g -o test.exe test.c じゃありませんか?
kakuwane

2019/08/23 04:53

> Executing task in folder test: C:\MinGW\bin\gcc.exe -o -otest.exe test.c < ターミナルはタスクで再利用されます、閉じるには任意のキーを押してください。 修正しましたが、上記結果となり、解決できませんでした。
nanami12

2019/08/23 05:01

私の書いたコマンドと異なりますよ?
kakuwane

2019/08/23 05:15

> Executing task in folder test: C:\MinGW\bin\gcc.exe -g -o -otest.exe test.c < ターミナルはタスクで再利用されます、閉じるには任意のキーを押してください。 修正しましたができませんでした。
nanami12

2019/08/23 05:28

コンパイル、デバックはterminal から実行するものですよ?
kakuwane

2019/08/23 05:34

えと言っている意味が分からないです。 VScodeのデバック実行を行いたいので、その方法は異なります。 VScodeでの機能を使って、デバック実行はできないと質問しているので まったく話が違います。
nanami12

2019/08/23 05:36

そもそも >VSCodeのデバック機能を使って、直接コンパイルしたい。 の意味が私は理解できません。
kakuwane

2019/08/23 06:39

すみませんでした。初心者なんで申し訳ございません よく理解できていなく、言葉の指摘ありがとうございました。 やりたいことはVSコードで、デバック実行を行いたいことです。 設定ができないので、申し訳ございません。 設定が間違っているなら、設定のご指摘いただけたら幸いです。
nanami12

2019/08/23 06:42

VSコードでデバックしたいのであれば通常は、 terminal から コンパイルオプションに -g をつけ デバック可能なロードモジュール(exe)を 作成し、terminal からデバック時 gdb を用いてデバックします。
nanami12

2019/08/23 06:44

プラグインなどでGUIでデバックする事もできるかもしれませんが 熟練したかたなら、terrminalからgdbを用いてdebugするかとおもいます。
nanami12

2019/08/23 06:47

GUIを用いたデバックをしたいのであればvisual studio の方が標準で GUIのデバック機能を装備してあるので、そちらを選ぶのも一つの案として提示します。
guest

0

「vscode ビルドタスク」でぐぐると、解説記事がたくさん出てきますんでそれでやってみればどうでしょう

Visual Studio CodeでC++のコンパイルと実行を一発で行う

投稿2019/08/23 04:14

y_waiwai

総合スコア87774

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問