[gvd-devel] GVD questions/bug reports.

Tomer Kol tkol@psl-palm.technion.ac.il
Sun, 24 Jun 2001 01:09:58 +0300 (IDT)


Hi,

I've recently came acorss GVD, and downloaded it to give it a try.
It seems a s very nice program with a lot of potential.
However, I've encountered a few problems. I dont' know ada (yet?) so at
least for now I cannot fix these myself.
(I used the precompiled 1.2 binaries on a debian potato system.)

1. In preferences->general. the last extension is ignored unless followed
   by ";". The default list created if I don't have a prior configuration
   does not have this last semicolon.

2. If a C++ class contains a static member, it cannot be diaplyed
   graphically.
   If I have a class with a static int member, uUsing log-level 4, it
   seems that GVD issues "ptype static int", which gdb does not
   understand because of the "static" part.

3. These two are mentioned as known problems, but the heading says 
   "Known Problems fixed in GVD 1.2.0".
                  ^^^^^^^
   Classes with virtual methods, and/or without new data members.
   Are these problems realy fixed or the "fixed" referes to the workaround
   (using tooltips)? Was it fixed since 1.2? (the files are dated April
   28th, so I was hoping there may be a newer version).

   Trying to display such classe I was asked to report a GVD bug.

   The test program:
/********************************************************/
#include <stdio.h>

class CL {
    const static double x =5;
};

class CL2 {
public:
    int get_x() {return x;}
    virtual int set_x(int val) {x=val; return x;}
protected:
    int x;
};

class CL3 : public CL2 {
public:
    int y;

    virtual int set_x(int val) {x=val+1; return x;}
};

class CL4 : public CL2 {
public:
    virtual int set_x(int val) {x=val+1; return x;}
};

int main()
{
    const static int d = 6;
    CL Z;
    CL2 W;
    CL3 V;
    CL4 U;

    printf("%d\n", d);
}
/**************************************************************/

trying to graph display V (U gives similar results)
the log is :
[1] <- "(gdb) "
[1] -> "graph display V"
[1] -> "print &(V)\n"
[1] <- "$5 = (CL3 *) 0xbffff940\n"
[1] <- "(gdb) "
[1] -> "ptype V\n"
[1] <- "type = class CL3 : public CL2 {\n"
       "  public:\n"
       "    int y;\n"
       "\n"
       "    CL3 & operator=(CL3 const &);\n"
       "    CL3(CL3 const &);\n"
       "    CL3(void);\n"
       "    virtual int set_x(int);\n"
       "}\n"
[1] <- "(gdb) "
[1] -> "ptype CL2 \n"
[1] <- "type = class CL2 {\n"
       "  protected:\n"
       "    int x;\n"
       "\n"
       "  public:\n"
       "    CL2 & operator=(CL2 const &);\n"
       "    CL2(CL2 const &);\n"
       "    CL2(void);\n"
       "    int get_x(void);\n"
       "    virtual int set_x(int);\n"
       "}\n"
[1] <- "(gdb) "
[1] -> "print V\n"
[1] <- "$6 = {<CL2> = {x = 134542340, _vptr. = 0x804e124}, y =
-1073743512}\n"
[1] <- "(gdb) "

# Bug detected in GVD
# Version: 1.2.0
# Date: 20010427
# Target: i686-pc-linux-gnu
Exception name: SYSTEM.ASSERTIONS.ASSERT_FAILURE
Message: debugger-gdb-cpp.adb:248
Call stack traceback locations:
0x840cb93 0x8240a10 0x826548a 0x81f2564 0x822ea8b 0x8230738 0x82957e3
0x828699e 0x82884a7
0x838f882 0x838ef15 0x838d628 0x83b5c29 0x83753e7 0x83749a9 0x836fd9e
0x838ef4b 0x838d628
0x83b5b09 0x836fd44 0x836f2fd 0x83ce2f1 0x83e11ec 0x83e170b 0x83e181d
0x836edd9 0x820b0a0
0x80f7235 0x4013da40




Tomer Kol