質問

pnet tcp / udpツールボックス psychtoolbox は、さまざまなマシンでMATLABの2つのインスタンス間で通信します。マシンの1つはMATLAB 2010Bを実行している32ビットWIN7です。もう1つはMATLAB 2012Aを実行している64ビットWin 7です。 1つのコンピュータから他のコンピュータへのデータの転送に問題があります。

実験1 :32ビットコンピュータからUDP_PLOTTER_DEMOを実行しながら、64ビットコンピュータからUDP_SEND_DEMOを実行します。 予想される結果:32ビットコンピュータプロットデータは、キーボード入力を待ちます。 KB入力の場合は、図とエンドデモを閉じます。 64ビットデモの送信と停止を終了します。 実際の結果:64ビットはそれがそうでなければなりません。 32ビットコンピュータプロットがハングしてデモを閉じることを拒否します。それはどんなキーボードの入力には応答していないため、力を閉じなければなりません。

実験2 :32ビット送信と64ビットの読み取りで逆で実験を実行します。 予想される結果:64ビットプロットとキーボード入力を待ちます。 KB入力が見つかった場合は、デモを停止してください。 実際の結果 64ビットのMATLABクラッシュは、MEXファイルのセグメンテーション違反を主張しています。スタックトレースを表示します(最後にその一部を追加しています)。

ポート番号で演奏すると違いはありません。プリコンパイルされたMEXを使用する代わりに 'pnet.c'ソースファイルを再コンパイルすると、違いはありません。 質問:誰かがこのようにしてみましたか?あなたはそれを働かせましたか?私のWin64コンピュータに32ビットのMATLABをインストールする必要なしにこれを働くことを試みることを提案することができますか?

===========

コード:

サーバー側:

udp_send_demo('sin(0:0.1:6)',clientIPStr,portToListen)
.

クライアント側:

udp_plotter_demo(portToListen)
.

============

スタックトレース


セグメンテーション違反がSAT SEP 29 16:41:11 2012

構成:

クラッシュデコード:無効

デフォルトのエンコーディング:Windows-1252

MATLABルート:C:\ Program Files \ MATLAB \ R2012A

MATLAB版:7.14.0.739(R2012A)

オペレーティングシステム:Microsoft Windows 7

プロセッサID:X86ファミリー6モデル58ステッピング9、Genuineintel

仮想マシン:Sun Microsystems Inc.のJava 1.6.0_17-B04 Java HotSpot(TM)64ビットサーバーVM混合モード

ウィンドウシステム:バージョン6.1(ビルド7601:Service Pack 1)

フォルトカウント:1

異常終了: セグメンテーション違反

レジスタ状態(障害から): RAX= 00000000000000 RBX= 0000000000000000

RCX= 000000005D0DF7D7 RDX= 000000000000000001

RSP= 00000000040671B0 RBP= 0000000004067289

RSI= 000000000000003D RDI= 00000000000000003D

R8= 000000005D0DF7D6 R9= 000050490EEE40167

R10= 000000000000003D R11= 0000000000000000

R12= 0000000000000008 R13= 000007FEFB997678

R14= 0000000000000002 R15= 0000000000000002

RIP= 000007FEFB99238A EFL= 00010202

CS= 0033 FS= 0053GS= 002B

スタックトレース(障害から):

[0] 0x000007FEFB99238A C:\ users \ ephys-data \ desktop \ temp \ tcp_udp_ip \ pnet.mexw64 + 00009098(Perror + 004298)

[1] 0x000007FEFB99389B C:\ users \ ephys-data \ desktop \ temp \ tcp_udp_ip \ pnet.mexw64 + 00014491(MexFunction + 001979)

[2] 0x0000000074F10F63 C:¥Program Files¥MATLAB¥R2012A¥bin¥win64¥libmex.dll + 00069475(MexrunMexFile + 000131)

[3] 0x0000000074F0FCE2 C:¥Program Files¥MATLAB¥R2012A¥bin¥win64¥libmex.dll + 00064738(InswapMexFileReader + 000226)

[4] 0x0000000074FE58 C:¥Program Files¥MATLAB¥R2012A¥bin¥win64¥libmex.dll + 00065112(InswapMexFileReader + 000600)

[5] 0x0000000074E4B046 C:¥Program Files¥MATLAB¥R2012A¥bin¥Win64¥M_Dispatcher.dll + 00045126(MFH_FILE :: Dispatch_FH + 000486)

....その他のもの....

mex-fileが実行されている間にこのエラーが検出されました。 MEXファイルが正式なMathWorks関数ではない場合は、エラーのソースコードを調べてください。 MEXファイルのデバッグについては、[外部インターフェイスガイド]を参照してください。

この問題が再現されている場合は、次のようなサービス要求を送信してください。

テクニカルサポートエンジニアは、さらなる情報であなたに連絡するかもしれません。

あなたの助けをありがとうございました。


ありがとう

b

役に立ちましたか?

解決

私はPimeToolboxで役立つ人々を書いた。どうやらバグは「ベータ」バージョンのPimictoolboxで捕まって解決されました。最新かつ最大のPsychtoolboxがある場合は、updatePSychtoolboxをおやすみなさいの睡眠のために実行してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top