This is the mail archive of the
insight-prs@sources.redhat.com
mailing list for the Insight project.
insight/226: core dump when cursor move over class member function without debugger info.
- From: ching at coware dot com
- To: insight-gnats at sources dot redhat dot com
- Date: 7 May 2003 22:49:51 -0000
- Subject: insight/226: core dump when cursor move over class member function without debugger info.
- Reply-to: ching at coware dot com
>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: