whatshotWine游戏助手调试Wine应用的方法(求助时可用)

@Ta 10-18 22:49 132点击
  1. 打开终端。
    图片.png

  2. 输入以下命令:

    killall python3; WINEDEBUG=+loaddll,+pid,+timestamp /opt/apps/net.winegame.client/files/bin/winegame 2>&1 | tee ~/Desktop/wine.log
    

这会启动Wine游戏助手,并且在终端上显示一系列日志信息。同时,你的桌面上也会产生一个wine.log,包含相同的日志信息。如果桌面上没产生,说明你的桌面文件夹可能不叫Desktop,请自行修改日志路径~/Desktop/wine.log

图片.png

  1. 选择你想调试的游戏,点击设置按钮。

图片.png

  1. 在“运行环境选项”中,把“输出调试信息”选为“根据环境变量”,然后点击“保存”。

注意,要选根据环境变量不是选启用,不要选错!

图片.png

  1. 启动游戏,观察终端上是否有大量日志输出。如果输出的日志很少,说明设置不正确,请确认你完成了第4步。日志量应该非常大,类似下图,出现很多dll字样,一眼望不到头:

图片.png

  1. 进行你想进行的操作,然后等问题发生。

  2. 问题发生后,如果你会分析日志,你就可以开始分析了。如果不会,请把桌面上的wine.log发给会分析日志的人(比如我,请@老虎会游泳),然后看看他们有什么结论。

  3. 如果你想停止调试,把“输出调试信息”改为“禁用”即可。

图片.png


日志分析技巧

  1. 寻找感兴趣的内容:

    # 查看历史日志
    cat ~/Desktop/wine.log | grep --line-buffered -iE 'exe|dx|d3d|ddraw|found|winedbg|err|privateprofile'
    
    # 持续跟踪新产生的日志
    tail -F ~/Desktop/wine.log | grep --line-buffered -iE 'exe|dx|d3d|ddraw|found|winedbg|err|privateprofile'
    
  2. Wine官方调试指南:


关于winecfg的“函数库顶替”(dll override)功能

wine有两种系统dll,原生dll(就是windows用的dll)和内建dll(wine开发者编写的dll)。把程序需要的部分dll由内建换成原生,有时候可以提高程序的稳定性,修复程序执行错误。

winetricks可以替换常见dll,我们也可以从windows手动复制dll,然后在winecfg里面设置该dll为“原装先于内建”,以便wine加载它。

不过,对于程序特有的dll,因为系统里不存在,所以用的总是原装dll,通常不存在问题。

但是,并不是所有dll都可以用原装,有时候内建确实更好。而把哪些dll由内建改为原装,就是一个需要根据经验做出的决定了。

上面生成的日志里有“这个程序加载了哪些dll”这样的信息。适配wine应用,基本上就是根据这些信息做出决定,选择把哪些内建dll替换为原装。

回复列表(0)
帖子没有回复
添加新回复
回复需要登录

[聊天-此处没有老虎] 情醉中国风: