MARINECAT サポート掲示板
[記事リスト] [新着記事] [ワード検索] [過去ログ] [管理用]

タイトル Win95マシンで不正な命令
投稿日: 2002/03/05(Tue) 01:21
投稿者PEN@海猫

> Mingw32-gcc(cygwinもかな?)では __try 〜 __except が
> きちんと実装されてないですからねぇ・・・

VisualC(以下VC)の__try/__exceptionはANSI-Cの範疇ではないので
実装されていなくて当然といえば当然です。
サポートされていないプラットフォーム向けにsignal/setjmpを利用して
不正命令(SSEがサポートされていない環境でのSSE命令の実行を含む)の検出を
行っているのですが(事実Linux/FreeBSDでは正しく動作しているようです)、
signalの実装すら正しくないためプログラムが落ちてしまうようです。

Mingwのruntimeでのsignalの実装を調べてみたのですが、どうやらそのまま
VCのMSVCRT.DLLのexportに対して処理を流すようにしてある様でして…。
予想からするに、VCでsignalを用いても正しくハンドリングできないのではないかなと。

# ユーザーモードでRDMSRができればなぁ...というか なんで
# サポート状態をCPUIDで取れないようにしてあるのかなぁ。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)
代理サーバー経由のアクセスか、アクセス制限されたホストからのアクセスを検出しました。投稿できません