This is the mail archive of the
insight@sourceware.cygnus.com
mailing list for the Insight project.
Re: core dump
- To: tromey at cygnus dot com
- Subject: Re: core dump
- From: Fernando Nasser <fnasser at cygnus dot com>
- Date: Wed, 19 Apr 2000 19:34:48 +0000
- CC: Insight List <insight at sourceware dot cygnus dot com>, gdb-local at cygnus dot com
- Organization: Cygnus Solutions (a Red Hat company) - Toronto
- References: <878zyaymrm.fsf@cygnus.com>
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 <wrapped_call>, 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 <captured_command_loop>,
> 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 <captured_main>,
> 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