如何报告Bug,常用信息的收集,方法等

来源:互联网 发布:网络精灵pipopa国语 编辑:程序博客网 时间:2024/04/29 18:46

报告什么?

你可能需要在你的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"
  • 如果是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运行程序:

    gdb 程序

现在你在gdb内。输入:

    run -v [options-to-程序] filename

然后再现你的崩溃。一旦你成功了,gdb将回到命令行,你需要输入

    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


 
原创粉丝点击