VSCodeの「問題」「出力」「デバッグコンソール」って何?ターミナルとの違いを徹底解説!

こんにちは。ゆうせいです。

VS Codeを開くと、画面の下側(パネルエリア)に「ターミナル」以外にも、「問題」「出力」「デバッグコンソール」といったタブがたくさん並んでいますよね。

「ターミナルは、<code>python app.py</code>みたいにコマンドを打つところだって分かるけど、他のタブはいったい何に使うの?」

「全部なんだか黒い画面に文字が出るだけで、違いがよくわからない…」

そんな風に混乱している新人エンジニアさんは、とっても多いんです。

でも安心してください!

これらは、あなたのコーディングを手助けしてくれる、それぞれ全く違う役割を持った「情報ウィンドウ」なんです。

例えるなら、「ターミナル」があなたの「作業場」だとすると、他は「健康診断書」や「ツールのお知らせ掲示板」、「プログラムの対話室」のようなもの。

今日は、これらのパネルがそれぞれ何のためにあるのか、そして「ターミナル」とは決定的に何が違うのかを、一緒にスッキリさせていきましょう!

「問題 (Problems)」パネル:あなたのコードの「健康診断書」

まず最初は「問題」パネルです。これは、あなたがコードを書いているそばから、VS Codeが「あなたのコード、ここがちょっとおかしいかもしれませんよ!」と教えてくれる場所です。

役割は?

「問題」パネルは、あなたが書いたコードを、VS Code(や、あなたが入れた拡張機能)が実行する前にチェック(静的解析と呼びます)してくれた結果の一覧表です。

例えば、

「あ、この変数 <code>user_name</code> を作った(定義した)のに、一度も使ってない(参照してない)ですよ」(これは警告、黄色い波線で表示されます)

「<code>prnit</code>って書いてるけど、もしかして<code>print</code>の間違いじゃないですか?」(これはエラー、赤い波線で表示されます)

といった、文法的なミスや、「こうした方がもっと良いコードになるよ」という提案(警告)をリアルタイムでリストアップしてくれます。

メリット

プログラムを実行してみてエラーが出て、直して、また実行して…という手間が省けます!

書きながら簡単なミスに気づけるので、開発スピードが格段に上がりますよ。

使い方

基本的には、あなたは見ているだけでOKです。コードを書くと自動で更新されます。

「問題」パネルに何か表示されたら、その項目をクリックしてみてください。該当するコードの行に一瞬でジャンプできます。

そして、あなたがコードを正しく修正すると、パネルの一覧からその項目が自動で消えていきます。

「出力 (Output)」パネル:VSCodeや拡張機能からの「お知らせ掲示板」

次に「出力」パネルです。これは、あなたというよりは、VS Code自体や、あなたが入れた「拡張機能」(例えばPython拡張機能やGitLensなど)が使う「連絡ノート」や「動作日誌」のようなものです。

役割は?

VS Codeや拡張機能が、「今、内部的にこんな作業をしましたよ」というログ(記録)を書き出すための場所です。

例えば、

「Python拡張機能の起動を開始しました…」

「Gitの操作ログは、これからここに表示します…」

といった、ツールたちの「つぶやき」が表示されます。

メリット

普段はあまり気にする必要はありません。

ですが、例えば「あれ?なんだかコード補完が効かなくなったぞ?」とか「拡張機能がうまく動いていないかも?」といったトラブルが起きた時に、この「出力」パネルを見ると、エラーメッセージが記録されていて、原因究明の大きな手がかりになることがあります。

使い方

画面右側にあるドロップダウンリストで、「どのツールからのお知らせ(出力)を見るか」を選ぶことができます。「Git」を選べばGit関連のログが、「Python」を選べばPython拡張機能のログが表示されます。

「デバッグコンソール (Debug Console)」:プログラムの「集中治療室」

3つ目は「デバッグコンソール」です。これは、特定の状況、つまり「デバッグ実行」をしている時にだけ輝く、特別な場所です。

専門用語解説:「デバッグ」とは?

「デバッグ(Debug)」とは、プログラムが思った通りに動かない原因(バグ=Bug)を見つけて、取り除く(デ=De)作業のことです。

VS Codeには、プログラムを一行ずつゆっくり実行したり、途中でピタッと止めたり(ブレークポイントと言います)する、このデバッグ作業を強力にサポートする機能が備わっています。

役割は?

この「デバッグコンソール」は、そのデバッグ実行中に、あなたのプログラムと対話するための専用コンソールです。

  • あなたのプログラムの<code>print</code>文などの実行結果が、ここに表示されます。
  • プログラムを途中で止めた時、プロンプト(<code>></code> のような記号)が表示されます。そこにあなたが直接コードを打ち込めるんです!例えば、<code>user_id</code>という変数の今の中身が見たいなと思ったら、<code>user_id</code>と打ってEnterを押せば、その時点での値(例: <code>100</code>)を教えてくれます。(このような対話的な実行環境をREPLと呼びます)

メリット

<code>print</code>文をコードのあちこちに仕込まなくても、プログラムを好きな場所で止めて、その瞬間の変数の状態を自由に調べられる。これはバグ修正において、とんでもなく強力な武器になります!

「ターミナル」との決定的な違いは?

さて、本題です。これら3つと、「ターミナル」は一体何が違うのでしょうか?

混乱する理由は、どれも「文字が出てくる黒い画面」に見えるからですよね。

一番大きな違いは、「誰が、誰に対して、何をする場所か」です。

ターミナル (Terminal)

  • 誰が: あなた(人間)
  • 誰に: OS(Windows, Mac, Linux)
  • 何をする: OSに対する命令(コマンド)を実行する場所。
  • 例: <code>python app.py</code>(プログラムの実行)、<code>git commit</code>(Git操作)、<code>ls</code>(ファイル一覧表示)など。
  • 例えるなら: 「万能な作業場」。VSCodeとは(ある意味)独立した「黒い画面」そのものです。あなたが命令しない限り、基本的には何も起こりません。

問題 (Problems)

  • 誰が: VSCode(と拡張機能)
  • 誰に: あなた(人間)
  • 何をする: あなたのコードを実行せずにチェックし、問題点を報告する場所。
  • 違い: 「ターミナル」はあなたが命令する場所。「問題」はVSCodeがあなたに知らせる場所です。

出力 (Output)

  • 誰が: VSCode(と拡張機能)
  • 誰に: あなた(人間)
  • 何をする: ツールの内部的な動作ログ記録・報告する場所。
  • 違い: 「ターミナル」はあなたがOSに命令する場所。「出力」はVSCodeや拡張機能が自分の状況を書き出す場所です。

デバッグコンソール (Debug Console)

  • 誰が: あなた(人間) ⇔ デバッグ実行中のあなたのプログラム
  • 誰に: デバッグ実行中のあなたのプログラム
  • 何をする: デバッグ中のプログラムと対話し、出力結果を見たり、変数の値を確認したりする場所。
  • 違い: 「ターミナル」はOSと対話します。「デバッグコンソール」はデバッグ実行中のあなたのプログラムとだけ対話します。デバッグ時以外は使いません。

まとめ表

パネル名主な使用者対話の相手主な目的例えるなら
ターミナルあなたOSOSへのコマンド実行、プログラムの通常実行万能な作業場
問題VSCodeあなたコードのエラー/警告の通知(実行前)健康診断書
出力拡張機能あなた拡張機能などの内部的な動作ログの表示ツールのお知らせ掲示板
デバッグコンソールあなたデバッグ中のプログラムデバッグ実行時の出力確認、対話的操作プログラムの対話室

今後の学習の指針

これらのパネルの違い、スッキリしましたか?

新人エンジニアのうちは、主に「ターミナル」と「問題」パネルの2つを頻繁に使うことになると思います。

まずは、

  1. 「ターミナル」でプログラムを実行する。(<code>python app.py</code>など)
  2. エラーが出たら、まずは「問題」パネルを見る。
  3. 「問題」パネルに何か表示されていたら、そこをクリックして該当箇所を修正する。

この流れを徹底するだけで、開発効率はぐっと上がります!

そして、<code>print</code>文をたくさん書いてバグを探すのに疲れてきたら、ぜひ「デバッグ実行」と「デバッグコンソール」の使い方を学んでみてください。プログラムがどのように動いているか、手に取るように分かるようになりますよ。

「出力」パネルは、拡張機能の調子が悪い時などに「そういえば、あんなのがあったな」と思い出せれば十分です。

VSCodeがくれるたくさんの「ヒント」や「情報」を見逃さず、上手に使いこなして、快適なコーディングライフを送ってくださいね。応援しています!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。