Personal tools
Sections
Path: Home Documentation Reporting A Problem
Document Actions

Reporting A Problem


Hopefully the preferred method of reporting a bug is now via the Bug Tracker, but please see the instructions below for details of how to obtain information to submit.


1. The Mailing list

If you cannot solve your problem, first try to ask on the mailing list. Maybe someone could help you, who knows ? But please:

  • Give details about your configuration : your processor, your distribution (Mandriva, SuSE, Debian, etc.) with the version number, your kernel version, and everything you find useful.
  • Tell which version of Gambas you use, and if you are using the gb.qt or the gb.gtk component for projects having a GUI.
  • Try to isolate the problem in a small Gambas project, if possible.

2. Reporting a bug or a problem

As a last resort, and if you are almost sure that it is an awful bug, you can send me an e-mail, but please:

  • Put the word "bug" in the subject.
  • Give details about your configuration : your processor, your distribution (Mandriva, SuSE, Debian, etc.) with the version number, your kernel version, and everything you find useful.
  • Tell which version of Gambas you use, and if you are using the gb.qt or the gb.gtk component for projects having a GUI.
  • If it is a problem during the compilation or the execution of a program, send your Gambas project so that I deal with it.
  • If you don't want to send your project, try at least to isolate the problem in a small Gambas project.
  • If it is a problem during the compilation or installation of Gambas, give the options you pass to ./configure and the output of the three commands (./configure, make, and make install). To do that, type the following command in a terminal :
    $ ( ./configure; make; make install ) > output.txt 2>&1
    and send the "output.txt" file.

How to report a crash (a segmentation fault, or a signal #11) - Stable version

If Gambas crashes, you can trace it and tell me where it crashed exactly. It is very helpful for me.

If you don't know how to do that, read the following carefully :

  • Open a terminal, and go to the directory of the project that crashes. If the IDE crashes, go to the IDE sources in the app/gambas directory of the source package. For example :
  • $ cd ~/gambas-1.0.XX/app/gambas
  • Then compile all the IDE.
  • $ gbc -agt
  • Launch the GNU debugger.
  • $ gdb gbx
    GNU gdb 6.3-3.1.102mdk (Mandrakelinux)
    Copyright 2004 Free Software Foundation, Inc.
    GDB is free software, covered by the GNU General Public License, and you are
    welcome to change it and/or distribute copies of it under certain conditions.
    Type "show copying" to see the conditions.
    There is absolutely no warranty for GDB. Type "show warranty" for details.
    This GDB was configured as "i586-mandrake-linux-gnu"...Using host libthread_db library
    "/lib/tls/libthread_db.so.1".
    (gdb)
  • You must type the following to prevent shared libraries to be preloaded.
  • (gdb) set args -p
  • Run the program until it crashes.
  • (gdb) run
    Starting program: /opt/gambas/bin/gbx
    ...
    Program received signal SIGSEGV, Segmentation fault.
    0x4011010e in select () from /lib/i686/libc.so.6
    (gdb)
  • Then type the 'bt' command to get the stack contents.
  • (gdb) bt
    #0 0x4011010e in select () from /lib/i686/libc.so.6
    #1 0x408ae730 in typeinfo for QMotifStyle () from /usr/lib/qt3/lib/libqt-mt.so.3
    #2 0x4040e270 in QApplication::enter_loop() () from /usr/lib/qt3/lib/libqt-mt.so.3
    #3 0x401d5b0b in MyMainWindow::showModal() (this=0x81d56c0) at CWindow.cpp:770
    #4 0x401d4a8b in CWINDOW_show_modal(void*, void*) (_object=0x81cc7c8, _param=0xbffff4c0)
    at CWindow.cpp:222
    #5 0x0804f624 in EXEC_call_native (exec=0x401d4a60 ,
    object=0x81cc7c8, param=0xbffff4c0 "rubbish", type=4) at exec.c:592
    #6 0x0804f79f in EXEC_native () at exec.c:643
    #7 0x08050da3 in EXEC_loop () at exec_loop.c:1019
    #8 0x0804f418 in EXEC_function_real (keep_ret_value=0 '\0') at exec.c:505
    #9 0x08066ad6 in main (argc=1, argv=0xbffff814) at gbx.c:246
    #10 0x40061082 in __libc_start_main () from /lib/i686/libc.so.6
    (gdb)
  • Now send me the previous list so that I could understand what happened. Note that the previous example was not a real crash...

How to report a crash (a segmentation fault, or a signal #11) - Development version

This is the same procedure, except that some paths and filenames change.

  • Open a terminal, and go to the directory of the project that crashes. If the IDE crashes, go to the IDE sources in the app/src/gambas2 directory of the source package. For example :
  • $ cd ~/gambas2-1.9.XX/app/src/gambas2
  • Then compile all the IDE.
  • $ gbc2 -agt
  • Launch the GNU debugger.
  • $ gdb gbx2
    GNU gdb 6.3-3.1.102mdk (Mandrakelinux)
    Copyright 2004 Free Software Foundation, Inc.
    GDB is free software, covered by the GNU General Public License, and you are
    welcome to change it and/or distribute copies of it under certain conditions.
    Type "show copying" to see the conditions.
    There is absolutely no warranty for GDB. Type "show warranty" for details.
    This GDB was configured as "i586-mandrake-linux-gnu"...Using host libthread_db
    library "/lib/tls/libthread_db.so.1".
    (gdb)
  • You must type the following to prevent shared libraries to be preloaded.
  • (gdb) set args -p
  • Run the program until it crashes.
  • (gdb) run
    Starting program: /opt/gambas/bin/gbx2
    ...
    Program received signal SIGSEGV, Segmentation fault.
    0x4011010e in select () from /lib/i686/libc.so.6
    (gdb)
  • Then type the 'bt' command to get the stack contents.
  • (gdb) bt
    #0 0x4011010e in select () from /lib/i686/libc.so.6
    #1 0x408ae730 in typeinfo for QMotifStyle () from /usr/lib/qt3/lib/libqt-mt.so.3
    #2 0x4040e270 in QApplication::enter_loop() () from /usr/lib/qt3/lib/libqt-mt.so.3
    #3 0x401d5b0b in MyMainWindow::showModal() (this=0x81d56c0) at CWindow.cpp:770
    #4 0x401d4a8b in CWINDOW_show_modal(void*, void*) (_object=0x81cc7c8, _param=0xbffff4c0)
    at CWindow.cpp:222
    #5 0x0804f624 in EXEC_call_native (exec=0x401d4a60 ,
    object=0x81cc7c8, param=0xbffff4c0 "rubbish", type=4) at exec.c:592
    #6 0x0804f79f in EXEC_native () at exec.c:643
    #7 0x08050da3 in EXEC_loop () at exec_loop.c:1019
    #8 0x0804f418 in EXEC_function_real (keep_ret_value=0 '\0') at exec.c:505
    #9 0x08066ad6 in main (argc=1, argv=0xbffff814) at gbx.c:246
    #10 0x40061082 in __libc_start_main () from /lib/i686/libc.so.6
    (gdb)
  • Now send me the previous list so that I could understand what happened. Note that the previous example was not a real crash...
I will try to answer as quickly as possible, but do not forget I have few time to help people :-(