From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fernando Nasser To: tromey@cygnus.com Cc: Insight List , gdb-local@cygnus.com Subject: Re: core dump Date: Wed, 19 Apr 2000 12:35:00 -0000 Message-id: <38FE0A58.FD220BF9@cygnus.com> References: <878zyaymrm.fsf@cygnus.com> X-SW-Source: 2000-q2/msg00105.html Tom Tromey wrote: > > Insight once again got a segv while I had the watch window up. This > time (as before, I think) it died when I re-ran my program (gcj). I > had rebuilt the program and gdb had to reload it; I don't know whether > this happened or not. Despite the core happening when inside the update code for watched variables, the problem is unrelated to it. There is no excuse for gdb's value_zero to dump core, but it seems that some variable (whatever you are whatching) had a bad formed type. I would bet it is probably a bug in the gdb symbol reading or some compiler debug info malformation. Unless someone knows of some limitation when calling value_zero(). There is nothing in the code that indicates that. And it seems that it worked once, before Tom reloaded his program Here is how Insight gets the type of a variable: /* To print the type, we simply create a zero value_ptr and cast it to our type. We then typeprint this variable. */ val = value_zero (var->type, not_lval); type_print (VALUE_TYPE (val), "", stb, -1); Inside value_zero() allocate_value() is called and in its turn calls check_typedef(). The latter tries to recurse with TYPE_TARGET_TYPE (type), but that is not valid. Why? Nothing to do with Insight. > > I avoid the watch window because it causes so many problems :-( > I don't think you are being fair. Anyway, it is not to blame in this case. > Stack trace appended. This is on my x86 Debian 2.0 box. > > Tom > > #0 check_typedef (type=0xea7) at ../../src/gdb/gdbtypes.c:1115 > #1 0x80ae051 in check_typedef (type=0x881e088) > at ../../src/gdb/gdbtypes.c:1191 > #2 0x8081e5d in allocate_value (type=0x881e088) at ../../src/gdb/values.c:84 > #3 0x80881f2 in value_zero (type=0x881e088, lv=not_lval) > at ../../src/gdb/valops.c:412 > #4 0x80cf7da in varobj_get_type (var=0x8dd1170) at ../../src/gdb/varobj.c:727 > #5 0x80d0569 in value_of_root (var_handle=0xbfff9014, type_changed=0xbfff9008) > at ../../src/gdb/varobj.c:1649 > #6 0x80cfa5c in varobj_update (var=0x8dd1170, changelist=0xbfff902c) > at ../../src/gdb/varobj.c:908 > #7 0x80c37c0 in variable_update (interp=0x8323848, var=0x8dd1170) > at ../../src/gdb/gdbtk/generic/gdbtk-varobj.c:463 > #8 0x80c34f7 in variable_obj_command (clientData=0x8dd1170, interp=0x8323848, > objc=2, objv=0x8324540) at ../../src/gdb/gdbtk/generic/gdbtk-varobj.c:273#9 0x8236cf2 in TclExecuteByteCode (interp=0x8323848, codePtr=0x8df7f28) > at ../../../src/tcl/unix/../generic/tclExecute.c:955 > #10 0x821d0cc in Tcl_EvalObj (interp=0x8323848, objPtr=0x8be4980) at ../../../src/tcl/unix/../generic/tclBasic.c:2645 > #11 0x81892fa in Itcl_EvalMemberCode (interp=0x8323848, mfunc=0x8de5458, > member=0x8de5470, contextObj=0x8dba400, objc=1, objv=0x8324534) > at /x2/egcs-stuff/gdb/src/itcl/itcl/generic/itcl_methods.c:1029 > #12 0x8189b8d in Itcl_ExecMethod (clientData=0x8de5458, interp=0x8323848, > objc=1, objv=0x8324534) > at /x2/egcs-stuff/gdb/src/itcl/itcl/generic/itcl_methods.c:1546 > #13 0x8236cf2 in TclExecuteByteCode (interp=0x8323848, codePtr=0x8dec628) > at ../../../src/tcl/unix/../generic/tclExecute.c:955 > #14 0x821d0cc in Tcl_EvalObj (interp=0x8323848, objPtr=0x89dbca0) > at ../../../src/tcl/unix/../generic/tclBasic.c:2645 > #15 0x81892fa in Itcl_EvalMemberCode (interp=0x8323848, mfunc=0x8dd59d8, > member=0x8dd59f0, contextObj=0x8dba400, objc=1, objv=0x8324530) > at /x2/egcs-stuff/gdb/src/itcl/itcl/generic/itcl_methods.c:1029 > #16 0x8189b8d in Itcl_ExecMethod (clientData=0x8dd59d8, interp=0x8323848, > objc=1, objv=0x8324530) > at /x2/egcs-stuff/gdb/src/itcl/itcl/generic/itcl_methods.c:1546 > #17 0x818f9f2 in Itcl_EvalArgs (interp=0x8323848, objc=1, objv=0x8324530) > at /x2/egcs-stuff/gdb/src/itcl/itcl/generic/itcl_util.c:1337 > #18 0x818b42b in Itcl_HandleInstance (clientData=0x8dba400, interp=0x8323848, > objc=2, objv=0x832452c) > at /x2/egcs-stuff/gdb/src/itcl/itcl/generic/itcl_objects.c:658 > #19 0x8236cf2 in TclExecuteByteCode (interp=0x8323848, codePtr=0x8832368) > at ../../../src/tcl/unix/../generic/tclExecute.c:955 > #20 0x821d0cc in Tcl_EvalObj (interp=0x8323848, objPtr=0x8bab498) > at ../../../src/tcl/unix/../generic/tclBasic.c:2645 > #21 0x8254d93 in Tcl_UplevelObjCmd (dummy=0x0, interp=0x8323848, objc=4, > objv=0x832451c) at ../../../src/tcl/unix/../generic/tclProc.c:612 > #22 0x8236cf2 in TclExecuteByteCode (interp=0x8323848, codePtr=0x84a6c28) > at ../../../src/tcl/unix/../generic/tclExecute.c:955 > #23 0x821d0cc in Tcl_EvalObj (interp=0x8323848, objPtr=0x8417500) > at ../../../src/tcl/unix/../generic/tclBasic.c:2645 > #24 0x82552d1 in TclObjInterpProc (clientData=0x84550c8, interp=0x8323848, > objc=2, objv=0x8324514) at ../../../src/tcl/unix/../generic/tclProc.c:996 > #25 0x8236cf2 in TclExecuteByteCode (interp=0x8323848, codePtr=0x84fa2f0) > at ../../../src/tcl/unix/../generic/tclExecute.c:955 > #26 0x821d0cc in Tcl_EvalObj (interp=0x8323848, objPtr=0x841a4d8) > at ../../../src/tcl/unix/../generic/tclBasic.c:2645 > #27 0x82552d1 in TclObjInterpProc (clientData=0x8451b48, interp=0x8323848, > objc=1, objv=0x8324510) at ../../../src/tcl/unix/../generic/tclProc.c:996 > #28 0x8236cf2 in TclExecuteByteCode (interp=0x8323848, codePtr=0x84cbb28) > at ../../../src/tcl/unix/../generic/tclExecute.c:955 > #29 0x821d0cc in Tcl_EvalObj (interp=0x8323848, objPtr=0x8417650) > at ../../../src/tcl/unix/../generic/tclBasic.c:2645 > #30 0x82552d1 in TclObjInterpProc (clientData=0x845e880, interp=0x8323848, > objc=1, objv=0x832450c) at ../../../src/tcl/unix/../generic/tclProc.c:996 > #31 0x8236cf2 in TclExecuteByteCode (interp=0x8323848, codePtr=0x88a3218) > at ../../../src/tcl/unix/../generic/tclExecute.c:955 > #32 0x821d0cc in Tcl_EvalObj (interp=0x8323848, objPtr=0x8be5fc8) > at ../../../src/tcl/unix/../generic/tclBasic.c:2645 > #33 0x821ce8a in Tcl_Eval (interp=0x8323848, string=0x8277bb2 "gdbtk_tcl_idle") > at ../../../src/tcl/unix/../generic/tclBasic.c:2453 > #34 0x80c2b38 in gdbtk_call_command (cmdblk=0x8318100, arg=0x0, from_tty=0) > at ../../src/gdb/gdbtk/generic/gdbtk-hooks.c:516 > #35 0x80db1d8 in execute_command (p=0x8a97b43 "", from_tty=0) > at ../../src/gdb/top.c:1544 > #36 0x80bdc4d in gdb_immediate_command (clientData=0x80bdba0, > interp=0x8323848, objc=2, objv=0x8324504) > at ../../src/gdb/gdbtk/generic/gdbtk-cmds.c:906 > #37 0x80bd7c8 in wrapped_call (opaque_args=0xbfffbf48) > at ../../src/gdb/gdbtk/generic/gdbtk-cmds.c:550 > #38 0x80da49b in catch_errors (func=0x80bd7b0 , args=0xbfffbf48, > errstring=0x82772c8 "", mask=6) at ../../src/gdb/top.c:615 > #39 0x80bd6f4 in call_wrapper (clientData=0x80bdba0, interp=0x8323848, objc=2, > objv=0x8324504) at ../../src/gdb/gdbtk/generic/gdbtk-cmds.c:488 > #40 0x8236cf2 in TclExecuteByteCode (interp=0x8323848, codePtr=0x8a92058) > at ../../../src/tcl/unix/../generic/tclExecute.c:955 > #41 0x821d0cc in Tcl_EvalObj (interp=0x8323848, objPtr=0x8417818) > at ../../../src/tcl/unix/../generic/tclBasic.c:2645 > #42 0x82552d1 in TclObjInterpProc (clientData=0x845a678, interp=0x8323848, > objc=1, objv=0x8324500) at ../../../src/tcl/unix/../generic/tclProc.c:996 > #43 0x8236cf2 in TclExecuteByteCode (interp=0x8323848, codePtr=0x8a8c578) > at ../../../src/tcl/unix/../generic/tclExecute.c:955 > #44 0x821d0cc in Tcl_EvalObj (interp=0x8323848, objPtr=0x8417968) > at ../../../src/tcl/unix/../generic/tclBasic.c:2645 > #45 0x82552d1 in TclObjInterpProc (clientData=0x841fc50, interp=0x8323848, > objc=1, objv=0x83244fc) at ../../../src/tcl/unix/../generic/tclProc.c:996 > #46 0x8236cf2 in TclExecuteByteCode (interp=0x8323848, codePtr=0x8a8c4f8) > at ../../../src/tcl/unix/../generic/tclExecute.c:955 > #47 0x821d0cc in Tcl_EvalObj (interp=0x8323848, objPtr=0x89e0340) > at ../../../src/tcl/unix/../generic/tclBasic.c:2645 > #48 0x8227afd in Tcl_SwitchObjCmd (dummy=0x0, interp=0x8323848, objc=3, > objv=0x83244f0) at ../../../src/tcl/unix/../generic/tclCmdMZ.c:1732 > #49 0x8236cf2 in TclExecuteByteCode (interp=0x8323848, codePtr=0x8a69c38) > at ../../../src/tcl/unix/../generic/tclExecute.c:955 > #50 0x821d0cc in Tcl_EvalObj (interp=0x8323848, objPtr=0x842b2e8) > at ../../../src/tcl/unix/../generic/tclBasic.c:2645 > #51 0x81892fa in Itcl_EvalMemberCode (interp=0x8323848, mfunc=0x84c2898, > member=0x84c28b0, contextObj=0x84de818, objc=2, objv=0x83244e8) > at /x2/egcs-stuff/gdb/src/itcl/itcl/generic/itcl_methods.c:1029 > #52 0x8189b8d in Itcl_ExecMethod (clientData=0x84c2898, interp=0x8323848, > objc=2, objv=0x83244e8) > at /x2/egcs-stuff/gdb/src/itcl/itcl/generic/itcl_methods.c:1546 > #53 0x818f9f2 in Itcl_EvalArgs (interp=0x8323848, objc=2, objv=0x83244e8) > at /x2/egcs-stuff/gdb/src/itcl/itcl/generic/itcl_util.c:1337 > #54 0x818b42b in Itcl_HandleInstance (clientData=0x84de818, interp=0x8323848, > objc=3, objv=0x83244e4) > at /x2/egcs-stuff/gdb/src/itcl/itcl/generic/itcl_objects.c:658 > #55 0x8236cf2 in TclExecuteByteCode (interp=0x8323848, codePtr=0x8dcff58) > at ../../../src/tcl/unix/../generic/tclExecute.c:955 > #56 0x821d0cc in Tcl_EvalObj (interp=0x8323848, objPtr=0x8bab768) > at ../../../src/tcl/unix/../generic/tclBasic.c:2645 > #57 0x824e173 in NamespaceInscopeCmd (dummy=0x0, interp=0x8323848, objc=4, > objv=0x83244d4) at ../../../src/tcl/unix/../generic/tclNamesp.c:3277 > #58 0x824d7b9 in Tcl_NamespaceObjCmd (clientData=0x0, interp=0x8323848, > objc=4, objv=0x83244d4) > at ../../../src/tcl/unix/../generic/tclNamesp.c:2498 > #59 0x8236cf2 in TclExecuteByteCode (interp=0x8323848, codePtr=0x8dfb350) > at ../../../src/tcl/unix/../generic/tclExecute.c:955 > #60 0x821d0cc in Tcl_EvalObj (interp=0x8323848, objPtr=0x8bab660) > at ../../../src/tcl/unix/../generic/tclBasic.c:2645 > #61 0x821ce8a in Tcl_Eval (interp=0x8323848, > string=0xbfffe4d0 "namespace inscope ::GDBSrcBar {::.srcwin0.srcwin inferior run}") at ../../../src/tcl/unix/../generic/tclBasic.c:2453 > #62 0x821e5bc in Tcl_GlobalEval (interp=0x8323848, > command=0xbfffe4d0 "namespace inscope ::GDBSrcBar {::.srcwin0.srcwin inferior run}") at ../../../src/tcl/unix/../generic/tclBasic.c:3983 > #63 0x820e214 in TkCopyAndGlobalEval (interp=0x8323848, > script=0x8dfc420 "\207") at ../../../src/tk/unix/../generic/tkBind.c:4547 > #64 0x81d469a in TkInvokeButton (butPtr=0x868df88) > at ../../../src/tk/unix/../generic/tkButton.c:1136 > #65 0x81d3ca4 in ButtonWidgetCmd (clientData=0x868df88, interp=0x8323848, > argc=2, argv=0xbfffe5f0) at ../../../src/tk/unix/../generic/tkButton.c:543 > #66 0x821c7b6 in TclInvokeStringCommand (clientData=0x869d380, > interp=0x8323848, objc=2, objv=0x83244cc) > at ../../../src/tcl/unix/../generic/tclBasic.c:1745 > #67 0x8236cf2 in TclExecuteByteCode (interp=0x8323848, codePtr=0x8dbfe88) > at ../../../src/tcl/unix/../generic/tclExecute.c:955 > #68 0x821d0cc in Tcl_EvalObj (interp=0x8323848, objPtr=0x84cf510) > at ../../../src/tcl/unix/../generic/tclBasic.c:2645 > #69 0x8254d6d in Tcl_UplevelObjCmd (dummy=0x0, interp=0x8323848, objc=3, > objv=0x83244c0) at ../../../src/tcl/unix/../generic/tclProc.c:609 > #70 0x8236cf2 in TclExecuteByteCode (interp=0x8323848, codePtr=0x8a97838) > at ../../../src/tcl/unix/../generic/tclExecute.c:955 > #71 0x821d0cc in Tcl_EvalObj (interp=0x8323848, objPtr=0x84cf420) > at ../../../src/tcl/unix/../generic/tclBasic.c:2645 > #72 0x82552d1 in TclObjInterpProc (clientData=0x869e290, interp=0x8323848, > objc=2, objv=0x83244b8) at ../../../src/tcl/unix/../generic/tclProc.c:996 > #73 0x8236cf2 in TclExecuteByteCode (interp=0x8323848, codePtr=0x8e06030) > at ../../../src/tcl/unix/../generic/tclExecute.c:955 > #74 0x821d0cc in Tcl_EvalObj (interp=0x8323848, objPtr=0x840fcc0) > at ../../../src/tcl/unix/../generic/tclBasic.c:2645 > #75 0x821ce8a in Tcl_Eval (interp=0x8323848, > string=0xbffff6b8 "TOOLBAR_button_up .srcwin0.srcwin.container.pane0.childsite.con.t.stop") at ../../../src/tcl/unix/../generic/tclBasic.c:2453 > #76 0x821e5bc in Tcl_GlobalEval (interp=0x8323848, > command=0xbffff6b8 "TOOLBAR_button_up .srcwin0.srcwin.container.pane0.childsite.con.t.stop") at ../../../src/tcl/unix/../generic/tclBasic.c:3983 > #77 0x820af5d in Tk_BindEvent (bindingTable=0x83427b0, eventPtr=0x8e00e48, > tkwin=0x869e5b0, numObjects=0, objectPtr=0xbffff7b8) > at ../../../src/tk/unix/../generic/tkBind.c:1731 > #78 0x820ed9c in TkBindEventProc (winPtr=0x869e5b0, eventPtr=0x8e00e48) > at ../../../src/tk/unix/../generic/tkCmds.c:242 > #79 0x81bd708 in Tk_HandleEvent (eventPtr=0x8e00e48) > at ../../../src/tk/unix/../generic/tkEvent.c:657 > #80 0x81bda79 in WindowEventProc (evPtr=0x8e00e40, flags=-3) > at ../../../src/tk/unix/../generic/tkEvent.c:983 > #81 0x824eb50 in Tcl_ServiceEvent (flags=-3) > at ../../../src/tcl/unix/../generic/tclNotify.c:444 > #82 0x824ed66 in Tcl_DoOneEvent (flags=0) > at ../../../src/tcl/unix/../generic/tclNotify.c:683 > #83 0x81bdae4 in Tk_MainLoop () > at ../../../src/tk/unix/../generic/tkEvent.c:1041 > #84 0x80c290c in tk_command_loop () > at ../../src/gdb/gdbtk/generic/gdbtk-hooks.c:383 > #85 0x807cdb2 in captured_command_loop (data=0x0) at ../../src/gdb/main.c:104 > #86 0x80da49b in catch_errors (func=0x807cd90 , > args=0x0, errstring=0x8262a4e "", mask=6) at ../../src/gdb/top.c:615 > #87 0x807da03 in captured_main (data=0xbffffb58) at ../../src/gdb/main.c:749 > #88 0x80da49b in catch_errors (func=0x807cde0 , > args=0xbffffb58, errstring=0x8262a4e "", mask=6) at ../../src/gdb/top.c:615 > #89 0x807da37 in main (argc=2, argv=0xbffffb7c) at ../../src/gdb/main.c:761 -- Fernando Nasser Cygnus Solutions (a Red Hat company) E-Mail: fnasser@cygnus.com 2323 Yonge Street, Suite #300 Tel: 416-482-2661 ext. 311 Toronto, Ontario M4P 2C9 Fax: 416-482-6299