Wine 仍不完善,并且许多 Windows 应用程序仍然不能在 Wine 下运行而没有 bug(但它们中的许多程序在本地 Windows 下运行也不能没有 bug!)。为了易于人们找出(track down)导致每个 bug 的原因。Wine 提供了许多用于窃听的调试通道。
每个调试通道在活跃的时候,将触发把日记消息显示到你调用 wine 的控制台上。你可以把消息从它重定向到一个文件中并在你有空时检查它。但是要事先警告你! 一些调试通道可以生成难以置信的大量日记消息。最多产的犯罪分子(offender)有 relay,它在每次调用一个 win32 函数的时候吐出(spits out)一个日记消息,win ,它跟踪 windows 消息传递,当然还有 all ,它是所有现存的调试单一通道的一个别名。对于一个复杂的应用程序,你的调试日志文件可能很容易的就达到 1 MB 和更多。依赖于你运行程序多长时间,一个 relay 经常可以生成多于 10 MB 日志消息。记录日志使 Wine 减慢许多。所以除非你真的想要日记文件,否则不要使用 --debugmsg。
在每个调试通道中,你可以进一步指定一个 message class,来过滤出不同严重程度的错误。四个消息类是: trace、fixme、warn、err。
要开启一个调试通道,使用形式 class+channel。要关闭它,使用 class-channel。要在同一个 --debugmsg 选项中列出多于一个通道,用逗号分隔它们。例如,要求在 heap 通道中的 warn 类消息,你可以项下面这样调用 wine:
$ wine --debugmsg warn+heap program_name |
如果你去掉了消息类,wine 将显示这个通道的所有四类消息:
$ wine --debugmsg +heap program_name |
如果你想查看除了 relay 通道的所有日志消息,你可以象下面这样去做:
$ wine --debugmsg +all,-relay program_name |
下面是在 Wine 中所有调试通道和类的一个主列表。在以后的版本中可能增添(或减去)更多的通道。
all accel advapi animate aspi atom avifile bitblt bitmap caret cdrom class clipboard clipping combo comboex comm commctrl commdlg console crtdll cursor datetime dc ddeml ddraw debug debugstr delayhlp dialog dinput dll dosfs dosmem dplay driver dsound edit elfdll enhmetafile event exec file fixup font gdi global graphics header heap hook hotkey icmp icon imagehlp imagelist imm int int10 int16 int17 int19 int21 int31 io ipaddress joystick key keyboard ldt listbox listview local mci mcianim mciavi mcicda mcimidi mciwave mdi menu message metafile midi mmaux mmio mmsys mmtime module monthcal mpr msacm msg msvideo nativefont nonclient ntdll odbc ole opengl pager palette pidl print process profile progress prop propsheet psapi psdrv ras rebar reg region relay resource richedit scroll segment seh selector sendmsg server setupapi setupx shell snoop sound static statusbar storage stress string syscolor system tab tape tapi task text thread thunk timer toolbar toolhelp tooltips trackbar treeview ttydrv tweak typelib updown ver virtual vxd wave win win16drv win32 wing wininet winsock winspool wnet x11 x11drv |
关于调试通道的详情,请查看 Wine 开发者指南。
缺省的,wine 在你的正规桌面上运行应用程序。Wine 应用程序与本地 X11 应用程序混合在一起。窗口相互交叠,并且你可以在相互关系中调整它们的大小。通常,当你最小化 Wine 窗口的时候,它们缩小(collapse)成在你的桌面左下角的一个小图标,躲避你的其他非 Wine 窗口的行为。但是,如果你运行在 --managed 模式中,你的 Wine 应用程序将象其他程序那样最小化。
有时,你可能要把 Wine 窗口限制于你的桌面中小一些的一个区域中。这由 --desktop 选项来控制。 当你把这个选项传递给 wine 的时候,它将建立这么大的一个窗口并作为 Wine 桌面而不再借用正规的桌面空间。Wine 将接着把应用程序窗口放置到这个新桌面窗口中。如果你最小化这个应用程序,它将在它自己的桌面窗口的左下角图标化(iconize)。
--desktop 选项的几何信息使用标准的 X11 几何格式,例如,"640x480" 是 640 象素宽和 480 象素高的一个桌面窗口。你还可以在几何中指定桌面窗口的左上角的坐标,但你的窗口管理器可能选择屏弃你的要求。下列调用将在坐标(10, 25)打开一个新的 640 x 480 桌面窗口:
$ wine --desktop 640x480+10+25 foo.exe |
更常见的是,你去掉起点坐标,而只使用高度和宽度:
$ wine --desktop 640x480 foo.exe |
缺省的,wine 在 $DISPLAY 环境变量中的那个 X 显示器上显示它的窗口。通常,$DISPLAY 被设置为 :0,它把所有窗口发送到你的当前宿主主机上的主视频监视器上。
要包窗口发送到在同一个系统上的一个不同的监视器上,你需要把 :0 变更为一个不同的数,例如,设置为 :1 来发送到第二监视器上。你还可以指定其他系统。如果你登录到一个系统 alpha,但想让 wine 在网络上的一个其他系统上运行,比如 beta,你可以使 $DISPLAY 的值为 beta:0。
你还可以在你的 wine 命令行使用 --display 选项声明你的显示器的值。上面的例子的命令行如下:
$ wine --display="beta:0" foo.exe |