[Armadillo:08445] Re: x-window
email@hidden
2012年 12月 6日 (木) 01:05:02 JST
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) フォントを入れる
じゃないでしょうか?
--
yashi
armadillo メーリングリストの案内