Thank you for giving such a nice
explanation!
Yes, I have read xnee source code and find
the work_round you marked works fine with avoiding X server crash.
I have tested RECORD in Solaris. in U5 with
os 5.9, Xserver must be crashed when launch large program like netscape or
staroffice after starting RECORD extension if only set diliverd Event
field(that is, Error filed's first and last are both set to 0).
If both event and error filed are set, then
Xserver won't crash. At least, during my test, no once xserver_crash
happened!
So, I also though the problem is in RECORD.
By passing different arguments( valid argument by its documents) with same run
environment, result will be completely different. Is it the proof?
And, I also have been reading RECORD's
source code(client side and server side). As Henrik said,"delivered
event" and "error" are handled inside the RECORD extension by the same function,
However I did not found anything wrong with this function. For in Event struct,
type = 0 means it's an error and type = 1 means it's a reply and 2 to 35 are the
core event type. So dealing error and event in the same event seems nothing bad.
Maybe bad thing exists I haven't found. :(
BTW, I download
the source code from XFree CVS, but faild to build them. I download the whole xc
and in record directory use "xmkmf -a" to bulid, but error happens: some *.h not
found which indeed exist. Does I miss anything to build
with?
|