残念ながら free() でブレイクしてしまうのはOSの仕様です。
ABのメモリ管理関数は処理を丸ごとOSに投げていますから。
しかし、通常はブレイクすることはありません。ブレイクするのは malloc() などで確保していない領域を free() しようとしたときです。
逆に、ブレイクするということは自分のプログラムの中にバグが潜んでいることを意味します。
このブレイクのおかげで少しだけバグ検出がしやすくなるので、むしろ有り難い動作です。
もしブレイクではなく一般保護例外などでいきなり落とされたら精神的に参ってしまいますよね。
残念ながら free() でブレイクしてしまうのはOSの仕様です。 ABのメモリ管理関数は処理を丸ごとOSに投げていますから。
しかし、通常はブレイクすることはありません。ブレイクするのは malloc() などで確保していない領域を free() しようとしたときです。 逆に、ブレイクするということは自分のプログラムの中にバグが潜んでいることを意味します。 このブレイクのおかげで少しだけバグ検出がしやすくなるので、むしろ有り難い動作です。 もしブレイクではなく一般保護例外などでいきなり落とされたら精神的に参ってしまいますよね。
|