public inbox for insight-prs@sourceware.org
help / color / mirror / Atom feed
* Re: insight/206: SEGV in Tcl_FindCommand
@ 2003-01-24 13:43 Keith Seitz
  0 siblings, 0 replies; 4+ messages in thread
From: Keith Seitz @ 2003-01-24 13:43 UTC (permalink / raw)
  To: kseitz; +Cc: insight-prs

The following reply was made to PR insight/206; it has been noted by GNATS.

From: Keith Seitz <keiths@redhat.com>
To: Lloyd J Lewins <llewins@raytheon.com>
Cc: insight-gnats@sources.redhat.com
Subject: Re: insight/206: SEGV in Tcl_FindCommand
Date: 24 Jan 2003 05:36:29 -0800

 On Thu, 2003-01-23 at 17:15, Lloyd J Lewins wrote:
 > Running the same version of insight with -nw as you suggest (on cygwin
 > platform) I do not see the problem:
 
 Hmmm. That is odd. My gdb (cvs head) locks up on me when I ask it to do
 this.
 
 > Since the SEGV is in tcl functions, I am surprised this is a problem with
 > gdb -- I thought it was only insight which used tcl/tk.
 
 Typically, insight will not crash in a platform-specific way. You're
 using c++ and there has been a lot of churn in gdb (and its
 dependencies) in this area.
 
 You're using the standard cygwin compiler, 2.95.xxx, right? I'm using
 3.2. Maybe that's why. In any case I don't think that Insight is really
 crashing in tcl/tk. I think that the stack has been corrupted.
 
 Let's try this... Run your program (in insight) to where you would add
 it to the watch window. Then open a console window and enter:
 
 (gdb) tk gdb_variable create -expr b
 var1 (<-- could be different object id)
 (gdb) tk var1 numChildren
 ??
 (gdb) tk var1 children
 ??
 
 What's the output? Do either of these cause a crash? If they do, try the
 same thing in MI:
 
 $ gdb -i=mi main
 (gdb)
 break 170
 (gdb)
 run
 (gdb)
 -var-create - * b
 ^done,name="var1",numchild="2",type="classB *"
 (gdb)
 -var-list-children var1
 ???
 
 What does this show? I'll see about updating my cygwin box (er, that
 means actually turning it on, which I haven't done in a very long time),
 but it's going to take quite some time. Please ping me on this if you
 don't hear from me for a week.
 
 Keith
 
 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: insight/206: SEGV in Tcl_FindCommand
@ 2003-01-24  1:23 Lloyd J Lewins
  0 siblings, 0 replies; 4+ messages in thread
From: Lloyd J Lewins @ 2003-01-24  1:23 UTC (permalink / raw)
  To: kseitz; +Cc: insight-prs

The following reply was made to PR insight/206; it has been noted by GNATS.

From: "Lloyd J Lewins" <llewins@raytheon.com>
To: kseitz@sources.redhat.com, insight-prs@sources.redhat.com,
   kseitz@sources.redhat.com, llewins@raytheon.com, nobody@sources.redhat.com,
   insight-gnats@sources.redhat.com
Cc:  
Subject: Re: insight/206: SEGV in Tcl_FindCommand
Date: Thu, 23 Jan 2003 17:15:55 -0800

 Running the same version of insight with -nw as you suggest (on cygwin
 platform) I do not see the problem:
 
 ~/bugs/gdb/Tcl-FindCommand-SEGV>insight -nw main.exe
 GNU gdb 2003-01-09-cvs
 Copyright 2002 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 "i686-pc-cygwin"...
 (gdb) b 170
 Breakpoint 1 at 0x401280: file main.cc, line 170.
 (gdb) r
 Starting program: /home/00c3197/bugs/gdb/Tcl-FindCommand-SEGV/main.exe
 
 Breakpoint 1, main () at main.cc:170
 170     }
 (gdb) p *b
 $1 = {<classC> = {nameV = {static npos = 4294967295, static nilRep = {len
 = 0,
         res = 0, ref = 2, selfish = false}, dat = 0xa012378 "foo"},
     myClassAV = @0xa0b3780}, _vb$classC = 0xa011af8, valV = 0,
   _vptr$classB = 0x4156bc <classB virtual table>}
 (gdb)
 
 Since the SEGV is in tcl functions, I am surprised this is a problem with
 gdb -- I thought it was only insight which used tcl/tk.
 
 Lloyd J. Lewins
 Raytheon Co.,
 llewins@raytheon.com
 +1 (310) 647-8832
 
 
                                                                                                                                                 
                       kseitz@sources.r                                                                                                          
                       edhat.com                To:      insight-prs@sources.redhat.com, kseitz@sources.redhat.com, llewins@raytheon.com,        
                                                nobody@sources.redhat.com                                                                        
                       01/23/03 10:41           cc:                                                                                              
                       AM                       Subject: Re: insight/206: SEGV in Tcl_FindCommand                                                
                       Please respond                                                                                                            
                       to kseitz;                                                                                                                
                       Please respond                                                                                                            
                       to insight-prs;                                                                                                           
                       Please respond                                                                                                            
                       to kseitz;                                                                                                                
                       Please respond                                                                                                            
                       to llewins;                                                                                                               
                       Please respond                                                                                                            
                       to nobody;                                                                                                                
                       Please respond                                                                                                            
                       to insight-gnats                                                                                                          
                                                                                                                                                 
                                                                                                                                                 
 
 
 
 
 Synopsis: SEGV in Tcl_FindCommand
 
 Responsible-Changed-From-To: unassigned->kseitz
 Responsible-Changed-By: kseitz
 Responsible-Changed-When: Thu Jan 23 18:41:46 2003
 Responsible-Changed-Why:
     Mine
 State-Changed-From-To: open->closed
 State-Changed-By: kseitz
 State-Changed-When: Thu Jan 23 18:41:46 2003
 State-Changed-Why:
     This is really a bug in GDB, not insight. Try running this with command
 line gdb (on any platform), and it will exhibit similar behavior (crash or
 lock-up). I suggest running this example on GDB and posting a report to
 gdb@sources.redhat.com. Here's what you'll want to do:
 
     $ c++ -g main.cc -o main
     $ gdb -nx -q main  [or insight -nw main]
     (gdb) break 170
     (gdb) r
     (gdb) p *b
 
     This will reproduce the whole thing.
 
 http://sources.redhat.com/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=insight&pr=206
 
 
 
 
 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: insight/206: SEGV in Tcl_FindCommand
@ 2003-01-23 18:41 kseitz
  0 siblings, 0 replies; 4+ messages in thread
From: kseitz @ 2003-01-23 18:41 UTC (permalink / raw)
  To: insight-prs, kseitz, llewins, nobody

Synopsis: SEGV in Tcl_FindCommand

Responsible-Changed-From-To: unassigned->kseitz
Responsible-Changed-By: kseitz
Responsible-Changed-When: Thu Jan 23 18:41:46 2003
Responsible-Changed-Why:
    Mine
State-Changed-From-To: open->closed
State-Changed-By: kseitz
State-Changed-When: Thu Jan 23 18:41:46 2003
State-Changed-Why:
    This is really a bug in GDB, not insight. Try running this with command line gdb (on any platform), and it will exhibit similar behavior (crash or lock-up). I suggest running this example on GDB and posting a report to gdb@sources.redhat.com. Here's what you'll want to do:
    
    $ c++ -g main.cc -o main
    $ gdb -nx -q main  [or insight -nw main]
    (gdb) break 170
    (gdb) r
    (gdb) p *b
    
    This will reproduce the whole thing.

http://sources.redhat.com/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=insight&pr=206


^ permalink raw reply	[flat|nested] 4+ messages in thread

* insight/206: SEGV in Tcl_FindCommand
@ 2003-01-21  0:53 llewins
  0 siblings, 0 replies; 4+ messages in thread
From: llewins @ 2003-01-21  0:53 UTC (permalink / raw)
  To: insight-gnats


>Number:         206
>Category:       insight
>Synopsis:       SEGV in Tcl_FindCommand
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Jan 21 00:53:01 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Lloyd J. Lewins
>Release:        GNU gdb 2003-01-09-cvs
>Organization:
>Environment:
cygwin
>Description:
Compiled wih gcc:
gcc version 2.95.3-5 (cygwin special)

Using Insite cvs January 9:
GNU gdb 2003-01-09-cvs

Upon examining variable b, receive the following SEGV:
Program received signal SIGSEGV, Segmentation fault.
0x6603b620 in Tcl_FindCommand (interp=0xa032b48, name=0xa492160 "namespace",
    contextNsPtr=0x0, flags=0)
    at ../../../src/tcl/win/../generic/tclNamesp.c:1970
1970        if (cxtNsPtr->cmdResProc != NULL || iPtr->resolverPtr != NULL) {
>How-To-Repeat:
set break point at line 170, and run. Click on variable b and add to watch. In
watch, browse into b->classC->private. Watch window fails to update correctly,
and goes to back. Click watch window to bring to front to generate SEGV.
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="main.cc"
Content-Disposition: inline; filename="main.cc"

/*
Submitted by L.J.Lewins, llewins@raytheon.com

Compiled wih gcc:
gcc version 2.95.3-5 (cygwin special)

Using Insite cvs January 9:
GNU gdb 2003-01-09-cvs

Upon examining variable b, receive the following SEGV:
Program received signal SIGSEGV, Segmentation fault.
0x6603b620 in Tcl_FindCommand (interp=0xa032b48, name=0xa492160 "namespace",
    contextNsPtr=0x0, flags=0)
    at ../../../src/tcl/win/../generic/tclNamesp.c:1970
1970        if (cxtNsPtr->cmdResProc != NULL || iPtr->resolverPtr != NULL) {

Reproduce:
set break point at line 170, and run. Click on variable b and add to watch. In
watch, browse into b->classC->private. Watch window fails to update correctly,
and goes to back. Click watch window to bring to front to generate SEGV.
*/

#include <string>

using namespace std;

class containerClass
{
public:
    class classB;

public:
    containerClass (void)
    {
    }
    
    class classA {
    public:
        classA(const unsigned num)
            : valV (num)
        {
        }

        classB* find(const unsigned val) const
        {
            return 0;
        }

        virtual unsigned val(void)
        {
            return valV;
        }

    protected:
        const unsigned   valV;
        string           nameV;

    private:
        // disallow default/copy constructor and assignment operator
        classA(void);
        classA(classA& source);
        classA& operator=(const classA& rhs);

    friend class containerClass;
    friend class classB;
    };

    class classC {
    public:
        classC (classA& myClassA)
            : nameV("foo"),
              myClassAV (myClassA)
        {
        }

        classA& myClassA (void) const
        {
            return myClassAV;
        }

    protected:
        string nameV;

    private:
        classA& myClassAV;
        
        // disallow defau;t/copy constructor and assignment operator
        classC(void);
        classC(classC& source);
        classC& operator=(const classC& rhs);
    };

    class classB : virtual public classC {
    public:
        classB(classA&            myClassA)
            : classC(myClassA),
              valV(0)
        {
        }

        virtual unsigned val(void)
        {
            return valV;
        }

    protected:
        unsigned              valV;

    private:
        // disallow defaut/copy constructor and assignment operator
        classB (void);
        classB (classB& source);
        classB& operator= (const classB& rhs);
    };

private:
    // disallow copy constructor and assignment operator
    containerClass (containerClass& source);
    containerClass& operator= (const containerClass& rhs);

friend class classA;
};

class classB;

class classA : public containerClass::classA
{
public:
    classA(const unsigned num)
        : containerClass::classA(num)
    {
    }

    classB* find(const unsigned val) const
    {
        return 0;
    }
    
private:
    // disallow copy constructor and assignment operator
    classA(classA& source);
    classA& operator=(const classA& rhs);
};

class classB : public containerClass::classB
{
public:
    classB(containerClass::classA& myClassA)
        : classC(myClassA),
          containerClass::classB(myClassA),
          reservedV(false)
    {
    }

protected:
    bool reservedV;

private:
    // disallow copy constructor and assignment operator
    classB(classB& source);
    classB& operator=(const classB& rhs);
};

int main(void)
{
    classA* a = new classA(0);

    classB* b = new classB(*a);

}



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2003-01-24 13:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-01-24 13:43 insight/206: SEGV in Tcl_FindCommand Keith Seitz
  -- strict thread matches above, loose matches on Subject: below --
2003-01-24  1:23 Lloyd J Lewins
2003-01-23 18:41 kseitz
2003-01-21  0:53 llewins

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).