お世話になります。黒川と申します。
xrdp 0.9.11をCentOS7にインストールして利用しております。
インストール自体は成功し、
Windows 10のmstsc.exeからは問題なくxrdp経由でgnomeのセッションにログイン出来ました。
次に、Dell-WYSE製のシンクライアント端末から、xrdp経由でログインを試みましたが
WYSEシンクライアント端末のログには
RDP: virtual channnel rdpsnd error, rc = 0xffffffff
のログが出てしまい、gnomeのセッションに入る直前で通信が切れてしまいます。
上記のページにあるように、
xrdp.ini内のrdpsnd=falseを設定すれば、問題なくgnomeのセッションへ接続出来ます。
シンクライアント端末のログと、xrdp.iniの設定内容から
RDPのvirtual channelの設定時に何らかの問題があると思われます。
xrdpのソースを眺めてみたのですが、
当該の処理はxrdp-chansrvのchansrv.cまたはsound.c辺りが相当するように思えます。
そのため、この辺りにブレイクポイントを掛けてデバッグしようと思ったのですが、
xrdp-chansrvが、xrdp-sesmanからexecで起動される子プロセスであること、
そもそもxrdp-sesman自体が内部処理にforkが多用されており、非常にデバッグしにくい構造であることから、
私にとってはデバッグ作業自体が困難な状況です。
大変不躾な質問になりまして恐縮なのですが、
表記の通りxrdp-chansrvの効率的なデバッグ方法、
特にxrdp-chansrvが子プロセスとして実行されたときにデバッガに制御を落とす方法や
ブレークポイントを置いたりする方法についてご存じの方、
御教授頂けませんでしょうか。
当方の環境ですが、
OS:CentOS 7(@VirtualBox@Windows 10)
シンクライアント端末:WYSE Cx0(ThinOS 8.3_109)
デバッグ環境:eclipse CDT 2019-06
xrdpのconfigureパラメータ:--enable-jpeg --enable-tjpeg --enable-fuse --enable-fdkaac --enable-opus --enable-mp3lame --enable-pixman --enable-vsock --enable-xrdpdebug
となります。
何卒宜しくお願い致します。