3

pnet tcp / udp toolbox)をpsychtoolboxと一緒に使用して、異なるマシンのmatlabの2つのインスタンス間で通信します。私のマシンの1つは、matlab2010bを実行している32ビットのwin7です。もう1つは、matlab2012aを実行している64ビットのwin7です。あるコンピューターから別のコンピューターにデータを転送する際に問題が発生しました。

実験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)

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

スタックトレース


2012年9月29日土曜日16:41:11にセグメンテーション違反が検出されました

構成:

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

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

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

MATLABバージョン:7.14.0.739(R2012a)

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

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

仮想マシン:Java1.6.0_17-b04とSunMicrosystems Inc. Java HotSpot(TM)64ビットサーバーVM混合モード

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

障害数:1

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

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

RCX = 000000005d0df7d7 RDX = 0000000000000001

RSP = 00000000040671b0 RBP = 0000000004067289

RSI = 000000000000003d RDI = 000000000000003d

R8 = 000000005d0df7d6 R9 = 000050490ee40167

R10 = 000000000000003d R11 = 0000000000000000

R12 = 0000000000000008 R13 = 000007fefb997678

R14 = 0000000000000002 R15 = 0000000000000002

RIP = 000007fefb99238a EFL = 00010202

CS = 0033 FS = 0053 GS = 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] 0x0000000074f0fe58 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ファイルの実行中に検出されました。MEXファイルが公式のMathWorks関数でない場合は、そのソースコードにエラーがないか調べてください。MEXファイルのデバッグについては、外部インターフェイスガイドを参照してください。

この問題が再現できる場合は、次の方法でサービスリクエストを送信してください。

テクニカルサポートエンジニアが詳細について連絡する場合があります。

ご協力ありがとうございました。


ありがとう

-b

4

1 に答える 1

1

私はpsychtoolboxで役立つ人々を書きました。どうやらバグはpsychtoolboxの「ベータ」バージョンでキャッチされ解決されました。最新で最高のpsychtoolboxをお持ちの場合は、UpdatePsychtoolboxを実行してぐっすりとお休みください。こちらをご覧ください

于 2012-10-03T20:08:26.970 に答える