---
title: "コードのデバッグ - プログラムの開発 - MetaEditorのヘルプ"
description: "MetaEditorには、プログラムの実行ステップ (個々の関数ごと) をチェックできる組み込みデバッガがあります。 コードにブレークポイントを配置します。 これらはプログラムの実行を一時ストップする場所です。 次に、通常のチャートまたは... - コードのデバッグ - プログラムの開発 - MetaEditorのヘルプ"
image: "https://www.metatrader5.com/i/logo_metatrader5.png"
url: "https://www.metatrader5.com/ja/metaeditor/help/development/debug"
---

[MetaEditorのヘルプ](https://www.metatrader5.com/ja/metaeditor/help) → [プログラムの開発](https://www.metatrader5.com/ja/metaeditor/help/development) → コードのデバッグ

# コードのデバッグ

MetaEditorには、プログラムの実行ステップ (個々の関数ごと) をチェックできる組み込みデバッガがあります。 コードにブレークポイントを配置します。 これらはプログラムの実行を一時ストップする場所です。 次に、通常のチャートまたは[ストラテジーテスター](https://www.metatrader5.com/ja/metaeditor/help/development/debug#history)でプログラムを起動します。 プログラムがブレークポイントに達すると、すぐに一時ストップされます。 これより、計算された変数の値を確認し、実行アルゴリズムをチェックして、プログラムの実行ステップを続行できます。

- [プリセット](https://www.metatrader5.com/ja/metaeditor/help/development/debug#settings)
- [ブレイクポイント](https://www.metatrader5.com/ja/metaeditor/help/development/debug#breakpoint)
- [デバッグの起動](https://www.metatrader5.com/ja/metaeditor/help/development/debug#start)
- [観測式](https://www.metatrader5.com/ja/metaeditor/help/development/debug#watch)
- [コールスタックの表示](https://www.metatrader5.com/ja/metaeditor/help/development/debug#stack)
- [順番にデバッグ](https://www.metatrader5.com/ja/metaeditor/help/development/debug#step)
- [デバッグの一時ストップ、再開、終了](https://www.metatrader5.com/ja/metaeditor/help/development/debug#stop)
- [ヒストリー上でデバッグ](https://www.metatrader5.com/ja/metaeditor/help/development/debug#history)

## プリセット [#](#settings)

デバッグの前に、一般的なパラメータを設定[MetaEditorの設定](https://www.metatrader5.com/ja/metaeditor/help/beginning/settings#debug)をしてください アプリケーションのデバッグが発生するシンボルとチャートの期間を指定できます。 このようなチャートは、デバッグを開始するたびに一時的に作成され、完了後すぐに削除されます。

> トレードプラットフォームの/profiles/templates フォルダーにあるdebug.tpl テンプレートは、デバッグチャートに適用されます。

## ブレイクポイント [#](#breakpoint)

ブレークポイントは、プログラムの実行が指定された文字列に到達したときにトリガーされるコマンドです。 このコマンドは、その文字列の実行をストップします。 ブレークポイントは、指定されたコード領域でプログラムの動作を調べることができます: 変数の値と関数のスタックを表示します。 その後、デバッグプロセスを再開または終了することができます。

デバッグを開始する前に、プログラムコードに少なくとも1つのブレークポイントを設定します。 これを行うには、コード行の左側にある灰色のフィールドをダブルクリックします。 また、行にカーソルを置くことができますし、クリックも可能です。![ブレークポイントの切り替え](https://www.metatrader5.com/i/help/metaeditor/en/breakpoint_icon.png)ブレークポイントの切り替えには、[Debug](https://www.metatrader5.com/ja/metaeditor/help/main_menu/main_menu_debug#breakpoint)メニューまたは F9 キーを押します。 ブレークポイントは同じ方法で無効になります。

![有効なブレークポイント](https://www.metatrader5.com/i/help/metaeditor/en/debug_breakpoint.png)

プログラムの実行がストップしたポイントにジャンプする必要がある場合は、[コールスタック表示] ウィンドウで関数をダブルクリックします。 また、ウィンドウのコンテキストメニューを使用して、現在デバッグされているプログラムのすべてのブレークポイントの一覧を開くことができます。

![ブレークポイントに行く](https://www.metatrader5.com/i/help/metaeditor/en/breakpoint_goto.png)

任意のブレークポイントにジャンプするには、ダブルクリックします。

## デバッグの起動 [#](#start)

デバッグを実行するには、[メインプログラムファイル](https://www.metatrader5.com/ja/metaeditor/help/structure#main_file)または[プロジェクト](https://www.metatrader5.com/ja/metaeditor/help/mql5storage/projects)を開きます。 デバッグは、次の2つのモードで実行できます。

- 実データ。 デバッグを開始するには、![リアルデータでのデバッグの開始/再開](https://www.metatrader5.com/i/help/metaeditor/en/start_debug_icon.png)[実際のデータコマンドを開始する]には、[Debug](https://www.metatrader5.com/ja/metaeditor/help/main_menu/main_menu_debug#start)メニューまたは F5 キーを押します。 このモードでは、デバッグ対象のプログラムは、トレーディングプラットフォームの[特別なチャート](https://www.metatrader5.com/ja/metaeditor/help/development/debug#settings)で実行されます。 デバッグは、サーバーから届く価格データを使用して、実際の環境で実行されます。
- ヒストリー上。 デバッグを開始するには、![履歴データの開始](https://www.metatrader5.com/i/help/metaeditor/en/start_debug_history_icon.png)[履歴データの開始]には、[Debug](https://www.metatrader5.com/ja/metaeditor/help/main_menu/main_menu_debug#start)メニューまたは Ctrl + F5 キーを押します。 このモードのプログラムは、ストラテジーテスターで起動されます。特定の市況を待たずに、任意の履歴間隔でプログラムのパフォーマンスをテストするために使用します。非ビジュアルテストモードは、グラフィック要素のレンダリング中に余分なリソースを使用しないようにするために、デフォルトで使用されます。ビジュアルモードは必要に応じて[MetaEditor設定](https://www.metatrader5.com/ja/metaeditor/help/beginning/settings#debug)で有効にできます。

デバッグモードでのプログラムの実行がブレークポイントに達すると、すぐに一時ストップされます。 実行が一時ストップされている行には、![トリガブレークポイント](https://www.metatrader5.com/i/help/metaeditor/en/breakpoint_triggered_icon.png)アイコン [[デバッグ](https://www.metatrader5.com/ja/metaeditor/help/workspace/toolbox#debug) ] タブも [ツールボックス] ウィンドウに表示されます。 左の部分には、関数の[呼び出し履歴](https://www.metatrader5.com/ja/metaeditor/help/development/debug#stack)が表示されます。

![デバッグ開始後のブレークポイントのトリガー](https://www.metatrader5.com/i/help/metaeditor/en/debug_start.png)

## 観測式 [#](#watch)

デバッグ中に、現在のプログラム実行ステップでさまざまな式 (変数) の値を追跡できます。 [ツールボックス] ウィンドウの [[デバッグ](https://www.metatrader5.com/ja/metaeditor/help/workspace/toolbox#debug)] タブの右側の部分には、適切な結果が表示されます。 式の値を追跡するには、観察されたものに追加します。

- デバッグ中に、ソースコード内の式にカーソルを置き、![ウォッチの追加](https://www.metatrader5.com/i/help/metaeditor/en/add_watch_icon.png)コンテキストメニューでウォッチを追加します。
- 利用できるオプションを一覧にするには、![\[追加\]](https://www.metatrader5.com/i/help/metaeditor/en/add_watch_icon.png)[デバッグ] タブの右の部分のコンテキストメニューに追加します。 新しく登場した行に式名を入力します。
- 追跡対象の式の名前を変更するには、それをダブルクリックします。

![スタックと式の値の表示](https://www.metatrader5.com/i/help/metaeditor/en/debug_watch.png)

また、デバッガのウォッチリストにローカル変数を自動的に表示させることもできます。表示はコンテキストメニューの「Local」コマンドで有効にできます。デバッガの操作がコードを進むにつれて、現在のスコープにある変数が自動的にリストに表示されます。

[式の観察] ウィンドウでは、シンプルな数学的計算 (加算、減算、乗算、除算) を実行したり、特定の配列ポイントで値を表示したりすることができます (たとえば、[3] [4] エントリが配列名である場合)。3と4は、その次元の位置です。 観察された式にオブジェクトを追加する場合、最後に完全なストップを指定するか、Ctrl + Space キーをクリックして、メンバのリストを表示できます。

![オブジェクトメンバの挿入](https://www.metatrader5.com/i/help/metaeditor/en/debug_watch_autocomplete.png)

配列またはオブジェクトの内容を表示するには、観測ウィンドウでダブルクリックします。

デフォルトでは、整数は10進数形式の観測ウィンドウに表示されます。 値をバイナリまたは16進数形式で表示するには、[式] フィールドにコンマ区切りの b または x 修飾子を指定します。

![バイナリおよび16進数形式での式の表示](https://www.metatrader5.com/i/help/metaeditor/en/debug_watch_binary_hex.png)

## コールスタックの表示 [#](#stack)

サブプログラム (ネストされた関数) からプログラムに制御を返すためのデータ (メインイベントハンドラの OnTick など) は、コールスタックで指定します。 スタックを使用すると、[トレーディングプラットフォームでイベント発生](https://www.mql5.com/ja/docs/runtime/event_fire)のシーケンス全体を追跡し、特定の関数を呼び出すことができます。

各関数について、次のデータが表示されます。

- 関数はファイル名から呼び出されます。
- 関数名
- 関数が呼び出されるファイル内の行番号。

順番にデバッグ

[Debug](https://www.metatrader5.com/ja/metaeditor/help/main_menu/main_menu_debug)メニューまたは[標準](https://www.metatrader5.com/ja/metaeditor/help/toolbar/toolbar_standard)ツールバーコマンドは、コールスタックを表示する関数を備えたステップバイステップのデバッグに使用されます。

- ![ステップ](https://www.metatrader5.com/i/help/metaeditor/en/step_into_icon.png)Step Into-呼び出された関数にアクセスするプログラムの実行の1つのステップを移動します。 F11 キーを押すと、同じ操作が実行されます。
- ![ステップオーバー](https://www.metatrader5.com/i/help/metaeditor/en/step_over_icon.png)Step Over—呼び出された関数にアクセスせずに、プログラムの実行の1つのステップを移動します。 F10 キーを押すと、同じ操作が実行されます。
- ![ステップアウト](https://www.metatrader5.com/i/help/metaeditor/en/step_out_icon.png)Step Out—1つのレベルより高いプログラムの単一のステップを実行します。 shift + F11 キーを押すと、同じ操作が実行されます。

ステップバイステップのデバッグコマンドは、プログラムがデバッグモードで一時ストップした後でのみ使用できます。

- ブレークポイントがトリガーされた後。
- プログラムを手動で一時ストップした後![一時停止](https://www.metatrader5.com/i/help/metaeditor/en/break_debug_icon.png)[一時ストップ] コマンド[[デバッグ] メニュー](https://www.metatrader5.com/ja/metaeditor/help/main_menu/main_menu_debug#break)または Break を押します。

> トレーディングプラットフォームで[イベントが発生し続けます](https://www.mql5.com/ja/docs/runtime/event_fire) プログラムがブレークポイントにある場合 発生したイベントはすべてキューに置かれ、現在のイベントハンドラがコードを終了すると、エキスパートを使用した処理が継続されます。

## デバッグの一時ストップ、再開、終了 [#](#stop)

実行がブレークポイントがインストールされた文字列に達するとすぐに、デバッグ中にプログラムが自動的にストップします。 デバッグは手動でも管理できます。

- デバッグ中に実行を一時ストッププログラムの実行は、手動で一時ストップできます![一時停止](https://www.metatrader5.com/i/help/metaeditor/en/break_debug_icon.png)[一時ストップ] コマンド[[デバッグ] メニュー](https://www.metatrader5.com/ja/metaeditor/help/main_menu/main_menu_debug#break)または Break を押します。 一時ストップした後、ステップバイステップのデバッグコマンドを適用できます。
- 実行の再開一時ストップ後にプログラムの実行を再開する ![再開](https://www.metatrader5.com/i/help/metaeditor/en/start_debug_icon.png)再開[[デバッグ] メニュー](https://www.metatrader5.com/ja/metaeditor/help/main_menu/main_menu_debug#start)F5 キーを押します。
- デバッグの完了デバッグをストップする![終了](https://www.metatrader5.com/i/help/metaeditor/en/stop_debug_icon.png)[ストップ][[デバッグ] メニュー](https://www.metatrader5.com/ja/metaeditor/help/main_menu/main_menu_debug#stop)Shift + F5 キーを押します。 このプログラムは[特別なチャート](https://www.metatrader5.com/ja/metaeditor/help/development/debug#settings)から削除され、デバッグに起動され、チャート自体は閉じられます。

> ソース MQ4、MQ5、MQH ファイルがなければデバッグは不可能です。デバッグプロセス中に取得した実行可能な EX4/EX5 ファイルを配布することはお勧めしません。

## ヒストリー上でデバッグ [#](#history)

リアルタイムの価格データとは別に、トレーディングロボットやテクニカルインジケーターのデバッグもヒストリー上で行うことができます。 任意のプログラムは、リアルタイムで特定のトレードイベントを待たずに必要な履歴データでテストすることができます。

履歴データのデバッグは、ストラテジーテスターのビジュアルテストモードで実行されます。 アプリケーションは、テスターのティックのエミュレートされたシーケンスまたは累積履歴のティック (ブローカーから受信) に基づいて、チャート上で実行されます。

履歴のデバッグを開始するには、[MetaEditorの設定](https://www.metatrader5.com/ja/metaeditor/help/beginning/settings#debug)でテストパラメータを設定します.

![履歴のデバッグの構成](https://www.metatrader5.com/i/help/metaeditor/en/debug_history_settings.png)

コード内のブレークポイントを設定し、ヒストリカル価格を使用してデバッグを開始します。

![履歴のデバッグの起動](https://www.metatrader5.com/i/help/metaeditor/en/debug_history_run.png)

ビジュアルテストとデバッグプロセスが開始されます。

![ヒストリー上でデバッグ](https://www.metatrader5.com/i/help/metaeditor/en/debug_history_running.png)

## In this section

- [インテリジェントマネージメント](https://www.metatrader5.com/ja/metaeditor/help/development/intelligent_management)
- [検索と置換](https://www.metatrader5.com/ja/metaeditor/help/development/source_code_find)
- [スタイラー](https://www.metatrader5.com/ja/metaeditor/help/development/styler)
- [コンパイル](https://www.metatrader5.com/ja/metaeditor/help/development/compile)
- [MQL5クラウドプロテクタ: プログラムの高度な保護](https://www.metatrader5.com/ja/metaeditor/help/development/mql5_cloud_protector)
- コードのデバッグ
- [コードのプロファイル](https://www.metatrader5.com/ja/metaeditor/help/development/profiling)
- [AI Assistant コーディングアシスタント](https://www.metatrader5.com/ja/metaeditor/help/development/ai_assistant)
- [インクルードコードの生成](https://www.metatrader5.com/ja/metaeditor/help/development/generate_mqh)
- [C++ DLL の操作 (MS Visual Studio との統合)](https://www.metatrader5.com/ja/metaeditor/help/development/c_dll)
- [Pythonの操作](https://www.metatrader5.com/ja/metaeditor/help/development/python)
- [OpenCLサポート](https://www.metatrader5.com/ja/metaeditor/help/development/opencl)

```json
{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ {"@type": "ListItem", "position": 1, "item": {"@id": "https://www.metatrader5.com/ja/metaeditor/help", "name": "MetaEditorのヘルプ"}}, {"@type": "ListItem", "position": 2, "item": {"@id": "https://www.metatrader5.com/ja/metaeditor/help/development", "name": "プログラムの開発"}}, {"@type": "ListItem", "position": 3, "item": {"@id": "https://www.metatrader5.com/ja/metaeditor/help/development/debug", "name": "コードのデバッグ"}} ]}
{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "MetaTrader 5: コードのデバッグ", "acceptedAnswer": { "@type": "Answer", "text": "MetaEditorには、プログラムの実行ステップ (個々の関数ごと) をチェックできる組み込みデバッガがあります。 コードにブレークポイントを配置します。 これらはプログラムの実行を一時ストップする場所です。 次に、通常のチャートまたは ストラテジーテスター でプログラムを起動します..." } }] }
```
