# OS_IsRunOnDebugger

## 構文

  `#include <nitro/os.h>`
  `BOOL OS_IsRunOnEmulator( void );`

## 引数

なし。

## 返り値

プログラムが IS-NITRO-DEBUGGER　または IS-TWL-DEBUGGER 上で実行されていればTRUE を、そうでないなら FALSE を返します。

## 説明

プログラムが IS-NITRO-DEBUGGER または IS-TWL-DEBUGGER 上で実行されているかどうか調べます。

これはデバッグ用の関数ですので、最終ROM版(FINALROM)ライブラリでは常に FALSE を返します。

###
類似の関数

`OS_IsRunOnEmulator()` も動作環境を調べる関数です。こちらは Ensata NITRO Software Emulator 上で動作しているかを調べる関数です。

###
環境やビルドによる実際の値

下は動作環境の違いによる `OS_IsRunOnDebugger()` と `OS_IsRunOnEmulator()` の返り値の表です。

NITRO モードの場合
動作環境 | ビルド | `OS_IsRunOnDebugger()`の値 | `OS_IsRunOnEmulator() の値`
--- | --- | --- | ---
NTR実機 | DEBUG RELEASE FINALROM | FALSE | FALSE
TWL実機 | DEBUG RELEASE FINALROM | FALSE | FALSE
IS-NITRO-DEBUGGER (デバッガソフトウェア 非接続時を含む) | DEBUG RELEASE | TRUE | FALSE
FINALROM | FALSE | FALSE
ENSATA EMULATOR | DEBUG RELEASE | FALSE | TRUE
FINALROM | FALSE | FALSE
IS-TWL-DEBUGGER (一般開発用: ARM9) | DEBUG RELEASE | TRUE | FALSE
FINALROM | FALSE | FALSE
IS-TWL-DEBUGGER (コンポーネント開発用 ARM9 + ARM7) | DEBUG RELEASE | TRUE | FALSE
FINALROM | FALSE | FALSE
IS-TWL-DEBUGGER (一般開発用: ARM9) の デバッガソフトウェア 非接続時 | DEBUG RELEASE | FALSE | FALSE
FINALROM | FALSE | FALSE
IS-TWL-DEBUGGER (コンポーネント開発用 ARM9 + ARM7) の デバッガソフトウェア 非接続時 | DEBUG RELEASE | FALSE | FALSE
FINALROM | FALSE | FALSE
TWL モードの場合
動作環境 | ビルド | `OS_IsRunOnDebugger()`の値 | `OS_IsRunOnEmulator() の値`の値
TWL実機 | DEBUG RELEASE FINALROM | FALSE | FALSE
IS-TWL-DEBUGGER (一般開発用: ARM9) | DEBUG RELEASE | TRUE | FALSE
FINALROM | FALSE | FALSE
IS-TWL-DEBUGGER (コンポーネント開発用 ARM9 + ARM7) | DEBUG RELEASE | TRUE | FALSE
FINALROM | FALSE | FALSE
IS-TWL-DEBUGGER (一般開発用: ARM9)　の デバッグソフトウェア 非接続時 | DEBUG RELEASE | FALSE | FALSE
FINALROM | FALSE | FALSE
IS-TWL-DEBUGGER (コンポーネント開発用 ARM9 + ARM7) の デバッグソフトウェア 非接続時 | DEBUG RELEASE | FALSE | FALSE
FINALROM | FALSE | FALSE

## 内部動作

`OS_GetConsoleType()` の返り値と、`OS_CONSOLE_ISDEBUGGER` や `OS_CONSOLE_TWLDEBUGGER` ビットとの論理和によって判定しています。

## 参照

`OS_IsRunOnEmulator, OS_GetConsoleType`

## 履歴

2009/10/30 デバッガ非接続時に関しての情報を追記
2008/04/15 表を追加
2007/11/05 初版