[SCore-users-jp] invoke()処理時のException Signalについて

青木 t-aoki @ pst.fujitsu.com
2004年 5月 17日 (月) 17:05:04 JST


富士通プライムソフトテクノロジの 青木 です。
亀山様、回答ありがとうございます。

> > 調べたところ、signal.cc 内の invoke() を呼び出した直後に
> > Exception Signal が発生しているようなのですが、
> > http://ilab.is.s.u-tokyo.ac.jp/~ishikawa/LinuxIA64/porting.html
> > によると、「setjmp/longjmpの実装は、glibc-2.2.4に依存してい
> > ることに注意」という記事があったため glibc が影響している可
> > 能性があるかもしれないと考えています。
> 
> setjmp/longjmp の実装に bug がありました.
> uf[0].__jmpbuf[1] に入れる GP ですが, これは現在の GP ではなく,
> 呼び出し側の GP を入れる必要があります.
> (RHEL Workstation 2,1 だと static link していれば GR の値が同じなので
> 大丈夫だったのですが, dynamic link にしたら問題が発生しました.)
>     score-src/SCore/mttl-ult/ult/stack.c
>>      t->jmpbuf[0].__jmpbuf[1] =  getGP(); /* global pointer save */
> の部分を
>     t->jmpbuf[0].__jmpbuf[1] =   ((long*)func)[1];
> に変更してみてください.
> 
> もっとも RHEL3 ではテストしていないので, 別の理由かもしれません.
変更してみましたが、残念ながら改善されませんでした。
引き続きアドバイス等頂ければ幸いです。
よろしくお願い致します。

________________________________
  (株)富士通プライムソフトテクノロジ  3開統)3開発部
        青木  利宏       内線  7677-5214
        E-Mail : t-aoki @ pst.fujitsu.com




SCore-users-jp メーリングリストの案内