Wine 用户指南(六)
翻译:寒蝉退士
译者声明:译者对译文不做任何形式的担保,译者对译文不拥有任何权利并且不负担任何义务。
原文:http://www.winehq.com/Docs/wine-user/
第6章. 找出和报告缺陷
6.1. 如何报告一个缺陷
有两种方式来报告一个缺陷。其一是使用一个简单的 perl 脚本,如果你不想花很长时间来生成报告则建议你使用这种方式。它被设计来供所有人使用,从新手到高级开发者。你也可以通过困难的方式制作一个缺陷报告 -- 高级开发者可能有此偏好。
6.1.1. 简单的方式
1. 要使这种方法工作你的计算机上必须有 perl。要找出你是否有 perl,可运行 which perl。如果它返回象 /usr/bin/perl 这样的东西,则你有可运行的 Perl。否则跳到(skip on down to)"困难方式"。如果你不确信,继续进行好了。当你运行这个脚本时,如果你没有 perl,状况是会是显而易见的。
2. 把目录改变为 <dirs to wine>/tools
3. 键入 ./bug_report.pl 并给随着这个目录。
4. 向 comp.emulators.ms-windows.wine newsgroup 发送一个消息并加上 "Nice Formatted Report" 附件。如果可能的话,上载完整的调试输出到一个 web/ftp 服务器并在你的消息中提供地址。
6.1.2. 困难的方式
一些简单的建议可以使你的缺陷报告更有用(这样更容易得到回答和修理):
1. 尽可能多的传送信息。
这意味着我们更多的信息而不是一个简单的 "我运行 MS Word 的时候它崩溃了。你知道为什么吗?" 至少包括下列信息:
★ 你使用的 Wine 版本(运行 wine -v)
★ 你使用的操作系统,什么发布(如果是的话),和什么版本
★ 编译器和版本(运行 gcc -v)
★ Windows 版本,如果你安装了的话
★ 你正在尝试运行的程序,它的版本号,和从中获取这个程序的一个 URL(如果可获取的话)
★ 你启动 wine 的命令行
★ 你认为有关的或有帮助的任何其他信息,如在 X 问题的情况下 X 服务器版本,libc 版本等。
2. 加上 --debugmsg +relay 选项重新运行程序(比如,wine --debugmsg +relay sol.exe)。
如果在运行你的程序时 Wine 崩溃了,这些信息对于对我们找出导致崩溃的原因很重要。这可能输出大量(好多 MB)信息,所以最好输出到一个文件中。在 Wine-dbg> 提示符出现的时候,键入 quit。
你可能想要尝试 +relay,+snoop 而不是 +relay,但是请注意 +snoop 是非常不稳定的并且经常比一个简单的 +relay 更早崩溃! 如果在这种情况下,则请只使用 +relay!! 在多数情况下加上 +snoop 时的缺陷报告是没用的!
要跟踪输出请使用下列命令:
所有 shell:
$ echo quit | wine -debugmsg +relay [other_options] program_name >& filename.out;
$ tail -n 100 filename.out > report_file
(这将把 wine 的调试信息只打印到文件接着自动退出。使用这个命令可能是个好主意,因为 wine 打印输出太多的调试信息,它们会溢出终端,吞噬 CPU。)
tcsh 和其他 csh 式样的 shell:
$ wine -debugmsg +relay [other_options] program_name |& tee filename.out;
$ tail -100 filename.out > report_file
bash 和其他 sh 式样的 shell:
$ wine -debugmsg +relay [other_options] program_name 2>&1 | tee filename.out;
$ tail -100 filename.out > report_file
report_file 将包含最后一百行调试输出,包括寄存器复制和回溯(backtrace),这是信息中最重要的部分。即使你不理解它们的意思,也请不要删除它们。
3. 传送你的报告到新闻组 comp.emulators.ms-windows.wine
在你的帖子中,包括第1部分的所有信息,并插入在第二部分中的输出文件中的文本。如果你这样作了,你收到一些有帮助的响应的机会就会很大。
6.1.3. 问题和注释
如果读了本文档之后还有一些东西搞不明白,或者认为可以解释的更好,或者是应该包括的,请向 comp.emulators.ms-windows.wine 发帖子来让我们知道如何改进这个文档。