How to report PinK bugs

You may help us - the PinK developers - and them - the PinK users - a lot, if you report inconsistencies or even bugs of PinK to pink@hermes.desy.de.

Since there are different possible classes of bugs, the following list should give you some hints, how to report a bug in a way, that we have as much information as needed to fix the problem.


Command or method syntax

It could happen, that the actual command or method syntax of the PinK executable does not fit the documented one or that the implementation of a command or method is really buggy and reports a syntax error even if you call it with the right number and type of arguments.

In those cases please report simply the name of the command or method and a short discription of the problem.


Command or method semantics

If you should - after the consultation of the available documentation - come to the conclusion, that a command or method does not behave like it's supposed to do, this might also be a bug.

In those cases report a description of your problem including your understanding of the command semantics and your supposition of what's going wrong. A copy of your script may also be usefull to find out misunderstandings.


Crashes

If PinK should ever crash and produce a core dump, it is necessary for us to obtain both, the script you were executing and the core file itself. For the analysis of the latter it is necessary that the PinK executable was compiled and linked using the debug option.

If you're using PinK not on the hermes machine, please use a debugger of your choice to produce a stack backtrace and a listing of the local variables. Here is an example session how to do this using gdb:

maf@hermes:/export/home/maf 101>gdb /hermes/new/bin/pinky 
GDB is free software and you are welcome to 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.
GDB 4.13 (mips-sgi-irix5), Copyright 1994 Free Software Foundation, Inc...

(gdb) core ~kai/slow_control/tcl/pinkydump
Core was generated by `pinky'.
Program terminated with signal 10, Bus error.
Reading symbols from /usr/local/lib/libtcl.so...done.
Reading symbols from /usr/local/lib/libtk.so...done.
Reading symbols from /cern/pro/lib/libpawlib.so...done.
Reading symbols from /cern/pro/lib/libmathlib.so...done.
Reading symbols from /usr/local/lib/libX11.so.6.0...done.
Reading symbols from /usr/lib/libm.so...done.
Reading symbols from /lib/libc.so.1...done.
#0  0x49a0d4 in so_write (elem=0xffffffff, cmd=3, len=0, buf=0x0, 
    memstat=mem_keep) at server.c:598
server.c:598: No such file or directory.

(gdb) where
#0  0x49a0d4 in so_write (elem=0xffffffff, cmd=3, len=0, buf=0x0, 
    memstat=mem_keep) at server.c:598
#1  0x4854d0 in co_Close (elem=0x7fff493c) at ccommand.c:600
#2  0x47fba4 in dadDisconnect (Id=22, ok=0x7fff4960) at dadlib.c:216
#3  0x47fee4 in dadExit () at dadlib.c:270
#4  0x450384 in pink_dadexit (interp=0x10125018) at dadexit.c:57
#5  0x428f20 in pink_exit (dummy=0x0, interp=0x10125018, argc=1, 
    argv=0x7fff4a90) at exit.c:71
#6  0x5ffa7608 in Tcl_Eval ()
#7  0x5ffb3cc8 in Tcl_RecordAndEval ()
#8  0x41b050 in StdinProc (clientData=0x0, mask=1) at tkMain.c:387
#9  0x5d85b8 in Tk_DoOneEvent () at tkEvent.c:1358
#10 0x5d89c0 in Tk_MainLoop () at tkEvent.c:1535
#11 0x41ad90 in main (argc=1, argv=0x7fff5ebc) at tkMain.c:298

(gdb) info locals
cmdptr = (int *) 0x3
cmdlen = 0


Bugs of the Browser

Even if the browser pb is not officially supported, the same rules as for crashes apply to bug reports concerning this tool. Please include the following information in your report:
  1. Which data did you browse (File, Server, etc.)?
  2. Which command line flags did you use to start pb?
  3. (How) can the bug be reproduced (sequence of button pushes etc.)?
  4. If tcl/Tk reports a stack trace include it in you message.
The stack trace can usually be requested in a separte dialog box and looks like this example:
can't read "pritabinfo(dcBurstInfo,Column,iHits[1],Expr)": no such element in array
    while executing
"set expr    $pritabinfo($tabname,Column,$fname,Expr)..."
    (procedure "_pritab_getvalue" line 9)
    invoked from within
"_pritab_getvalue $name $fname"
    invoked from within
"set value   [_pritab_getvalue $name $fname]..."
    ("foreach" body line 3)
    invoked from within
"foreach fname $pritabinfo($name,Columns) {
      if $pritabinfo($name,Column,$fname,Hidden) continue
      set value   [_pritab_getvalue $name $fname] ..."
    ("for" body line 19)
    invoked from within
"for {set i 1; set y 0} {$i <= $rows} {incr i} {
    $adname fetch ID $i

#----------------------------------------------------------------------#
# Ch ..."
    (procedure "tab_update" line 44)
    invoked from within
"tab_update $name 1"
    invoked from within
"return [tab_update $name 1]..."
    (procedure "tab_print" line 122)
    invoked from within
"tab_print [lindex "dcBurstInfo dcScalInfo dcSyncInfo dscSCALERS" [.adbrowser.help.selector2.f.entries curselection]]"
    (command bound to event)


 Previous  Up  Next
This page is maintained by pink@hermes.desy.de; last modification: May 8 17:28 .