プロジェクト

全般

プロフィール

バグ #2507

完了

ARM<->i386間で通信するとdouble型のデータが化ける

n-ando さんがほぼ12年前に追加. 約11年前に更新.

ステータス:
終了
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
2012/08/10
期日:
進捗率:

100%

予定工数:

説明

ARM<->i386間で通信するとdouble型のデータが化ける

ARM側 SeqOutComp

-: 131.345 131.12 131 131 131[ ]

0: 1301.35 1301.12 1301 1301 31[ ]
1: 1302.35 1302.12 1302 1302 32[ ]
2: 1303.35 1303.12 1303 1303 33[!]
3: 1304.35 1304.12 1304 1304 34["]
4: 1305.35 1305.12 1305 1305 35[#]
5: 1306.35 1306.12 1306 1306 36[$]
6: 1307.35 1307.12 1307 1307 37[%]
7: 1308.35 1308.12 1308 1308 38[&]
8: 1309.35 1309.12 1309 1309 39[']
9: 1310.35 1310.12 1310 1310 40[(]

i386側 SeqInComp

---------------------------------------------------------------------
           Double        Float         Long        Short        Octet
---------------------------------------------------------------------
                             Basic type
---------------------------------------------------------------------
     9.45875e-013       131.12          131          131          131[ ]
---------------------------------------------------------------------
                            Sequence type
---------------------------------------------------------------------
 0:  1.99916e+037      1301.12         1301         1301           31[ ]
 1:  1.99916e+037      1302.12         1302         1302           32[ ]
 2:  1.99916e+037      1303.12         1303         1303           33[!]
 3:  1.99916e+037      1304.12         1304         1304           34["]
 4:  1.99916e+037      1305.12         1305         1305           35[#]
 5:  1.99916e+037      1306.12         1306         1306           36[$]
 6:  1.99916e+037      1307.12         1307         1307           37[%]
 7:  1.99916e+037      1308.12         1308         1308           38[&]
 8:  1.99916e+037      1309.12         1309         1309           39[']
 9:  1.99916e+037      1310.12         1310         1310           40[(]

逆向きについても調査。やはりdoubleがおかしい

i386側 SeqOutComp

-: 24.345 24.12 24 24 24[ ]

0: 231.345 231.12 231 231 231[ ]
1: 232.345 232.12 232 232 232[ ]
2: 233.345 233.12 233 233 233[ ]
3: 234.345 234.12 234 234 234[ ]
4: 235.345 235.12 235 235 235[ ]
5: 236.345 236.12 236 236 236[ ]
6: 237.345 237.12 237 237 237[ ]
7: 238.345 238.12 238 238 238[ ]
8: 239.345 239.12 239 239 239[ ]
9: 240.345 240.12 240 240 240[ ]

ARM側 SeqInComp

---------------------------------------------------------------------
           Double        Float         Long        Short        Octet
---------------------------------------------------------------------
                             Basic type
---------------------------------------------------------------------
    -8.67922e+209        24.12           24           24           24[ ]
---------------------------------------------------------------------
                            Sequence type
---------------------------------------------------------------------
 0:   9.45875e-13       231.12          231          231          231[ ]
 1:   9.45875e-13       232.12          232          232          232[ ]
 2:   9.45875e-13       233.12          233          233          233[ ]
 3:   9.45875e-13       234.12          234          234          234[ ]
 4:   9.45875e-13       235.12          235          235          235[ ]
 5:   9.45875e-13       236.12          236          236          236[ ]
 6:   9.45875e-13       237.12          237          237          237[ ]
 7:   9.45875e-13       238.12          238          238          238[ ]
 8:   9.45875e-13       239.12          239          239          239[ ]
 9:   9.45875e-13       240.12          240          240          240[ ]
  • なお、ARM同士の通信ではデータ化けは発生しない。
  • ARM (C++) -> i386 (Python) の通信でもdoubleが化けているため、ARM版のomniORBが原因の可能性大。

ファイル

omniorb_crosbuild.sh (2.11 KB) omniorb_crosbuild.sh n-ando, 2012/08/10 17:14

他の形式にエクスポート: Atom PDF