__ud2
Microsoft 固有の仕様
未定義の命令を生成します。
構文
void __ud2();
解説
未定義の命令を実行すると、プロセッサは無効なオペコード例外を発生させます。
__ud2
関数は UD2
マシン語命令と同じです。 詳細は、Intel Corporation のサイトで "Intel アーキテクチャ ソフトウェア デベロッパーズ マニュアル ボリューム2: 命令セット リファレンス" というドキュメントを検索してください。
要件
Intrinsic | Architecture |
---|---|
__ud2 |
x86、x64 |
ヘッダー ファイル<intrin.h>
Microsoft 固有の仕様はここまで
例
次の例では、未定義の命令を実行します。これにより、例外が発生します。 次に、例外ハンドラーが、リターン コードを 0 から 1 に変更します。
// __ud2_intrinsic.cpp
#include <stdio.h>
#include <intrin.h>
#include <excpt.h>
// compile with /EHa
int main() {
// Initialize the return code to 0.
int ret = 0;
// Attempt to execute an undefined instruction.
printf("Before __ud2(). Return code = %d.\n", ret);
__try {
__ud2();
}
// Catch any exceptions and set the return code to 1.
__except(EXCEPTION_EXECUTE_HANDLER){
printf(" In the exception handler.\n");
ret = 1;
}
// Report the value of the return code.
printf("After __ud2(). Return code = %d.\n", ret);
return ret;
}
Before __ud2(). Return code = 0.
In the exception handler.
After __ud2(). Return code = 1.