无忧启动论坛

标题: grldr 2012-12-31 bug反馈 [打印本页]

作者: jianliulin    时间: 2013-1-9 09:13
标题: grldr 2012-12-31 bug反馈
测试环境:

ud引导
U盘被bois认作zip

grldr 没有列出应有的(fd0,0)分区,2012-12-16 有同样的问题,2012-12-05 正常。



[ 本帖最后由 jianliulin 于 2013-1-10 09:33 编辑 ]
作者: 不点    时间: 2013-1-9 10:04
请试试我在这里的一个测试版:

http://reboot.pro/topic/17911-ac ... rom-grub4dos/page-3

按照你给出的失败与成功的信息,我猜测到问题所在,估计以上测试版也是正常的。请试试。


补充:

请问你是否使用了 map 来仿真某个盘?

你可以贴出 map --status 的结果。或者只要证明确实没有执行过任何磁盘仿真便可。

[ 本帖最后由 不点 于 2013-1-9 10:15 编辑 ]
作者: jianliulin    时间: 2013-1-9 10:10
测试结果:

2013-01-02 问题依然存在
作者: 不点    时间: 2013-1-9 10:19
那么可以肯定是这条改动引起的:

2012-12-16  bug fixed(Issue 100: echo to nul after kernel command causes crash).

请 chenall 来修复。
作者: jianliulin    时间: 2013-1-9 10:24
请问你是否使用了 map 来仿真某个盘?

你可以贴出 map --status 的结果。或者只要证明确实没有执行过任何磁盘仿真便可。



没有做任何事情,进入菜单后,直接按C 进入命令行
作者: 不点    时间: 2013-1-9 10:27
好的,我已经知道问题在哪里了。请 chenall 来看看。
作者: chenall    时间: 2013-1-10 07:43
这个不太可能是因为我12-16修复的问题,我猜测可能是因为这里的问题
2012-11-22 (tinybit)minor fixes on geometry_func and others.

@jianliulin
你确定5号的没有问题.

附件是基于5号的源码编译的,你再试试看.

grub4dos-0.4.5c-2013-01-09.7z

254.45 KB, 下载次数: 19, 下载积分: 无忧币 -2


作者: jianliulin    时间: 2013-1-10 08:20
@jianliulin
你确定5号的没有问题.
附件是基于5号的源码编译的,你再 ...



从googlecode下载2012-12-05是正常的,但你提供的是个问题依然存在,是不是编译环境的问题?



作者: 不点    时间: 2013-1-10 08:56
5 日是 Roy 提交的。我猜 Roy 通常使用 Linux 来编译。我也都是用 Linux 来编译,以前是在 Ubuntu、SliTaz 下编译,现在我有了 Mageia,都是在 Mageia 下编译。

如果 Chenall 在 Windows 下编译,倒是有可能出现这种问题。


看到 Jianliulin 标题中的日期写错了。虽然不影响什么,但最好还是改过来,方便以后别人能够搜到这个 bug 报告。

[ 本帖最后由 不点 于 2013-1-10 09:05 编辑 ]
作者: chenall    时间: 2013-1-10 10:49
@不点
我一直是使用WINDOWS+COLINUX编译的.

另外发现R308在命令执行前添加了ERRNUM=0语句,不知是出于什么考虑?感觉好像有些多余了.
作者: chenall    时间: 2013-1-10 11:05
不点有空试试编译一下R308(也就是5号)的版本,看看是不是我的编译器问题.
作者: jianliulin    时间: 2013-1-10 11:05
可以确定是编译环境的问题,我刚才用slitaz 编译了最新的代码, grldr一切正常。
作者: chenall    时间: 2013-1-10 11:06
标题: 回复 #12 jianliulin 的帖子
你的GCC是什么版本的?
作者: chenall    时间: 2013-1-10 11:06
我使用的是我之前弄的那个COLINUX+TINYCORELINUX GCC4.6.1的
作者: jianliulin    时间: 2013-1-10 11:16
标题: 回复 #14 chenall 的帖子
我用的gcc版本是4.5.2

[ 本帖最后由 jianliulin 于 2013-1-10 11:18 编辑 ]
作者: chenall    时间: 2013-1-10 11:33
标题: 回复 #15 jianliulin 的帖子
不知从什么时候开始出的问题了,有条件的话可能试用用GCC4.6编译试试,看看从什么时候开始有问题的.
作者: zxw    时间: 2013-1-10 12:01
奇怪,我用COLINUX+g4d_dev GCC4.6.1编译的没有jianliulin所说的问题。与gcc无关?

[ 本帖最后由 zxw 于 2013-1-10 12:04 编辑 ]
作者: 不点    时间: 2013-1-10 12:38
原帖由 chenall 于 2013-1-10 10:49 发表
@不点

另外发现R308在命令执行前添加了ERRNUM=0语句,不知是出于什么考虑?感觉好像有些多余了.


是 yaya 报告的 bug,为解决 bug,添加了这个。添加 errnum=0 后,抹掉旧的出错信息,后续命令的执行就没问题了。
作者: 不点    时间: 2013-1-10 12:42
原帖由 chenall 于 2013-1-10 11:05 发表
不点有空试试编译一下R308(也就是5号)的版本,看看是不是我的编译器问题.


我前面给 jianliulin 测试的版本,就是我编译的。虽然是基于最新版编译的,但经 jianliulin 测试,结果也是失败。

所以,我的编译环境也有问题。是 Mageia 2,gcc 4.6.3
作者: roytam1    时间: 2013-1-10 15:29
1205是我編的,那麼試試我的r313 gcc-4.7.2編譯看看。

roy@debian:/home/roy$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.0 (wheezy)
Release:        7.0
Codename:       wheezy
roy@debian:/home/roy$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i486-linux-gnu/4.7/lto-wrapper
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.7.2-4' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.7.2 (Debian 4.7.2-4)

grub4dos-0.4.5c-2013-01-10.7z

268.12 KB, 下载次数: 31, 下载积分: 无忧币 -2


作者: 不点    时间: 2013-1-10 15:37
原帖由 zxw 于 2013-1-10 12:01 发表
奇怪,我用COLINUX+g4d_dev GCC4.6.1编译的没有jianliulin所说的问题。与gcc无关?


编译结果在你的机器上没表现出问题,不等于在 jianliulin 的机器上也没问题。只有让 jianliulin 测试之后才知道有没有问题。
作者: zxw    时间: 2013-1-10 15:44
R313 GCC 4.61编译的,请Jianliulin测试一下,看是否正常。

test.7z (264.54 KB, 下载次数: 13)

[ 本帖最后由 zxw 于 2013-1-10 15:49 编辑 ]
作者: jianliulin    时间: 2013-1-10 19:00
中午出去谈业务了,电脑不在家里,要明天才能测试
作者: jianliulin    时间: 2013-1-11 08:08
测试结果:

Roy 提供的没有问题,zxw提供的有问题。
作者: 不点    时间: 2013-1-11 08:33
标题: 回复 #24 jianliulin 的帖子
到目前为止的结果,可以用 gcc 的版本差别来解释。当然还可能有别的可能性,不过,“因 gcc 版本差异造成问题” 的可能性更大一些。

在没有进一步的结果以前,看来我们只能使用 Roy 的编译结果了。
作者: chenall    时间: 2013-1-11 10:00
我觉得应该多试几个版本,找到出现问题的那个版本,看看什么代码的改变导致了不能使用.

稍后我多编译几个版本,麻烦jianliulin 再抽空测试下.
作者: 不点    时间: 2013-1-11 11:25
标题: 回复 #26 chenall 的帖子
既然已经证明 Roy 使用的  gcc 4.7.2 是没问题的,那么,这是否意味着,gcc 4.7.2 已经消除 bug 了?
作者: chenall    时间: 2013-1-11 11:32
@不点.
虽说是和编译器有关,但是若能找到根源,可能是编译优化过度,或其它原因.

比如我们可以改变一下代码让GCC4.5/4.6编译出来的也可以用这样就最好不过了.

附件包含了R304-R307这几个版本,用GCC 4.6.1编译的.

test.7z

168.87 KB, 下载次数: 3, 下载积分: 无忧币 -2


作者: 不点    时间: 2013-1-11 11:55
标题: 回复 #28 chenall 的帖子
我对于编译器的优化参数,毫无研究。估计 Roy 比较清楚。

而且我估计,你用 4.6.1 编译出来的,应该全都是失败的。



哦,我没看清楚。原来你是想找到毛病,修改代码,让它适应有毛病的 gcc 版本。但我觉得这恐怕很难,难度很高。

因此,我认为,还是转换到 gcc 4.7.2 比较好。可以在文档中写明建议的 gcc 版本,并给出警告:不适当的 gcc 版本,会导致 grub4dos 无法正常运行。
作者: jianliulin    时间: 2013-1-11 13:11
标题: 回复 #28 chenall 的帖子
内置菜单为:graphicsmode -1 600:800  ,304~ 307 都和之前出错的一样,如图:




不改变菜单,则可以找到(fd0,0)分区,如下图:

作者: chenall    时间: 2013-1-11 14:11
看来这个问题,可能存在很久了.最近的版本大多是roy上传的,所以没有发现.唉,先不管它了,暂时还是用4.7.2编译吧
作者: chenall    时间: 2013-1-11 14:28
标题: 回复 #18 不点 的帖子
关于添加errnum=0的报告,我搜了一下没有找到原始的报告,只找到可能是因为errnum=0导致的新问题的报告.
http://bbs.wuyou.net/redirect.php?tid=180142&goto=newpost
http://bbs.wuyou.net/viewthread. ... able&tid=256809

所有命令执行都是使用run_line的,而这个里面就有errnum =0的语句.所以我觉得在每个命令里面设置errnum =0 是多余的,影响了一点点效率,
作者: 不点    时间: 2013-1-11 15:36
是这样的。当由于某种原因,一条命令执行出错之后,errnum 被设置为非零。下一条命令执行之后,errnum 又没有清除掉,导致出错信息的显示。

yaya 报告的,在时空论坛。

这个可能只是在命令行下才有问题。你的 run_line 可能不适用于命令行,所以命令行下有问题。

无论如何,添加 errnum = 0 后没有别的副作用。你看到的问题报告,是唯一的一个问题报告,已经解决了。

==============

另外,既然 Roy 已经编译了一个版本,我觉得你可以把 Roy 的编译结果上载到 googlecode 上,供大家下载。

虽然 shao miller 的补丁也编译进去了,但目前没有什么影响。由于我准备撤掉 shao miller 的补丁(正在观望、讨论),所以,最好在近期不要更新 svn 代码。
作者: chenall    时间: 2013-1-11 16:46
以前是独立的(有三套),后面我就改成统一的了。
所有命令都用这个函数了。
用手机上,请roy上载一下。
作者: 不点    时间: 2013-1-11 17:17
原帖由 chenall 于 2013-1-11 16:46 发表
以前是独立的(有三套),后面我就改成统一的了。
所有命令都用这个函数了。


但是却出了 bug,由 yaya 报告了。命令行下有此问题。

目前的改动(即,添加 errnum=0)似乎是必须的。但如果你确信没必要,你可以注释掉。

====================

我突然想到,jianliulin 的启动环境很关键。这个环境是个宝贝,它能反复再现问题,是个很好的测试平台。

这套环境可不敢丢失,万一丢失,那就是巨大的损失,谁也不敢保证还能有第二个环境来做这个测试。

[ 本帖最后由 不点 于 2013-1-11 17:25 编辑 ]
作者: jianliulin    时间: 2013-1-11 18:06
1.我的华硕A8se笔记本电脑也重现本次报告的错误。



2.我将slitaz 的gcc更新到4.6.3 编译的grldr果然出现错误。

[ 本帖最后由 jianliulin 于 2013-1-11 19:41 编辑 ]
作者: chenall    时间: 2013-1-12 07:16
如果要使用GCC.4.6的版本编译需要多试试之前的几个版本,然后找到问题的版本,再看看有没有办法解决.这些比较麻烦,也许roy会有办法,^_^

在googlecode上,可以下载到我编译的版本,看看哪个版本开始不能使用.
点击某个下载版本的下载页面看UploadedBy,找到我上传的最近那几个版本来测试.
作者: jianliulin    时间: 2013-1-12 08:49
标题: 回复 #37 chenall 的帖子
经测试:grub4dos-0.4.5c-2012-02-27.7z 开始引入此bug,grub4dos-0.4.5c-2012-02-22.7z 还是正常的。
作者: chenall    时间: 2013-1-12 11:18
标题: 回复 #38 jianliulin 的帖子
谢谢你的测试,看了一下更新记录.

发现这个正是添加支持GCC4.6编译的版本,看来是4.6没有办法了,不知roy有没有什么办法.

我想还是升级到gcc 4.7来编译好了^_^.
不过我是使用tinycore的,这个里面没有GCC 4.7,不知GCC 4.5的是不是正常的.
作者: roytam1    时间: 2013-1-12 12:22
原帖由 chenall 于 2013-1-12 11:18 发表
谢谢你的测试,看了一下更新记录.

发现这个正是添加支持GCC4.6编译的版本,看来是4.6没有办法了,不知roy有没有什么办法.

我想还是升级到gcc 4.7来编译好了^_^.
不过我是使用tinycore的,这个里面没有GCC 4. ...

我暫時沒方案。
作者: chenall    时间: 2013-1-13 11:08
麻烦jianliulin 再试下这个,使用GCC4.7.2编译的.

不过因为我使用的是Tiny Core Linux,这个还没有GCC4.7的软件包,我又不会自己编译GCC4.7
所以从Debian的软件包中提取了最新的GCC 4.7.2版,把它转换成tcz格式,这样在Tiny Core Linux中就可以使用了.

不知编译出来的会不会有问题.^_^

grub4dos-0.4.5c-2013-01-13.7z

253.9 KB, 下载次数: 27, 下载积分: 无忧币 -2


作者: pseudo    时间: 2013-1-13 21:38
@yaya
grub4dos-0.4.6a-2013-01-13仍存在no GRLDR问题,见#271楼:
http://bbs.wuyou.net/forum.php?m ... ;page=28#pid2648141

而我在#298楼:
http://bbs.wuyou.net/forum.php?m ... ;page=30#pid2653498
提到的#207楼:
http://bbs.znpc.net/forum.php?mo ... =6176&pid=76475
的版本无问题。
作者: roytam1    时间: 2013-1-13 23:53
原帖由 pseudo 于 2013-1-13 21:38 发表
@yaya
grub4dos-0.4.6a-2013-01-13仍存在no GRLDR问题,见#271楼:
http://bbs.wuyou.net/forum.php?m ... ;page=28#pid2648141

而我在#298楼:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=27070 ...

207樓的尚未提交。
作者: jianliulin    时间: 2013-1-14 08:25
标题: 回复 #41 chenall 的帖子
麻烦jianliulin 再试下这个,使用GCC4.7.2编译的.

不过因为我使用的是Tiny Core Linux,这个还没有GCC4.7的软件包,我又不会自己编译GCC4.7
所以从Debian的软件包中提取了最新的GCC 4.7.2版,把它转换成tcz格式,这样在Tiny Core Linux中就可以使用了.

不知编译出来的会不会有问题.^_^


测试正常了!!!!!
作者: zhaohj    时间: 2013-1-14 08:54
那目前看来,gcc-4.6.x编译的都有点小问题,而gcc-4.7.x编译的都正常。
作者: venom    时间: 2013-1-14 09:46
标题: 标题
我的64位WIN7无法架设CHENALL说的那个LINUX环境和编译器,不知道用雨林木风的STARTOS起点系统做环境行不行
作者: chenall    时间: 2013-1-14 09:49
标题: 回复 #44 jianliulin 的帖子
谢谢,这样我就放心了,^_^
作者: chenall    时间: 2013-1-14 09:50
标题: 回复 #46 venom 的帖子
一般的LINUX系统都可以吧,WINDOWS下也行的.MINGW
作者: venom    时间: 2013-1-14 10:29
找个时间下载个GCC编译器到雨林木风的系统下研究研究
作者: freesoft00    时间: 2013-1-14 22:44
http://bbs.wuyou.net/forum.php?m ... page=504#pid2658602
这里是不是问题




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3