2013/5/23 楚石 <
zm3...@gmail.com>:
> config.log文件决计不错,从编译目录复制出来的。我制定了 -O0,gentoo肯定是按照这个参数给编译的,但为何config的时候用的
> -O2,因为没仔细研究过编译过程,给不出合理的解释来:)
你有办法保留编译过程产生的文件吗?看一下 wine的源代码根目录下的 Makefile 文件, CFALGS 是 -O0 还是 -O2? 从
你提供的 config.log 推测,Makefile里应该也是 -O2,这样编译的结果应该也是 -O2,你制定的 -O0 可能没起作用。
你也可以把编译过程的日志保存一下,grep 一下 gcc, 看看是 -O2 编译的还是 -O0 编译的?
> 现在的情况是,我修改了自动编译参数后,得到的wine-1.5.30,是能够正常运行QQ国际版和QQ2012的。
你现在还有办法编译出会崩溃的版本吗?
如果你 *确保* 可以编译出 *会崩溃* 的版本,麻烦你做下面的实验:
使用会崩溃的版本:
1,用winedbg启动QQ
$ WINEDEBUG=+tid,+seh,+win winedbg QQ.exe
2, 在调试器中输入 c (continue),直到 QQ 崩溃
winedbg> c
3, 将全程的日志和backtrace保存为 old.txt
然后,
1',打上我附件中的patch: 0001-make-createwindow-hotpatchable.txt, 重新编译安装,*保证编译参数和上次完全一样*
2', 用winedbg启动QQ
3', 在调试器中输入 c (continue),看看QQ是否会崩溃
4', 将全程的日志和backtrace(如果有的话),保存为new.txt
使用script命令可能可以让你保存调试信息更方便一些,直接从终端复制也行,确保日志完整就好了。
感谢测试!