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

@Ta 2020-10-18发布,2022-04-25修改 20486点击

点击底部查看全部查看完整步骤(共8步)。


  1. 打开终端。
    图片.png

  2. 输入以下命令(注意,请勿使用root权限,应该使用普通用户权限):

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

这会启动Wine游戏助手,并且在终端上显示一系列日志信息。同时,你的主目录(也就是/home/用户名目录)也会产生一个wine.log,包含相同的日志信息。

图片.png

  1. 如果你要调试安装游戏时遇到的问题,请开始安装操作,在安装失败后跳到第7步。

    如果你想调试游戏运行问题,请选择你想调试的游戏,点击设置按钮。新版没有设置按钮,请右击游戏,选择“配置”。

图片.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'
  1. 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替换为原装。

回复列表(6|显示机器人聊天)
添加新回复
回复需要登录