[Armadillo:08459] Re: x-window
watanabe
email@hidden
2012年 12月 8日 (土) 16:18:01 JST
渡辺です。
調査を続けました。
現在のロケールが何になっているかを
setlocale()
で調べてみたら、"C"と返されました。
setlocale( LC_ALL, "JPN" )
とやってみましたが、エラーになってしまいます。
Armadillo440のx11は日本語フォントが入っていない
のでしょうか?
確かに、サンプルでも日本語って見たことがないような。。。
(2012/12/06 16:11), watanabe wrote:
> 渡辺です。
>
> 回答ありがとうございます。
>
>> fsが 0x0 だからでは?
> のアドバイスに従い、その設定を行っている所を調べたら、
> fs = XCreateFontSet(d, MTFONT, &miss, &n_mis, &def);
> の箇所がありました。そのfsを調べてみたら、そこで0に
> なっていました。
>
> XCreateFontSetでエラーになっていると判断して、何故
> エラーになっているのかを、manの内容とソースから
> 考えると、MTFONTがサポートされていないからではないかと
> 想像しました。ちなみにMTFONTは
> #define MTFONT "\
> -sony-fixed-medium-r-normal--16-*-iso8859-1,\
> -jis-fixed-medium-r-normal--16-*-jisx0208.1983-0,\
> -sony-fixed-medium-r-normal--16-*-jisx0201.1976-0"
> と定義されています。
>
> 現在、どのフォントがサポートされているかをVMware上で
> xlsfontsコマンドで調べてみると、非常に大量のフォントが
> 表示されます。その内の一つの
> -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-2
> を上述したMTFONTの代わりに設定してみました。
> 結果は同じくfsに0が入ってしまいました。
>
> 調査方法及び対応方法が間違っていますでしょうか?
>
> (2012/12/06 1:05), email@hidden wrote:
>> At Wed, 05 Dec 2012 18:48:58 +0900,
>> watanabe wrote:
>>>
>>> 先程ご教示頂いた修正を行って大分進むようになったのですが、
>>> "Segmentation fault"というエラーになり終了してしまいます。
>>>
>>> 追いかけてみると、
>>> XmbDrawString(d, w, fs, gc, mbx, mby, eucbuff, strlen(eucbuff));
>>> でエラーになっていました。
>>> パラメータを調べてみると、
>>> d=0x37008,w=0x400001,fs=0x0,gc=0x40cd8,mbx=0x40,mby=0x26,
>>> eucbuff=0x25ec8,len=0x10
>>> となっていました。
>>
>> fsが 0x0 だからでは?
>>
>>> XmbDrawStringはx11そのものなので、どうやって調べたらよいか
>>> 困惑しています。
>>> エラーの原因と対応策についてご教示ください。
>>
>> 原因は
>>
>> 1) man page を読む
>> => なにも書いていない
>> 2) source を読む
>> 2.1) source をもってくる
>> 2.2) 該当関数を読む
>> void
>> XmbDrawString(
>> Display *dpy,
>> Drawable d,
>> XFontSet font_set,
>> GC gc,
>> int x,
>> int y,
>> _Xconst char *text,
>> int text_len)
>> {
>> (void)(*font_set->methods->mb_draw_string) (dpy, d, font_set, gc, x, y,
>> (char *)text, text_len);
>> }
>>
>> font_set を de-reference しているっぽいので、NULLだとセグる。
>>
>>
>> 対応策は
>>
>> a) XCreateFontSet の戻り値を確認するコードにする
>> b) フォントを入れる
>>
>> じゃないでしょうか?
>>
>
armadillo メーリングリストの案内