From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23412 invoked by alias); 7 May 2003 22:53:00 -0000 Mailing-List: contact insight-prs-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: insight-prs-owner@sources.redhat.com Received: (qmail 23397 invoked by uid 71); 7 May 2003 22:53:00 -0000 Resent-Date: 7 May 2003 22:53:00 -0000 Resent-Message-ID: <20030507225300.23396.qmail@sources.redhat.com> Resent-From: insight-gnats@sources.redhat.com (GNATS Filer) Resent-Cc: insight-prs@sources.redhat.com Resent-Reply-To: insight-gnats@sources.redhat.com, ching@coware.com Received: (qmail 22883 invoked by uid 48); 7 May 2003 22:49:51 -0000 Message-Id: <20030507224951.22882.qmail@sources.redhat.com> Date: Wed, 07 May 2003 22:53:00 -0000 From: ching@coware.com Reply-To: ching@coware.com To: insight-gnats@sources.redhat.com X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: insight/226: core dump when cursor move over class member function without debugger info. X-SW-Source: 2003-q2/txt/msg00015.txt.bz2 List-Id: >Number: 226 >Category: insight >Synopsis: core dump when cursor move over class member function without debugger info. >Confidential: no >Severity: serious >Priority: high >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Wed May 07 22:53:00 UTC 2003 >Closed-Date: >Last-Modified: >Originator: ching@coware.com >Release: unknown-1.0 >Organization: >Environment: Linux 7.3 and Solaris. >Description: insight 5.2 crashed when the cursor moves over a class member function that did not compile with debugger information. Platform: Redhat 7.3 Linux scooby 2.4.18-3 #1 Thu Apr 18 07:37:53 EDT 2002 i686 unknown Here is of my observation. It looks like the problem is caused by tk_command_loop() cannot not re-entry. So what happens is when the error occurs in gdb/cp-valprint.c 123 } 124 error ("invalid pointer to member function"); 125 } which caused a siglongjump to gdb/top.c 421 caught = SIGSETJMP (catch); 422 if (!caught) 423 val = (*func) (func_uiout, func_args); after that it will call tk_command_loop() in gdb/gdbtk/generic/gdbtk-hooks.c to re-enter the Tk_MainLoop. Since it is the same gdbtk_interp tcl interpeter and it keeps evaluation the same tcl_command and finially the stack is screwed up. >How-To-Repeat: To reproduce: 1. unzip the carsh.bz2 file. 2. cd crash 3. invoke insight 4. file t 5. b t.cpp:60 6. run 7. move cusor over line 60 of "data_valid.read()" after that you will see dozen of the following messages. invalid pointer to member function 8. enter c to continue debugging 9. Segmentation fault (core dumped) >Fix: >Release-Note: >Audit-Trail: >Unformatted: