报告什么?
你可能需要在你的bug报告中包括log,配置或者样本文件
系统信息
- 你的Linux发行版或者操作系统,比如:
- Red Hat7.1
- Slackware 7.0 + devel packs from 7.1 ...
- 内核版本:
uname -a
- libc版本:
ls -l /lib/libc[.-]*
- X版本:
X -version
- gcc和ld版本:
gcc -v
ld -v - binutils版本:
as --version
- 如果是全屏模式的问题:
- 窗口管理器类型和版本
- 如果是关于XVIDIX的问题:
- X色深:
xdpyinfo | grep "depth of root"
- X色深:
- 如果是buggy的GUI:
- GTK版本
- GLIB版本
- libpng版本
- bug发生时GUI的状态
硬件和驱动
- CPU信息(仅用于Linux):
cat /proc/cpuinfo
- 显卡制造厂和型号,例如:。
- ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAM
- Matrox G400 DH 32MB SGRAM
- 显卡驱动类型 & 版本,e.g:。
- X built-in driver
- nVidia 0.9.623
- Utah-GLX CVS 2001-02-17
- DRI from X 4.0.3
- 声卡类型 & 驱动,例如:。
- Creative SBLive! Gold with OSS driver from oss.creative.com
- Creative SB16 with kernel OSS drivers
- GUS PnP with ALSA OSS emulation
- 如果不放心的话对linux系统可以再附上
lspci -vv
的输出。
配置问题
如果你在运行./configure
时有问题,或者什么东西的自动检测失败,检查configure.log
。你可能会在那里找到 答案,比如你的机器上存在同一个库的多个版本混合存在的问题。或者你忘记安装开发包(那些-dev后缀的)。如果你认为有bug,在你的bug报告 中附上configure.log
。
编译问题
请附上下列文件:- config.h
- config.mak
Gui/config.mak
libvo/config.mak
libao2/config.mak
崩溃
你应该在gdb
里面运行程序并把完整的输出发送给开发人员,或者你有一个崩溃产生的core dump,你可以从Core
文件中提取 有用的信息,下面教你怎么做:
如果你的崩溃有一个core dump那么继续阅读下一段,否则跳过它。
如何保存一个可重复的崩溃的信息
开启调试代码重新编译程序: ./configure --enable-debug=3
make
gdb 程序
run -v [options-to-程序] filename
bt
disass $pc-32 $pc+32
info all-registers
如何从一个core dump中提取出有意义的信息
请建立下面的命令文件:
bt
disass $pc-32 $pc+32
info all-registers
然后直接在你的命令行下执行下列命令:
gdb 程序 --core=core -batch --command=command_file > 程序.bug