Project

General

Profile

Actions

Bug #9636

closed

Fiddle::Importer で Segmentation fault が発生する

Added by kiyoteru.inoue (Kiyoteru Inoue) about 10 years ago. Updated almost 10 years ago.

Status:
Rejected
Assignee:
-
Target version:
[ruby-dev:48040]

Files

testcode.rb (3.61 KB) testcode.rb テストに使用したコード kiyoteru.inoue (Kiyoteru Inoue), 03/14/2014 05:36 PM
log.txt (11.5 KB) log.txt Segmentation fault コアダンプのログ kiyoteru.inoue (Kiyoteru Inoue), 03/14/2014 05:37 PM

Updated by kiyoteru.inoue (Kiyoteru Inoue) about 10 years ago

Fiddle::Impoter で、 Segmentation fault が発生します。

Ruby 1.8.7-p375
Ruby 1.9.3-p545
Ruby 2.1.1-p76

いずれのバージョンでも、同様のコアダンプを発生させています。
Ruby 2.1.1-p76 で実行時のコアダンプを添付します。

実行環境は
Ubuntu 13.10 x86_64 です。CPU の Byte Order は Little Endian です。

実行したテストコードと、Segmentation fault コアダンプのログを貼っておきます。
いずれのRubyバージョンでも発生するので、ライブラリ側の問題ではないと思うのですが。

使用したライブラリは AquesTalk2(linux評価版)です。
開発版(有償)でも、同様のコアダンプが発生しています。

http://www.a-quest.com/download/index.html

よろしくお願いします。
タイトルは入力ミスしてしまいました。訂正方法がわからないのでこのままです。すみません。

Updated by hsbt (Hiroshi SHIBATA) about 10 years ago

  • Tracker changed from Backport to Bug
  • Project changed from Backport21 to Ruby master
  • Subject changed from Fiddle::Importer で Segmentation fault ga to Fiddle::Importer で Segmentation fault が発生する
  • ruby -v set to 2.1.0

Updated by hsbt (Hiroshi SHIBATA) about 10 years ago

  • Target version set to 2.2.0
  • Backport set to 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN

Updated by nobu (Nobuyoshi Nakada) about 10 years ago

  • Status changed from Open to Feedback

Integerからポインタへはそのまま渡されます。
Array#packでStringにしないと、参照渡しにはできません。

      result = @@synthe.call(input, ispeed, size = 0, phont) # ←このコードが実行された時点でコアダンプ

      size = [0].pack('i!')
      result = @@synthe.call(input, ispeed, size, phont)
      size, = size.unpack('i!')

のようにしてみてください。

Updated by kiyoteru.inoue (Kiyoteru Inoue) about 10 years ago

Nobuyoshi Nakada wrote:

Integerからポインタへはそのまま渡されます。
Array#packでStringにしないと、参照渡しにはできません。

      result = @@synthe.call(input, ispeed, size = 0, phont) # ←このコードが実行された時点でコアダンプ

      size = [0].pack('i!')
      result = @@synthe.call(input, ispeed, size, phont)
      size, = size.unpack('i!')

のようにしてみてください。

ご指摘ありがとうございます。
ご指摘の通り、修正した結果。正常に動作しました。
お騒がせをしてしまい、すみませんでした。
ご指摘ありがとうございました。

Updated by nobu (Nobuyoshi Nakada) about 10 years ago

  • Status changed from Feedback to Closed

Updated by usa (Usaku NAKAMURA) almost 10 years ago

  • Status changed from Closed to Rejected
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0