__rt_raise() を使用したゼロによる整数除算エラーのトラップについて

ゼロによる整数除算では、シグナルが 1 つデフォルトで発生します。したがって、ゼロによる除算をインターセプトするには、シグナルを処理するための C ライブラリヘルパ関数 __rt_raise() を再実装します。__rt_raise() の関数プロトタイプを以下に示します。

void __rt_raise(int signal, int type);

ゼロによる除算エラーが発生すると、__aeabi_idiv0() によって __rt_raise(2, 2) が呼び出されます。そのため、__rt_raise() の実装では、ゼロ除算が発生したかどうかを判断する際に (signal == 2) && (type == 2) をチェックする必要があります。

Show/hide関連項目

Copyright © 2010 ARM. All rights reserved.ARM DUI 0472BJ
Non-ConfidentialID011811