This is the mail archive of the insight@sourceware.cygnus.com mailing list for the Insight project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: core dump


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]