[Armadillo:08444] Re: x-window

watanabe email@hidden
2012年 12月 5日 (水) 18:48:58 JST


渡辺です。

先程ご教示頂いた修正を行って大分進むようになったのですが、
"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
となっていました。

XmbDrawStringはx11そのものなので、どうやって調べたらよいか
困惑しています。
エラーの原因と対応策についてご教示ください。



(2012/12/05 17:54), watanabe wrote:
> 渡辺です。
> 
> 回答どうもありがとうございます。
> 
> DISPLAY環境変数を設定するだけでは駄目で、その設定値を
> ソースにも合わせてあげたら正常に動作しました。
> 
> (2012/12/05 15:24), Yasushi SHOJI wrote:
>> At Wed, 05 Dec 2012 14:34:07 +0900,
>> watanabe wrote:
>>>
>>>> xlib だけ使っているアプリですか?
>>>> それとも、Gtk+ や Qtを使います?
>>> xlibだけを使用したアプリです。
>>>
>>> 最初に
>>> 	d = XOpenDisplay(NULL);
>>> を行っているのですが、dがNULLで返ってきます。
>>> XOpenDisplay()でエラーになっているものと思われます。
>>> 本関数のパラメータでNULLを指定したら、display環境変数
>>> の値が使われるようですが、"env"コマンドで
>>> Armadilloの環境変数を見てみると、DISPLAYの環境変数が
>>> ありません。
>>
>> DISPLAY環境変数を設定するだけで、良いと思います。
>>
>>> 環境変数を定義していないのに、それを参照するようなPRGに
>>> なっているためエラーになったのではないかと想像している
>>> のですが、XOpenDisplayに何を指定すればよいか分かりません。
>>
>> もしソースを変更したいのであれば、引数にはDISPLAY環境変数と同じ値を設定
>> します。XOpenDisplay() の man page を見る(man XOpenDisplay)と
>>
>> 	XOpenDisplay(3) -- libX11 1.5.0 -- X Version 11 -- XLIB FUNCTIONS
>> 	
>> 	NAME
>> 		XOpenDisplay, XCloseDisplay - connect or disconnect to X
>> 		server
>> 	
>> 	SYNTAX
>> 	
>> 		Display *XOpenDisplay(char *display_name);
>>
>> となっています。
>>
>> 普通は NULL にしておいて、環境変数を設定すると思います。
>>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 




armadillo メーリングリストの案内