编辑:
已经解决。用下面的代码重新编译一个Xorg出来完事。
https://github.com/linuxdeepin/xorg-server
这个版本无空指针问题,但是它的默认modules路径是/usr/local/lib/xorg/modules,而UOS自带的Xorg的默认modules路径是/usr/lib/xorg/modules,要在二者之间设一个符号链接就行。
---------------------------------------------------------------------------
调用configDisplay()时传递的第二个参数是个空指针,找不到配套的代码
这个代码不匹配,传给configDisplay()时检查了指针非空
https://github.com/linuxdeepin/xorg-server/blob/v20/1.20.4/hw/xfree86/common/xf86Config.c
(gdb) p $rip
$2 = (void (*)()) 0x471c5b <configScreen+587>
#0 0x0000000000471c5b in configDisplay (conf_display=0x25c9a80, displayp=0x0) at ../../../../../../hw/xfree86/common/xf86Config.c:2034
#1 configScreen (screenp=0x25bbbd0, conf_screen=0x25c9950, scrnum=<optimized out>, from=from@entry=X_CONFIG, auto_gpu_device=<optimized out>)
at ../../../../../../hw/xfree86/common/xf86Config.c:1816
#2 0x00000000004723fe in configLayout (conf_layout=conf_layout@entry=0x25c1b30, default_layout=default_layout@entry=0x25aaa00 "X11 Server", servlayoutp=<optimized out>)
at ../../../../../../hw/xfree86/common/xf86Config.c:1457
#3 0x0000000000474a88 in xf86HandleConfigFile (autoconfig=autoconfig@entry=0) at ../../../../../../hw/xfree86/common/xf86Config.c:2415
#4 0x000000000047eea1 in InitOutput (pScreenInfo=pScreenInfo@entry=0x655800 <screenInfo>, argc=argc@entry=11, argv=argv@entry=0x7fffdbdc07a8)
at ../../../../../../hw/xfree86/common/xf86Init.c:371
#5 0x00000000004417df in dix_main (argc=11, argv=0x7fffdbdc07a8, envp=<optimized out>) at ../../../../dix/main.c:193
#6 0x00007f7d3ba8909b in __libc_start_main (main=0x42b680 <main>, argc=11, argv=0x7fffdbdc07a8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
stack_end=0x7fffdbdc0798) at ../csu/libc-start.c:308
#7 0x000000000042b6ba in _start ()
/usr/lib/xorg/Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log
--
修改:z16166 FROM 114.241.225.*
FROM 114.241.225.*