summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@specifix.com>2008-06-10 00:13:15 +0000
committerMichael Snyder <msnyder@specifix.com>2008-06-10 00:13:15 +0000
commitce119b4142eb7b70f580c8830fa2a1832b2de019 (patch)
tree9b8363b2417351934cd03581624454c5b122e1e4
parentea9e838749c0f6f20a7a12423efb0ef2a422e487 (diff)
downloadgdb-cvs/drow-reverse-20070409-branch.tar.gz
Daniel Jacobowitz' update to Michael Snyder's reverse debugging patchesdrow-reverse-20070409-branchcvs/drow-reverse-20070409-branch
-rw-r--r--gdb/ChangeLog.reverse70
-rw-r--r--gdb/Makefile.in7
-rw-r--r--gdb/arm-tdep.c52
-rw-r--r--gdb/breakpoint.c7
-rw-r--r--gdb/breakpoint.h3
-rw-r--r--gdb/doc/gdb.texinfo104
-rw-r--r--gdb/gdbtk/ChangeLog107
-rw-r--r--gdb/gdbtk/ChangeLog-20011719
-rw-r--r--gdb/gdbtk/ChangeLog-2002878
-rw-r--r--gdb/gdbtk/ChangeLog-2003431
-rw-r--r--gdb/gdbtk/ChangeLog-2004209
-rw-r--r--gdb/gdbtk/ChangeLog-2005214
-rw-r--r--gdb/gdbtk/Makefile.am4
-rw-r--r--gdb/gdbtk/Makefile.in410
-rw-r--r--gdb/gdbtk/README289
-rw-r--r--gdb/gdbtk/TODO113
-rw-r--r--gdb/gdbtk/aclocal.m4879
-rwxr-xr-xgdb/gdbtk/configure4285
-rw-r--r--gdb/gdbtk/configure.ac12
-rw-r--r--gdb/gdbtk/gdb.rc1
-rw-r--r--gdb/gdbtk/gdbtool.icobin4710 -> 0 bytes
-rw-r--r--gdb/gdbtk/generic/ChangeLog-19971196
-rw-r--r--gdb/gdbtk/generic/ChangeLog-1998837
-rw-r--r--gdb/gdbtk/generic/ChangeLog-19992624
-rw-r--r--gdb/gdbtk/generic/ChangeLog-2000211
-rw-r--r--gdb/gdbtk/generic/gdbtk-bp.c995
-rw-r--r--gdb/gdbtk/generic/gdbtk-cmds.c3026
-rw-r--r--gdb/gdbtk/generic/gdbtk-cmds.h60
-rw-r--r--gdb/gdbtk/generic/gdbtk-hooks.c836
-rw-r--r--gdb/gdbtk/generic/gdbtk-interp.c181
-rw-r--r--gdb/gdbtk/generic/gdbtk-main.c37
-rw-r--r--gdb/gdbtk/generic/gdbtk-register.c567
-rw-r--r--gdb/gdbtk/generic/gdbtk-stack.c625
-rw-r--r--gdb/gdbtk/generic/gdbtk-varobj.c612
-rw-r--r--gdb/gdbtk/generic/gdbtk-wrapper.c723
-rw-r--r--gdb/gdbtk/generic/gdbtk-wrapper.h84
-rw-r--r--gdb/gdbtk/generic/gdbtk.c756
-rw-r--r--gdb/gdbtk/generic/gdbtk.h190
-rw-r--r--gdb/gdbtk/library/ChangeLog-19971487
-rw-r--r--gdb/gdbtk/library/ChangeLog-19983486
-rw-r--r--gdb/gdbtk/library/ChangeLog-19991083
-rw-r--r--gdb/gdbtk/library/ChangeLog-2000409
-rw-r--r--gdb/gdbtk/library/Makefile11
-rw-r--r--gdb/gdbtk/library/about.tcl43
-rw-r--r--gdb/gdbtk/library/actiondlg.tcl810
-rw-r--r--gdb/gdbtk/library/attachdlg.itb232
-rw-r--r--gdb/gdbtk/library/attachdlg.ith35
-rw-r--r--gdb/gdbtk/library/blockframe.itb227
-rw-r--r--gdb/gdbtk/library/blockframe.ith63
-rw-r--r--gdb/gdbtk/library/bpwin.itb728
-rw-r--r--gdb/gdbtk/library/bpwin.ith59
-rw-r--r--gdb/gdbtk/library/browserwin.itb731
-rw-r--r--gdb/gdbtk/library/browserwin.ith77
-rw-r--r--gdb/gdbtk/library/console.itb747
-rw-r--r--gdb/gdbtk/library/console.ith77
-rw-r--r--gdb/gdbtk/library/cspref.itb152
-rw-r--r--gdb/gdbtk/library/cspref.ith36
-rw-r--r--gdb/gdbtk/library/debugwin.itb483
-rw-r--r--gdb/gdbtk/library/debugwin.ith93
-rw-r--r--gdb/gdbtk/library/download.itb304
-rw-r--r--gdb/gdbtk/library/download.ith45
-rw-r--r--gdb/gdbtk/library/editor.tcl47
-rw-r--r--gdb/gdbtk/library/ehandler.itb31
-rw-r--r--gdb/gdbtk/library/ehandler.ith48
-rw-r--r--gdb/gdbtk/library/embeddedwin.ith25
-rw-r--r--gdb/gdbtk/library/gdbevent.itb205
-rw-r--r--gdb/gdbtk/library/gdbevent.ith220
-rw-r--r--gdb/gdbtk/library/gdbmenubar.itcl332
-rw-r--r--gdb/gdbtk/library/gdbtoolbar.itcl396
-rw-r--r--gdb/gdbtk/library/gdbwin.ith25
-rw-r--r--gdb/gdbtk/library/globalpref.itb481
-rw-r--r--gdb/gdbtk/library/globalpref.ith47
-rw-r--r--gdb/gdbtk/library/help/breakpoint.html107
-rw-r--r--gdb/gdbtk/library/help/browser.html77
-rw-r--r--gdb/gdbtk/library/help/console.html74
-rw-r--r--gdb/gdbtk/library/help/debug.html133
-rw-r--r--gdb/gdbtk/library/help/gbl_pref.html20
-rw-r--r--gdb/gdbtk/library/help/help.html34
-rw-r--r--gdb/gdbtk/library/help/images/browser1.pngbin11253 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/browser2.pngbin13764 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/frame_info.gifbin1196 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/insightbwr.pngbin1556 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/mem_menu.gifbin854 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/mem_popup.gifbin1264 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/mem_pref.gifbin5380 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/reg.pngbin12541 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/reg_menu.pngbin14377 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/src_bal.gifbin1267 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/src_bp_bal.gifbin2928 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/src_bpop.gifbin1099 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/src_menu.gifbin392 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/src_pop.gifbin1060 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/src_stat.gifbin1156 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/src_thread.gifbin3589 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/src_toolbar.gifbin3288 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/images/watch.pngbin14695 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/help/index.html35
-rw-r--r--gdb/gdbtk/library/help/license.html305
-rw-r--r--gdb/gdbtk/library/help/locals.html47
-rw-r--r--gdb/gdbtk/library/help/memory.html240
-rw-r--r--gdb/gdbtk/library/help/register.html48
-rw-r--r--gdb/gdbtk/library/help/session.html40
-rw-r--r--gdb/gdbtk/library/help/source.html424
-rw-r--r--gdb/gdbtk/library/help/src_pref.html20
-rw-r--r--gdb/gdbtk/library/help/stack.html50
-rw-r--r--gdb/gdbtk/library/help/target.html110
-rw-r--r--gdb/gdbtk/library/help/thread.html46
-rw-r--r--gdb/gdbtk/library/help/trace/console.html47
-rw-r--r--gdb/gdbtk/library/help/trace/gbl_pref.html20
-rw-r--r--gdb/gdbtk/library/help/trace/help.html32
-rw-r--r--gdb/gdbtk/library/help/trace/index.toc10
-rw-r--r--gdb/gdbtk/library/help/trace/license.html305
-rw-r--r--gdb/gdbtk/library/help/trace/locals.html83
-rw-r--r--gdb/gdbtk/library/help/trace/memory.html142
-rw-r--r--gdb/gdbtk/library/help/trace/reg_pref.html20
-rw-r--r--gdb/gdbtk/library/help/trace/register.html105
-rw-r--r--gdb/gdbtk/library/help/trace/source.html371
-rw-r--r--gdb/gdbtk/library/help/trace/src_pref.html20
-rw-r--r--gdb/gdbtk/library/help/trace/stack.html51
-rw-r--r--gdb/gdbtk/library/help/trace/target.html68
-rw-r--r--gdb/gdbtk/library/help/trace/tdump.html16
-rw-r--r--gdb/gdbtk/library/help/trace/tp.html111
-rw-r--r--gdb/gdbtk/library/help/trace/tracedlg.html134
-rw-r--r--gdb/gdbtk/library/help/trace/watch.html118
-rw-r--r--gdb/gdbtk/library/help/watch.html86
-rw-r--r--gdb/gdbtk/library/helpviewer.tcl98
-rw-r--r--gdb/gdbtk/library/images/Movie_off.gifbin326 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/Movie_on.gifbin359 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/bottom.gifbin84 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/bp.gifbin144 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/check.gifbin73 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/console.gifbin189 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/continue.gifbin108 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/down.gifbin80 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/edit.gifbin379 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/finish.gifbin89 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/gdbtk_icon.gifbin333 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/help.gifbin117 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/home.gifbin388 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/icons.txt1
-rw-r--r--gdb/gdbtk/library/images/insight.gifbin7573 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/less.gifbin115 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/memory.gifbin178 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/more.gifbin116 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/next.gifbin79 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/next_check.gifbin242 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/next_frame.gifbin217 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/next_hit.gifbin223 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/next_line.gifbin244 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/nexti.gifbin97 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/open.gifbin110 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/prev_hit.gifbin220 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/reg.gifbin121 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/rewind.gifbin217 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/run.gifbin105 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/run_expt.gifbin435 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/src.gifbin297 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/stack.gifbin174 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/step.gifbin89 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/stepi.gifbin104 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/stop.gifbin129 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/tdump.gifbin311 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/tp.gifbin228 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/up.gifbin79 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/vars.gifbin110 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/watch.gifbin185 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images/watch_movie.gifbin1106 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/Movie_off.gifbin326 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/Movie_on.gifbin359 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/bottom.gifbin178 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/bp.gifbin144 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/check.gifbin73 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/console.gifbin189 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/continue.gifbin131 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/down.gifbin175 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/edit.gifbin131 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/finish.gifbin145 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/function.gifbin137 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/gdbtk_icon.gifbin333 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/help.gifbin139 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/home.gifbin388 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/icons.txt1
-rw-r--r--gdb/gdbtk/library/images2/insight.gifbin7573 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/less.gifbin115 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/memory.gifbin178 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/more.gifbin116 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/next.gifbin144 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/next_check.gifbin242 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/next_frame.gifbin217 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/next_hit.gifbin223 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/next_line.gifbin244 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/nexti.gifbin154 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/open.gifbin110 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/prev_hit.gifbin220 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/reg.gifbin137 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/rewind.gifbin217 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/run.gifbin159 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/run_expt.gifbin435 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/src.gifbin269 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/stack.gifbin174 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/step.gifbin145 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/stepi.gifbin153 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/stop.gifbin168 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/target.gifbin205 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/tdump.gifbin311 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/tp.gifbin228 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/up.gifbin175 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/vars.gifbin110 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/watch.gifbin185 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/images2/watch_movie.gifbin1106 -> 0 bytes
-rw-r--r--gdb/gdbtk/library/interface.tcl1829
-rwxr-xr-xgdb/gdbtk/library/ipc.tcl135
-rw-r--r--gdb/gdbtk/library/ipcpref.itb135
-rw-r--r--gdb/gdbtk/library/ipcpref.ith33
-rw-r--r--gdb/gdbtk/library/kod.itb474
-rw-r--r--gdb/gdbtk/library/kod.ith63
-rw-r--r--gdb/gdbtk/library/locals.tcl170
-rw-r--r--gdb/gdbtk/library/main.tcl191
-rw-r--r--gdb/gdbtk/library/managedwin.itb419
-rw-r--r--gdb/gdbtk/library/managedwin.ith72
-rw-r--r--gdb/gdbtk/library/mempref.itb424
-rw-r--r--gdb/gdbtk/library/mempref.ith70
-rw-r--r--gdb/gdbtk/library/memwin.itb776
-rw-r--r--gdb/gdbtk/library/memwin.ith85
-rw-r--r--gdb/gdbtk/library/modal.tcl105
-rw-r--r--gdb/gdbtk/library/pluginwin.itcl185
-rw-r--r--gdb/gdbtk/library/prefs.tcl764
-rw-r--r--gdb/gdbtk/library/process.itb162
-rw-r--r--gdb/gdbtk/library/process.ith41
-rw-r--r--gdb/gdbtk/library/regwin.itb1050
-rw-r--r--gdb/gdbtk/library/regwin.ith103
-rw-r--r--gdb/gdbtk/library/session.tcl336
-rw-r--r--gdb/gdbtk/library/srcbar.itcl1246
-rw-r--r--gdb/gdbtk/library/srcpref.itb278
-rw-r--r--gdb/gdbtk/library/srcpref.ith38
-rw-r--r--gdb/gdbtk/library/srctextwin.itb2971
-rw-r--r--gdb/gdbtk/library/srctextwin.ith163
-rw-r--r--gdb/gdbtk/library/srcwin.itb1058
-rw-r--r--gdb/gdbtk/library/srcwin.ith106
-rw-r--r--gdb/gdbtk/library/stackwin.itb159
-rw-r--r--gdb/gdbtk/library/stackwin.ith46
-rw-r--r--gdb/gdbtk/library/targetselection.itb1088
-rw-r--r--gdb/gdbtk/library/targetselection.ith100
-rw-r--r--gdb/gdbtk/library/tclIndex639
-rw-r--r--gdb/gdbtk/library/tdump.tcl95
-rw-r--r--gdb/gdbtk/library/tfind_args.tcl139
-rw-r--r--gdb/gdbtk/library/toplevelwin.ith64
-rw-r--r--gdb/gdbtk/library/tracedlg.tcl800
-rw-r--r--gdb/gdbtk/library/tty.tcl55
-rw-r--r--gdb/gdbtk/library/util.tcl331
-rw-r--r--gdb/gdbtk/library/vartree.itb431
-rw-r--r--gdb/gdbtk/library/vartree.ith77
-rw-r--r--gdb/gdbtk/library/warning.tcl102
-rw-r--r--gdb/gdbtk/library/watch.tcl218
-rw-r--r--gdb/gdbtk/plugins/ChangeLog18
-rw-r--r--gdb/gdbtk/plugins/HOW-TO414
-rw-r--r--gdb/gdbtk/plugins/Make-rules165
-rw-r--r--gdb/gdbtk/plugins/Makefile.am4
-rw-r--r--gdb/gdbtk/plugins/Makefile.in466
-rw-r--r--gdb/gdbtk/plugins/acinclude.m41
-rw-r--r--gdb/gdbtk/plugins/aclocal.m4880
-rwxr-xr-xgdb/gdbtk/plugins/configure5661
-rw-r--r--gdb/gdbtk/plugins/configure.ac93
-rw-r--r--gdb/gdbtk/plugins/intel-pentium/ChangeLog43
-rw-r--r--gdb/gdbtk/plugins/intel-pentium/Makefile.in6
-rw-r--r--gdb/gdbtk/plugins/intel-pentium/cpuinfo.tcl33
-rw-r--r--gdb/gdbtk/plugins/intel-pentium/intel-pentium.tcl.in4
-rw-r--r--gdb/gdbtk/plugins/intel-pentium/msrselection.itb192
-rw-r--r--gdb/gdbtk/plugins/intel-pentium/msrselection.ith38
-rw-r--r--gdb/gdbtk/plugins/intel-pentium/pkgIndex.tcl1
-rw-r--r--gdb/gdbtk/plugins/intel-pentium/tclIndex17
-rw-r--r--gdb/gdbtk/plugins/plugins.tcl30
-rw-r--r--gdb/gdbtk/plugins/rhabout/ChangeLog24
-rw-r--r--gdb/gdbtk/plugins/rhabout/Makefile.in9
-rw-r--r--gdb/gdbtk/plugins/rhabout/pkgIndex.tcl2
-rw-r--r--gdb/gdbtk/plugins/rhabout/rhabout.c57
-rw-r--r--gdb/gdbtk/plugins/rhabout/rhabout.itcl87
-rw-r--r--gdb/gdbtk/plugins/rhabout/rhabout.tcl.in5
-rw-r--r--gdb/gdbtk/plugins/rhabout/tclIndex9
-rw-r--r--gdb/infcall.c8
-rw-r--r--gdb/infcmd.c95
-rw-r--r--gdb/infrun.c159
-rw-r--r--gdb/remote.c62
-rw-r--r--gdb/reverse.c197
-rw-r--r--gdb/target.c6
-rw-r--r--gdb/target.h33
-rw-r--r--gdb/testsuite/gdb.gdbtk/ChangeLog339
-rw-r--r--gdb/testsuite/gdb.gdbtk/Makefile.in36
-rw-r--r--gdb/testsuite/gdb.gdbtk/README421
-rw-r--r--gdb/testsuite/gdb.gdbtk/browser.exp41
-rw-r--r--gdb/testsuite/gdb.gdbtk/browser.test686
-rw-r--r--gdb/testsuite/gdb.gdbtk/c_variable.c296
-rw-r--r--gdb/testsuite/gdb.gdbtk/c_variable.exp42
-rw-r--r--gdb/testsuite/gdb.gdbtk/c_variable.test2071
-rw-r--r--gdb/testsuite/gdb.gdbtk/configure2248
-rw-r--r--gdb/testsuite/gdb.gdbtk/configure.ac18
-rw-r--r--gdb/testsuite/gdb.gdbtk/console.exp42
-rw-r--r--gdb/testsuite/gdb.gdbtk/console.test491
-rw-r--r--gdb/testsuite/gdb.gdbtk/cpp_variable.cc33
-rw-r--r--gdb/testsuite/gdb.gdbtk/cpp_variable.exp48
-rw-r--r--gdb/testsuite/gdb.gdbtk/cpp_variable.h54
-rw-r--r--gdb/testsuite/gdb.gdbtk/cpp_variable.test594
-rw-r--r--gdb/testsuite/gdb.gdbtk/defs306
-rw-r--r--gdb/testsuite/gdb.gdbtk/insight-support.exp319
-rw-r--r--gdb/testsuite/gdb.gdbtk/list0.c43
-rw-r--r--gdb/testsuite/gdb.gdbtk/list0.h37
-rw-r--r--gdb/testsuite/gdb.gdbtk/list1.c39
-rw-r--r--gdb/testsuite/gdb.gdbtk/simple.c20
-rw-r--r--gdb/testsuite/gdb.gdbtk/srcwin.exp71
-rw-r--r--gdb/testsuite/gdb.gdbtk/srcwin.test1192
-rw-r--r--gdb/testsuite/gdb.gdbtk/srcwin2.test899
-rw-r--r--gdb/testsuite/gdb.gdbtk/srcwin3.test789
-rw-r--r--gdb/testsuite/gdb.gdbtk/stack1.c231
-rw-r--r--gdb/testsuite/gdb.gdbtk/stack2.c107
-rw-r--r--gdb/testsuite/gdb.gdbtk/windows.exp41
-rw-r--r--gdb/testsuite/gdb.gdbtk/windows.test131
316 files changed, 765 insertions, 77843 deletions
diff --git a/gdb/ChangeLog.reverse b/gdb/ChangeLog.reverse
new file mode 100644
index 00000000000..9fe045ff5a7
--- /dev/null
+++ b/gdb/ChangeLog.reverse
@@ -0,0 +1,70 @@
+2007-07-13 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * infcall.c (call_function_by_hand): Always restore inferior state
+ for now.
+ * infrun.c (save_inferior_status): Call to_doing_call.
+ (restore_inferior_status): Likewise.
+ (discard_inferior_status): Warn; this should not be reached.
+ * remote.c (remote_doing_call): New.
+ (init_remote_ops, init_remote_async_ops): Use it.
+ * target.c (update_current_target): Handle to_doing_call.
+ * target.h (struct target_ops): Add to_doing_call.
+
+2007-04-18 Daniel Jacobowitz <dan@codesourcery.com>
+
+ gdb/
+ * infcmd.c (finish_backwards): Correct check for whether to back
+ up after finishing.
+
+2007-04-18 Daniel Jacobowitz <dan@codesourcery.com>
+
+ gdb/
+ * arm-tdep.c (arm_scan_epilogue): New.
+ (arm_make_prologue_cache): Use it.
+ (arm_epilogue_unwind_sniffer): New.
+ (arm_gdbarch_init): Register it.
+
+2007-04-13 Daniel Jacobowitz <dan@codesourcery.com>
+
+ Updated patch based on:
+ 2006-03-31 Michael Snyder <msnyder@redhat.com>
+ User interface for reverse execution.
+ * Makefile.in (reverse.c): New file.
+ * reverse.c: New file. User interface for reverse execution.
+
+2007-04-13 Daniel Jacobowitz <dan@codesourcery.com>
+
+ Updated patch based on:
+ 2006-03-31 Michael Snyder <msnyder@redhat.com>
+ Execution interface for reverse execution.
+ * breakpoint.c (breakpoint_silence): New function.
+ * breakpoint.h (breakpoint_silence): Export.
+ * infcmd.c (finish_command): Check for reverse exec direction.
+ (finish_backward): New function, handle finish cmd in reverse.
+ * infrun.c (enum inferior_stop_reason): Add NO_HISTORY reason.
+ (handle_inferior_event): Handle TARGET_WAITKIND_NO_HISTORY.
+ Handle stepping over a function call in reverse.
+ Handle stepping thru a line range in reverse.
+ Handle setting a step-resume breakpoint in reverse.
+ Handle stepping into a function in reverse.
+ Handle stepping between line ranges in reverse.
+ (print_stop_reason): Print reason for NO_HISTORY.
+
+2007-04-13 Daniel Jacobowitz <dan@codesourcery.com>
+
+ Updated patch based on:
+ 2006-03-31 Michael Snyder <msnyder@redhat.com>
+ Target interface for reverse execution.
+ * target.h (enum target_waitkind):
+ Add new wait event, TARGET_WAITKIND_NO_HISTORY.
+ (enum exec_direction_kind): New enum.
+ (struct target_ops): New methods to_set_execdir, to_get_execdir.
+ (target_set_execution_direction): New macro.
+ (target_get_execution_direction): New macro.
+ * target.c (update_current_target): Inherit new execdir methods.
+
+ * remote.c (remote_get_execdir, remote_set_execdir): New methods.
+ (_initialize_remote): Add new methods to remote target vector.
+ (remote_resume): Check for reverse exec direction, and send
+ appropriate command to target.
+ (remote_wait): Check target response for NO_HISTORY status.
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 002750ca38d..603d462e78c 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -552,7 +552,7 @@ SFILES = ada-exp.y ada-lang.c ada-typeprint.c ada-valprint.c \
objfiles.c osabi.c observer.c \
p-exp.y p-lang.c p-typeprint.c p-valprint.c parse.c printcmd.c \
prologue-value.c \
- regcache.c reggroups.c remote.c remote-fileio.c \
+ regcache.c reggroups.c remote.c remote-fileio.c reverse.c \
scm-exp.c scm-lang.c scm-valprint.c \
sentinel-frame.c \
serial.c ser-base.c ser-unix.c \
@@ -952,7 +952,8 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \
std-regs.o \
signals.o \
gdb-events.o \
- exec.o bcache.o objfiles.o observer.o minsyms.o maint.o demangle.o \
+ exec.o reverse.o \
+ bcache.o objfiles.o observer.o minsyms.o maint.o demangle.o \
dbxread.o coffread.o coff-pe-read.o elfread.o \
dwarf2read.o mipsread.o stabsread.o corefile.o \
dwarf2expr.o dwarf2loc.o dwarf2-frame.o \
@@ -2546,6 +2547,8 @@ remote-sim.o: remote-sim.c $(defs_h) $(inferior_h) $(value_h) \
remote-utils.o: remote-utils.c $(defs_h) $(gdb_string_h) $(gdbcmd_h) \
$(target_h) $(serial_h) $(gdbcore_h) $(inferior_h) $(remote_utils_h) \
$(regcache_h)
+reverse.o: reverse.c $(defs_h) $(gdb_string_h) $(target_h) $(cli_cmds_h) \
+ $(cli_decode_h) $(top_h)
rs6000-nat.o: rs6000-nat.c $(defs_h) $(inferior_h) $(target_h) $(gdbcore_h) \
$(xcoffsolib_h) $(symfile_h) $(objfiles_h) $(libbfd_h) $(bfd_h) \
$(exceptions_h) $(gdb_stabs_h) $(regcache_h) $(arch_utils_h) \
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 22a08f845b2..899dd06da87 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -888,6 +888,45 @@ arm_scan_prologue (struct frame_info *next_frame, struct arm_prologue_cache *cac
cache->frameoffset = 0;
}
+/* This function tries to guess whether we are in the epilogue of an
+ ARM function. We need to detect whether the stack frame has
+ already been destroyed - if it has, then neither the prologue
+ scanner nor GCC's unwind tables will be valid. This is very hokey
+ and generally unsafe. */
+
+static int
+arm_scan_epilogue (struct frame_info *next_frame,
+ struct arm_prologue_cache *cache)
+{
+ unsigned int insn;
+ gdb_byte buf[4];
+ CORE_ADDR prev_pc = frame_pc_unwind (next_frame);
+
+ /* Assume there is no frame until proven otherwise. */
+ if (cache != NULL)
+ {
+ cache->framereg = ARM_SP_REGNUM;
+ cache->framesize = 0;
+ cache->frameoffset = 0;
+ }
+
+ /* Check for Thumb epilogue. */
+ if (arm_pc_is_thumb (prev_pc))
+ /* Not yet implemented. */
+ return 0;
+
+ if (target_read_memory (prev_pc, buf, 4) != 0)
+ return 0;
+ insn = extract_unsigned_integer (buf, 4);
+
+ if (insn == 0xe12fff1e) /* bx lr */
+ /* If this is a return, we have no frame left and no saved
+ registers. */
+ return 1;
+
+ return 0;
+}
+
static struct arm_prologue_cache *
arm_make_prologue_cache (struct frame_info *next_frame)
{
@@ -898,7 +937,8 @@ arm_make_prologue_cache (struct frame_info *next_frame)
cache = FRAME_OBSTACK_ZALLOC (struct arm_prologue_cache);
cache->saved_regs = trad_frame_alloc_saved_regs (next_frame);
- arm_scan_prologue (next_frame, cache);
+ if (arm_scan_epilogue (next_frame, cache) == 0)
+ arm_scan_prologue (next_frame, cache);
unwound_fp = frame_unwind_register_unsigned (next_frame, cache->framereg);
if (unwound_fp == 0)
@@ -995,6 +1035,15 @@ arm_prologue_unwind_sniffer (struct frame_info *next_frame)
return &arm_prologue_unwind;
}
+static const struct frame_unwind *
+arm_epilogue_unwind_sniffer (struct frame_info *next_frame)
+{
+ if (arm_scan_epilogue (next_frame, NULL))
+ return &arm_prologue_unwind;
+ else
+ return NULL;
+}
+
static struct arm_prologue_cache *
arm_make_stub_cache (struct frame_info *next_frame)
{
@@ -2996,6 +3045,7 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Add some default predicates. */
frame_unwind_append_sniffer (gdbarch, arm_stub_unwind_sniffer);
+ frame_unwind_append_sniffer (gdbarch, arm_epilogue_unwind_sniffer);
frame_unwind_append_sniffer (gdbarch, dwarf2_frame_sniffer);
frame_unwind_append_sniffer (gdbarch, arm_prologue_unwind_sniffer);
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index fc8e389d3a7..defeb2a009b 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -7534,6 +7534,13 @@ breakpoint_clear_ignore_counts (void)
b->ignore_count = 0;
}
+void
+breakpoint_silence (struct breakpoint *b)
+{
+ /* Silence the breakpoint. */
+ b->silent = 1;
+}
+
/* Command to set ignore-count of breakpoint N to COUNT. */
static void
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 1230f49e273..e5ed453c90f 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -850,4 +850,7 @@ extern int deprecated_exception_catchpoints_are_fragile;
reinitialized -- e.g. when program is re-run. */
extern int deprecated_exception_support_initialized;
+/* Tell a breakpoint to be quiet. */
+extern void breakpoint_silence (struct breakpoint *);
+
#endif /* !defined (BREAKPOINT_H) */
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 2c567dfc035..9a7844786d2 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -127,6 +127,7 @@ Copyright (C) 1988-2006 Free Software Foundation, Inc.
* Commands:: @value{GDBN} commands
* Running:: Running programs under @value{GDBN}
* Stopping:: Stopping and continuing
+* Reverse Execution:: Running programs backward
* Stack:: Examining the stack
* Source:: Examining source files
* Data:: Examining data
@@ -4387,6 +4388,109 @@ Display the current scheduler locking mode.
@end table
+@node Reverse Execution
+@chapter Running programs backward
+
+When you are debugging a program, it is not unusual to realize that
+you have gone too far, and some event of interest has already happened.
+If the target environment supports it, @value{GDBN} can allow you to
+``rewind'' the program by running it backward.
+
+A target environment that supports reverse execution should be able
+to ``undo'' the changes in machine state that have taken place as the
+program was executing normally. Variables, registers etc. should
+revert to their previous values. Obviously this requires a great
+deal of sophistication on the part of the target environment; not
+all target environments can support reverse execution.
+
+When a program is executed in reverse, the instructions that
+have most recently been executed are ``un-executed'', in reverse
+order. The program counter runs backward, following the previous
+thread of execution in reverse. As each instruction is ``un-executed'',
+the values of memory and/or registers that were changed by that
+instruction are reverted to their previous states. After executing
+a piece of source code in reverse, all side effects of that code
+should be ``undone'', and all variables should be returned to their
+prior values.
+
+Assuming you are debugging in a target environment that supports
+reverse execution, @value{GDBN} provides the following commands.
+
+@table @code
+@kindex reverse-continue
+@kindex rc @r{(@code{reverse-continue})}
+@item reverse-continue @r{[}@var{ignore-count}@r{]}
+@itemx rc @r{[}@var{ignore-count}@r{]}
+Beginning at the point where your program last stopped, start executing
+in reverse. Reverse execution will stop for breakpoints and synchronous
+exceptions (signals), just like normal execution. Behavior of
+asynchronous signals depends on the target environment.
+
+@kindex reverse-step
+@kindex rs @r{(@code{step})}
+@item reverse-step @r{[}@var{count}@r{]}
+Run the program backward until control reaches the start of a
+different source line; then stop it, and return control to @value{GDBN}.
+
+Like the @code{step} command, @code{reverse-step} will only stop
+at the beginning of a source line. It ``un-executes'' the previously
+executed source line. If the previous source line included calls to
+debuggable functions, @code{reverse-step} will step (backward) into
+the called function, stopping at the beginning of the @emph{last}
+statement in the called function (typically a return statement).
+
+Also, as with the @code{step} command, if non-debuggable functions are
+called, @code{reverse-step} will run thru them backward without stopping.
+
+@kindex reverse-stepi
+@kindex rsi @r{(@code{reverse-stepi})}
+@item reverse-stepi @r{[}@var{count}@r{]}
+Reverse-execute one machine instruction. Note that the instruction
+to be reverse-executed is @emph{not} the one pointed to by the program
+counter, but the instruction executed prior to that one. For instance,
+if the last instruction was a jump, @code{reverse-stepi} will take you
+back from the destination of the jump to the jump instruction itself.
+
+@kindex reverse-next
+@kindex rn @r{(@code{reverse-next})}
+@item reverse-next @r{[}@var{count}@r{]}
+Run backward to the beginning of the previous line executed in
+the current (innermost) stack frame. If the line contains function
+calls, they will be ``un-executed'' without stopping. Starting from
+the first line of a function, @code{reverse-next} will take you back
+to the caller of that function, @emph{before} the function was called.
+
+@kindex reverse-nexti
+@kindex rni @r{(@code{reverse-nexti})}
+@item reverse-nexti @r{[}@var{count}@r{]}
+Like @code{nexti}, @code{reverse-nexti} executes a single instruction
+in reverse, except that called functions are ``un-executed'' atomically.
+That is, if the previously executed instruction was a return from
+another instruction, @code{reverse-nexti} will continue to execute
+in reverse until the call to that function (from the current stack
+frame) is reached.
+
+@kindex reverse-finish
+@item reverse-finish
+Just as the @code{finish} command takes you to the point where the
+current function returns, @code{reverse-finish} takes you to the point
+where it was called. Instead of ending up at the end of the current
+function invocation, you end up at the beginning.
+
+@item set exec-direction
+Set the direction of target execution.
+@itemx set exec-direction reverse
+@cindex execute forward or backward in time
+@value{GDBN} will perform all execution commands in reverse, until the
+exec-direction mode is changed to ``forward''. Affected commands include
+@code{step, stepi, next, nexti, continue, and finish}. The @code{return}
+command cannot be used in reverse mode.
+@item set exec-direction forward
+@value{GDBN} will perform all execution commands in the normal fashion.
+This is the default.
+@end table
+
+
@node Stack
@chapter Examining the Stack
diff --git a/gdb/gdbtk/ChangeLog b/gdb/gdbtk/ChangeLog
deleted file mode 100644
index 3ea690166be..00000000000
--- a/gdb/gdbtk/ChangeLog
+++ /dev/null
@@ -1,107 +0,0 @@
-2007-03-13 Kevin Buettner <kevinb@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_loc): Eliminate use of
- `deprecated_selected_frame'.
- * generic/gdbtk-register.c (register_changed_p): Likewise.
- * generic/gdbtk-stack.c (gdb_block_vars, gdb_get_blocks)
- (gdb_get_vars_command, gdb_selected_block, gdb_selected_frame):
- Likewise.
-
-2006-11-30 Keith Seitz <keiths@redhat.com>
-
- insight/293:
- * library/watch.tcl (no_inferior): Remove all varobjs and
- clear the display.
- (clear_file): Call no_inferior. Update comments.
- * library/locals.tcl: Remove unused variables "Running"
- and "Variables". Changed throughout.
- (no_inferior): Delete the current frame and clear the display.
- (clear_file): Call no_inferior. Update comments.
- (context_switch): To delete an Itcl object, one uses
- "delete object" not "destroy".
-
-2006-11-30 Keith Seitz <keiths@redhat.com>
-
- insight/299:
- * generic/gdbtk.c (gdbtk_init): Don't check if DISPLAY is set,
- it isn't needed anymore. Gdb will not abort, and Tk_Init will
- fail gracefully.
-
-2006-11-30 Keith Seitz <keiths@redhat.com>
-
- * library/targetselection.itb (constructor): "top" is unused.
- Remove it.
- (get_target_list): Use "scan" to parse "help target" output.
-
-2006-11-09 Keith Seitz <keiths@redhat.com>
-
- * help/trace/locals.html: Remove all references to gdb.ini. Even
- Cygwin now uses .gdbinit.
- * help/trace/watch.html: Likewise.
-
-2006-09-28 Keith Seitz <keiths@redhat.com>
-
- * aclocal.m4: Regenerate.
- * configure: Regenerate.
- * Makefile.in: Regenerate.
-
-2006-09-19 Keith Seitz <keiths@redhat.com>
-
- From Andrew Stubbs <andrew.stubbs@st.com>:
- * library/prefs.tcl (pref_save): Save preferences if
- INSIGHT_FORCE_READ_PREFERENCES is set in the environment.
-
-2006-09-14 Keith Seitz <keiths@redhat.com>
-
- * README: Update startup info and add DISPLAY environment
- variable.
-
-2006-08-25 Maciej W. Rozycki <macro@mips.com>
-
- * generic/gdbtk-cmds.c (gdb_update_mem): Use target_read.
-
-2006-08-25 Keith Seitz <keiths@redhat.com>
-
- * library/prefs.tcl (pref_set_defaults): Disable IPC, gdb/ipc/enabled,
- by default.
-
-2006-06-26 Keith Seitz <keiths@redhat.com>
-
- * library/srcwin.itb (_build_win): Add invisible frame to workaround
- the missing frame problem.
-
-2006-03-29 Brian Dessent <brian@dessent.net>
-
- * generic/gdbtk-cmds.c: Include sys/cygwin.h if __CYGWIN__ defined.
- (gdb_path_conv): Call cygwin_conv_to_full_win32_path instead.
-
-2006-01-23 Keith Seitz <keiths@redhat.com>
-
- From Andrew Stubbs <andrew.stubbs@st.com>:
- * library/help/source.html: Add entries for the missing menu commands.
-
-2006-01-23 Keith Seitz <keiths@redhat.com>
-
- From Andrew Stubbs <andrew.stubbs@st.com>:
- * library/mempref.itb (MemPref::constructor): Allow the Byte Per Row
- combo box to accept arbitrary values.
- (MemPref::set_bytes_per_row): Validate the new value; reject invalid
- entries and round up to a multiple of the word size.
- (MemPref::apply): Read the value from the text box even if the user
- has not pressed return.
- (MemPref::enable_format): Ensure the bytes per row value is still valid.
- (MemPref::disable_format): Likewise.
- * library/mempref.ith (MemPref): Add $gbprlist.
- * library/help/memory.html: Update.
-
-2006-01-23 Keith Seitz <keiths@redhat.com>
-
- From Andrew Stubbs <andrew.stubbs@st.com>:
- * library/helpviewer.tcl (open_help): Add firefox and opera to the
- browser list used to display help.
-
-2006-01-23 Keith Seitz <keiths@redhat.comt>
-
- * ChangeLog: Cleared and saved to ...
- * ChagneLog-2005: ... here.
-
diff --git a/gdb/gdbtk/ChangeLog-2001 b/gdb/gdbtk/ChangeLog-2001
deleted file mode 100644
index b543b911d71..00000000000
--- a/gdb/gdbtk/ChangeLog-2001
+++ /dev/null
@@ -1,1719 +0,0 @@
-2001-12-21 Tom Tromey <tromey@redhat.com>
-
- * generic/gdbtk-cmds.h (full_lookup_symtab): Don't declare.
- * generic/gdbtk-cmds.c (gdb_find_file_command): Use
- lookup_symtab.
- (gdb_listfuncs): Likewise.
- (gdb_loadfile): Likewise.
- (full_lookup_symtab): Removed.
- * generic/gdbtk-bp.c (gdb_find_bp_at_line): Use lookup_symtab.
- (gdb_set_bp): Likewise.
-
-2001-12-21 Keith Seitz <keiths@redhat.com>
-
- * library/bpwin.ith (_select_and_popup): New private method.
- * library/bpwin.itb (bp_select): Don't bind to Button-3.
- (build_win): Bind Button-3 to _select_and_popup.
- (_select_and_popup): New private method.
-
-2001-12-18 Keith Seitz <keiths@redhat.com>
-
- * library/memwin.itb (incr_addr): Fix typo.
-
-2001-12-16 Andrew Cagney <ac131313@redhat.com>
-
- * generic/gdbtk-cmds.c (hex2bin): Replace LITTLE_ENDIAN with
- BFD_ENDIAN_LITTLE.
-
-2001-12-10 Ian Roxborough <irox@redhat.com>
-
- * library/interface.tcl (set_target_name): Call "pref getd"
- instead of "pref get" to avoid undefined preference error
- message for default-hostname.
-
-2001-12-07 Keith Seitz <keiths@redhat.com>
-
- * library/managedwin.itb (shutdown): Don't save geometry for
- plugins, either.
-
-2001-12-05 Keith Seitz <keiths@redhat.com>
-
- * library/console.itb (busy): Set the cursor to the watch.
- (idle): Reset cursor to normal.
-
-2001-11-30 Martin M. Hunt <hunt@redhat.com>
-
- * library/interface.tcl (gdbtk_eval): Remove
- undocumented debug function.
-
-2001-11-21 Tom Tromey <tromey@redhat.com>
-
- * library/interface.tcl (gdbtk_tcl_preloop): Override session's
- command-line arguments if required.
-
-2001-11-20 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk.c (gdbtk_init): If DISPLAY is not set on Unix,
- clear the init_ui_hook so that gdb will properly initialize
- the cli.
-
-2001-11-08 Martin M. Hunt <hunt@redhat.com>
- * generic/gdbtk-cmds.c (gdb_eval): Add an optional
- format argument.
- (hex2bin): Swap bytes around if target is little endian.
- Fix loop count.
- (gdb_incr_addr): New function to do address arithmetic.
- Needed because some addresses are 64-bits and tcl can't
- deal with them, except as strings.
-
- * library/memwin.itb (MemWin::build_win): Add a label
- to indicate the target endianess.
- (MemWin::edit): Use gdb_incr_addr.
- (MemWin::busy): The constructor calls gdbtk_busy which
- calls this before the window has finished drawing, so
- don't disable items that don't exist yet.
- (MemWin::update_address): Set a flag, bad_expr, if the
- expression does not evaluate. Call gdb_eval with 'x' flag
- to force the result to be hex.
- (MemWin::BadExpr): Set bad_expr.
- (MemWin::incr_addr): Use gdb_incr_addr.
- (MemWin::update_addr): Return is bad_expr is set. Use
- gdb_incr_addr.
- (MemWin::goto): Call update_address.
- * library/memwin.itb: Declare private variable bad_expr.
-
- * library/util.tcl (gdbtk_endian): New procedure. Returns
- BIG or LITTLE to indicate target endianess.
-
-2001-11-08 Martin M. Hunt <hunt@redhat.com>
- * library/managedwin.itb (ManagedWin::shutdown): Fix
- typo in class name DebugWinDOpts.
-
- * library/debugwin.itb: Add MemWin to _classes.
-
-2001-11-05 Martin M. Hunt <hunt@redhat.com>
- * generic/gdbtk-cmds.h (gdbtk_set_result): Declare.
- A printf-like function to return error messages.
- * generic/gdbtk-cmds.c (gdbtk_set_result): New
- function.
- (gdb_cmd): Use gdbtk_set_result.
- (gdb_immediate_command): Ditto.
- (gdb_load_info): Ditto.
- (gdb_find_file_command): Ditto.
- (gdb_listfuncs): Ditto.
- (gdb_load_disassembly): Ditto.
- (gdb_loc): Ditto.
- (gdb_set_mem): Ditto.
- (gdb_get_mem): Ditto.
- (gdb_loadfile): Ditto.
- * generic/gdbtk-varobj.c (variable_format): Ditto.
- (variable_value): Ditto.
- * generic/gdbtk-stack.c (gdb_get_vars_command): Ditto.
- * generic/gdbtk-bp.c (gdb_get_breakpoint_info): Ditto.
- (gdb_set_bp): Ditto.
- (gdb_set_bp_addr): Ditto.
- (gdb_get_tracepoint_info): Ditto.
-
-2001-11-05 Martin M. Hunt <hunt@redhat.com>
-
- * library/stackwin.itb (StcakWin::reconfig): Destroy sbox
- if it exists.
-
- * library/process.itb (ProcessWin::reconfig): Destroy sbox
- if it exists. This fixes reconfig failures on Windows. Also
- destroy slbox.
-
- * library/bpwin.itb (BpWin::reconfig): Destroy sbox if
- it exists.This fixes reconfig failures on Windows. Also
- destroy sf
-
- * library/tdump.tcl (TdumpWin::reconfig): Delete sbox
- and stext then rebuild window.
-
-2001-11-05 Martin M. Hunt <hunt@redhat.com>
-
- * library/debugwin.itb (DebugWin::build_win):
- Initialize gdbtk_de(ERRORS_ONLY) and gdbtk_de(filter_var)
- (DebugWin::puts): Rewrite filter to handle new options.
- (DebugWinDOpts::build_win): Update list of classes. Change
- filter dialog so we can not display only errors and warnings
- or choose between displaying ALL classes except those selected
- or only selected classes. Fix "OK" button to apply
- changes before closing dialog.
- DebugWinOpts::_apply): Now takes an agrument that
- indicates if dialog should exit after applying filter.
-
- * library/debugwin.ith (_apply): Now takes an arg.
-
- * library/main.tcl: If GDBTK_DEBUGFILE is not set,
- use "insight.log" as the default. If GDBTK_DEBUG is set
- and nonzero, start logging debug messages to
- GDBTK_DEBUGFILE immediately. Never open the debug window
- automatically.
-
- * library/managedwin.itb (ManagedWin::shutdown): Don't
- save debug window options dialog on active list
-
- * library/srcwin.itb: Remove troublesome debug line.
-
-2001-11-05 Martin M. Hunt <hunt@redhat.com>
- * library/globalpref.itb (GlobalPref::_init_var):
- New method to initialize _saved and _new arrays.
- (GlobalPref::constructor): Call _init_var.
- (GlobalPref::_buildwin): Use _new array for prefs
- variables. Font optimizations. Remove troublesome
- fonts and sort the list.
- (GlobalPref::toggle_tracing_mode): Removed. Some
- functionality moved to _apply and _cancel.
- (GlobalPref::_apply): Set prefs with values from the
- _new array.
- (SrcPref::_cancel): Reset prefs with values from _saved.
- * library/globalpref.ith: Changed private variables
- and methods to start with underscore.
- (tracing_cb): Removed.
- (_init): Changed from proc to method.
-
-2001-11-01 Keith Seitz <keiths@redhat.com>
-
- * library/memwin.itb (update_addr): Evaluate the address
- to be sent to gdb_get_mem to prevent passing error strings
- to string_to_coreaddr in gdb_get_mem.
-
-2001-10-29 Martin M. Hunt <hunt@redhat.com>
-
- * library/debugwin.itb: Don't increment number of
- TopLevelWins.
-
- * library/managedwin.itb: Don't save DebugWins to
- active list.
-
-2001-10-29 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk-bp.c (gdb_set_bp_addr): When setting
- the bp addr_string, use the string the function was called
- with instead of using sprintf to write a new one. This
- avoids a problem with truncating 64-bit addresses.
-
- * library/srcbar.itcl (SrcBar::create_buttons) Don't
- set width of address label.
- (SrcBar::address) When the address changes, recompute
- width of address label. If it is more than 10, force it
- to 18, otherwise use 10.
-
-2001-10-29 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk-bp.c (gdb_find_bp_at_addr): Use
- string_to_core_addr to read address so 64 bits will work.
- (gdb_set_bp): Set error message with Tcl_SetObjResult()
- so it will be displayed.
- (gdb_set_bp_addr):Use string_to_core_addr to read address.
- Set error message with Tcl_SetObjResult().
-
- * generic/gdbtk-cmds.c (gdb_get_mem): :Use string_to_core_addr
- to read address. Set error message with Tcl_SetObjResult() or
- Tcl_WrongNumArgs.
-
-2001-10-27 Tom Tromey <tromey@redhat.com>
-
- * tclIndex: Updated.
- * library/main.tcl: Add session_notice_file_change to
- file_changed_hook.
- * library/session.tcl (session_load): Only load the executable.
- (session_notice_file_change): New proc.
- (SESSION_exe_name): New proc.
- (session_save): Use it.
- (session_notice_file_change): Likewise.
- * library/interface.tcl (gdbtk_tcl_exec_file_display): Don't call
- session_save.
- (gdbtk_tcl_preloop): Don't set executable name or try to find
- main. Notice a new session if required.
-
-2001-10-18 Martin M. Hunt <hunt@redhat.com>
-
- * library/srcpref.itb (SrcPref::contructor): Move array
- initialization to _init_var.
- (SrcPref::_init_var): New method to initialize _saved and
- _new arrays.
- (SrcPref::buildwin): Rename to _buildwin. Have widgets use
- _new instead of [pref varname ...]. Set initial value of
- tab size spinint.
- (SrcPref::_apply): Set prefs with values from the _new array.
- (SrcPref::_cancel): Reset disassembly flavor and don't call
- _save because nothing is saved unless OK is selected.
- (SrcPref::set_flavor): Rename to _set_flavor.
- (SrcPref::_pick): Just set _new, not prefs.
-
- * library/srcpref.ith: Add private variable _new and
- private method cancel. Rename others with leading underscore.
-
-2001-10-16 Andrew Cagney <ac131313@redhat.com>
-
- From 2001-08-29 John Moore <jmoore@redhat.com>:
- * gdbtk/generic/gdbtk-cmds.c (gdb_disassemble): Replaced
- parse_and_eval_address() with string_to_core_addr().
- (gdb_load_disassembly): Same.
- (gdb_set_mem): Ditto.
- * gdbtk/generic/gdbtk-stack.c (gdb_block_vars): Ditto.
- * gdbtk/generic/gdbtk-varobj.c (variable_create): Same.
-
-2001-10-17 Tom Tromey <tromey@cygnus.com>
-
- * console.itb (Console::_build_win): Handle bindings which
- are ";". Also, completely override underlying Text binding.
-
-2001-10-12 Tom Tromey <tromey@redhat.com>
-
- * library/console.itb (Console::_build_win): Bind Control-m and
- Control-j.
-
-2001-10-12 Daniel Jacobowitz <drow@mvista.com>
-
- * generic/gdbtk-cmds.c (gdb_listfuncs): Use ALL_BLOCK_SYMBOLS.
- * generic/gdbtk-stack.c (gdb_block_vars): Likewise.
- (gdb_get_blocks): Likewise.
- (gdb_get_vars_command): Likewise.
-
-2001-10-10 Ian Roxborough <irox@redhat.com>
-
- * library/gdbtoolbar.itcl (GDBToolBar::add): Add option
- for "custom" type.
- (GDBToolBar::toolbar_add_custom): new method.
-
-2001-10-06 Tom Tromey <tromey@redhat.com>
-
- * library/session.tcl (SESSION_recreate_bps): Use
- gdb_run_readline_command_no_output to recreate breakpoints.
- * library/interface.tcl (gdb_run_readline_command): Set
- readlineShowUser element of gdbtk_state.
- (gdb_run_readline_command_no_output): New proc.
- (initialize_gdbtk): Initialize readlineShowUser element.
- (gdbtk_tcl_readline_begin): Use readlineShowUser element.
- (gdbtk_tcl_readline): Likewise.
-
-2001-10-05 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-bp.c (get_breakpoint_commands): New function.
- (gdb_get_breakpoint_info): Use gdb_breakpoint_commands to
- assemble breakpoint commands information.
-
-2001-10-02 Tom Tromey <tromey@redhat.com>
-
- * library/tclIndex: Updated.
- * library/prefs.tcl (pref_set_defaults): Define gdb/editor
- preference.
- * library/srcpref.itb (SrcPref::constructor): Save gdb/editor
- preference.
- (SrcPref::build_win): Added external editor control.
- * library/srctextwin.itb (SrcTextWin::do_source_popup): Always
- enable external editor. Use `code' instead of `list'.
- * library/srcwin.itb (SrcWin::edit): Use Editor::edit.
- * library/editor.tcl: New file.
- * generic/gdbtk.c (enable_external_editor): Removed.
- (external_editor_command): Default to NULL.
- (gdbtk_init): Don't set enable_external_editor. Free external
- editor command when finished with it.
-
-2001-09-28 Tom Tromey <tromey@redhat.com>
-
- * library/console.itb (Console::_operate_and_get_next): New method.
- (Console::_setprompt): Insert next history element if requested.
- (Console::_build_win): Bind C-o to _operate_and_get_next.
- * library/console.ith (_operate_and_get_next): Declare.
- (_pendingHistElement): New variable.
-
-2001-09-27 Elena Zannoni <ezannoni@redhat.com>
-
- * library/targetselection.itb (build_win, default_port): Handle
- hpux 11.00.
-
-2001-09-27 Keith Seitz <keiths@redhat.com>
-
- * library/prefs.tcl (escape_value): Update to work
- with Tcl's new and old syntax.
-
-2001-09-19 Keith Seitz <keiths@redhat.com>
-
- * library/main.tcl: Append iwidgets library path, if needed.
- * generic/gdbtk.c (gdbtk_init): Add TCLLIBPATH to iwidgets
- package index.
- Define IWIDGETS_LIBRARY in interpreter so that we can add
- this path to the auto_path at the right time later.
-
-2001-09-10 Ian Roxborough <irox@redhat.com>
-
- * generic/gdbtk.c (gdbtk_init): Set IWIDGETS_LIBRARY if
- Insight is launched from within the build directory.
- * library/util.tcl (find_iwidgets_library): Removed.
- * library/main.tcl: Don't call find_iwidgets_library, do a
- package require instead.
-
-2001-08-28 Keith Seitz <keiths@redhat.com>
-
- * library/bpwin.itb (bp_select): Use standard preferences
- for selection fg & bg, not tixOption database.
-
- * process.itb, tracedlg.tcl: Remove all traces of those
- three evil little letters, "t", "i", "x".
-
-2001-08-28 Keith Seitz <keiths@redhat.com>
-
- * library/tracedlg.tcl (build_win): Use libgui's
- Labelledframe instead of tixLabelFrame.
- Use iwidgets::scrolledlistbox instead of tixScrolledListbox.
- (edit): Check if there is a selection in the listbox
- before proceeding.
- Escape method callbacks before passing to ActionDlg.
-
- * library/actiondlg.tcl (constructor): Use "gdb_reginfo"
-
-2001-08-28 Keith Seitz <keiths@redhat.com>
-
- * library/tdump.tcl (class TdumpWin): Inherit from GDBWin
- and ManagedWin.
- (constructor): Remove old itcl2 handling code and name the
- window.
- (build_win): Use iwidgets::scrolledtext instead of
- tixScrolledText.
- (twin): Remove unused variable. Use itk_component(stext)
- instead.
- (maxwidth): Remove unused variable.
- (destructor): Remove unused method.
- (config): Ditto.
-
-2001-08-28 Keith Seitz <keiths@redhat.com>
-
- * library/srcpref.itb (build_win): Use iwidgets::spinint
- instead of tixControl.
-
-2001-08-28 Keith Seitz <keiths@redhat.com>
-
- * library/process.ith (top): Remove unused protected variable.
- Use GDBWin::_top instead.
- (lb): Remove unused variable.
- (change_context): Remove parameter. It's not needed.
- * library/process.itb (constructor): Don't set the variable
- "top". It isn't needed. GDBWin has this information.
- (buildwin): Get rid of tixScrolledListbox. Use
- iwidgets::scrolledlistbox instead.
- Loose the balloon help. It annoys more than helps.
- (update): Use new scrolledlistbox component.
- Split the list of threads BEFORE doing llength. Someone
- shoot me if this has to be fixed one more time...
- (change_context): Update definition and usage.
- (cursor): Use GDBWin::_top instead of our own private copy.
-
-2001-08-28 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_disassemble_driver): We should be
- looking for "thread", not "threads" to determine if we have
- a multi-threaded child process.
-
-2001-08-28 Keith Seitz <keiths@redhat.com>
-
- * library/bpwin.itb (build_win): Get rid of tixScrolledWindow
- and use iwidgets::scrolledframe until something better comes
- along.
-
-2001-08-23 Tom Tromey <tromey@redhat.com>
-
- * library/srcwin.itb (SrcWin::fillFuncCB): Sort function names.
-
-2001-08-23 Martin M. Hunt <hunt@redhat.com>
-
- * library/targetselection.itb: Added PMON and DDB targets.
-
-2001-08-22 Tom Tromey <tromey@redhat.com>
-
- * library/prefs.tcl (pref_read): Version number appears in
- comment.
-
-2001-08-21 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk.c (gdbtk_init): Gdb just fixed this. No
- need for the workaround I just checked in anymore.
-
-2001-08-21 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk.c (gdbtk_init): Reinitialize disassemle info's
- stream parameter: we just deleted the one it saved when we
- re-routed gdb_stdout to our own gdb_stdout.
-
-2001-08-20 Keith Seitz <keiths@redhat.com>
-
- * library/stackwin.itb (build_win): Use iwidget's scrolled listbox
- instead of tix scrolled list box.
- (update): Update to use iwidget's scrolled list box.
- (change_frame): Ditto.
- Remove parameters.
- * library/stackwin.ith (change_frame): Remove all parameters.
-
-2001-08-20 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_load_disassembly): Save the original
- address from parse_and_eval_address: if find_pc_partial_function
- errors, we will lose our original address.
- If find_pc_partial_function does error, print out both
- the address we thought we were disassembling at AND the address
- we actually did disassemble at. This should help elide address-
- to-pointer and pointer-to-address problems.
- * library/srctextwin.itb (FillAssembly): When gdb_load_disassembly
- fails, use its error message instead of the cooked "Unable to
- Read insturctions..." message.
- (UnLoadFromCache): If oldpane is empty, don't try show it,
- don't try to set our view to it, don't do anything but
- erase the given pane.
-
-2001-08-17 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-varobj.c (variable_obj_command): Pass pointer
- to varobj* when calling variable_update (API changed).
- (variable_create): Don't pass varobj* to install_variable. It's
- not used.
- (variable_children): Likewise.
- (variable_update): Change parameters to accept pointer to
- varobj*. Matches API change in varobj_update.
- (install_variable): Remove unused "var" parameter.
-
-2001-08-16 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk.c (gdbtk_init): Revert change from earlier.
- It is insufficient. We must get the absolute pathname
- from autoconf.
- Don't bother setting TCL_LIBRARY: it must be set already
- in order for us to execute a script.
-
-2001-08-16 Keith Seitz <keiths@redhat.com>
-
- * library/globalpref.ith (_change_font, _change_size): New
- private methods.
- (_size): New private variable.
- (font_changed, wfont_changed): Removed.
- * library/globalpref.itb (make_font_item): Change combobox
- callback to use _change_font.
- Replace tixControl with iwidgets::spinint.
- (font_changed, wfont_changed): Removed.
- (_change_font, _change_size): New private methods.
- * tclIndex: Regenerate.
-
-2001-08-16 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk.c (gdbtk_init): Make sure we're working with
- absolute pathnames in the *_LIBRAY variables.
-
-2001-08-16 Keith Seitz <keiths@redhat.com>
-
- From Ian Roxborough <irox@redhat.com>
- * generic/gdbtk-hooks.c (x_event): Deal with Tcl API insanity
- for Tcl_ObjGetVar2 or Tcl_GetObjVar2.
- (gdbtk_trace_find): Likewise for Tcl_GlobalEvalObj
- or Tcl_EvalObj (TCL_EVAL_GLOBAL).
-
-2001-08-15 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk.c (gdbtk_init): Don't assume a particular
- layout for the source directory, let the Makefile tell us
- where the real source directory is.
- When compiling under Cygwin, convert the (posix) path to a
- win32 path, which is what tcl really wants.
-
-2001-08-15 Ian Roxborough <irox@redhat.com>
-
- * generic/gdbtk.c (gdbtk_init): If Insight isn't
- executed from inside a directory called "bin",
- assume that we are being running from the build
- directory and set the *_LIBRARY variables to point
- to (hopefully) the correct source directory.
-
-2001-08-13 Keith Seitz <keiths@redhat.com>
-
- * library/regwin.ith: Rewrite.
- * library/regwin.itb: Rewrite.
- * library/tclIndex: Regenerate.
-
-2001-08-13 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-register.c (gdb_register_info): New function.
- Consolidates all register handling.
- (get_register_size): New function.
- (gdb_changed_register_list, gdb_fetch_registers,
- gdb_regnames): Deprecate.
- (setup_architecture_data): Free old register cache
- when necessary.
-
-2001-08-13 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-hooks.c (gdbtk_add_hooks): Register
- architecture_changed event handler.
- (gdbtk_architecture_changed): New function.
- * library/gdbevent.ith (class ArchChangdEvent): New event.
- * library/ehandler.ith (arch_changed): New method. Handler
- for ArchChangedEvents.
- * library/interface.tcl (gdbtk_tcl_architecture_changed): New
- proc to handle architecture change events.
-
-2001-08-09 Keith Seitz <keiths@redhat.com>
-
- * library/prefs.tcl (pref_set_defaults): Add new font
- color defaults for highlighting, headers, selecting, and "normal".
- Get rid of gdb/variable/highlight_fg and gdb/reg/highlight_fg.
- * library/variables.tcl (build_win): Use gdb/font/highlight_fg
- and gdb/font/highilght_bg to set highlight style.
- * library/memwin.itb (build_win): Use header_fg and header_bg.
-
-2001-08-03 Keith Seitz <keiths@redhat.com>
-
- * library/srcbar.itcl (_post): New method.
- (_update_file_menu): New method.
- (create_file_menu): Move the guts to _update_file_menu.
- Add a post command to the menu.
- * library/interface.tcl (gdbtk_tcl_file_changed): Catch the
- call to run_hooks.
- (gdbtk_tcl_exec_file_display): Save the new session, too.
- (set_exe_name): Don't bother saving the session here.
- (_close_file): Save the session here, too.
- (gdbtk_clear_file): Catch the call to run_hooks, too.
- * library/gdbmenubar.itcl (menubar_new_menu): Allow caller
- to specify optional arguments to be passed to Tk when
- creating the menu.
- Tk's "menu add" command returns an empty string. Save the
- menu's index in the parent instead. This is what all
- the menu subcommands want.
-
-2001-08-02 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-bp.c (gdb_get_breakpoint_info): Update
- with recent breakpoint structure changes in gdb.
- (gdb_set_bp_addr): Likewise.
- (gdb_get_tracepoint_info): Update with recent tracepoint
- structure changes in gdb.
-
-2001-07-31 Elena Zannoni <ezannoni@redhat.com>
-
- * generic/gdbtk-cmds.c: Don't include regcache.h.
- * generic/gdbtk-register.c: Include regcache.h.
-
-2001-07-26 Jonathan Larmour <jlarmour@redhat.com>
-
- * library/prefs.tcl (pref_set_defaults): Add additional entry
- points for eCos if main is not present.
-
-2001-07-21 Martin M. Hunt <hunt@redhat.com>
-
- * library/interface.tcl (gdbtk_locate_main): Fix function
- so that it returns either a null string or a valid location,
- as documented.
-
- * library/variables.tcl (build_menu_helper): Set
- the Format menu option to "disabled" initially.
-
-2001-07-20 Martin M. Hunt <hunt@redhat.com>
-
- * library/managedwin.itb: Revert to global to properly
- initialize geometry with some window managers.
- * library/managedwin.ith (shutdown): Remove _geometry.
-
- * library/memwin.itb: Fix syntax to open a new window
- using the "-force" flag.
-
- * generic/gdbtk-register.c (gdb_regnames): Fix 'if'
- statement so count is decremented only if "-numbers"
- is the first arg.
-
-2001-07-18 Martin M. Hunt <hunt@redhat.com>
-
- * library/util.tcl (find_iwidgets_library): Look
- for iwidgets3* so we don't accidently find iwidgets2.x.
-
-2001-07-16 Nick Duffek <nsd@redhat.com>
-
- * library/regwin.itb (RegWin::build_win): Add radio button
- for unsigned register format.
- (RegWin::reg_select): Iterate through 8 rather than 7 formats.
- (RegWin::but3): Add menu option for unsigned register format.
-
-2001-07-13 Keith Seitz <keiths@redhat.com>
-
- * library/download.itb (constructor): Use the iwidgets
- feedback widget instead of tixMeter.
- Pack all the topmost widgets together -- don't use grid.
- (update_download): Support the feedback widget.
- (done): Ditto.
-
- * library/download.ith (steps): New private variable.
- (num_steps): New common.
-
-2001-07-12 Keith Seitz <keiths@redhat.com>
-
- * library/srcbar.itcl (create_trace_buttons): Fix
- syntax errors.
-
- * library/tracedlg.tcl: Update to work with Itcl3.0
- and ManagedWin.
-
- * library/actiondlg.tcl: Update to work with Itcl3.0
- and ManagedWin.
- (build_win): Use iwidgets scrolled listbox instead
- of the tix one.
-
-2001-07-05 Keith Seitz <keiths@redhat.com>
-
- * library/managedwin.itb (_create): Don't pass "-over"
- to center_window unless we really are asked to put the
- window over another!
-
-2001-06-18 Keith Seitz <keiths@redhat.com>
-
- * library/managedwin.itb (_create): When creating a
- window over another, be sure to center on the window,
- not the object.
-
-2001-06-13 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-bp.c (gdbtk_tracepoint_create): Change
- parameter to int to match breakpoint notifications.
- (gdbtk_tracepoint_modify): Ditto.
- (gdbtk_tracepoint_delete): Ditto.
- (tracepoint_notify): Ditto.
- * generic/gdbtk-hooks.c (gdbtk_add_hooks): Remove
- tracepoint hooks and install tracepoint event handlers.
-
-2001-06-11 Tom Tromey <tromey@redhat.com>
-
- * library/help/session.html: New file.
- * library/help/index.html: Added link.
-
- * library/session.tcl (session_save): Save breakpoints.
- (SESSION_serialize_bps): New proc.
- (SESSION_recreate_bps): New proc.
- (session_load): Recreate breakpoints.
- * library/util.tcl (bp_exists): Expect user specification in
- breakpoint info.
- * library/srctextwin.itb (SrcTextWin::showBPBalloon): Expect user
- specification in breakpoint info.
- * library/gdbevent.itb (BreakpointEvent::_init): Initialize
- _user_specification.
- (BreakpointEvent::get): Handle user_specification.
- * library/gdbevent.ith (BreakpointEvent): Added
- _user_specification field.
- * library/bpwin.itb (BpWin::bp_store): Expect user specification
- and use it when saving.
- (BpWin::bp_type): Expect user specification.
- * generic/gdbtk-bp.c (BREAKPOINT_IS_WATCHPOINT): New macro.
- (gdb_get_breakpoint_info): Added `user specification' to result.
-
-2001-06-11 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-stack.c (gdb_stack): Return TCL_ERROR if
- we are unable to get the current frame. get_current_frame
- may have output an error message.
-
-2001-06-07 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-hooks.c (x_event): Remove unused variable "count".
- (tracepoint_notify): Remove superfluous declaration. This funtion
- was moved to gdbtk-bp.c.
-
- * generic/gdbtk-bp.c (gdb_find_bp_at_addr): Remove unused variable
- "b".
- (gdb_set_bp): Remove unused variable "cmd".
- (gdb_set_bp_addr): Remove unused variables "cmd" and "filename".
-
- * generic/gdbtk.c (gdbtk_init): Remove unused variables
- "auto_path_name", "auto_path_elem", and "found_main".
-
-2001-06-05 Martin Hunt <hunt@redhat.com>
-
- * generic/gdbtk.c (_initialize_gdbtk): Don't close console yet.
- (gdbtk_init): Wait until after tcl/tk stuff is all initialized
- to close console (on Windows) and redirect ouput.
-
-2001-06-05 Martin Hunt <hunt@redhat.com>
-
- * library/globalpref.itb(build_win): Don't change directory
- before building icon combobox. Add debug lines.
-
-2001-06-04 Keith Seitz <keiths@redhat.com>
-
- * library/srcbar.itcl (constructor): Set the toolbar's initial
- state.
-
-2001-06-04 Keith Seitz <keiths@redhat.com>
-
- * library/interface.tcl (gdb_update_hook): Mark as deprecated.
- (gdbtk_update): Dispatch and UpdateEvent, too.
- * library/ehandler.ith (update): New event handler.
- * library/gdbevent.ith (UpdateEvent): New event.
- * library/gdbevent.itb (UpdateEvent::constructor): New method.
- (UpdateEvent::get): New method.
- * library/kod.ith (udpate): Match event handler definition.
- * library/kod.itb (update): Ditto.
- (build_win): Pass dummy argument to update method.
- (top): Ditto.
- (up): Ditto.
- (set_variable): Ditto.
- * library/memwin.ith (update): Match event handler definition.
- * library/memwin.itb (update): Ditto.
- (constructor): Remove gdb_update_hook.
- (destructor): Ditto.
- * library/process.ith (update): Match event handler definition.
- * library/process.itb (update): Ditto.
- (constructor): Remove gdb_update_hook.
- (destructor): Ditto.
- (build_win): Pass dummy argument to update method.
- * library/regwin.ith (update): Match event handler definition.
- * library/regwin.itb (update): Ditto.
- (constructor): Remove gdb_update_hook.
- (destructor): Ditto.
- (build_win): Pass dummy argument to update method.
- (but3): Ditto.
- (unedit): Ditto.
- * library/stackwin.ith (update): Match event handler definition.
- * library/stackwin.itb (update): Ditto.
- (constructor): Remove gdb_update_hook.
- (destructor): Ditto.
- (build_win): Pass dummy argument to update method.
- * library/tdump.tcl (update): Match event handler definition.
- (constructor): Remove gdb_update_hook.
- (destructor): Ditto.
- (build_win): Pass dummy argument to update method.
- * library/variables.tcl (update): Match event handler definition.
- (build_win): Pass dummy argument to update method.
- * library/locals.tcl (update): Match event handler definition.
- (constructor): Pass dummy argument to update method.
- * library/watch.tcl (update): Match event handler definition.
- Pass dummy argument to VariableWin::update.
- (add): Pass dummy argument to update method.
- * library/srcwin.ith (update): New method.
- (update_hook_init): Remove.
- * library/srcwin.itb (update): New method.
- (constructor): Remove gdb_update_hook.
- (destructor): Ditto.
- * tclIndex: Regenerate.
-
-2001-06-01 Keith Seitz <keiths@redhat.com>
-
- * library/console.itb (constructor): Pass dummy argument
- to idle method.
- (destructor): Ditto.
-
-2001-05-31 Keith Seitz <keiths@redhat.com>
-
- * library/interface.tcl (gdbtk_idle): Run hooks, too,
- until they're all gone.
-
-2001-05-31 Keith Seitz <keiths@redhat.com>
-
- * library/interface.tcl (gdb_idle_hook): Mark as deprecated.
- (gdbtk_idle): Dispatch an IdleEvent. gdb_idle_hook is gone.
- * library/ehandler.ith (idle): New event handler.
- * library/gdbevent.ith (IdleEvent): New event.
- * library/console.ith (idle): Match event handler definition.
- * library/console.itb (idle): Ditto.
- (constructor): Remove gdb_idle_hook.
- (destructor): Ditto.
- * library/kod.ith (idle): Match event handler definition.
- * library/kod.itb (idle): Ditto.
- (constructor): Remove gdb_idle_hook.
- (destructor): Ditto.
- * library/memwin.ith (idle): Match event handler definition.
- * library/memwin.itb (idle): Ditto.
- (constructor): Remove gdb_idle_hook.
- (destructor): Ditto.
- * library/pluginwin.itcl (stopped): Rename to "idle" and
- match event handler definition.
- Fix misleading comments.
- * library/process.ith (idle): Match event handler definition.
- * library/process.itb (idle): Ditto.
- (constructor): Remove gdb_idle_hook.
- (destructor): Ditto.
- * library/regwin.ith (idle): Match event handler definition.
- * library/regwin.itb (idle): Ditto.
- (constructor): Remove gdb_idle_hook.
- (destructor): Ditto.
- * library/srcbar.itcl (idle): New method.
- (constructor): Remove gdb_idle_hook.
- (destructor): Ditto.
- * library/srcwin.ith (idle): Match event handler definition.
- * library/srcwin.itb (idle): Ditto.
- (constructor): Remove gdb_idle_hook.
- (destructor): Ditto.
- * library/stackwin.ith (idle): Match event handler definition.
- * library/stackwin.itb (idle): Ditto.
- (constructor): Remove gdb_idle_hook.
- (destructor): Ditto.
- * library/variables.tcl (idle): Match event handler definition.
- (constructor): Remove gdb_idle_hook.
- (destructor): Ditto.
- * library/plugins/rhabout/rhabout.itcl (stopped): Rename
- to "idle" and match new event handler definition.
- * library/tclIndex: Regenerated.
-
-2001-05-31 Keith Seitz <keiths@redhat.com>
-
- * library/interface.tcl (gdb_busy_hook): Deprecate.
- (gdbtk_busy): Create and dispatch a BusyEvent instead
- of running hooks.
- * library/ehandler.ith (busy): New event handler.
- * library/gdbevent.ith (BusyEvent): New event class.
- * library/console.ith: Inherit from GDBEventHandler.
- (busy): Match event handler definition.
- * library/console.itb (busy): Ditto.
- (constructor): Remove gdb_busy_event.
- (destructor): Ditto.
- * library/kod.ith (busy): Match event handler definition.
- * library/kod.itb (busy): Ditto.
- (constructor): Remove gdb_busy_hook.
- (destructor): Ditto.
- * library/memwin.ith (busy): Match event handler definition.
- * library/memwin.itb (busy): Ditto.
- (constructor): Remove gdb_busy_hook.
- (destructor): Ditto.
- * library/pluginwin.itcl (running): Rename to "busy" and
- match event handler definition.
- (consturctor): Remove gdb_busy_hook.
- (destructor): Ditto.
- * library/process.ith (busy): Match event handler definition.
- * library/process.itb (busy): Ditto.
- (constructor): Remove gdb_busy_hook.
- (destructor): Ditto.
- * library/regwin.ith (busy): Match event handler definition.
- * library/regwin.itb (busy): Ditto.
- (constructor): Remove gdb_busy_hook.
- (destructor): Ditto.
- * library/srcbar.itcl (constructor): Remove gdb_busy_hook.
- (destructor): Ditto.
- (busy): New method.
- * library/srcwin.ith (busy): Match event handler definition.
- * library/srcwin.itb (busy): Ditto.
- Only do the "busy" stuff if do_updates is set.
- (toggle_updates): Remove gdb_busy_hook.
- (constructor): Ditto.
- (destructor): Ditto.
- * library/stackwin.ith (busy): Match event handler definition.
- * library/stackwin.itb (busy): Ditto.
- (constructor): Remove gdb_busy_hook.
- (destructor): Ditto.
- * library/variables.tcl (constructor): Ditto.
- (destructor): Ditto.
- (disable_ui): Rename to "busy" and match event handler
- definition.
- * library/plugins/rhabout/rhabout.itcl (running): Rename
- to "busy" and match new event handler definition.
- * library/tclIndex: Regenerated.
-
-2001-05-25 Keith Seitz <keiths@cygnus.com>
-
- * generic/gdbtk-cmds.c (bin2hex): New function.
- (fromhex): New function.
- (gdb_set_mem): New function.
- (Gdbtk_Init): Add new command, "gdb_set_mem".
- * library/memwin.itb (edit): Use "gdb_set_mem" to set
- memory, not some gdb_cmd contrivance.
- When sending data to gdb_set_mem, make sure that it
- is properly zero-padded.
-
-2001-05-22 Keith Seitz <keiths@cygnus.com>
-
- * memwin.ith (error_dialog): Declare public method.
- * memwin.itb (error_dialog): Define.
- (edit): When attempting to set memory, post an error dialog
- if gdb told us an error occurred while writing the memory.
-
-2001-05-22 Keith Seitz <keiths@cygnus.com>
-
- * library/interface.tcl (gdbtk_tcl_file_changed): Handle
- the case of empty-string files, sent by gdb when the
- user requests to reset the file.
- (_close_file): New proc to deal with closing an exe.
- * library/srcbar.itcl (create_file_menu): Add "Close" menu
- option.
- (create_view_menu): Change key binding for Watch Window to
- Ctrl+T to accomodate "Close" going to Ctrl+W.
- * library/srctextwin.itb (config_win): Update key binding
- for Watch Window.
- Add key binding for Close.
- (do_key): Add "close".
- (_clear_cache): Finally implement. I think this works now.
-
-2001-05-22 Keith Seitz <keiths@cygnus.com>
-
- * library/variables.tcl (postMenu): Add mysterious workaround
- for popup menu bug in Tk for windows.
- Highlight the selection, too.
-
-2001-05-21 Keith Seitz <keiths@cygnus.com>
-
- * library/managedwin.itb (_create): Check the geometry of
- any window we create. Don't create a window that is
- bigger than the screen.
-
-2001-05-18 Keith Seitz <keiths@cygnus.com>
-
- * library/managedwin.ith (_geometry): Use a protected variable
- instead of a global from ManagedWin::reveal.
- (open): Make arg list reflect managedwin.itb.
- * library/managedwin.itb (window_name): Use class variable
- _top instead of recomputing the toplevel every time.
- (reveal): Ditto.
- Use class variable "_geometry" instead of global variable.
- (shutdown): Do not save ModalDialogs.
- (_create): If centering the new window, use libgui's
- center_window to do it.
-
-2001-05-18 Keith Seitz <keiths@cygnus.com>
-
- * generic/gdbtk-hooks.c (gdbtk_wait): Change integer pid
- argument to match gdb's new "ptid_t" pids.
-
-2001-05-14 Keith Seitz <keiths@cygnus.com>
-
- * library/interface.tcl (gdbtk_quit_check): Don't save sessions
- here. It doesn't work for the Console Window.
- (gdbtk_cleanup): Save session information here.
- (gdbtk_tcl_exec_file_display): When files are loaded,
- get the full pathname to the exe.
-
-2001-05-11 Tom Tromey <tromey@redhat.com>
-
- * library/prefs.tcl (pref_save): Fix bug when key in gdb space has
- extra `/' in it.
-
-2001-05-11 Kevin Buettner <kevinb@redhat.com>
-
- * generic/gdbtk-bp.c (set_raw_breakpoint): Revise declaration
- to match the recently changed declaration in breakpoint.c.
- Update all callers.
-
-2001-05-11 Keith Seitz <keiths@cygnus.com>
-
- * generic/gdbtk-bp.c (gdbtk_create_breakpoint): Safe guard
- against "invalid" (internal) breakpoint numbers.
- (gdbtk_modify_breakpoint): Ditto.
- (gdbtk_delete_breakpoint): Ditto.
-
-2001-05-10 Keith Seitz <keiths@cygnus.com>
-
- * generic/gdbtk-bp.c (gdb_set_bp): Generate a breakpoint event
- when we create a breakpoint. The hook is no longer used.
- (gdb_set_bp_addr): Ditto.
-
-2001-05-10 Keith Seitz <keiths@cygnus.com>
-
- * generic/gdbtk-bp.c (breakpoint_list, breakpoint_list_size): New
- variables. Gdb is forcing us to maintain our own breakpoint
- database.
- (Gdbtk_Breakpoint_Init): Initialize our breakpoint database.
- (gdb_find_bp_at_addr): Use our breakpoint database.
- (gdb_find_bp_at_line): Ditto.
- (gdb_get_breakpoint_list): Ditto.
- (gdb_get_breakpoint_info): Remove deleted breakpoint hack.
- (gdbtk_create_breakpoint): Moved here from gdbtk-hooks.c.
- Add breakpoint to our breakpoint database.
- (gdbtk_modify_breakpoint): Ditto the move.
- (gdbtk_delete_breakpoint): Ditto the move.
- Remove breakpoint from our database.
- (gdb_get_tracepoint_info): Remove delete tracepoint hack.
- It's not needed for tracepoints: they were implemented properly.
- (gdbtk_create_tracepoint): Moved here from gdbtk-hooks.c.
- (gdbtk_modify_tracepoint): Ditto.
- (gdbtk_delete_tracepoint): Ditto.
- * generic/gdbtk-hooks.c: Include "gdb-events.h".
- (gdbtk_create_breakpoint): Moved to gdbtk-bp.c
- (gdbtk_modify_breakpoint): Ditto.
- (gdbtk_delete_breakpoint): Ditto.
- (breakpoint_notify): Ditto.
- (gdbtk_create_tracepoint): Ditto.
- (gdbtk_modify_tracepoint): Ditto.
- (gdbtk_delete_tracepoint): Ditto.
- (tracepoint_notify): Ditto.
- (report_error): No longer static.
- (gdbtk_add_hooks): Create our own event handler
- vector and register breakpoint_create, breakpoint_modify,
- and breakpoint_delete handlers in gdbtk-bp.c.
-
-2001-05-10 Keith Seitz <keiths@cygnus.com>
-
- * generic/gdbtk-cmds.c: Put on diet. All breakpoint-,
- tracepoint-, register-, and stack-related functions moved
- into separate files.
- (call_wrapper): Renamed to "gdbtk_call_wrapper" and export.
- Update all callers.
- * generic/gdbtk.h: Move all breakpoint-related stuff into
- gdbtk-bp.c.
- Remove declaration for "call_wrapper". Now in gdbtk-cmds.h
- (and called "gdbtk_call_wrapper").
- * generic/gdbtk-varobj.c: Include "gdbtk-cmds.h".
- * generic/gdbtk-cmds.h: New file.
- * generic/gdbtk-bp.c: New file.
- * generic/gdbtk-register.c: New file.
- * generic/gdbtk-stack.c: New file.
-
-2001-05-09 Keith Seitz <keiths@cygnus.com>
-
- * library/interface.tcl (gdb_quit_hook): Remove. It's unused.
- (gdbtk_quit): Do no shutdown window manager and save
- preferences here.
- (gdbtk_cleanup): This is the proper place to do those
- things.
-
-2001-05-07 Keith Seitz <keiths@cygnus.com>
-
- * library/globalpref.itb (build_win): Preserve the
- current working directory.
-
-2001-05-06 Kevin Buettner <kevinb@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_target_has_execution_command)
- (get_clear_file): Use ptid_equal() for comparing ptid values.
- Use ``null_ptid'' instead of 0 in comparisons against
- ``inferior_ptid''.
-
- From Phil Edwards <pedwards@disaster.jaj.com>:
- * generic/gdbtk-cmds.c (gdb_target_has_execution_command)
- (get_clear_file): Rename ``inferior_pid'' to ``inferior_ptid''.
-
-2001-05-01 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Include the command "warp_pointer"
- for all platforms. Used for testing ONLY.
-
- * util.tcl (gdbtk_read_defs): If there is an error reading
- the testsuite definition file, print the error message to
- stderr, not stdout. This will allow tcl to know that an error
- has occurred.
- (find_iwidgets_library): Make it work for running testsuites
- from installed directory.
-
- * main.tcl: If we failed to find iwidgets, check if the
- testsuite is running. If it is running, do not pop up
- a dialog box: just print out the error and exit.
- Initialize _test(verbose) for the testsuite.
-
-2001-04-23 Keith Seitz <keiths@cygnus.com>
-
- * generic/gdbtk-cmds.c (gdb_get_breakpoint_info): If unable
- to find the requested breakpoint for lookup, check if
- it is about to be deleted and return information about
- that breakpoint.
- (gdb_get_tracepoint_info): Ditto for tracepoints.
- * generic/gdbtk-hooks.c (gdbtk_deleted_bp): New global.
- (gdbtk_delete_breakpoint): Remember the deleted breakpoint
- for gdb_get_breakpoint_info, in case it is called during
- the event notification.
- (gdbtk_delete_tracepoints): Ditto for tracepoints.
-
- * generic/gdbtk-cmds.c (gdb_entry_point): Return an empty
- string when there is no active target (i.e., there is no
- entry point to return yet).
-
-2001-04-20 Keith Seitz <keiths@cygnus.com>
-
- * library/srctextwin.ith (handle_set_hook): Rename to set_variable.
- * library/srctextwin.itb (set_variable): Handle SetVariableEvent.
- (constructor): Remove gdb_set_hook.
- (destructor): Ditto.
- * library/srcbar.itcl: Inherit from GDBEventHandler.
- (set_hook): Rename to set_variable and handle SetVariableEvent.
- (constructor): Remove gdb_set_hook.
- (destructor): Ditto.
- * library/regwin.ith (handle_set_hook): Renamed to set_variable.
- * library/regwin.itb (set_variable): Handle SetVariableEvent.
- (constructor): Remove gdb_set_hook.
- (destructor): Ditto.
- * library/kod.ith (set_os): Renamed to "set_variable".
- * library/kod.itb (set_variable): Handle SetVariableEvent.
- (constructor): Remove gdb_set_hook.
- (destructor): Ditto.
- * library/tclIndex: Regenerated.
-
-2001-04-20 Keith Seitz <keiths@cygnus.com>
-
- * library/interface.tcl (gdbtk_tcl_set_variable): New proc.
- * library/gdbevent.ith (SetVariableEvent): New event.
- * library/gdbevent.itb (SetVariableEvent::get): Override
- GDBEvent::get.
- * library/ehandler.ith (set_variable): New public method.
- * generic/gdbtk-hooks.c (gdbtk_set_hook): Let inteface function
- gdbtk_tcl_set_variable do all the work.
- * tclIndex: Regenerated.
-
-2001-04-19 Keith Seitz <keiths@cygnus.com>
-
- * library/gdbevent.ith: New file. Defines new event model.
- * library/gdbevent.itb: New file. Implements new event
- model.
- * library/ehandler.ith: New file. Defines new event model.
- * library/ehandler.itb: New file. Implements new event
- model.
- * library/gdbwin.ith: Inherit from GDBEventHandler.
- (update): Delete unused method.
- (_state): Delete unused variable.
- * library/tclIndex: Regenerated.
-
- * generic/gdbtk-cmds.c (gdb_set_bp): Use create_breakpoint_hook
- to notify gui of changes.
- (gdb_set_bp_addr): Ditto.
- (gdb_get_breakpoint_info): Update comments to match reality.
- * generic/gdbtk-hooks.c (breakpoint_notify): Only pass the
- breakpoint number which generated the event.
- (tracepoint_notify): Ditto for tracepoints.
- * library/interface.tcl (gdb_breakpoint_change_hook): Mark
- as deprecated and comment out definition.
- (gdbtk_tcl_breakpoint): Use new GDBEvent event "breakpoint"
- to notify rest of UI about breakpoint event.
- (gdbtk_tcl_tracepoint): Ditto for "tracepoint" event.
- * library/bpwin.ith (update): Renamed to "breakpoint".
- (breakpoint): New public method.
- (tracepoint): New public method.
- (bp_add): Take event as argument instead of number.
- (bp_modify): Ditto.
- (bp_delete): Ditto.
- * library/bpwin.itb (constructor): Remove
- gdb_breakpoint_changed_hook.
- (destructor): Ditto.
- (build_win): Insert any existing breakpoints by
- making BreakpointEvents for them.
- (breakpoint): Renamed from "update" to handle
- breakpoint events.
- Remove code to deal with tracepoints.
- (tracepoint): New method to handle tracepoint
- events.
- (bp_add): Deal with breakpoint events, not breakpoint
- numbers.
- (bp_modify): Ditto.
- (bp_delete): Ditto.
- * library/srctextwin.ith: Inherit from GDBWin.
- (breakpoint): New public method.
- (tracepoint): New public method.
- * library/srctextwin.itb (constructor): Remove
- gdb_breakpoint_changed_hook.
- (destructor): Ditto.
- (breakpoint): New method to handle breakpoint event.
- (tracepoint): New method to handle tracepoint event.
- (do_bp): Handle duplicate breakpoints for asm, too.
- (remove_bp_at_line): Delete breakpoints by number, not
- linespec. clear_command removes breakpoints from the
- breakpoint_chain BEFORE deleting the breakpoint. delete_command
- does this afterward (so we can call gdb_get_breakpoint_info on
- an about-to-be-deleted breakpoint).
-
-2001-04-18 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk.c (gdbtk_init): Initialize uiout.
-
-2001-04-18 Tom Tromey <tromey@redhat.com>
-
- * library/interface.tcl (run_executable): Use
- gdb_set_inferior_args.
- * library/session.tcl (session_load): Use gdb_set_inferior_args.
- * generic/gdbtk-cmds.c (Gdbtk_Init): Register
- gdb_set_inferior_args.
- (gdb_get_inferior_args): New function.
-
-2001-04-17 Tom Tromey <tromey@redhat.com>
-
- * library/session.tcl (session_save): Use gdb_get_inferior_args.
- * generic/gdbtk-cmds.c (inferior_args): Removed.
- (Gdbtk_Init): Don't register gdb_inferior_args variable. Do
- register gdb_get_inferior_args function.
- (gdb_get_inferior_args): New function.
-
-2001-04-17 Fernando Nasser <fnasser@redhat.com>
-
- * library/variables.tcl (update): Temporary fix to the detection of
- "type_changed" condition. Proper fix will require that this condition
- is properly reported by the underlying code.
-
-2001-04-12 Nicholas Duffek <nsd@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_entry_point): New TCL command.
- * library/interface.tcl (gdbtk_locate_main): Try the program's
- entry point if no main function is found.
-
-2001-04-10 Keith Seitz <keiths@cygnus.com>
-
- From Tom Tromey (tromey@redhat.com):
- * library/managedwin.itb (reveal): We actually do want to force
- the focus for Windows.
-
-2001-04-09 Martin M. Hunt <hunt@redhat.com>
-
- * library/managedwin.itb (ManagedWin::reveal): After
- deiconifying window for the first time, set its geometry
- again, if the platform is unix. This fixes a problem with kde.
- (ManagedWin::_create): Set a variable with the initial
- geometry.
-
-2001-04-04 Christopher Faylor <cgf@redhat.com>
-
- * generic/gdbtk.c: Add __CYGWIN__ conditional to WIN32 test.
-
-2001-04-04 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk-hooks.c (gdbtk_fileopen): New function.
- Initialize ui_file stuff for gdbtk.
- (gdbtk_fputs): Don't print if gdbtk_disable_fputs. Send
- stdlog and stdtarg to their handler functions.
-
- * generic/gdbtk.c (Gdbtk_Init): Don't set gdb_stdlog
- and gdb_stdtarg to gdb_stdout,
- (gdbtk_init): Unset gdbtk_disable_fputs
- when ready to accept output from gdb. Remove references to
- fputs_unfiltered_hook.
-
- * generic/gdbtk.h: Declare new flag gdbtk_disable_fputs.
-
- * generic/gdbtk-cmds.c (gdb_restore_fputs): Instead of setting
- fputs_unfiltered_hook, set the new flag gdbtk_disable_fputs.
-
- * library/prefs.tcl (pref_set_defaults): Add defaults
- for log_fg and target_fg.
-
- * library/interface.tcl (gdbtk_tcl_fputs_error): Use
- err_tag.
- (gdbtk_tcl_fputs_log): New function. Write log messages
- to console.
- (gdbtk_tcl_fputs_target): New function. Write target
- IO to console.
-
- * library/console.ith (einsert): Add tag parameter.
-
- * library/console.itb (_build_win): Add new tags for log
- and target IO.
- (einsert): Add tag parameter.
-
-2001-04-02 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_loadfile): Adjust size of text_argv
- array to prevent writing out of range. Remove unused variables.
- Fix formatting.
- (gdb_get_tracepoint_info): Remove unused variable "fname".
- (gdb_load_disassembly): Remove unused variable "widget".
- (gdb_loc): Remove unused variable "sym".
- (gdb_set_bp_addr): Remove unused variable "line".
- (gdb_get_breakpoint_info): Remove unused variable "sym".
- (get_frame_name): Remove unused variable "name".
-
-2001-03-29 Fernando Nasser <fnasser@redhat.com>
-
- * library/variables.tcl (update): Cope with varobj type changes.
-
-2001-03-29 Fernando Nasser <fnasser@redhat.com>
-
- * library/variables.tcl (destructor): Remove file_changed_hook hook.
-
-2001-03-29 Fernando Nasser <fnasser@redhat.com>
-
- * generic/gdbtk-varobj.c (variable_obj_command): Do not cache varobj
- handles as they may change -- use varobj_get_handle() instead.
-
-2001-03-15 Martin Hunt <hunt@redhat.com>
- * library/browserwin.itb: Change all references to freeze_me,
- thaw_me and Top to _freeze_me, _thaw_me, and _top to match
- changes to managedwin.
-
- * library/kod.itb: Ditto.
-
-2001-03-15 Tom Tromey <tromey@redhat.com>
-
- * library/mempref.itb (MemPref::build_win): Correctly set initial
- value of combobox.
- * library/memwin.itb: Added copyright header.
- (MemWin::constructor): Set defaults from preference database.
- (MemWin::reconfig): Update preference database.
- * library/prefs.tcl (pref_save): Save `mem' preferences.
- (pref_set_defaults): Define default memory preferences.
-
-2001-03-08 Andrew Cagney <ac131313@redhat.com>
-
- * generic/gdbtk-cmds.c (map_arg_registers): Use REG_NUM instead of
- ARCH_REG_NUM.
-
-2001-03-01 Nicholas Duffek <nsd@redhat.com>
-
- * README.GDBTK: Minor spelling, grammar, and formatting fixes.
-
-2001-03-01 Keith Seitz <keiths@cygnus.com>
-
- * library/managedwin.ith: Move all implementations into
- managedwin.itb.
- (public variable nosize): Delete.
- (freeze_me, thaw_me, make_icon_window): Prepend with
- underscore to remind people these are not public
- methods/procs.
- (protected variable Top, screenwidth, screenheight): Ditto
- for these variables.
- (protected common manage_active, mainwindow): Delete.
- (enable): Delete.
- (reconfig): Add empty body.
- * library/managedwin.itb: Move all implementations from
- header here.
- Update all references to renamed variables/methods/procs.
- (destructor, restart, shutdown, _open, find) Let
- Itcl tell us which ManagedWins we have lying around.
- (enable): Delete.
- (reconfig): It's empty. Moved empty body to header.
-
-2001-03-01 Nicholas Duffek <nsd@redhat.com>
-
- * library/managedwin.itb (ManagedWin::shutdown): Save each
- managed window's geometry as a preference.
- * library/managedwin.ith (ManagedWin::destructor): Don't save
- managed windows' geometries as preferences.
-
-2001-03-01 Nicholas Duffek <nsd@redhat.com>
-
- * library/srctextwin.itb (SrcTextWin::location): Clear previous
- pane's cursor after switching panes.
-
-2001-03-01 Nicholas Duffek <nsd@redhat.com>
-
- * library/srctextwin.itb (config_win): Give focus to $win.
-
-Tue Feb 27 23:56:23 2001 Andrew Cagney <ac131313@redhat.com>
-
- * generic/gdbtk-cmds.c: Include recently created "regcache.h"
-
-2001-02-27 Keith Seitz <kseitz@nwlink.com>
-
- * generic/gdbtk-cmds.c (gdb_fetch_registers): Mark
- the result as generating a list only if it really does
- generate a list.
-
-2001-02-21 Fernando Nasser <fnasser@redhat.com>
-
- * TODO: New file. Initial version of the TODO file, as posted to the
- insight list circa October 2000.
-
-2001-02-14 Fernando Nasser <fnasser@redhat.com>
-
- From 2001-02-09 Martin Hunt <hunt@redhat.com>
- * generic/gdbtk-cmds.c (gdb_load_disassembly): In mixed
- mode, source lines should be tagged with source_tag2.
-
-2001-02-08 Fernando Nasser <fnasser@redhat.com>
-
- From 2001-02-06 Martin Hunt <hunt@redhat.com>
- * library/debugwin.itb: Change window name to "Insight Debug"
- * library/embeddedwin.ith: Fix debug messages.
- * library/locals.tcl: Ditto.
- * library/watch.tcl (postMenu): Ditto.
- * library/variables.tcl: Ditto.
- * library/interface.tcl: Ditto.
- * library/regwin.itb: Ditto.
- * library/gdbwin.ith: Ditto.
- * library/srcbar.itcl: Ditto.
-
-2001-02-06 Fernando Nasser <fnasser@redhat.com>
-
- Originally from Martin Hunt <hunt@redhat.com>, with modifications
- * library/srcwin.itb (_name): Check for errors when invoking
- gdb_find_file.
- * library/srctextwin.itb (_mtime_changed, location): Ditto.
- * generic/gdbtk-cmds.c (gdb_find_file_command): Better error checking.
- (full_lookup_symtab): Fix misleading comment.
-
-2001-02-04 Fernando Nasser <fnasser@redhat.com>
-
- * library/plugins/plugins.tcl: Fix typos and remove "-transient"
- parameter from open command.
- * library/plugins/HOW-TO: New file. Describes how to add a plug-in
- window to Insight.
-
-2001-02-01 Fernando Nasser <fnasser@redhat.com>
-
- * library/images/insight.gif: New splash screen/about graphics.
- * library/images2/insight.gif: New splash screen/about graphics.
- * library/about.tcl: Update copyright, window title and change colors
- to match new splash screen/about images.
-
-2001-02-01 Fernando Nasser <fnasser@redhat.com>
-
- * library/gdbtoolbar.itcl (add): New method. Emulate the style of the
- toolbar iwidget commands.
- (toolbar_show): Old name.
- (show): New name.
- (toolbar_create_button): Old name.
- (create): New name.
- (toolbar_configure_button): Old name.
- (itemconfigure): New name.
- (toolbar_bind_button): Old name.
- (itembind): New name.
- (toolbar_set_button_balloon): Old name.
- (itemballoon): New name.
- (toolbar_add_button): Make private.
- (toolbar_add_label): Ditto.
- (toolbar_add_button_separator): Ditto.
- (toolbar_remove_button): Ditto.
- (tollbar_insert_button): Ditto.
- * library/srcbar.itcl: Adjust to the above syntax.
- * library/plugins/rhabout/rhabout.itcl: Ditto.
-
-2001-02-01 Fernando Nasser <fnasser@redhat.com>
-
- * library/gdbmenubar.itcl (constructor): Remove unused code.
- (add): New method. Emulate the style of the menubar iwidget commands.
- (menubar_show): Old name.
- (show): New name.
- (menubar_menu_exists): Old name.
- (exists): New name.
- (menubar_clear_menu): Old name.
- (clear): New name.
- (menubar_delete_menu): Old name.
- (delete): New name.
- (menubar_new_menu): Make private. Does not return anything.
- (menubar_add_menu_command): Make private.
- (menubar_add_menu_separator): Ditto.
- (menubar_change_menu_state): Ditto.
- * library/srcbar.itcl: Adjust to the above syntax.
- * library/plugins/plugins.tcl: Ditto.
- * library/plugins/rhabout/rhabout.itcl: Ditto.
-
-2001-02-01 Fernando Nasser <fnasser@redhat.com>
-
- * library/pluginwin.itcl (contrucdtor, destructor): Use "code" to
- specify callbacks.
- (running, stopped, no_inferior): Make it a protected method.
- (childsite): Explicitly mark as a public method.
- * library/plugins/rhabout/rhabout.itcl (constructor): Add a label
- widget to show status messages.
- (running, stopped): Overload versions of the base class; display
- status messages as an example.
-
-2001-01-31 Fernando Nasser <fnasser@redhat.com>
-
- * library/pluginwin.itcl: New file. Implements the PluginWindow
- class that provides some basic functionality for plug-ins.
- * library/plugins/rhabout/rhabout.itcl: Inherit from the new
- PluginWindow class. Remove code dependent on ModalDlg.
- (constructor): Creates menus and a toolbar to show how these
- PluginWindow components are used.
- * library/tclIndex: Regenerate.
-
-2001-01-31 Fernando Nasser <fnasser@redhat.com>
-
- * library/plugins/rhabout.tcl: Add load for optional sample C command
- procedure.
- * library/plugins/rhabout/rhabout.itcl (constructor): Try calling
- optional sample C command procedure rhabout_extra_text.
- * library/plugins/rhabout/rhabout.c: New file. Implement an example
- plug-in shared library with a sample C command procedure.
- * library/plugins/rhabout/Makefile: New file. Makefile for the sample
- shared library above (Linux only).
-
-2001-01-28 Fernando Nasser <fnasser@redhat.com>
-
- * library/plugins: New directory. Sample plug-in directory to help
- developers of Insight plug-ins. See README file in that directory.
- * library/plugins/plugins.tcl: New file. Sample version of a code
- fragment file which adds entries to the PlugIn menu of the Source
- Window to activate custom plug-in windows.
- * library/plugins/pkgIndex.tcl: New file. Sample version of a file
- with package information for the installed plug-ins.
- * library/plugins/rhabout.tcl: New file. Sample file providing a
- plug-in package.
- * library/plugins/rhabout: New directory. Sample plug-in.
- * library/plugins/rhabout/rhabout.itcl: New file. Sample class
- implementing a plug-in window.
- * library/plugins/rhabout/tclIndex: New file. Tcl index for the sample
- plug-in implementation.
-
-2001-01-28 Fernando Nasser <fnasser@redhat.com>
-
- * library/main.tcl: Add plugin subdirectory, if existent, to auto_path.
- * library/srcbar.itcl (create_plugin_menu): New method. Create a pull
- down menu for plugins if there are any for this target configuration.
- (create_menu_items): Invoke the new method above.
-
-2001-01-28 Fernando Nasser <fnasser@redhat.com>
-
- * library/gdbmenubar.itcl (menubar_new_menu): Save lable of a menu to
- use as index.
- (menubar_delete_menu): New function. Delete a menu.
-
-2001-01-28 Fernando Nasser <fnasser@redhat.com>
-
- * library/gdbmenubar.itcl (menu_list): Add missing declararion for
- global variable.
-
-2001-01-28 Fernando Nasser <fnasser@redhat.com>
-
- * library/gdbmenubar.itcl (set_class_state): Turn off verbose debug
- messages.
- * library/gdbtoolbar.itcl (set_class_state): Ditto.
-
-2001-01-26 Fernando Nasser <fnasser@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_clear_file): Call exec_file_clear() and
- symbol_file_clear() instead of exec_file_command() and
- symbol_file_command().
- (gdb_find_file_command): Return the proper error text.
-
-2001-01-25 Fernando Nasser <fnasser@redhat.com>
-
- * library/srcbar.itcl: New file. Implement SrcBar, a menu and toolbar
- for the Source Window (code previously in srcmenubar.itcl and
- srctoolbar.itcl).
- * library/srcmenubar.itcl: Remove obsolete file.
- * library/srctoolbar.itcl: Remove obsolete file.
- * library/srcbar.tcl: Remove obsolete file.
- * library/gdbmenubar.itcl (menubar_show): New method. Associate the
- menu with the toplevel window.
- * library/srcwin.itb (_build_win): Use SrcBar.
- * library/tclIndex: Regenerate.
-
-2001-01-24 Fernando Nasser <fnasser@redhat.com>
-
- From Martin Hunt <hunt@cygnus.com>
- * generic/gdbtk-cmds.c (gdb_set_bp_addr, gdb_set_bp): Change
- strsave() to xstrdup().
-
-2001-01-24 Fernando Nasser <fnasser@redhat.com>
-
- From Martin Hunt <hunt@cygnus.com>
- * generic/gdbtk-cmds.c (gdbtk_dis_asm_read_memory): Fix call
- to xfer_memory().
-
-2001-01-19 Fernando Nasser <fnasser@redhat.com>
-
- * library/prefs.tcl (pref_set_defaults): Set default value of
- gdb/src/top_control to place the source window controls at the top.
-
-2001-01-18 Fernando Nasser <fnasser@redhat.com>
-
- * library/srctextwin.itb (_highlightAsmLine): Add missing FUNCNAME
- parameter.
- (FillAssembly, FillMixed): Pass the FUNCNAME parameter that is
- needed by the above method.
- * library/srctextwin.ith (_highlightAsmLine): Add FUNCNAME parameter
- to method definition.
-
-2001-01-17 Fernando Nasser <fnasser@redhat.com>
-
- * library/srctextwin.itb (_highlightAsmLine): Add missing FILENAME
- parameter.
- (FillAssembly, FillMixed): Pass the FILENAME parameter that is
- needed by the above method.
- * library/srctextwin.ith (_highlightAsmLine): Add FILENAME parameter
- to method definition.
-
-2001-01-15 Fernando Nasser <fnasser@redhat.com>
-
- * srcwin.itb (clear_file): Pass the appropriate value to the GO
- argument of mode() so it does not try to read a source file when
- no executable is loaded.
-
-2001-01-09 Fernando Nasser <fnasser@redhat.com>
-
- * library/srcmenubar.itcl (create_file_menu): Add missing incr for
- session numbers.
-
-2001-01-04 Fernando Nasser <fnasser@redhat.com>
-
- The following changes fix the problem of having to click on a splash
- window to make it disapear.
- * modal.tcl (post): Take as an argument "expire", the time a modal
- window is displayed.
- * managedwin.itb (open): Check for an "expire" argument and pass the
- value down to modal post method.
-
-2001-01-04 Fernando Nasser <fnasser@redhat.com>
-
- * library/gdbmenubar.itcl (set_class_state): New public method.
- Standard method to control state by class.
- (menubar_menu_class_find): Delete public accessor method.
- (menubar_change_menu_state): Change the state of a menu item
- not of a whole class list.
- * library/srcmenubar.itcl (enable_ui): Use set_class_state instead
- of prying into base class internal data.
- * library/gdbtoolbar.itcl (set_class_state): New public method.
- Standard method to control state by class.
- (toolbar_button_class_find): Delete public accessor method.
- * library/srctoolbar.itcl (enable_ui): Use set_class_state instead
- of prying into base class internal data.
-
-2001-01-04 Fernando Nasser <fnasser@redhat.com>
-
- * library/interface.tcl (gdbtk_connect): New proc. Connects to ai
- remote target (code previously at library/gdbmenubar.itcl).
- (disconnect): Rename to...
- (gdbtk_disconnect): New name for proc disconnect.
- * library/srcmenubar.itcl (do_connect): Remove the code mentioned
- above and call the new interface proc gdbtk_connect.
- Also, call ::update idletasks after changing the state of the
- menu entries.
- (do_detach): Call gdbtk_disconnect, not ::disconnect (old name).
- (do_disconnect): Call gdbtk_disconnect, not disconnect (old name).
-
-2001-01-03 Fernando Nasser <fnasser@redhat.com>
-
- * library/prefs.tcl (pref_set_defaults): Define gdb/src/top_control
- to allow the source window controls to be placed at the top.
- * library/srcwin.itb (_build_win): Test for gdb/src/top_control
- and place the controls accordingly.
-
-2001-01-02 Fernando Nasser <fnasser@redhat.com>
-
- * library/gdbmenubar.itcl: New file. Define the GDBMenuBar class,
- a generic menubar building facility for Insight windows (WIP).
- * library/gdbtoolbar.itcl: New file. Define the GDBToolBar class,
- a generic toolbar building facility for Insight windows (WIP).
- * library/srcmenubar.itcl: New file. Define the SrcMenuBar class,
- which implements the Source Window menubar (inherits GDBMenuBar).
- * library/srctoolbar.itcl: New file. Define the SrcToolBar class,
- which implements the Source Window toolbar (inherits GDBToolBar).
- * library/srcwin.itb (_build_win): Use SrcMenuBar and SrcToolBar
- instead of the obsolete GDBSrcBar.
- * library/srcbar.tcl: Mark as OBSOLETE.
- * library/toolbar.tcl: Mark as OBSOLETE. Rename class GDBToolBar
- to avoid conflict with new class with the same name.
- * library/Makefile (TCL): Include .itcl files.
- * library/tclIndex: Regenerate.
-
-2001-01-02 Fernando Nasser <fnasser@redhat.com>
-
- * library/srcwin.itb (_build_win): If gdb is running a program, load
- the window with source for that location (if available).
- (download_progress): Calls to "update" must refer to the global
- namespace.
-
-2001-01-02 Fernando Nasser <fnasser@redhat.com>
-
- * library/interface.tcl (gdbtk_quit_check): Save session whenever
- possible.
-
-2001-01-01 Fernando Nasser <fnasser@redhat.com>
-
- * library/ChangeLog-2000: New file. Entries dated 2000 moved here
- from library/ChangeLog.
- * library/ChangeLog: Removed.
- * generic/ChangeLog-2000: New file. Entries dated 2000 moved here
- from library/ChangeLog.
- * generic/ChangeLog: Removed.
-
-2000-12-14 Fernando Nasser <fnasser@redhat.com>
-
- * library/ChangeLog-1999: New file. Entries dated 1999 moved here
- from library/ChangeLog.
- * library/ChangeLog-1998: New file. Similar change for 1998.
- * library/ChangeLog-1997: New file. Similar change for 1997.
- * library/ChangeLog: Removed entries previous to 2000.
- * generic/ChangeLog-1999: New file. Entries dated 1999 moved here
- from library/ChangeLog.
- * generic/ChangeLog-1998: New file. Similar change for 1998.
- * generic/ChangeLog-1997: New file. Similar change for 1997.
- * generic/ChangeLog: Removed entries previous to 2000.
-
-2000-04-17 Jonathan Larmour <jlarmour@redhat.co.uk>
-
- * ChangeLog-gdbtk: Renamed to ChangeLog
- * ChangeLog: New file
- * README.GDBTK: No need for changelog-default-name hint for Emacs now
-
-Sat Feb 5 00:14:30 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdb.rc, gdbtool.ico, README.GDBTK: To here from top level GDB
- directory.
- * gdb/gdbtcl2: Directory moved to gdbtk/library.
- * gdb/gdbtk/generic: New directory.
-
diff --git a/gdb/gdbtk/ChangeLog-2002 b/gdb/gdbtk/ChangeLog-2002
deleted file mode 100644
index 6c22903ad3e..00000000000
--- a/gdb/gdbtk/ChangeLog-2002
+++ /dev/null
@@ -1,878 +0,0 @@
-2002-12-20 Martin M. Hunt <hunt@redhat.com>
-
- * library/srcbar.itcl (SrcBar): Don't load vmake icon.
-
- * library/images: Removed back.gif, build.gif, file.gif, fore.gif,
- gdbtk.gif, opt.gif, tools.gif, tools2_3d.gif, and vmake.gif.
-
- * library/images2: Removed back.gif, build.gif, file.gif, fore.gif,
- gdbtk.gif, load.gif, opt.gif, tools.gif, tools2_3d.gif, and vmake.gif.
-
-2002-12-18 Martin M. Hunt <hunt@redhat.com>
-
- * library/main.tcl: Don't try to print errors to stderr on Windows.
-
-2002-12-18 Martin M. Hunt <hunt@redhat.com>
-
- * library/regwin.itb (RegWin::update): When updating, check
- that a cell still exists before checking its value.
- (RegWin::_select_group): Clear cells with changed values before
- changing group. After new group is selected, highlight any changed
- values still visible.
-
-2002-12-17 Martin M. Hunt <hunt@redhat.com>
-
- * library/interface.tcl (gdbtk_tcl_fputs_target_err):
- New function.
- (gdbtk_tcl_fputs_target): Open console window if it is
- not already open.
- (gdbtk_gets): New function.
- Opens a console window if necessary and calls Console::gets.
-
- * library/console.ith (gets): Declare method.
- (_input_mode): New private variable.
- (_input_result): Ditto.
- (_input_error): Ditto.
- (_cancel): New private method
- (invoke): Add arg.
-
- * library/console.itb (_setprompt): Allow setting prompt
- to nothing. Delete to beginning of line before writing prompt.
- (gets): New public method to prompt user for input.
- (_cancel): New private method to handle ^C when inputting data.
- (invoke): Check for ^d when in input mode.
-
-2002-12-17 Martin M. Hunt <hunt@redhat.com>
-
- * library/regwin.itb (_load_prefs): Get list of registers from
- the group name.
- (_build_win): Remove old menu system. Replace with an optionmenu
- that contains all the valid group names for this architecture.
- (_layout_table): No need to update old menu.
- (_but3): Add "Close" to popup menu.
- (_delete_from_display): No need to update old menu.
- (_display_all): Ditto.
- (_post_menu): Deleted.
- (_select_group): New method. Callback for group optionmenu.
-
- * library/regwin.ith: New private variable _group.
- New private method _select_group. Removed _post_menu.
-
- * generic/gdbtk-register.c: Include reggroups.h.
- (gdb_register_info): Add "group" and "grouplist".
- (gdb_regformat): Fix Tcl_WrongNumArgs call so it doesn't crash.
- (gdb_reggrouplist): New function. Returns the names of the
- register groups.
- (gdb_reggroup): New function. Returns the register numbers of the
- registers in a group.
-
-2002-12-06 Andrew Cagney <ac131313@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_update_mem): Don't add a 0x prefix.
-
-2002-12-05 Martin M. Hunt <hunt@redhat.com>
-
- * library/regwin.itb (update): Revert previous patch to this
- function. But also don't tag blank cells.
- (_but3): Fix help call.
-
-2002-12-04 Martin M. Hunt <hunt@redhat.com>
-
- * library/regwin.itb (_but3): Fix help call.
-
- * library/helpviewer.tcl (open_help): Fix KDE apps list.
-
- * library/debugwin.itb (build_win): Fix help call.
-
- * library/regwin.itb (update): Remove some old code
- that marked registers as changed when the target started.
- (_build_win): Make changed registers more visible by
- changing their bg to Colors(change).
-
- * library/prefs.tcl (pref_set_option_db): Create a new
- Color(change) which is the color of text indicating a change.
- Current default is green.
-
- * library/vartree.itb (_init_data): Make changed values
- Color(change). Can't change bg, so we change fill color.
-
-2002-12-04 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-hooks.c: Include tcl.h and tk.h to pull
- in declarations for some Tk functions used in this file.
- * generic/gdbtk-cmds.c: Likewise.
-
-2002-12-03 Martin M. Hunt <hunt@redhat.com>
-
- * library/vartree.itb (_but3): Add popup menu item to dump
- memory at the value of the variable.
-
- * library/vartree.itb (buildlayer): Check for error when updating
- a variable's value.
- (update_var): Ditto.
-
- * library/srcpref.itb: Latest tk doesn't support
- "-col" as a grid option. Use "-column".
-
- * library/regwin.itb: Ditto.
-
- * library/main.tcl: Require package "debug". Make
- package loading a bit more robust.
-
-2002-11-30 Andrew Cagney <ac131313@redhat.com>
-
- * generic/gdbtk-stack.c: Replace selected_frame with
- deprecated_selected_frame.
- * generic/gdbtk-register.c: Ditto.
- * generic/gdbtk-cmds.c (gdb_loc): Replace selected_frame with
- deprecated_selected_frame. Use get_frame_pc and find_frame_sal.
-
-2002-11-27 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk.c (gdbtk_init): Don't call Tix_Init.
- Don't include tix.h
-
- * generic/gdbtk-hooks.c: Don't include tix.h.
-
- * generic/gdbtkj-cmds.c: Don't include tix.h.
-
-2002-11-27 Andrew Cagney <cagney@redhat.com>
-
- * generic/gdbtk-stack.c (get_frame_name): Use get_frame_type
- instead of deprecated_frame_in_dummy.
- * generic/gdbtk-cmds.c (gdb_loc): Ditto.
-
-2002-11-19 Andrew Cagney <ac131313@redhat.com>
-
- * generic/gdbtk-stack.c (gdb_selected_frame): Use get_frame_base
- instead of FRAME_FP. Mention that get_frame_id() should be used.
-
-2002-11-19 Andrew Cagney <ac131313@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_loc): Use get_frame_type instead of
- ->signal_handler_caller.
- * generic/gdbtk-stack.c (get_frame_name): Ditto.
- (get_frame_name): Ditto.
-
-2002-11-12 Andrew Cagney <ac131313@redhat.com>
-
- From 2002-11-11 David Carlton <carlton@math.stanford.edu>
- * generic/gdbtk-stack.c (get_frame_name): Replace call to
- frame_in_dummy with one to deprecated_frame_in_dummy.
- * generic/gdbtk-cmds.c (gdb_loc): Ditto.
-
-2002-11-11 Martin M. Hunt <hunt@redhat.com>
-
- * library/srctextwin.itb (do_key): Add arg to
- print call.
-
-2002-11-11 Martin M. Hunt <hunt@redhat.com>
-
- * library/data.ith: Deleted.
- * library/data.itb: Deleted.
-
-2002-11-11 Martin M. Hunt <hunt@redhat.com>
-
- * library/memwin.itb: Supply arg to _update_address.
-
-2002-11-11 Martin M. Hunt <hunt@redhat.com>
-
- * library/toolbar.tcl: Deleted this obsolete file.
- * library/tclIndex: Rebuilt.
-
-2002-11-11 Martin M. Hunt <hunt@redhat.com>
-
- * library/srcbar.itcl (create_help_menu): For unix systems,
- if compatibility is set to KDE or GNOME, put the help menu
- in the right place. Otherwise put it on the far right, like
- Motif does.
-
-2002-11-11 Martin M. Hunt <hunt@redhat.com>
-
- * library/helpviewer.tcl: New file. Finds
- an appropriate help browser and displays the help files.
-
- * library/vartree.itb: Fix open_help calls.
-
- * library/helpviewer.ith: Deleted.
- * library/helpviewer.itb: Deleted.
-
- * library/prefs.tcl (pref_set_defaults): Remove
- pref gdb/help/browser. Add pref gdb/help/browsername.
- We couldn't simply rename because it would break older
- versions of Insight that expect gdb/help/browser to be
- a number.
-
-2002-11-08 Martin M. Hunt <hunt@redhat.com>
-
- * library/prefs.tcl (pref_save): Fix GDBtkInitVersion.
- (pref_save): Check that value is not null before writing.
-
-2002-11-07 Martin M. Hunt <hunt@redhat.com>
-
- * library/util.tcl (CygScrolledListbox): Delete.
-
- * library/srctextwin.itb: Change from CygScrolledListbox
- to iwidgets::scrolledlistbox. Set foreground and background.
- Center popup over source window.
-
-2002-11-06 Martin M. Hunt <hunt@redhat.com>
-
- * library/locals.tcl (build_win): Fix so window opens
- on Windows.
-
-2002-11-06 Martin M. Hunt <hunt@redhat.com>
- * library/debugwin.itb: Remove VariableWin. Add VarTree.
-
-2002-11-06 Martin M. Hunt <hunt@redhat.com>
- * library/watch.tcl: Completely rewritten to use VarTree.
- * library/locals.tcl: Completely rewritten to use VarTree.
- * library/variables.tcl: Deleted.
- * library/vartree.ith: New file.
- * library/vartree.itb: New file. Implements a variable
- tree.
- * library/tclIndex: Rebuilt.
-
-2002-11-06 Martin M. Hunt <hunt@redhat.com>
- * library/globalpref.itb (_build_win): Add radiobox
- to select KDE/GNOME/default for pref gdb/compat. Remove
- browser option.
-
- * library/regwin.itb (build_win): Colors(hbg) has been
- removed so use Colors(bg) instead.
-
- * library/prefs.tcl (pref_set_defaults): Add a new
- preference "gdb/compat" which can be set to KDE, GNOME,
- Windows or default. This allows us to change Insight's
- behavior based on windowing system.
- (pref_set_colors): Attempt to read in .gtkrc files.
- Do different things for KDE vs GNOME.
- (pref_load_default): New function. Load default colors.
- (pref_load_gnome): New function. Find and open GNOME file.
- (load_gnome_file): New function. Loads GNOME file.
- (pref_set_option_db): New function. Set option database.
-
-2002-11-06 Martin M. Hunt <hunt@redhat.com>
- * generic/gdbtk-varobj.c: Remove FREEIF and replace with xfree.
- Make format_string static.
- (variable_update): Return an object
- with "-1" in it on error.
-
-2002-11-06 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-hooks.c (gdbtk_call_command): Make a null
- cleanup and run it after every issued gdb command. Apparently
- some commands depend on this. [This should really be part of
- main gdb...]
-
-2002-10-15 Martin M. Hunt <hunt@redhat.com>
-
- * library/tclIndex: Rebuilt.
-
- * library/* : auto_mkindex cannot rebuild
- tclIndex because it does not recognize the namespace
- import in main.tcl. To get it to work again, rename the
- following:
- body -> itcl::body
- configbody -> itcl::configbody
- class -> itcl::class
-
-2002-10-10 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_update_mem): No results
- were being returned. Append results to result_ptr_obj_ptr.
-
-2002-10-10 Martin M. Hunt <hunt@redhat.com>
-
- * library/session.tcl (save): Save target_cmd,
- attach, load, run, and cont as session prefs.
- (notice_file_change): Load in above session
- prefs.
-
- * library/interface.tcl (set_target): Set icons busy
- before attempting target command and set back to idle after.
- (run_executable): Return on ATTACH_ERROR.
- (gdbtk_run): If run button is hit when a program
- is currently being debugged, put up a dialog allowing
- user to continue or cancel.
-
-2002-10-09 Martin M. Hunt <hunt@redhat.com>
-
- * library/targetselection.itb (init_target_db): Add gdbserver
- target.
- (get_target_list): Always add "gdbserver" to list of valid
- targets.
- (valid_target): Always allow "gdbserver".
-
-2002-09-27 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-hooks.c (gdbtk_add_hooks): Add gdbtk_annotate_signal
- as annotate_signalled_hook.
-
-2002-09-26 Andrew Cagney <ac131313@redhat.com>
-
- From Grace Sainsbury <graces@redhat.com>:
- * generic/gdbtk-main.c: New file.
-
-2002-09-24 Martin M. Hunt <hunt@redhat.com>
-
- * library/srctextwin.itb (FillMixed): Fix debug
- statement for 64-bit.
- (_highlightAsmLine): Fix 64-bit arithmetic.
-
-2002-09-19 Martin M. Hunt <hunt@redhat.com>
-
- * library/srctextwin.itb (FillAssembly): Fix debug
- statement for 64-bit addresses.
- (showBPBalloon): Fix for 64-bit addresses.
-
- * library/memwin.itb (incr_addr): Fix 64-bit addresses.
-
-2002-09-18 Keith Seitz <keiths@redhat.com>
-
- * library/console.itb (_build_win): Bind control-c and control-v
- to copy and paste.
-
-2002-08-15 Keith Seitz <keiths@redhat.com>
-
- * README: Massive update.
-
-2002-08-14 Keith Seitz <keiths@redhat.com>
-
- * README.GDBTK: Updated and renamed to README.
- * README: "New" file.
-
-2002-08-14 Keith Seitz <keiths@redhat.com>
-
- * library/srcbar.itcl (create_plugin_menu): Deal with
- multi plugin directories.
- Catch any errors that might occur reading plugin.tcl.
- * library/main.tcl: Add plugins from new default directory.
- (INSIGHT_PLUGINS): New environment variable to point to other
- plugin directories.
-
-2002-08-14 Keith Seitz <keiths@redhat.com>
-
- * library/plugins: Removed.
- * plugins/: New folder to hold plugins.
- * Makefile.am, Makefile.in, aclocal.m4, configure,
- configure.in: New files.
-
-2002-08-14 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk.c (view_command): New function to display
- location in source window.
- (gdbtk_init): Add new gdb "view" command.
-
-2002-08-06 Keith Seitz <keiths@redhat.com>
-
- * library/srcwin.itb (_build_win): Anchor status label so that
- text appears at left instead of centered.
-
-2002-08-03 Andrew Cagney <ac131313@redhat.com>
-
- * generic/gdbtk-bp.c: Include "gdb_string.h".
- * generic/gdbtk-register.c: Ditto.
- * generic/gdbtk-varobj.c: Ditto.
-
-2002-08-01 Keith Seitz <keiths@redhat.com>
-
- * library/prefs.tcl (pref_read): Don't suppress setting the default
- colors if the user has suppressed reading the preferences file.
-
-2002-07-31 Keith Seitz <keiths@redhat.com>
-
- * library/browserwin.itb (_full_funcs_combo): Remove "-modal"
- option from tk_messageBox call. It was redhat-local in tk8.0,
- but is no longer in tk8.3.
- * library/download.itb (download_it): Likewise.
- * library/interface.tcl (gdbtk_tcl_query): Likewise.
- (show_warning): Likewise.
- (set_exe): Likewise.
- (set_target): Likewise.
- * library/memwin.itb (error_dialog): Likewise.
- * library/srcwin.itb (fillFuncCB): Likewise.
- * library/util.tcl (tfind_cmd): Likewise.
-
-2002-07-03 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk-hooks.c (gdbtk_call_command): Use cmd_func().
-
-2002-06-12 Keith Seitz <keiths@redhat.com>
-
- * library/gdbmenubar.itcl (add): Add new "cascade" type.
- (menubar_add_cascade): New method to build cascading menus.
-
-2002-06-07 Martin M. Hunt <hunt@redhat.com>
-
- * library/prefs.tcl (pref_set_colors): New function. Set up colors
- from Windows system colors or X resource database. Save in array.
- (pref_set_defaults): Remove gdb/font/normal_fg, etc.
- (pref_read): Call pref_set_colors.
-
- * library/main.tcl: Remove call to "tix resetoptions TixGray".
-
- * library/bpwin.itb, library/browserwin.itb, library/console.itb,
- library/globalpref.itb, library/memwin.itb, library/process.itb,
- library/regwin.itb, library/srcpref.itb, library/srctextwin.itb,
- library/stackwin.itb, library/tdump.tcl, library/tracedlg.tcl,
- library/variables.tcl: Replace calls to [pref get gdb/fonts/*]
- for colors with references to Color array. Remove all tixOptions calls.
- Fix up colors as necessary.
-
-2002-05-31 Martin M. Hunt <hunt@redhat.com>
-
- * library/prefs.tcl (pref_read): If the regular expression
- cannot parse line, print debug message and skip it.
-
-2002-05-15 Martin M. Hunt <hunt@redhat.com>
-
- * library/help/register.html: Rewrite docs.
-
- * library/regwin.ith (_types): New private variable array to save
- the possible types for each register.
- (_type): New private variable array to save the selected type for
- each register.
- (_rows): New private variable. Number of rows in the table.
- (_cols): New private variable. Number of cols in the table.
- (_load_prefs): New private method.
- (_open_memory): New private method.
- (_edit_menu): Deleted:
- (_select): Deleted.
- (_change_format): Add optional type argument.
-
- * library/regwin.itb (RegWin::_load_prefs): New method. Collects
- all the prefs stuff here instead of in _layout_table. Prefs
- code was all rewritten to handle new types and formats.
- (RegWin::_build_win): Disable Double-1 binding. Bind
- button 1 to edit the cell. Don't make an Edit menu item.
- Remove Natural, Binary, Octal, and Raw formats. Add "Open
- Memory Window" menu item.
- (RegWin::_dimensions): This function was being abused so I removed
- it. Replaced with inline code in _layout_table which saves its
- computed values so it doesn't have to be recalculated unless
- something changes.
- (RegWin::_layout_table): Rewritten to be more efficient. Grabs
- all values in one call to gdb_reginfo instead of one for each register.
- Uses new types and formats. Calls _load_prefs.
- (RegWin::_accept_edit): Use type information when setting value.
- When done, call _unedit to remove tags.
- (RegWin::_open_memory): Open memory window with initial value
- set to the value of a register.
- (RegWin::_but3): Add types menu items. Limit format options
- to reasonable ones. Add "Open Memory Window". Add "Help"
- (RegWin::_edit): Just call _select_cell.
- (RegWin::_edit_menu): Deleted.
- (RegWin::_move): Don't recompute rows and cols; use _rows and
- _cols computed by _layout_table.
- (RegWin::_post_menu): Update types and formats. Disable "Open Memory
- Window" if register is not integer. Remove Edit.
- (RegWin::_select): Deleted.
- (RegWin::_select_cell): Tag cell as being edited. Then
- call focus, which is a workaround for a TkTable glitch where
- the insertion bar sometimes disappeared.
- (RegWin::_unedit): Clear selection. Call focus. Don't change
- any bindings.
- (RegWin::_get_value): Eliminate previous crap and just call
- "gdb_reginfo value".
- (RegWin::_change_format): Add optional type arg. Call
- "gdb_reginfo format".
- (RegWin::_update): Get a list of all the changed registers
- instead of checking one at a time.
-
- * generic/gdbtk-register.c (Gdbtk_Register_Init): Don't
- create gdb_pc_reg. It is not used. Call register_gdbarch_swap
- with regformat and regtype.
- (gdb_register_info): Add "type" and "format" options.
- (get_pc_register): Delete.
- (get_register_types): New function. Returns list of valid types
- for a list of registers.
- (get_register): Use saved format and type for each register. Check if
- there are any registers yet (target not running). Use mem_file
- to collect output. Append output to a list.
- (map_arg_registers): If passed a list, iterate though each element
- and build a list of values to return.
- (setup_architecture_data): Memory was not being initialized, so
- use xcalloc(). Allocate memory for regformat and regtype.
- (gdb_regformat): New function called by "gdb_reginfo format".
-
-2002-05-15 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_eval): For mem_file stuff, delete
- the file when done and free memory.
-
-2002-05-06 Martin M. Hunt <hunt@redhat.com>
-
- * library/session.tcl (notice_file_change): Catch the
- directory change, in case the directory no longer exists.
-
-2002-05-05 Alexandre Oliva <aoliva@redhat.com>
-
- * generic/gdbtk-register.c (get_register, register_changed_p):
- Don't depend on variable-sized automatic arrays.
-
-2002-05-04 Andrew Cagney <ac131313@redhat.com>
-
- * generic/gdbtk-wrapper.h (GDB_select_frame): Delete declaration.
- * generic/gdbtk-wrapper.c (GDB_select_frame): Delete function.
- (wrap_select_frame): Delete function.
-
-2002-04-26 Martin M. Hunt <hunt@redhat.com>
-
- * library/interface.tcl (gdbtk_force_quit): New function.
- Closes source windows then calls gdb_force_quit.
- (gdbtk_quit): Call gdbtk_force_quit.
-
-2002-04-24 Keith Seitz <keiths@redhat.com>
-
- * library/managedwin.ith (_ignore_on_save): New protected method.
- * library/managedwin.itb (shutdown): If _ignore_on_save, don't
- save this window to the active window list in the preferences
- file.
- * library/debugwin.ith (DebugWin::_ignore_on_save): Don't save
- this window to preferences active list.
- (DebugWinDOpts::_ignore_on_save): Likewise.
- * library/pluginwin.itcl (_ignore_on_save): Likewise.
- * library/download.ith (_ignore_on_save): Likewise.
-
-2002-04-22 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-stack.c (Gdbtk_Stack_Init): Don't link
- selected_frame_level directly.
- * generic/gdbtk-hooks.c (gdbtk_selected_frame_changed): Set
- the global "gdb_selected_frame_level" directly.
-
-2002-04-21 Andrew Cagney <ac131313@redhat.com>
-
- * generic/gdbtk-wrapper.c (GDB_find_frame_addr_in_frame_chain):
- Delete function.
- (wrap_find_frame_addr_in_frame_chain): Delete function.
- * generic/gdbtk-wrapper.h (GDB_find_frame_addr_in_frame_chain):
- Delete declaration.
-
-2002-04-17 Andrew Cagney <cagney@redhat.com>
-
- * generic/gdbtk.c (gdbtk_init): Use error or throw_exception to
- report an error.
-
-2002-04-12 Andrew Cagney <cagney@redhat.com>
-
- * generic/gdbtk-register.c (register_changed_p): Use
- frame_register_read instead of read_relative_register_raw_bytes.
- (get_register): Delete out-of-date comment.
-
-2002-04-08 Andrew Cagney <ac131313@redhat.com>
-
- * generic/gdbtk-wrapper.c (wrap_get_frame_block): Add missing NULL
- parameter. Match recent get_frame_block changes.
-
-2002-04-05 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-stack.c (gdb_block_vars): Update get_frame_block to
- match recent gdb changes.
- (gdb_get_blocks): Likewise.
- (gdb_get_vars_command): Likewise.
- (gdb_selected_block): Likewise.
-
-2002-04-04 Keith Seitz <keiths@redhat.com>
-
- * library/download.itb (constructor): Set feedback meter
- to "0.0".
- Remove "steps" array.
- (update_download): Use fractional completions for feedback.
- (done): Ditto.
- * library/download.ith (protected variable steps): Remove.
-
-2002-04-04 Daniel Jacobowitz <drow@mvista.com>
-
- * generic/gdbtk-cmds.c (gdb_disassemble_driver): Skip
- end-of-function markers in the line table.
-
-2002-04-01 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_load_disassembly): Use string_to_core_addr
- instead of parse_and_eval_address.
- Use xfree instead of free.
-
-2002-03-25 Elena Zannoni <ezannoni@redhat.com>
-
- * generic/gdbtk-hooks.c: Include cli/cli-decode.h for
- cmd_list_element.
-
-2002-03-25 Alexandre Oliva <aoliva@redhat.com>
-
- * generic/gdbtk.c (HAS_STDARG): Define.
- * generic/gdbtk-cmds.c (HAS_STDARG): Likewise.
- * generic/gdbtk-hooks.c (HAS_STDARG): Likewise.
-
-2002-03-14 Keith Seitz <keiths@redhat.com>
-
- * library/bpwin.itb (constructor): Set some sane initial
- size.
-
-2002-03-07 Martin M. Hunt <hunt@redhat.com>
-
- * library/srctextwin.itb (SrcTextWin::showBPBalloon): Put
- linefeeds between multiple breakpoints.
-
-2002-03-06 Martin M. Hunt <hunt@redhat.com>
-
- * library/srctextwin.itb (SrcTextWin::showBPBalloon):
- Reformat output. Add conditions, ignore count, commands.
-
- * library/interface.tcl (gdbtk_tcl_readline): Remove
- call to "command::insert" and instead insert the command
- into the console window.
- (gdbtk_tcl_readline_end): Catch the unsets and do not call
- non-existent function command::end_multi_line_input.
-
-2002-03-06 Martin M. Hunt <hunt@redhat.com>
-
- * library/bpwin.itb: Left-justify the labels in
- the table.
-
-2002-03-06 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-cmds.c: Include "ctype.h" if available.
- (gdb_get_mem): Renamed to gdb_update_mem.
- (gdb_update_mem): Take array as first tcl argument. This
- array will hold the data for the table, which is now stuffed
- in C instead of tcl.
- (gdb_eval): Use our own ui-file instead of gdb_stdout.
- * library/memwin.ith (_update_address): New method.
- (update_address): Address expression is no longer optional.
- * library/memwin.itb (build_win): Use _update_address instead of
- update_address.
- (toggle_enabled): Ditto.
- (newsize): Use _update_address instead of update_addr.
- (update_address_cb): Use _update_address instead of update_address.
- (do_popup): Likewise.
- (goto): Likewise.
- (incr_addr): Use _update_address instead of update_addr.
- (edit): Use gdb_update_mem instead of gdb_get_mem.
- (update_addr): use gdb_update_mem to do all the window updating.
-
-2002-03-06 Martin M. Hunt <hunt@redhat.com>
-
- * library/srcwin.itb: Don't try to set balloon help
- for search widget; it moved to srcbar.
-
-2002-03-05 Martin M. Hunt <hunt@redhat.com>
-
- * library/prefs.tcl (pref_read): If a preference specifies
- "src-font", substitute "global/fixed".
- (pref_set_defaults): Change defaults from "src-font" to
- "global/fixed". Do not create font object "src-font". Do
- not add hook to trace its changes.
- (pref_src-font_trace): Remove.
-
- * library/console.itb (Console::_update_option): Remove
- font update because this happens automatically.
-
- * library/globalpref.itb: No need to set
- changed flag for fonts; updates happen automatically
- when prefs are updated.
-
- * library/bpwin.itb: Replaced src-font with global/fixed.
- * library/browserwin.itb: Ditto.
- * library/mempref.itb: Ditto.
- * library/memwin.itb: Ditto.
- * library/process.itb: Ditto.
- * library/regwin.itb: Ditto.
- * library/srcbar.itcl: Ditto.
- * library/srcpref.itb: Ditto.
- * library/srctextwin.itb: Ditto.
- * library/srcwin.itb: Ditto.
- * library/stackwin.itb: Ditto.
- * library/tdump.tcl: Ditto.
- * library/tracedlg.tcl: Ditto.
- * library/variables.tcl: Ditto.
- * library/watch.tcl: Ditto.
-
-2002-03-01 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-register.c (register_changed_p): Don't use REGISTER_BYTES.
- There is no guarantee anymore that REGISTER_BYTES contains
- NUM_REGS+NUM_PSEUDO_REGS registers.
- (setup_architecture_data): Likewise.
-
-2002-02-25 Ian Roxborough <irox@redhat.com>
-
- * library/srcbar.itcl (SrcBar::create_buttons): Added
- "Search in source file" entry box and label to the top
- row toolbar.
- * library/srcwin.itb (SrcWin::_build_win): Removed
- "Search in source file" entry box.
- (SrcWin::_search): Renamed to "search", add string
- parameter and cleaned up.
- * library/srcwin.ith (SrcWin): Removed private
- method "_search" and added public method "search".
-
-2002-02-17 Tom Tromey <tromey@redhat.com>
-
- * library/tclIndex: Updated.
- * library/srcbar.itcl (SrcBar): Use new Session namespace.
- * library/main.tcl: Use new Session namespace.
- * library/interface.tcl (gdbtk_tcl_preloop): Use new Session
- namespace.
- (gdbtk_cleanup): Likewise.
- (_close_file): Likewise.
- * library/session.tcl: Use a namespace. Renamed all functions.
-
-2002-02-13 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk-hooks.c (gdbtk_print_frame_info): Don't
- set GDB globals current_source_symtab and current_source_line.
- Let GDB do it.
-
-2002-02-13 Keith Seitz <keiths@redhat.com>
-
- * library/managedwin.itb (_create): If given a transient window,
- make sure that the SrcWin that is to become its master exists;
- otherwise, use ".".
-
-2002-02-12 Keith Seitz <keiths@redhat.com>
-
- From Don Bowman <don@sandvine.com>:
- * library/targetselection.itb (init_target_db): Add target
- vxWorks.
- Update copyright.
-
-2002-02-10 Daniel Jacobowitz <drow@mvista.com>
-
- * generic/gdbtk-cmds.c (gdb_listfuncs): Don't call
- BLOCK_SHOULD_SORT.
- * library/browserwin.itb (BrowserWin::_fill_funcs_combo): Sort
- the output of gdb_listfuncs.
-
-2002-02-07 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk.c, generic/gdbtk-bp.c, generic/gdbtk-cmds.c,
- generic/gdbtk-hooks.c, generic/gdbtk-stack.c: Cleanup includes.
-
-2002-02-06 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk.c, generic/gdbtk-bp.c, generic/gdbtk-cmds.c,
- generic/gdbtk-hooks.c, generic/gdbtk-register.c,
- generic/gdbtk-stack.c, generic/gdbtk-varobj.c,
- generic/gdbtk-wrapper.c: Cleanup. Fix indentation. Fix
- function declarations. Remove unused variables. Add 2002
- copyrights.
-
-2002-02-06 Keith Seitz <keiths@redhat.com>
-
- * library/images/cygnus.gif: Remove.
- * library/images2/cygnus.gif: Remove.
-
-2002-02-05 Elena Zannoni <ezannoni@redhat.com>
-
- * generic/gdbtk-cmds.c (gdbtk_load_asm, gdbtk_print_asm): Use
- TARGET_PRINT_INSN instead of tm_print_insn.
-
-2002-01-18 Keith Seitz <keiths@redhat.com>
-
- * library/console.ith (get_text): Delete.
- (test): New public method.
- * library/console.itb (get_text): Delete.
- (test): New public method.
-
-2002-01-15 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-varobj.c (variable_value): When varobj_get_value
- fails, use error_last_message to return the error to tcl land.
- This allows us to display nice messages about why "0xdeadbeef" is
- not accessible!
-
-2002-01-11 Martin M. Hunt <hunt@redhat.com>
-
- * library/memwin.itb (idle): Check for existence of window.
- Prevents race-condition error.
-
- * library/srctextwin.itb (enable): Check for existence of $twin.
-
- * library/interface.tcl (gdbtk_tcl_exec_file_display):
- Set pathname in host-independent manner using "file" and
- gdb_current_directory.
-
-2002-01-10 Keith Seitz <keiths@redhat.com>
-
- * library/Makefile (ITCL_SH): Renamed to "ITCLSH".
- (tclIndex): We no longer have an Itcl shell, so we must use
- "package require Itcl".
-
-2002-01-08 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_find_file_command): If the symtab
- doesn't have the filename's fullname, look it up with
- symtab_to_filename.
-
-2002-01-08 Keith Seitz <keiths@redhat.com>
-
- * library/srcwin.itb (location): Fix typo. It's "addr" not
- "address".
-
-2002-01-08 Tom Tromey <tromey@redhat.com>
-
- * library/interface.tcl (gdbtk_tcl_preloop): Use current directory
- when `--args' given.
-
-2002-01-07 Ian Roxborough <irox@redhat.com>
-
- * library/srcbar.itcl (SrcBar::create_buttons): Line number
- and address fields have been removed and added to the
- status bar.
- * library/srcwin.itb (SrcWin::_build_win): Add address and
- line number fields to status bar. Moved download progress
- bar to status bar.
- (SrcWin::download_progress): Use canvas on status bar.
- Remember to adjust width of 64-bit address.
- (SrcWin::location): Set line number and address on status bar.
- * library/srcwin.ith (SrcWin): Added new private variable.
-
-2002-01-04 Andrew Cagney <ac131313@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_disassemble_driver): Replace
- LITTLE_ENDIAN with BFD_ENDIAN_LITTLE.
- * generic/gdbtk-register.c (get_register): Ditto.
-
-2002-01-04 Andrew Cagney <ac131313@redhat.com>
-
- * generic/gdbtk-wrapper.h: Add typedef value_ptr.
-
-2002-01-03 Martin M. Hunt <hunt@redhat.com>
-
- * library/session.tcl (SESSION_serialize_bps): Ignore
- breakpoints set on internal_error and info_command because
- these are set by .gdbinit and will be recreated by it.
- This is a bit of a hack and should be fixed properly
- someday.
-
- * library/debugwin.itb: Fix incorrect button names
- so they will be enabled/disabled properly.
-
- * library/srctextwin.itb: Set focus on srcwin only
- if another window doesn't have the focus.
-
-2002-01-02 Keith Seitz <keiths@redhat.com>
-
- * library/interface.tcl (set_exe): Allow users to debug
- executables with no debug information.
-
-2002-01-02 Keith Seitz <keiths@redhat.com>
-
- * library/console.ith (insert): Add tag parameter.
- (einsert): Delete.
- * library/console.itb: (insert): Add tag parameter.
- (einsert): Delete.
- * library/interface.tcl (gdbtk_tcl_fputs): Use Console::insert.
- (gdbtk_tcl_fputs_error): Likewise.
- (gdbtk_tcl_fputs_log): Likewise.
- (gdbtk_tcl_fputs_target): Likewise.
- (set_target): Likewise.
-
-2002-01-02 Ian Roxborough <irox@redhat.com>
-
- * library/managedwin.itb (ManagedWin::_create): When
- making a modal window transient, use the source window
- as the master and not ".".
-
diff --git a/gdb/gdbtk/ChangeLog-2003 b/gdb/gdbtk/ChangeLog-2003
deleted file mode 100644
index 5a005a2aafc..00000000000
--- a/gdb/gdbtk/ChangeLog-2003
+++ /dev/null
@@ -1,431 +0,0 @@
-2003-12-17 Jeff Johnston <jjohnstn@redhat.com>
-
- * generic/gdbtk-bp.c: Change calls to decode_line_1 to add
- new NULL parameter.
- * generic/gdbtk-cmds.c: Ditto.
- * generic/gdbtk-stack.c: Ditto.
-
-2003-12-11 Jim Blandy <jimb@redhat.com>
-
- * library/prefs.tcl (pref_read): The section marker or the word
- 'option' must be the first thing on the line; they don't count if
- they appear in the middle of the line.
-
-2003-11-24 David Carlton <carlton@kealia.com>
-
- * generic/gdbtk.c (target_is_native): Replace STREQ by strcmp.
- * generic/gdbtk-cmds.c (gdb_stop): Replace STREQ by strcmp.
- (gdb_search): Replace STREQN by strncmp and DEPRECATED_SYMBOL_NAME
- by SYMBOL_LINKAGE_NAME.
- * generic/gdbtk-varobj.c (variable_format): Replace STREQN by
- strncmp.
-
-2003-11-11 David Carlton <carlton@kealia.com>
-
- * generic/gdbtk-bp.c (gdb_find_bp_at_addr): Replace use of
- BREAKPOINT->address by BREAKPOINT->loc->address.
- (gdb_get_breakpoint_info): Ditto.
-
-2003-10-06 David Carlton <carlton@kealia.com>
-
- * generic/gdbtk-register.c (get_register_size): Replace
- REGISTER_RAW_SIZE by DEPRECATED_REGISTER_RAW_SIZE.
- (get_register, register_changed_p): Ditto.
-
-2003-09-30 David Carlton <carlton@kealia.com>
-
- * generic/gdbtk-register.c (get_register): Replace
- REGISTER_VIRTUAL_SIZE by
- DEPRECATED_REGISTER_VIRTUAL_SIZE.
-
-2003-09-08 Andrew Cagney <cagney@redhat.com>
-
- * generic/gdbtk-cmds.c: Include "disasm.h".
- (gdbtk_load_asm): Use "gdb_print_insn" instead of
- TARGET_PRINT_INSN .
- (gdb_disassemble_driver): Delete code referencing
- "deprecated_tm_print_insn_info". Delete "di" and "di_initialized"
- and any code initializing those variables. Pass NULL as "di"
- parameter to "print_asm_fn".
- (disassemble_from_exec): Mention that it is unused.
-
-2003-08-05 Andrew Cagney <cagney@redhat.com>
-
- * generic/gdbtk-register.c (gdb_reggrouplist): Update, use
- reggroup_next.
- (gdb_reggroup): Ditto.
-
-2003-08-04 David Carlton <carlton@kealia.com>
-
- * generic/gdbtk.c (gdbtk_source_start_file): Add "%s" first
- argument to error call.
- (tk_command): Ditto.
- (view_command): Ditto.
-
-2003-07-29 Martin Hunt <hunt@redhat.com>
-
- * library/prefs.tcl (pref_set_option_db): On Windows, fix
- highlighting of buttons. On Unix, fix highlighting of
- menus.
-
-2003-07-10 Martin Hunt <hunt@redhat.com>
-
- * library/prefs.tcl (pref_set_option_db): Only set
- activeBackground for Unix.
-
-2003-07-02 Martin Hunt <hunt@redhat.com>
-
- * library/prefs.tcl (pref_set_option_db): Only
- set checkbutton select color for Unix. Fixes Windows
- checkbutton problem.
-
-2003-06-26 Keith R Seitz <keiths@redhat.com>
-
- From Roland Schwingel <Roland.Schwingel@onevision.de>:
- * generic/gdbtk-cmds.c (gdb_find_file_command): If filename
- is already an absolute filename, try stat'ing it before searching
- symtabs.
-
-2003-06-13 Martin Hunt <hunt@redhat.com>
-
- * library/prefs.tcl (load_gnome_file): Fix parsing
- of gtk theme files so Red Hat 9 (and others) GNOME colors
- are correct.
-
-2003-06-11 David Carlton <carlton@bactrian.org>
-
- * generic/gdbtk-stack.c: Include dictionary.h.
- (gdb_block_vars): Update use of ALL_BLOCK_SYMBOLS.
- (gdb_get_blocks, gdb_get_vars_command): Ditto.
- * generic/gdbtk-cmds.c: Include dictionary.h.
- (gdb_listfuncs): Update use of ALL_BLOCK_SYMBOLS.
-
-2003-06-11 David Carlton <carlton@bactrian.org>
-
- * generic/gdbtk-register.c (get_register): REGISTER_CONVERTIBLE
- and REGISTER_CONVERT_TO_VIRTUAL are deprecated.
-
-2003-05-12 Elena Zannoni <ezannoni@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_search): Replace namespace_enum
- with domain_emum, and *_NAMESPACE with *_DOMAIN.
-
-2003-05-08 Andrew Cagney <cagney@redhat.com>
-
- * generic/gdbtk-register.c (get_register): Replace
- MAX_REGISTER_VIRTUAL_SIZE and MAX_REGISTER_RAW_SIZE with
- MAX_REGISTER_SIZE.
- (register_changed_p, setup_architecture_data): Ditto.
-
-2003-04-30 Andrew Cagney <cagney@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_disassemble_driver): Instead of
- TARGET_PRINT_INSN_INFO, "dis_asm_memory_error",
- "dis_asm_read_memory", and "dis_asm_print_address", use
- "deprecated_tm_print_insn_info"
-
-2003-04-11 Andrew Cagney <cagney@redhat.com>
-
- * generic/gdbtk-stack.c (get_frame_name): Use get_frame_pc and
- get_next_frame.
-
-2003-03-18 Keith Seitz <keiths@redhat.com>
-
- From Nick Kelsey <nickk@ubicom.com>:
- * process.itb (build_win): Removed ide_sizebox instantiation that is
- no longer required and is causing errors for win hosts.
- * tdump.tcl (build_win): Ditto.
- * locals.tcl (build_win): Removed ide_sizebox instantiation that is
- no longer required and already commented out.
- * regwin.itb (build_win): Ditto.
- * srcwin.itb (constructor): Ditto.
- * stackwin.itb (constructor): Ditto.
- * watch.tcl (constructor): Ditto.
-
-2003-03-24 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk-register.c (get_register_types): Use
- register_type instead of REGISTER_VIRTUAL_TYPE.
- (get_register): Ditto.
-
-2003-03-17 Keith R Seitz <keiths@redhat.com>
-
- * generic/gdbtk-register.c (get_register): Use frame_register
- instead of get_saved_register (which was deleted from gdb).
-
-2003-03-06 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk-interp.c (gdbtk_interpreter_init): Remove
- unused variable.
-
- * generic/gdbtk-cmds.c (gdb_update_mem): Remove unused variable.
- (gdbtk_print_source): Deleted.
- (gdbtk_print_asm): Deleted.
-
-2003-03-06 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk-bp.c (gdb_get_tracepoint_info): Return CORE_ADDR.
-
-2003-03-06 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_disassemble): Deleted.
- (sprintf_append_element_to_obj): Deleted.
-
- * generic/gdbtk-bp.c (get_breakpoint_commands): Use
- Tcl_ListObjAppendElement() instead of
- sprintf_append_element_to_obj().
-
-2003-03-05 Martin M. Hunt <hunt@redhat.com>
-
- * library/srctextwin.itb (SrcTextWin::FillAssembly):
- Remove unused variables asm_lo_addr and asm_hi_addr.
- (FillMixed): Ditto.
-
-2003-03-05 Martin M. Hunt <hunt@redhat.com>
-
- * generic/gdbtk-cmds.c (Gdbtk_Init): Create gdb_CA_to_TAS.
- (gdb_load_disassembly): Now takes CORE_ADDRs. Returns CORE_ADDRs
- for low and high.
- (gdbtk_load_asm): Use CORE_ADDRs.
- (gdb_loc): Return CORE_ADDRs.
- (gdb_entry_point): Return CORE_ADDR.
- (gdb_incr_addr): Update description.
- (gdb_CA_to_TAS): New function. Takes a CORE_ADDR and returns
- a target sddress string.
-
- * generic/gdbtk-bp.c (gdb_find_bp_at_addr): Change to
- take a CORE_ADDR.
- (gdb_get_breakpoint_info): Returns a CORE_ADDR.
- (gdb_set_bp_addr): Takes a CORE_ADDR.
-
- * library/bpwin.itb (bp_add): Call gdb_CA_to_TAS before
- displaying address.
- (bp_modify): Ditto.
-
- * library/srcwin.itb (location): Call gdb_CA_to_TAS before
- displaying address. Don't add "0x" in front of address.
- (set_execution_status): Call gdb_CA_to_TAS before
- displaying address. Don't call [gdb_cmd printf] to format
- output. Weird.
-
-2003-02-25 David Carlton <carlton@math.stanford.edu>
-
- * generic/gdbtk.h: Replace all instances of SYMBOL_NAME by
- DEPRECATED_SYMBOL_NAME.
- * generic/gdbtk-stack.c, generic/gdbtk-cmds.c: Ditto.
- * generic/gdbtk-stack.c, generic/gdbtk-cmds.c: Update copyright.
-
-2003-02-21 Tom Tromey <tromey@redhat.com>
-
- * generic/gdbtk-interp.c (gdbtk_interpreter_init): Declare locals
- before code.
-
-2003-02-21 Daniel Jacobowitz <drow@mvista.com>
-
- * generic/gdbtk-stack.c (gdb_get_blocks, gdb_block_vars)
- (gdb_get_vars_command): Handle LOC_COMPUTED and LOC_COMPUTED_ARG.
-
-2003-02-20 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_search): Change SYMBOL_SOURCE_NAME
- to SYMBOL_PRINT_NAME to track recent changes in gdb.
-
-2003-02-20 Pierre Muller <muller@ics.u-strasbg.fr>
-
- * generic/gdbtk-cmds.c: Add missing "block.h" include.
- generic/gdbtk-stack.c: Ditto.
- generic/gdbtk-wrapper.c: Ditto.
-
-2003-02-18 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-main.c (main): Change name of intepreter to "insight".
- * generic/gdbtk.h: Add ifdef wrappers.
- (gdbtk_init): Declare.
- (gdbtk_source_start_file): Declare.
- * generic/gdbtk.c (gdbtk_init): Export.
- Reomve init_ui_hook stuff.
- Do not add hooks here anymore (moved into interps).
- Do not muck with gdbk_stdout et al (moved into interps).
- (gdbtk_source_start_file): Code ripped out of gdbtk_init
- which deals with sourcing the main startup file.
- (gdbtk_init_1): Hack: New function.
- (argv0): Hack: New static global.
- (tk_init): Moved to gdbtk-interps.c.
- (gdbtk_resume): Likewise.
- (gdbtk_suspend): Likewise.
- (gdbtk_prompt_p): Likewise.
- (gdbtk_exec): Likewise.
- (gdbtk_command_loop): Likewise.
- (_initialize_gdbtk): Move interpreter stuff to gdbtk-interps.c.
- Hack: Add new init_ui_hook.
- * generic/gdbtk-interps.c: New file.
-
-2003-02-17 Christopher Faylor <cgf@redhat.com>
-
- Revert below change.
-
-2003-02-17 Christopher Faylor <cgf@redhat.com>
-
- * gdbtk/gdbtk.c (tk_procs): Make file global. Declare at top.
- (_initialize_gdbtk): Move interp_add from here.
- (gdb_tk): Call interp_add here. Pass correct uiout to interp_new.
-
-2003-02-14 Keith Seitz <keiths@redhat.com>
-
- From Chris Faylor <cgf@redhat.com>:
- * generic/gdbtk-main.c (main): Initialize args.interpreter_p.
-
-2003-02-14 Martin M. Hunt <hunt@redhat.com>
-
- * library/globalpref.itb (GlobalPref::_change_icons): Fix
- curselection call for combobox.
-
-2003-02-12 Andrew Cagney <ac131313@redhat.com>
-
- * generic/gdbtk-hooks.c (tk_command_loop): Move function ...
- * generic/gdbtk.c (gdbtk_command_loop): ... to here. Add data
- parameter.
-
- * generic/gdbtk.c: Include "interps.h".
- (_initialize_gdbtk): Register the "gdbtk" interpreter. Don't set
- init_ui_hook.
- (gdbtk_init): Change parameter to a void data pointer.
- (tk_init, gdbtk_resume, gdbtk_suspend): New functions.
- (gdbtk_prompt_p, gdbtk_exec): New functions.
-
- * generic/gdbtk-hooks.c (gdbtk_add_hooks): Don't set
- command_loop_hook. Update copyright.
-
-2003-02-11 Martin M. Hunt <hunt@redhat.com>
-
- * library/help/images/browser1.png: New file.
- * library/help/images/browser2.png: New file.
-
-2003-02-11 Keith R Seitz <keiths@redhat.com>
-
- * generic/gdbtk-register.c (register_changed_p): If the selected
- frame is NULL, do not call frame_register_read, since that will
- now cause an internal error.
-
-2003-02-10 Andrew Cagney <ac131313@redhat.com>
-
- * generic/gdbtk-varobj.c (gdb_variable_command): Ditto for
- `commands'.
- (variable_type): Ditto for `first'.
- (variable_obj_command): Ditto.
- (variable_create): Ditto for create_options.
- (variable_type): Ditto for `last'. Use `string' and not `first'
- when modifying the buffer.
- (struct disassembly_client_data ): Ditto for `asm_argv'
- * generic/gdbtk-register.c (gdb_register_info): Ditto for
- `commands'.
- * generic/gdbtk-hooks.c (tk_command_loop): Ditto for `msg'.
- * generic/gdbtk-cmds.c (gdb_search): Ditto for `switches'.
- (gdbtk_load_source): Ditto for `text_argv'.
- (struct disassembly_client_data ): Ditto for `source_argv'.
- (gdbtk_load_asm): Ditto for `text_argv'.
- (struct disassembly_client_data ): Ditto for `asm_argv'
- (gdb_loadfile): Ditto for `text_argv'.
- * generic/gdbtk.c (TclDebug): Make `v' a constant pointer.
- (gdbtk_init): Ditto for `old_chain', `src_path', `msg', and
- `lib_path'.
-
-2003-02-10 Martin M. Hunt <hunt@redhat.com>
-
- * library/browserwin.itb: Set textbackground option to
- $::Colors(textbg) instead of "white".
-
-2003-02-10 Martin M. Hunt <hunt@redhat.com>
-
- * library/interface.tcl (gdbtk_attach_native): Don't force the user
- to choose an exec file when attaching.
-
- * library/attachdlg.itb: Some fixes to work with latest iwidgets.
-
-2003-02-10 Martin M. Hunt <hunt@redhat.com>
-
- * library/prefs.tcl (pref_set_defaults): Remove prefs
- gdb/browser/width, gdb/browser/top_height, gdb/browser/view_height,
- gdb/browser/view_is_open. Add gdb/browser/layout.
-
- * library/browserwin.ith: Update declarations to match
- changes in browserwin.itb.
-
- * library/browserwin.itb (constructor): Don't set toplevel
- bindings. Set _layout from prefs.
- (destructor): Don't check $resize_after. Don't save view_is_open.
- (_build_win): Create a popup menu and bind to button 3.
- Split the rest into 4 functions; _build_file_frame,
- _build_filter_frame, _build_function_frame, and _build_view_frame.
- Pack these 4 frames according to $_layout.
- (_toggle_more): Deleted.
- (_bind_toplevel): Deleted.
- (_do_resize): Deleted.
- (_resize): Deleted.
- (_fill_source): Always fill because source is always visible.
- (_fill_funcs_combo): Limit width of combo to 40 chars.
- (_build_filter_frame): New function.
- (_build_file_frame): New function.
- (_build_function_frame): New function.
- (_build_view_frame): New function.
- (_switch_layout): New function. Toggle between layouts.
-
- * library/tclIndex: Rebuilt.
-
- * library/help/browser.html: Rewrite.
-
-2003-02-03 Martin M. Hunt <hunt@redhat.com>
-
- * library/targetselection.itb (TargetSelection::build_win): Remove
- duplicate label.
-
-2003-02-03 Martin M. Hunt <hunt@redhat.com>
-
- * library/globalpref.itb, library/mempref.itb, library/srcpref.itb,
- library/srcwin.itb, library/targetselection.itb, library/tracedlg.tcl:
- Set background color of comboboxes to Colors(textbg).
-
- * library/main.tcl: Load combobox version 2.2.
-
- * library/prefs.tcl: Minor optimization. Change order of main_names
- to have the most common, "main", first.
-
-2003-02-03 Martin M. Hunt <hunt@redhat.com>
-
- * library/targetselection.itb (TargetSelection::port_list): Keep
- checking ports on Windows until we can open no more. Replaces
- fixed limit of 9.
-
-2003-02-03 Martin M. Hunt <hunt@redhat.com>
-
- * library/session.tcl (_recreate_bps): Catch errors.
-
-2003-02-03 Martin M. Hunt <hunt@redhat.com>
-
- * library/interface.tcl (gdbtk_locate_main): Rewrite for efficiency.
- No longer uses gdb_search. Caches result.
- (initialize_gdbtk): Initialize gdb_locate_main cache.
- * library/main.tcl: Call initialize_gdbtk after loading prefs.
-
-2003-01-21 Martin M. Hunt <hunt@redhat.com>
- * library/main.tcl: Don't require iwidgets 3.0.
-
- * library/console.itb (Console::_build_win): Rename
- tkTextClosestGap to tk::TextClosestGap. Rename tkCancelRepeat
- to tk::CancelRepeat. Rename tkPriv to tk::Priv. Needed for tk 8.4.1.
-
- * library/bpwin.itb (BpWin::build_win): Don't
- create sizebox.
- * library/locals.tcl (build_win): Ditto.
- * library/regwin.itb (RegWin::_build_win): Ditto.
- * library/srcwin.itb (SrcWin::constructor): Ditto.
- * library/stackwin.itb (StackWin::build_win): Ditto.
- * library/watch.tcl (build_win): Ditto.
-
- * generic/gdbtk.c (gdbtk_init): Look for iwidgets in
- "iwidgets" instead of "iwidgets3.0.0".
- Don't call ide_create_sizebox_command.
-
- * ChangeLog: New log for 2003.
- * ChangeLog-2002: Renamed from ChangeLog.
-
diff --git a/gdb/gdbtk/ChangeLog-2004 b/gdb/gdbtk/ChangeLog-2004
deleted file mode 100644
index 07201506650..00000000000
--- a/gdb/gdbtk/ChangeLog-2004
+++ /dev/null
@@ -1,209 +0,0 @@
-2004-12-13 Ben Elliston <bje@au.ibm.com>
-
- Remove some warnings:
- * generic/gdbtk-hooks.c (gdbtk_pre_add_symbol): Cast `name'.
- * generic/gdbtk-cmds.c (gdbtk_dis_asm_read_memory): Remove.
-
-2004-12-08 Keith Seitz <kseitz@sources.redhat.com>
-
- * library/download.ith (completed_steps): New variable.
- * library/download.itb (Download::constructor): Remove
- "-fraction" option from iwidgets feedback widget. It's not a valid
- option!
- (update_download): Compute the step number and use that to
- update the feedback widget.
- (done): Use completed_steps to figure out how many steps
- the dumb feedback meter needs to show full.
- (download_it): Initialize completed_steps.
-
-2004-11-18 Keith Seitz <kseitz@sources.redhat.com>
-
- * generic/gdbtk-wrapper.c (wrap_type_print): Use value_type instead
- of VALUE_TYPE.
- * generic/gdbtk-cmds.c (gdb_eval): Likewise.
-
-2004-10-31 David Lecomber <dsl@sources.redhat.com>
- * generic/gdbtk-register.c: Add message parameter
- to call of get_selected_frame.
-
-2004-08-27 Martin Hunt <hunt@redhat.com>
-
- * library/ipc.tcl: New file.
- * library/ipcpref.ith: New file.
- * library/ipcpref.itb: New file.
-
- * library/srcwin.itb (SrcWin::inferior): Call ipc
- send if enabled.
-
- * library/prefs.tcl (pref_set_defaults): Enable color
- schemes by default. Add IPC defaults.
-
- * library/srcbar.itcl (create_pref_menu): Create
- "Advanced" cascade menu and put "Edit Color Schemes"
- and "IPC Support" under it.
-
- * library/managedwin.itb (ManagedWin::destructor):
- If IPC enabled then send "quit" on exit.
-
- * library/main.tcl: Start IPC if enabled.
-
- * library/prefs.tcl (pref_set_defaults): Add IPC defaults.
-
- * library/gdbmenubar.itcl (menubar_get_current_menu):
- New method.
-
-2004-08-09 Ben Elliston <bje@au.ibm.com>
-
- * generic/gdbtk-register.c (get_register_size): Use
- register_size() instead of DEPRECATED_REGISTER_RAW_SIZE.
- (get_register): Likewise.
- (register_changed_p): Likewise.
-
-2004-07-02 Martin Hunt <hunt@redhat.com>
-
- * library/targetselection.itb: Use /dev/comX for
- cygwin instead of just comX.
-
- * library/interface.tcl (gdbtk_tcl_preloop): Set baud rate.
-
-2004-07-02 Martin Hunt <hunt@redhat.com>
-
- * generic/gdbtk-cmds.c (symtab_to_filename): New function. Like
- symtab_to_fullname() but returns the filename if the fullname
- cannot be found.
-
- * generic/gdbtk-cmds.c (gdb_find_file_command): Revert
- patch of 2004-06-11. Use symtab_to_filename() again.
- (gdb_loc): Ditto.
- (gdb_loadfile): Ditto.
- * generic/gdbtk-bp.c (gdb_get_breakpoint_info): Ditto.
- (gdb_get_tracepoint_info): Ditto.
-
- * generic/gdbtk-cmds.h: Declare symtab_to_filename().
-
-2004-06-26 Andrew Cagney <cagney@gnu.org>
-
- * generic/gdbtk-hooks.c (gdbtk_add_hooks): Call
- deprecated_set_gdb_event_hooks.
-
-2004-06-25 Andrew Cagney <cagney@gnu.org>
-
- * generic/gdbtk.h: "ui_loop_hook" was deprecated, update.
- * generic/gdbtk-hooks.c (gdbtk_add_hooks, x_event): Ditto.
- * generic/gdbtk-cmds.c: Ditto.
-
-2004-06-24 Andrew Cagney <cagney@gnu.org>
-
- * generic/gdbtk-hooks.c (gdbtk_add_hooks): Update references to
- pre_add_symbol_hook and post_add_symbol_hook, both deprecated.
- * library/interface.tcl (gdbtk_memory_changed): Update comments.
-
-2004-06-24 Andrew Cagney <cagney@gnu.org>
-
- * generic/gdbtk-hooks.c (ui_loop_hook, pre_add_symbol_hook)
- (post_add_symbol_hook, selected_frame_level_changed_hook): Delete
- extern declarations.
-
-2004-06-15 Alan Modra <amodra@bigpond.net.au>
-
- * generic/gdbtk-cmds.c (gdb_load_info): Use bfd_get_section_size
- instead of bfd_get_section_size_before_reloc.
-
-2004-06-11 Martin Hunt <hunt@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_find_file_command): Use
- symtab_to_fullname() instead of symtab_to_filename().
- (gdb_loc): Ditto.
- (gdb_loadfile): Ditto.
- * generic/gdbtk-bp.c (gdb_get_breakpoint_info): Ditto.
- (gdb_get_tracepoint_info): Ditto.
-
- * generic/gdbtk-register.c (get_register): Simplify and remove
- references to DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL.
-
-2004-05-27 Martin Hunt <hunt@redhat.com>
-
- * library/tdump.tcl (build_win): Remove old nonworking
- code to select scrolledtext mode. Just use "dynamic".
-
-2004-04-22 Keith Seitz <kseitz@sources.redhat.com>
-
- * generic/gdbtk-hooks.c (gdbtk_add_hooks): "Update" deprecated hooks.
- "Houston... We have a problem."
- * generic/gdbtk-interp.c (gdbtk_interpreter_resume): Likewise.
- * generic/gdbtk.c (gdbtk_init_1): Likewise.
-
-2004-04-19 Roland McGrath <roland@redhat.com>
-
- * generic/gdbtk-hooks.c: Update gdbtk_pre_add_symbol forward decl to
- match defn type change.
-
-2004-04-15 Roland McGrath <roland@redhat.com>
-
- * generic/gdbtk-hooks.c (gdbtk_pre_add_symbol): Add const to arg type.
- (pre_add_symbol): Likewise in extern decl.
-
-2004-04-05 Martin Hunt <hunt@redhat.com>
-
- * library/session.tcl: Make hostname and portname
- session-dependent. Add gdb_bg_num (the color
- scheme number) as a per-session variable.
-
- * library/prefs.tcl (pref_read): If color schemes are in use,
- set colors based on the current scheme.
- (pref_save): Add "bg" section.
- (pref_set_defaults): Define new variable gdb/use_color_schemes
- and define 16 default background colors.
-
- * library/managedwin.itb (ManagedWin::window_name): Append
- window "instance" string to window name.
- (ManagedWin::window_instance): Set window instance string.
-
- * library/debugwin.itb: Add a reconfig method to restore
- unique black textbackground, overriding color scheme.
-
- * library/csprefs.itb:
- * library/csprefs.ith: New files. Implement color scheme
- preferences.
-
- * library/util.tcl (set_bg_colors): New function.
- (r_setcolors): New function.
-
- * library/regwin.itb (_prefs_changed): Deleted.
- (reconfig): New function. Updates tkTable color tags
- if color scheme changes.
- * library/regwin.ith: Update to reflect above changes.
-
- * library/srcbar.itcl (create_pref_menu): Add pulldown
- menus for "Edit Color Schemes..." and "Use Color Schemes".
- (reconfig): Fix up menu items for color schemes.
-
- * library/globalpref.itb (_init_var): Add
- gdb/use_color_schemes to variable list.
- (_build_win): Add a checkbutton to enable/disable
- color schemes.
-
- * library/gdbmenubar.itcl (menubar_add_cascade): Add a class
- argument so cascade menus can be managed by class too.
-
- * library/interface.tcl (gdbtk_tcl_fputs): Check for
- existence of gdbtk_state(console). Stops annoying error
- messages.
- (gdbtk_tcl_fputs_error): Ditto.
- (gdbtk_tcl_fputs_log): Ditto.
-
-2004-03-29 Martin Hunt <hunt@redhat.com>
-
- * generic/gdbtk-register.c (map_arg_registers): If a specific
- register was requested, just return it without validating it
- has a name.
- (get_register): Check DEPRECATED_REGISTER_CONVERTIBLE_P ().
-
-2004-02-17 Martin Hunt <hunt@redhat.com>
-
- * generic/gdbtk-register.c (Gdbtk_Register_Init): Replace
- calls to register_gdbarch_swap with deprecated_register_gdbarch_swap.
-
- * library/srcwin.itb: Remove an apparently redundant call
- to gdbtk_locate_main and location. This actually broke in
- situations where no source files were found.
diff --git a/gdb/gdbtk/ChangeLog-2005 b/gdb/gdbtk/ChangeLog-2005
deleted file mode 100644
index 2c70bcd635d..00000000000
--- a/gdb/gdbtk/ChangeLog-2005
+++ /dev/null
@@ -1,214 +0,0 @@
-2005-12-23 Eli Zaretskii <eliz@gnu.org>
-
- * library/attachdlg.itb:
- * library/actiondlg.tcl:
- * library/about.tcl:
- * library/ehandler.itb:
- * library/editor.tcl:
- * library/download.ith:
- * library/download.itb:
- * library/debugwin.ith:
- * library/debugwin.itb:
- * library/cspref.ith:
- * library/cspref.itb:
- * library/console.ith:
- * library/console.itb:
- * library/browserwin.ith:
- * library/browserwin.itb:
- * library/bpwin.ith:
- * library/bpwin.itb:
- * library/blockframe.ith:
- * library/managedwin.ith:
- * library/managedwin.itb:
- * library/main.tcl:
- * library/locals.tcl:
- * library/ipcpref.ith:
- * library/ipcpref.itb:
- * library/ipc.tcl:
- * library/interface.tcl:
- * library/helpviewer.tcl:
- * library/globalpref.ith:
- * library/globalpref.itb:
- * library/gdbwin.ith:
- * library/gdbtoolbar.itcl:
- * library/gdbmenubar.itcl:
- * library/gdbevent.ith:
- * library/gdbevent.itb:
- * library/embeddedwin.ith:
- * library/ehandler.ith:
- * library/srcwin.itb:
- * library/srctextwin.ith:
- * library/srctextwin.itb:
- * library/srcpref.ith:
- * library/srcpref.itb:
- * library/srcbar.itcl:
- * library/session.tcl:
- * library/regwin.ith:
- * library/regwin.itb:
- * library/process.ith:
- * library/process.itb:
- * library/prefs.tcl:
- * library/pluginwin.itcl:
- * library/modal.tcl:
- * library/memwin.ith:
- * library/memwin.itb:
- * library/mempref.ith:
- * library/mempref.itb:
- * library/watch.tcl:
- * library/watch.tcl:
- * library/warning.tcl:
- * library/vartree.ith:
- * library/vartree.itb:
- * library/util.tcl:
- * library/tracedlg.tcl:
- * library/toplevelwin.ith:
- * library/tfind_args.tcl:
- * library/tdump.tcl:
- * library/targetselection.ith:
- * library/targetselection.itb:
- * library/stackwin.ith:
- * library/stackwin.itb:
- * library/srcwin.ith:
- * generic/gdbtk.h:
- * generic/gdbtk.c:
- * generic/gdbtk-wrapper.h:
- * generic/gdbtk-wrapper.c:
- * generic/gdbtk-varobj.c:
- * generic/gdbtk-stack.c:
- * generic/gdbtk-register.c:
- * generic/gdbtk-main.c:
- * generic/gdbtk-interp.c:
- * generic/gdbtk-hooks.c:
- * generic/gdbtk-cmds.h:
- * generic/gdbtk-cmds.c:
- * generic/gdbtk-bp.c: Put (C) after Copyright. Update the FSF
- address.
-
-2005-11-29 Andrew Stubbs <andrew.stubbs@st.com>
-
- * library/prefs.tcl (pref_read): Read preferences file if environment
- variable INSIGHT_FORCE_READ_PREFERENCES is set (regardless of -nx).
- * README: Mention INSIGHT_FORCE_READ_PREFERENCES.
-
-2005-11-11 Keith Seitz <keiths@redhat.com>
-
- From Spencer Oliver <spencer.oliver@anglia.com>:
- * library/targetselection.itb (build_win): Only pack the xterm checkbutton
- on unix platforms.
-
-2005-09-12 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk.c (gdbtk_init): Remove all mention of Tix.
- * README: Ditto.
-
-2005-08-31 Keith Seitz <keiths@redhat.com>
-
- * library/help/target.html: Update dialog options.
- * library/targetselection.itb (help): Implement.
- (build_win): Don't disable help button.
- Only display "use tty" option on unix hosts.
-
-2005-08-31 Keith Seitz <keiths@redhat.com>
-
- * library/bpwin.itb (bp_store): gdb_get_breakpoint_info outputs
- the breakpoint condition, too -- include it in the lassign.
-
-2005-08-31 Keith Seitz <keiths@redhat.com>
-
- From Dieter Ruppert <dieter_ruppert@siemens.com>:
- * library/memwin.itb (update_address): Change parameter name
- so that it does not shadow a member variable.
- Save the updated address internally.
-
-2005-06-13 Keith Seitz <keiths@redhat.com>
-
- From Charles Brockman <mr hyphen chuck at att dot net>:
- * library/interface.tcl (gdbtk_tcl_warning): Filter "RTTI symbol not found"
- "warnings", too.
-
-2005-06-06 Keith Seitz <keiths@redhat.com>
-
- * library/interface.tcl (gdbtk_tcl_fputs_error): gdbtk_state is in the global
- namespace. Fix references.
- (gdbtk_tcl_fputs_log): Likewise.
-
- From Steven Johnson <johnson@sakuraindustries.com>:
- * library/interface.tcl (gdbtk_tcl_warning): Filter some basic warnings
- from gdb - "incomplete CFI.." and "Internal error".
-
-2005-06-06 Keith Seitz <keiths@redhat.com>
-
- From Steven Johnson <sjohnson@sakraindustries.com>:
- * generic/gcbtk-cmds.c (gdb_loc): Hand gdb_loc called before remote
- target connected, where gdb_loc now returns the entry address as $pc.
-
-2005-06-01 Keith Seitz <keiths@redhat.com>
-
- From James Lemke <jim@wasabisystems.com>:
- * generic/gdbtk-hooks.c (gdbtk_fileopenin, gdbtk_read): New functions
- for target to read stdin from console window.
- * generic/gdbtk-interp.c (_stdtargin): Added.
- * generic/gdbtk.h (gdbtk_fileopenin): Add declaration.
-
-2005-05-26 Keith Seitz <keiths@redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_set_mem): target_write_memory now takes
- gdb_byte* instead of char*.
- * generic/gdbtk-register.c (get_register): frame_register and val_print
- take gdb_byte* instead of char*.
- * generic/gdbtk-wrapper.c: Ditto the val_print part.
-
- From Paul Schlie <schlie@comcast.net>:
- * generic/gdbtk-bp.c (gdb_set_bp): Use lbasename instead of basename.
- * generic/gdbtk-cmds.c (gdb_listfiles): Likewise.
-
-2005-04-28 Ben Elliston <bje@au.ibm.com>
-
- * generic/gdbtk-interp.c (gdbtk_interpreter_exec): Return struct
- gdb_exception due to the 2005-04-26 renaming of struct exception.
- * generic/gdbtk.c (gdbtk_source_start_file): Likewise.
-
-2005-02-25 Keith Seitz <kseitz@sources.redhat.com>
-
- * generic/gdbtk.c (gdbtk_source_start_file): In the _WIN32 case,
- use throw_exception (struct exception).
-
-2005-02-16 Martin Hunt <hunt@redhat.com>
-
- * generic/gdbtk-stack.c (get_frame_name): Replace
- print_address_numeric with deprecated_print_address_numeric.
- * generic/gdbtk-cmds.c (gdbtk_load_asm): Ditto.
-
-2005-02-07 Keith Seitz <kseitz@sources.redhat.com>
-
- * generic/gdbtk-cmds.c (gdb_eval): VALUE_EMBEDDED_OFFSET and
- VALUE_CONTENTS are now functions.
-
-
-2005-01-19 Keith Seitz <kseitz@sources.redhat.com>
-
- * Makefile.in: Regenerate.
- * aclocal.m4: Regenerate.
- * plugins/Makefile.in; Regenerate.
- * plugins/aclocal.m4: Regenerate.
-
-2005-01-17 Keith Seitz <kseitz@sources.redhat.com>
-
- * generic/gdbtk-varobj.c (variable_value): Remove all instances
- of error_last_message. It's gone.
-
- * generic/gdbtk-wrapper.c: Include exceptions.h
- * generic/gdbtk-cmds.c: Likewise.
- * generic/gdbtk-interp.c: Likewise.
- (gdbtk_interpreter_exec): Change return type to struct
- exception. Return exception_none.
-
-2005-01-13 Keith Seitz <keiths@redhat.com>
-
- * configure.in: Rename to ...
- * configure.ac: ... this.
- * configure: Regenerate with autoconf 2.59.
- * plugins/configure.in: Rename to ...
- * plugins/configure.ac: ... this.
- * pluginx/configure: Regenerate with autoconf 2.59.
-
diff --git a/gdb/gdbtk/Makefile.am b/gdb/gdbtk/Makefile.am
deleted file mode 100644
index 530ab66e228..00000000000
--- a/gdb/gdbtk/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-AUTOMAKE_OPTIONS = cygnus
-SUBDIRS = plugins
diff --git a/gdb/gdbtk/Makefile.in b/gdb/gdbtk/Makefile.in
deleted file mode 100644
index ca878e03829..00000000000
--- a/gdb/gdbtk/Makefile.in
+++ /dev/null
@@ -1,410 +0,0 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = .
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-DIST_COMMON = $(srcdir)/../../config.guess $(srcdir)/../../config.sub \
- README ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/configure $(am__configure_deps) \
- $(srcdir)/../../mkinstalldirs
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno configure.status.lineno
-mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
-CONFIG_CLEAN_FILES =
-depcomp =
-am__depfiles_maybe =
-SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
- html-recursive info-recursive install-data-recursive \
- install-exec-recursive install-info-recursive \
- install-recursive installcheck-recursive installdirs-recursive \
- pdf-recursive ps-recursive uninstall-info-recursive \
- uninstall-recursive
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EXEEXT = @EXEEXT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
-MAKEINFO = @MAKEINFO@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-subdirs = @subdirs@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-AUTOMAKE_OPTIONS = cygnus
-SUBDIRS = plugins
-all: all-recursive
-
-.SUFFIXES:
-am--refresh:
- @:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
- cd $(srcdir) && $(AUTOMAKE) --foreign \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- echo ' $(SHELL) ./config.status'; \
- $(SHELL) ./config.status;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-uninstall-info-am:
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- rev=''; for subdir in $$list; do \
- if test "$$subdir" = "."; then :; else \
- rev="$$subdir $$rev"; \
- fi; \
- done; \
- rev="$$rev ."; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-ctags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-check-am:
-check: check-recursive
-all-am: Makefile
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-recursive
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf $(top_srcdir)/autom4te.cache
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am:
-
-uninstall-info: uninstall-info-recursive
-
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
- check-am clean clean-generic clean-recursive ctags \
- ctags-recursive distclean distclean-generic \
- distclean-recursive distclean-tags dvi dvi-am html html-am \
- info info-am install install-am install-data install-data-am \
- install-exec install-exec-am install-info install-info-am \
- install-man install-strip installcheck installcheck-am \
- installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic maintainer-clean-recursive \
- mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
- pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
- uninstall-info-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/gdb/gdbtk/README b/gdb/gdbtk/README
deleted file mode 100644
index bb15731bc47..00000000000
--- a/gdb/gdbtk/README
+++ /dev/null
@@ -1,289 +0,0 @@
- README
- Written by Stu Grossman
- Updated 9/26/95 by Fred Fish for gdb 4.15 release
- Updated 4/18/97 by Martin Hunt
- Updated 8/15/02 by Keith Seitz
-
-This file describes how to build, install, use and hack on Insight (formerly
-GDBtk), a TK-based GUI for GDB, the GNU debugger.
-
-Introduction
-============
-
-Insight is a version of GDB that uses Tcl/Tk to implement a graphical
-user inter-face. It is a fully integrated GUI, not a separate
-front-end program. The interface consists of several separate
-windows, which use standard elements like buttons, scrollbars, entry
-boxes and such to create a fairly easy to use interface. Each window
-has a distinct content and purpose, and can be enabled or disabled
-individually. The windows contain things like the current source
-file, a disassembly of the current function, text commands (for things
-that aren't accessible via a button), and so forth.
-
-Building and Installing
-=======================
-
-Building Insight is very straightforward. It is configured/built by
-default when you checkout or download Insight. Right now, Insight MUST
-be built using the versions of Tcl, Tk, and Itcl that come with
-the sources. We're working to fix that, but it is going to take a lot
-of time. (Want to help?)
-
-On Unix machines, you will also need to have X11 (R4/R5/R6) installed
-(this is a prerequisite to installing Tk).
-
-Insight inherits much of GDB's configuration options (like where it is
-to be installed). See the GDB README file for more details on configure
-options and such for GDB.
-
-It is recommended that Insight, like GDB, be built outside of the source
-directory in order to preserve the integrity of the source directory. This
-is very useful, for example, when building GDB/Insight for multiple hosts
-or targets.
-
-For example:
-
- host> ls
- src/
- host> mkdir insight; cd insight
- host> ../src/configure
- host> make
- host> make install
-
-Environment Variables
-=====================
-
-Insight and all of its support infrastructure read various environment variables
-for optional startup information. All of these environment variables are
-optional: Insight and its packages know how to find their files in both the
-install and the source trees.
-
- Name Description
- ---- -----------
- TCL_LIBRARY The location of the Tcl library files
- TK_LIBRARY The location of the Tk library files
- REDHAT_GUI_LIBRARY The location of the libgui library files
- GDBTK_LIBRARY The location of the Insight library files
- INSIGHT_PLUGINS A colon-separated list of directories
- to search for plugins (see gdb/gdbtk/plugins/HOW-TO)
- GDBTK_DEBUG Controls runtime loading of the Debug Window.
- (This is the most useful debug option.)
- GDBTK_TRACE Controls runtime tracing of the tcl code
- GDBTK_DEBUGFILE Filename to send debug output
- GDBTK_TEST_RUNNING Testsuite variable. See gdb/testsuite/gdb.gdbtk/README
- for more information.
- INSIGHT_FORCE_READ_PREFERENCES
- If set, read .gdbtkinit (or gdb.ini on windows)
- even when -nx is passed to GDB.
- DISPLAY The display to use on unix/X platforms.
- Not used on Windows platforms.
-
-All of the environment variables for controlling Insight are well documented
-in gdb/gdbtk/library/main.tcl. Search for "env" to find them all.
-
-Using Insight
-=============
-
-You can start Insight by running the `insight' executable (for cross-platform
-targets, include the build triple, i.e., `powerpc-elf-insight'). Alternatively start
-Insight by telling GDB to start it with `gdb -w' or `gdb -i=insight'. If
-everything goes well, you should have several windows pop up. To get going,
-hit the Run button, and go exploring.
-
-If you want to use GDB in command line mode, just use the -nw option or the
-console interpreter (`insight -i=console').
-
-Insight comes with all your standard debugger windows, including:
-
- o Console Window
- o Source Window
- o Register Window
- o Memory Window
- o Locals Window
- o Watch Window
- o Stack Window
- o Thread/Process Window
- o Function Browser Window
- o Debug Window (for developers)
-
-Insight also has an extensive (if outdated) online help system which describes
-all the windows and explains how to use them. Users are urged to browse this
-help system for information on using Insight.
-
-Hacking Insight
-===============
-
-The GUI is primarily implemented by Tcl/Tk code which lives in gdb/gdbtk/library
- and bunch of C files in gdb/gdbtk/generic. The Tcl/Tk code determines the look
-and feel, the layout, and the functions associated with all of the interface
-elements. The C code is mostly just glue between GDB internals and Tcl-land.
-In essence, all of the policy is implemented in Tcl/Tk, and is easily changed
-without recompiling.
-
-To make more serious changes to the interface, such as adding a new window or
-changing the framework, you will have to hack the tcl code (and probably the C
-code as well). The tcl library install directory is $(libdir) (probably
-/usr/local/lib/insight1.0). But, you will probably want to hack on your own
-private copy before putting it up for the rest of the users. To find the GDB tcl
-code, GDB first checks for the environment variable GDBTK_LIBRARY. GDB will check
-this directory for the file "main.tcl". If GDBTK_LIBRARY is not set, GDB will
-look for main.tcl in the install directory, and finally it will try to find
-the tcl directory in the sources.
-
-A word about the different files in Insight is in order. Insight is a hybrid of
-C code and "Tcl" code (actuall Incr Tcl code). We use the following conventions
-for naming our tcl files (most of the time!). Any file with a ".tcl" extension
-is simply vanilla tcl code. Any file ending with ".itcl" is an Itcl file,
-class definition and implementation all in one. So far so good. Now comes the
-toughy: Files ending in ".ith" are Itcl class definition files, and they all
-must have a corresponding implementation file, ending in ".itb". Why do we do
-this? Simple. With Itcl, one can reread class implementations at runtime, but
-one cannot change the class definition. So all those ".itcl" files can only
-be reread be restarting Insight. The same is not true, though, of the ".itb"
-files. Those files can be changed and immediately reread and used in Insight
-without having to restart (as long as the class definition doesn't change). This
-is a nifty Itcl feature which is fully exploited by the Debug Window, which
-has a "ReSource" menu on it to reread the Tcl files. (To get to the Debug Window,
-hit Ctrl-Alt-F11 in the Source Window or type "tk ManagedWin::open DebugWin" in
-the Console Window.)
-
-Internally, Insight is basically GDB, linked with Tcl/Tk, some Tcl/Tk extensions,
-and some glue code that interfaces GDB internals to Tcl-land. This means that
-Insight operates as a single program, not a front-end to GDB. All GDB commands,
-and a great deal of the target program state are accessible to the Tcl programmer.
-In addition, there are many callbacks from GDB to notify Tcl-land of important
-events. Many of these are accomplished via "hooks" in GDB, and others are
-accomplished using event notifications. GDB is slowly deprecating the use of
-"hooks" in favor of its new event mechanism.
-
-All of the below commands have lots of nice comments before them explaining what
-they all do, how they are to be used, etc. The source code is the definitive
-authority (other than a maintainer) for the definition/usage of a command in
-Insight. Hackers are urged to read through the source code for any commands
-which may need explaining.
-
-New Tcl Commands:
-
-Here is a brief, if incomplete, summary of the Tcl commands that are created
-by Insight. These are installed into the Tcl interpreter in the C files.
-
- Name Description
- ---- -----------
- gdb_cmd Sends a text command to gdb. Returns the result.
- DEPRECATED: Do not use any more.
- gdb_loc Returns a list of useful tidbits about the specified
- GDB linespec
- gdb_sourcelines Returns a list of executable lines for a source file
- gdb_listfiles Returns a list of all of the source files
- gdb_stop Stops the target process (or at least tries to)
- gdb_reginfo Returns information about registers (names, numbers,
- values, size, etc.)
- gdb_disassemble Returns the text of a disassembly of the entire
- function. No longer used.
- gdb_load_disassembly Loads the disassembly of a location into a
- source window's textbox
- gdb_eval Returns the value of a given expression
- gdb_get_breakpoint_list Returns a list of all breakpoints
- gdb_get_breakpoint_info Returns a list of info about a breakpoint
-
-Tcl procedures that are hooked into GDB:
-
-This is a list, albeit incomplete, of the "hook" functions that are installed
-into GDB. The actual "hooks" are installed/initialized in
-gdb/gdbtk/generic/gdbtk-hooks.c (and maybe one or two in gdbtk.c). The list
-below is the Tcl side of the hook.
-
- Name Description
- ---- -----------
- gdb_tcl_fputs Sends output into Tcl for the command window
- gdb_tcl_query Pops up a query window
- gdbtk_tcl_breakpoint Notifies Tcl of changes to a breakpoint
- gdbtk_tcl_idle Notifies Tcl that debugged process is now idle
- gdbtk_tcl_busy Notifies Tcl that debugged process is now running
-
-Events:
-
-Starting with GDB 5.0, GDB has had an event loop. Although largely unused right
-now, with it came some useful "baggage", especially event notifications, even
-though they, too, were largely incomplete. The list of events continues to grow,
-and Insight and GDB often "share" overlapping events, but the list below is
-complete (since there are only a few defined events). The source for these
-events can be found in gdb/gdbtk/library/gdbevents.it[hb].
-
- Name Description
- ---- -----------
- BreakpointEvent A breakpoint has been created/modified/deleted
- TracepointEvent A tracepoint has been created/modified/deleted
- SetVariableEvent User has issued a "set" command in Console
- BusyEvent The debugger is "busy"
- IdleEvent The debugger is "idle"
- UpdateEvent The state of the target has changed (or the
- GDB's view of the target has changed)
- ArchChangedEvent The architecture of the system has changed
- (this can happen when GDB defaults to using
- some basic CPU and detects that a more elaborate
- CPU is actually being used, e.g., SH5)
-
-GDB Commands:
-
-Insight installs a few GDB commands, which are available with the Console Window.
-
- Name Description
- ---- -----------
- tk Executes the arguments in the Insight Tcl
- interpreter
- view Displays the given linespec in the Source Window
-
-Problems
-========
-
-During building, you may run into problems with finding Tcl, Tk or X11. Look
-in gdb/Makefile, and fix TCL_CFLAGS, TCL, TK_CFLAGS, TK, and ENABLE_CLIBS as
-appropriate.
-
-If you one of the following messages when you run gdb:
-
- Tcl_Init failed: can't find init.tcl; perhaps you need to
- install Tcl or set your TCL_LIBRARY environment variable?
-or
- Tk_Init failed: can't find tk.tcl; perhaps you need to
- install Tk or set your TK_LIBRARY environment variable?
-
-then you haven't installed Tcl or TK properly. Fix the appropriate environment
-variable to point at the {tcl tk}/library directory, and restart gdb.
-
-Known Bugs
-==========
-
-generic problems
-
- o Using the GDB commands "up"/"down"/"frame" in Console Window
- can cause GDB and Insight to get out of sync. If this happens,
- simply use the Stack Window or the frame navigation buttons on
- the Source Window's toolbar to resync the two.
-
- o Not really a problem, but it might be nice to have a frame/stack
- window that displays the last N words on the stack, along with
- indications about which function owns a particular frame, how the
- frame pointers are chained, and possibly the names of variables
- alongside their frame slots.
-
-host- or target-specific problems
-
- o Windows is hosed. Tk8.3 in sources.redhat.com is not stable
- on windows. Wanna help?
-
-Where to find help
-==================
-
-The first place to turn for help is the online help system. It may be old, but
-it is still largely correct: it explains what everything does. If that fails,
-search the mailing list archives for other users who may have had similar problems
-or questions. The archives are online at
-
-http://sources.redhat.com/insight/mailinglist.htm .
-
-If all else fails, send a note to the mailing list, insight@sources.redhat.com,
-where users and maintainers lurk. This is a very low traffic list, so don't
-be afraid to join the list. Instructions for joining are on our homepage,
-http://sources.redhat.com/insight .
diff --git a/gdb/gdbtk/TODO b/gdb/gdbtk/TODO
deleted file mode 100644
index 942febdb2ca..00000000000
--- a/gdb/gdbtk/TODO
+++ /dev/null
@@ -1,113 +0,0 @@
-If you find inaccuracies in this list, please send mail to
-insight@sources.redhat.com. If you would like to work on any
-of these, you should consider sending mail to the same address, to
-find out whether anyone else is working on it.
-
- New Features and Enhancements
- =============================
-
-Display of the target program output. Perhaps use the XTerm hack created
-by Tom.
-
---
-
-Support for inserting breakpoints at arbitrary locations, perhaps adding an
-entry widget to the breakpoints window.
-
---
-
-Support for hardware breakpoints and watchpoints (will need fixes in gdb).
-
---
-
-"Disassembly from Memory" Window. Perhaps as a pane in place of the source
-code one.
-
---
-
-Register Window capable of handling large number of registers, typed
-registers, registers organized in groups that can be shown/hidden and
-that provide for better screen organization.
-
---
-
-Per-project preferences so that one can have a preferred target settings
-for each project (and environment variable and the current directory would
-be searched for the project preference file -- global preferences would
-still come from the users's home directory).
-
---
-
-Reactivate the "Use this target?" confirmation box. Do it independently of
-the above?
-
---
-
-Add option to activate the Source Window from the signal popup box when
-the inferior program is signaled.
-
- Code Cleanups
- =============
-
-Reorganize the Source Memory code.
-
---
-
-Clean up the class hierarchy.
-
---
-
-Migrate to Tcl/Tk 8.3.2
-
---
-
-Try BLT tree as an alternative to the Tix Tree, so we can drop Tix altogether.
-
---
-
-Optional use of installed Tcl/Tk (keeping it available on the distribution)
-
---
-
-Fix the gdbtk testsuite.
-
---
-
-Enhance the test harness, perhaps migrating to the new SourceNavigator testing
-system.
-
- Architectural Improvements
- ==========================
-
-Decouple the GUI from gdb, running them as separate processes.
-
---
-
-Separate the Tcl part from the Tk part to facilitate scripting.
-
- Bug Fixes
- =========
-
-Fix process attach, specially the process listing code.
-
-Fix Source Window so that Key shortcuts work (may not be possible without
-rewritting).
-
-Fix info popup annoyances (like trying to show a large array without even
-adding line breaks and showing up over right click menus).
-
-Fix command window command line recall that misses the arguments of
-commands that autoincrement their arguments.
-
-Fix function browser window problems.
-
-Maximization of a window affects preference sizing but forgets that maximized
-state was set.
-
-Taskbar "always on top" hides funcxtion combobox.
-
---
-Fernando Nasser
-Red Hat Canada Ltd. E-Mail: fnasser@cygnus.com
-2323 Yonge Street, Suite #300
-Toronto, Ontario M4P 2C9
diff --git a/gdb/gdbtk/aclocal.m4 b/gdb/gdbtk/aclocal.m4
deleted file mode 100644
index b6186f2ab86..00000000000
--- a/gdb/gdbtk/aclocal.m4
+++ /dev/null
@@ -1,879 +0,0 @@
-# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005 Free Software Foundation, Inc.
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION so it can be traced.
-# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
- [AM_AUTOMAKE_VERSION([1.9.6])])
-
-# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory. The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run. This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-# fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-# fails if $ac_aux_dir is absolute,
-# fails when called from a subdirectory in a VPATH build with
-# a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-# MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH. The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 7
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
- ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])
-AC_SUBST([$1_FALSE])
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 8
-
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery. Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
-
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
- [$1], CXX, [depcc="$CXX" am_compiler_list=],
- [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
- [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
- [depcc="$$1" am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
- [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_$1_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
- fi
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- case $depmode in
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- none) break ;;
- esac
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this.
- if depmode=$depmode \
- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_$1_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-
-
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-
-
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[ --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors])
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])
-])
-
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-#serial 3
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # So let's grep whole file.
- if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
- dirpart=`AS_DIRNAME("$mf")`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`AS_DIRNAME(["$file"])`
- AS_MKDIR_P([$dirpart/$fdir])
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
-done
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking
-# is enabled. FIXME. This creates each `.P' file that we will
-# need in order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 12
-
-# This macro actually does too much. Some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.58])dnl
-dnl Autoconf wants to disallow AM_ names. We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
- test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
-AM_PROG_INSTALL_SH
-AM_PROG_INSTALL_STRIP
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
- [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES(CC)],
- [define([AC_PROG_CC],
- defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES(CXX)],
- [define([AC_PROG_CXX],
- defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
-])
-])
-
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $1 | $1:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
-
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
-AC_SUBST(install_sh)])
-
-# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
-# From Jim Meyering
-
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 4
-
-AC_DEFUN([AM_MAINTAINER_MODE],
-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode is disabled by default
- AC_ARG_ENABLE(maintainer-mode,
-[ --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer],
- USE_MAINTAINER_MODE=$enableval,
- USE_MAINTAINER_MODE=no)
- AC_MSG_RESULT([$USE_MAINTAINER_MODE])
- AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
- MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST(MAINT)dnl
-]
-)
-
-AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
-
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 3
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check to see how make treats includes.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo done
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
- am__include=include
- am__quote=
- _am_result=GNU
-fi
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
- am__include=.include
- am__quote="\""
- _am_result=BSD
- fi
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 4
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- AC_MSG_WARN([`missing' script is too old or missing])
-fi
-])
-
-# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_MKDIR_P
-# ---------------
-# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
-#
-# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
-# created by `make install' are always world readable, even if the
-# installer happens to have an overly restrictive umask (e.g. 077).
-# This was a mistake. There are at least two reasons why we must not
-# use `-m 0755':
-# - it causes special bits like SGID to be ignored,
-# - it may be too restrictive (some setups expect 775 directories).
-#
-# Do not use -m 0755 and let people choose whatever they expect by
-# setting umask.
-#
-# We cannot accept any implementation of `mkdir' that recognizes `-p'.
-# Some implementations (such as Solaris 8's) are not thread-safe: if a
-# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
-# concurrently, both version can detect that a/ is missing, but only
-# one can create it and the other will error out. Consequently we
-# restrict ourselves to GNU make (using the --version option ensures
-# this.)
-AC_DEFUN([AM_PROG_MKDIR_P],
-[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- # We used to keeping the `.' as first argument, in order to
- # allow $(mkdir_p) to be used without argument. As in
- # $(mkdir_p) $(somedir)
- # where $(somedir) is conditionally defined. However this is wrong
- # for two reasons:
- # 1. if the package is installed by a user who cannot write `.'
- # make install will fail,
- # 2. the above comment should most certainly read
- # $(mkdir_p) $(DESTDIR)$(somedir)
- # so it does not work when $(somedir) is undefined and
- # $(DESTDIR) is not.
- # To support the latter case, we have to write
- # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
- # so the `.' trick is pointless.
- mkdir_p='mkdir -p --'
-else
- # On NextStep and OpenStep, the `mkdir' command does not
- # recognize any option. It will interpret all options as
- # directories to create, and then abort because `.' already
- # exists.
- for d in ./-p ./--version;
- do
- test -d $d && rmdir $d
- done
- # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
- if test -f "$ac_aux_dir/mkinstalldirs"; then
- mkdir_p='$(mkinstalldirs)'
- else
- mkdir_p='$(install_sh) -d'
- fi
-fi
-AC_SUBST([mkdir_p])])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 3
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# ------------------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# Check to make sure that the build environment is sane. -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 4
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
- fi
- rm -f conftest.file
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT(yes)])
-
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# One issue with vendor `install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Check how to create a tarball. -*- Autoconf -*-
-
-# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-# tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-# $(am__untar) < result.tar
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
-m4_if([$1], [v7],
- [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
- [m4_case([$1], [ustar],, [pax],,
- [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar;
- do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
-
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
-
- # tar/untar a dummy directory, and stop if the command works
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
- rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
-done
-rm -rf conftest.dir
-
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
diff --git a/gdb/gdbtk/configure b/gdb/gdbtk/configure
deleted file mode 100755
index 46bcf5ef90b..00000000000
--- a/gdb/gdbtk/configure
+++ /dev/null
@@ -1,4285 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59.
-#
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete. It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-ac_unique_file="generic/gdbtk.h"
-ac_subdirs_all="$ac_subdirs_all plugins"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE subdirs LIBOBJS LTLIBOBJS'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_option in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- eval "enable_$ac_feature=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_$ac_feature='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "with_$ac_package='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package | sed 's/-/_/g'`
- eval "with_$ac_package=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; }
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
- { (exit 1); exit 1; }; }
- ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
- eval "$ac_envvar='$ac_optarg'"
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
- localstatedir libdir includedir oldincludedir infodir mandir
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$0" : 'X\(//\)[^/]' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$0" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
- { (exit 1); exit 1; }; }
- else
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
- { (exit 1); exit 1; }; }
- fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
- { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
- { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
- cat <<_ACEOF
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --infodir=DIR info documentation [PREFIX/info]
- --mandir=DIR man documentation [PREFIX/man]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
- cat <<\_ACEOF
-
-Optional Features:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer
- --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
- headers in a nonstandard directory <include dir>
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- ac_popdir=`pwd`
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d $ac_dir || continue
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
- cd $ac_dir
- # Check for guested configure; otherwise get Cygnus style configure.
- if test -f $ac_srcdir/configure.gnu; then
- echo
- $SHELL $ac_srcdir/configure.gnu --help=recursive
- elif test -f $ac_srcdir/configure; then
- echo
- $SHELL $ac_srcdir/configure --help=recursive
- elif test -f $ac_srcdir/configure.ac ||
- test -f $ac_srcdir/configure.in; then
- echo
- $ac_configure --help
- else
- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi
- cd $ac_popdir
- done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
- cat <<\_ACEOF
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_sep=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
- 2)
- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
- # Get rid of the leading space.
- ac_sep=" "
- ;;
- esac
- done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
- echo
- # The following way of writing the cache mishandles newlines in values,
-{
- (set) 2>&1 |
- case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- sed -n \
- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
- ;;
- *)
- sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
- ;;
- esac;
-}
- echo
-
- cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
- echo
- sed "/^$/d" confdefs.h | sort
- echo
- fi
- test "$ac_signal" != 0 &&
- echo "$as_me: caught signal $ac_signal"
- echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core &&
- rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
- ' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
- { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . $cache_file;;
- *) . ./$cache_file;;
- esac
- fi
-else
- { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val="\$ac_cv_env_${ac_var}_value"
- eval ac_new_val="\$ac_env_${ac_var}_value"
- case $ac_old_set,$ac_new_set in
- set,)
- { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
-echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
-echo "$as_me: current value: $ac_new_val" >&2;}
- ac_cache_corrupted=:
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_aux_dir=
-for ac_dir in ../.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f $ac_dir/shtool; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../.. $srcdir/../.." >&5
-echo "$as_me: error: cannot find install-sh or install.sh in ../.. $srcdir/../.." >&2;}
- { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-am__api_version="1.9"
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
- ./ | .// | /cC/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- done
- done
- ;;
-esac
-done
-
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL=$ac_install_sh
- fi
-fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo "$as_me:$LINENO: checking whether build environment is sane" >&5
-echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
- fi
- rm -f conftest.file
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" >&5
-echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- test "$2" = conftest.file
- )
-then
- # Ok.
- :
-else
- { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
-Check your system clock" >&5
-echo "$as_me: error: newly created file is older than distributed files!
-Check your system clock" >&2;}
- { (exit 1); exit 1; }; }
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-test "$program_prefix" != NONE &&
- program_transform_name="s,^,$program_prefix,;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s,\$,$program_suffix,;$program_transform_name"
-# Double any \ or $. echo might interpret backslashes.
-# By default was `s,x,x', remove it if useless.
-cat <<\_ACEOF >conftest.sed
-s/[\\$]/&&/g;s/;s,x,x,$//
-_ACEOF
-program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
-rm conftest.sed
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
-echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
-fi
-
-if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- # We used to keeping the `.' as first argument, in order to
- # allow $(mkdir_p) to be used without argument. As in
- # $(mkdir_p) $(somedir)
- # where $(somedir) is conditionally defined. However this is wrong
- # for two reasons:
- # 1. if the package is installed by a user who cannot write `.'
- # make install will fail,
- # 2. the above comment should most certainly read
- # $(mkdir_p) $(DESTDIR)$(somedir)
- # so it does not work when $(somedir) is undefined and
- # $(DESTDIR) is not.
- # To support the latter case, we have to write
- # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
- # so the `.' trick is pointless.
- mkdir_p='mkdir -p --'
-else
- # On NextStep and OpenStep, the `mkdir' command does not
- # recognize any option. It will interpret all options as
- # directories to create, and then abort because `.' already
- # exists.
- for d in ./-p ./--version;
- do
- test -d $d && rmdir $d
- done
- # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
- if test -f "$ac_aux_dir/mkinstalldirs"; then
- mkdir_p='$(mkinstalldirs)'
- else
- mkdir_p='$(install_sh) -d'
- fi
-fi
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_AWK+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AWK="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- echo "$as_me:$LINENO: result: $AWK" >&5
-echo "${ECHO_T}$AWK" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$AWK" && break
-done
-
-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.make <<\_ACEOF
-all:
- @echo 'ac_maketemp="$(MAKE)"'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftest.make
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- SET_MAKE=
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
- test -f $srcdir/config.status; then
- { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
-echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE=insight
- VERSION=1.0
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- STRIP=$ac_ct_STRIP
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
-
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility.
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
-
-
-
-
-
-echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
-echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
- # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
- enableval="$enable_maintainer_mode"
- USE_MAINTAINER_MODE=$enableval
-else
- USE_MAINTAINER_MODE=no
-fi;
- echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
-echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
-
-
-if test $USE_MAINTAINER_MODE = yes; then
- MAINTAINER_MODE_TRUE=
- MAINTAINER_MODE_FALSE='#'
-else
- MAINTAINER_MODE_TRUE='#'
- MAINTAINER_MODE_FALSE=
-fi
-
- MAINT=$MAINTAINER_MODE_TRUE
-
-
-# Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
- { (exit 1); exit 1; }; }
-
-echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6
-if test "${ac_cv_build+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_build_alias=$build_alias
-test -z "$ac_cv_build_alias" &&
- ac_cv_build_alias=`$ac_config_guess`
-test -z "$ac_cv_build_alias" &&
- { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
- { (exit 1); exit 1; }; }
-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6
-build=$ac_cv_build
-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6
-if test "${ac_cv_host+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_host_alias=$host_alias
-test -z "$ac_cv_host_alias" &&
- ac_cv_host_alias=$ac_cv_build_alias
-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6
-host=$ac_cv_host
-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.make <<\_ACEOF
-all:
- @echo 'ac_maketemp="$(MAKE)"'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftest.make
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- SET_MAKE=
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$ac_ct_CC" && break
-done
-
- CC=$ac_ct_CC
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
- "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
- (eval $ac_link_default) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # Find the output, starting from the most likely. This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-# b.out is created by i960 compilers.
-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
- ;;
- conftest.$ac_ext )
- # This is the source file.
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- # FIXME: I believe we export ac_cv_exeext for Libtool,
- # but it would be cool to find out if it's true. Does anybody
- # maintain Libtool? --akim.
- export ac_cv_exeext
- break;;
- * )
- break;;
- esac
-done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
-
-# Check the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
- if { ac_try='./$ac_file'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
- fi
- fi
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- export ac_cv_exeext
- break;;
- * ) break;;
- esac
-done
-else
- { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-if test "${ac_cv_objext+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_compiler_gnu=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_prog_cc_stdc=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std1 is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std1. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX 10.20 and later -Ae
-# HP-UX older versions -Aa -D_HPUX_SOURCE
-# SVR4 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_stdc=$ac_arg
-break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
-
-fi
-
-case "x$ac_cv_prog_cc_stdc" in
- x|xno)
- echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
- *)
- echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
- CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-# Some people use a C++ compiler to compile C. Since we use `exit',
-# in C++ we need to declare it. In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
- choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- for ac_declaration in \
- '' \
- 'extern "C" void std::exit (int) throw (); using std::exit;' \
- 'extern "C" void std::exit (int); using std::exit;' \
- 'extern "C" void exit (int) throw ();' \
- 'extern "C" void exit (int);' \
- 'void exit (int);'
-do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
- echo '#ifdef __cplusplus' >>confdefs.h
- echo $ac_declaration >>confdefs.h
- echo '#endif' >>confdefs.h
-fi
-
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-DEPDIR="${am__leading_dot}deps"
-
- ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo done
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
-echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
- am__include=include
- am__quote=
- _am_result=GNU
-fi
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
- am__include=.include
- am__quote="\""
- _am_result=BSD
- fi
-fi
-
-
-echo "$as_me:$LINENO: result: $_am_result" >&5
-echo "${ECHO_T}$_am_result" >&6
-rm -f confinc confmf
-
-# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then
- enableval="$enable_dependency_tracking"
-
-fi;
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-fi
-
-
-if test "x$enable_dependency_tracking" != xno; then
- AMDEP_TRUE=
- AMDEP_FALSE='#'
-else
- AMDEP_TRUE='#'
- AMDEP_FALSE=
-fi
-
-
-
-
-depcc="$CC" am_compiler_list=
-
-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- case $depmode in
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- none) break ;;
- esac
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this.
- if depmode=$depmode \
- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
-
-
-if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-
-
-
-
-
-subdirs="$subdirs plugins"
-
- ac_config_files="$ac_config_files Makefile"
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-{
- (set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
- ;;
- esac;
-} |
- sed '
- t clear
- : clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
- if test -w $cache_file; then
- test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
- cat confcache >$cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[ ]*$//;
-}'
-fi
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then we branch to the quote section. Otherwise,
-# look for a macro that doesn't take arguments.
-cat >confdef2opt.sed <<\_ACEOF
-t clear
-: clear
-s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
-t quote
-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
-t quote
-d
-: quote
-s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
-s,\[,\\&,g
-s,\],\\&,g
-s,\$,$$,g
-p
-_ACEOF
-# We use echo to avoid assuming a particular line-breaking character.
-# The extra dot is to prevent the shell from consuming trailing
-# line-breaks from the sub-command output. A line-break within
-# single-quotes doesn't work because, if this script is created in a
-# platform that uses two characters for line-breaks (e.g., DOS), tr
-# would break.
-ac_LF_and_DOT=`echo; echo .`
-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
-rm -f confdef2opt.sed
-
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_i=`echo "$ac_i" |
- sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
- # 2. Add them.
- ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
- ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling. Logging --version etc. is OK.
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
- echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
- echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
- echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
- echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
-
-Configuration files:
-$config_files
-
-Configuration commands:
-$config_commands
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.59,
- with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-INSTALL="$INSTALL"
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value. By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=*)
- ac_option=`expr "x$1" : 'x\([^=]*\)='`
- ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- -*)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- *) # This is not an option, so the user has probably given explicit
- # arguments.
- ac_option=$1
- ac_need_defaults=false;;
- esac
-
- case $ac_option in
- # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --vers* | -V )
- echo "$ac_cs_version"; exit 0 ;;
- --he | --h)
- # Conflict between --help and --header
- { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; };;
- --help | --hel | -h )
- echo "$ac_cs_usage"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- CONFIG_FILES="$CONFIG_FILES $ac_optarg"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
- ac_need_defaults=false;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; } ;;
-
- *) ac_config_targets="$ac_config_targets $1" ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
- echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
- exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-#
-# INIT-COMMANDS section.
-#
-
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-_ACEOF
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
- case "$ac_config_target" in
- # Handling of arguments.
- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
- trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
-} ||
-{
- tmp=./confstat$$-$RANDOM
- (umask 077 && mkdir $tmp)
-} ||
-{
- echo "$me: cannot create a temporary directory in ." >&2
- { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
- # Protect against being on the right side of a sed subst in config.status.
- sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
- s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@CYGPATH_W@,$CYGPATH_W,;t t
-s,@PACKAGE@,$PACKAGE,;t t
-s,@VERSION@,$VERSION,;t t
-s,@ACLOCAL@,$ACLOCAL,;t t
-s,@AUTOCONF@,$AUTOCONF,;t t
-s,@AUTOMAKE@,$AUTOMAKE,;t t
-s,@AUTOHEADER@,$AUTOHEADER,;t t
-s,@MAKEINFO@,$MAKEINFO,;t t
-s,@install_sh@,$install_sh,;t t
-s,@STRIP@,$STRIP,;t t
-s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
-s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
-s,@mkdir_p@,$mkdir_p,;t t
-s,@AWK@,$AWK,;t t
-s,@SET_MAKE@,$SET_MAKE,;t t
-s,@am__leading_dot@,$am__leading_dot,;t t
-s,@AMTAR@,$AMTAR,;t t
-s,@am__tar@,$am__tar,;t t
-s,@am__untar@,$am__untar,;t t
-s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
-s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
-s,@MAINT@,$MAINT,;t t
-s,@build@,$build,;t t
-s,@build_cpu@,$build_cpu,;t t
-s,@build_vendor@,$build_vendor,;t t
-s,@build_os@,$build_os,;t t
-s,@host@,$host,;t t
-s,@host_cpu@,$host_cpu,;t t
-s,@host_vendor@,$host_vendor,;t t
-s,@host_os@,$host_os,;t t
-s,@CC@,$CC,;t t
-s,@CFLAGS@,$CFLAGS,;t t
-s,@LDFLAGS@,$LDFLAGS,;t t
-s,@CPPFLAGS@,$CPPFLAGS,;t t
-s,@ac_ct_CC@,$ac_ct_CC,;t t
-s,@EXEEXT@,$EXEEXT,;t t
-s,@OBJEXT@,$OBJEXT,;t t
-s,@DEPDIR@,$DEPDIR,;t t
-s,@am__include@,$am__include,;t t
-s,@am__quote@,$am__quote,;t t
-s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
-s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
-s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
-s,@CCDEPMODE@,$CCDEPMODE,;t t
-s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
-s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
-s,@subdirs@,$subdirs,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
- cat >>$CONFIG_STATUS <<\_ACEOF
- # Split the substitutions into bite-sized pieces for seds with
- # small command number limits, like on Digital OSF/1 and HP-UX.
- ac_max_sed_lines=48
- ac_sed_frag=1 # Number of current file.
- ac_beg=1 # First line for current file.
- ac_end=$ac_max_sed_lines # Line after last line for current file.
- ac_more_lines=:
- ac_sed_cmds=
- while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- else
- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- fi
- if test ! -s $tmp/subs.frag; then
- ac_more_lines=false
- else
- # The purpose of the label and of the branching condition is to
- # speed up the sed processing (if there are no `@' at all, there
- # is no need to browse any of the substitutions).
- # These are the two extra sed commands mentioned above.
- (echo ':t
- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
- fi
- ac_sed_frag=`expr $ac_sed_frag + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_lines`
- fi
- done
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
- fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case $ac_file in
- - | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- * ) ac_file_in=$ac_file.in ;;
- esac
-
- # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
- esac
-
- if test x"$ac_file" != x-; then
- { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
- rm -f "$ac_file"
- fi
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- if test x"$ac_file" = x-; then
- configure_input=
- else
- configure_input="$ac_file. "
- fi
- configure_input=$configure_input"Generated from `echo $ac_file_in |
- sed 's,.*/,,'` by configure."
-
- # First look for the input files in the build tree, otherwise in the
- # src tree.
- ac_file_inputs=`IFS=:
- for f in $ac_file_in; do
- case $f in
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- echo "$f";;
- *) # Relative
- if test -f "$f"; then
- # Build tree
- echo "$f"
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo "$srcdir/$f"
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
- sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
- rm -f $tmp/stdin
- if test x"$ac_file" != x-; then
- mv $tmp/out $ac_file
- else
- cat $tmp/out
- rm -f $tmp/out
- fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
- ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
- ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_dest" : 'X\(//\)[^/]' \| \
- X"$ac_dest" : 'X\(//\)$' \| \
- X"$ac_dest" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
- case $ac_dest in
- depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # So let's grep whole file.
- if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
- dirpart=`(dirname "$mf") 2>/dev/null ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
- X"$mf" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`(dirname "$file") 2>/dev/null ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p $dirpart/$fdir
- else
- as_dir=$dirpart/$fdir
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
-echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
- { (exit 1); exit 1; }; }; }
-
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
-done
- ;;
- esac
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || { (exit 1); exit 1; }
-fi
-
-#
-# CONFIG_SUBDIRS section.
-#
-if test "$no_recursion" != yes; then
-
- # Remove --cache-file and --srcdir arguments so they do not pile up.
- ac_sub_configure_args=
- ac_prev=
- for ac_arg in $ac_configure_args; do
- if test -n "$ac_prev"; then
- ac_prev=
- continue
- fi
- case $ac_arg in
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \
- | --c=*)
- ;;
- --config-cache | -C)
- ;;
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- ;;
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- ;;
- *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;;
- esac
- done
-
- # Always prepend --prefix to ensure using the same prefix
- # in subdir configurations.
- ac_sub_configure_args="--prefix=$prefix $ac_sub_configure_args"
-
- ac_popdir=`pwd`
- for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue
-
- # Do not complain, so a configure script can configure whichever
- # parts of a large source tree are present.
- test -d $srcdir/$ac_dir || continue
-
- { echo "$as_me:$LINENO: configuring in $ac_dir" >&5
-echo "$as_me: configuring in $ac_dir" >&6;}
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- cd $ac_dir
-
- # Check for guested configure; otherwise get Cygnus style configure.
- if test -f $ac_srcdir/configure.gnu; then
- ac_sub_configure="$SHELL '$ac_srcdir/configure.gnu'"
- elif test -f $ac_srcdir/configure; then
- ac_sub_configure="$SHELL '$ac_srcdir/configure'"
- elif test -f $ac_srcdir/configure.in; then
- ac_sub_configure=$ac_configure
- else
- { echo "$as_me:$LINENO: WARNING: no configuration information is in $ac_dir" >&5
-echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
- ac_sub_configure=
- fi
-
- # The recursion is here.
- if test -n "$ac_sub_configure"; then
- # Make the cache file name correct relative to the subdirectory.
- case $cache_file in
- [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;;
- *) # Relative path.
- ac_sub_cache_file=$ac_top_builddir$cache_file ;;
- esac
-
- { echo "$as_me:$LINENO: running $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
-echo "$as_me: running $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;}
- # The eval makes quoting arguments work.
- eval $ac_sub_configure $ac_sub_configure_args \
- --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir ||
- { { echo "$as_me:$LINENO: error: $ac_sub_configure failed for $ac_dir" >&5
-echo "$as_me: error: $ac_sub_configure failed for $ac_dir" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- cd $ac_popdir
- done
-fi
-
diff --git a/gdb/gdbtk/configure.ac b/gdb/gdbtk/configure.ac
deleted file mode 100644
index 5925d6b84e0..00000000000
--- a/gdb/gdbtk/configure.ac
+++ /dev/null
@@ -1,12 +0,0 @@
-AC_INIT(generic/gdbtk.h)
-AC_CONFIG_AUX_DIR(../..)
-AM_INIT_AUTOMAKE(insight, 1.0)
-AM_MAINTAINER_MODE
-AC_CANONICAL_HOST
-AC_PROG_MAKE_SET
-AC_PROG_CC
-AC_OBJEXT
-AC_EXEEXT
-
-AC_CONFIG_SUBDIRS(plugins)
-AC_OUTPUT(Makefile)
diff --git a/gdb/gdbtk/gdb.rc b/gdb/gdbtk/gdb.rc
deleted file mode 100644
index 9f7c44035a0..00000000000
--- a/gdb/gdbtk/gdb.rc
+++ /dev/null
@@ -1 +0,0 @@
-tk ICON DISCARDABLE "gdbtool.ico"
diff --git a/gdb/gdbtk/gdbtool.ico b/gdb/gdbtk/gdbtool.ico
deleted file mode 100644
index 919202c7f43..00000000000
--- a/gdb/gdbtk/gdbtool.ico
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/generic/ChangeLog-1997 b/gdb/gdbtk/generic/ChangeLog-1997
deleted file mode 100644
index 365457035b8..00000000000
--- a/gdb/gdbtk/generic/ChangeLog-1997
+++ /dev/null
@@ -1,1196 +0,0 @@
-Tue Dec 16 21:16:42 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (LIBGUI): New variable.
- (GUI_CFLAGS_X): New variable.
- (IDE_CFLAGS): Add $(GUI_CFLAGS_X).
- * configure.in: Add $(LIBGUI) to TCL_LIBS and CONFIG_DEPS.
- * configure: Rebuild.
-
-Wed Dec 10 13:16:45 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdb_get_tracepoint_info): Use info in struct
- symtab_and_line (not struct tracepoint) so that we get the
- real line info for an address. Arrange data more like
- gdb_get_breakpoint_info.
- (tracepoint_notify): Use info in struct symtab_and_line again.
- (gdbtk_init): Add command "gdb_get_tracepoint_list" into
- interpreter.
- (gdb_get_tracepoint_list): New function that aids the source
- window in displaying tracepoints when the file changes.
-
-Fri Dec 5 10:31:23 1997 Keith Seitz <keiths@pizza.cygnus.com>
-
- * gdbtk.c (gdbtk_init): Add gdb_find_file into interpreter.
- (gdb_find_file_command): New function which searches source path
- to find the real full filename of a file.
-
-Mon Dec 1 10:19:44 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c: Move include of "guitcl.h" back out of IDE ifdef.
- (gdbtk_init): Move ide_initialize_paths out of IDE ifdef.
-
- * configure.in (TCL_LIBS, CONFIG_DEPS): Add IDE libraries for all
- builds.
- (CONFIG_OBS): Remove tracepoint.o, which should always be included.
-
- * configure: regenerate
-
- * Makefile.in (install-only): ALWAYS install the new gdbtk
- (REMOTE_OBS): add tracepoint.o
-
-Thu Nov 27 09:07:18 1997 Michael Meissner <meissner@cygnus.com>
-
- * configure.in ({TCL_LIBS,CONFIG_DEPS}): Don't add IDE libraries
- if not --enable-ide.
- (CONFIG_OBS): Add tracepoint.o to list if --enable-gdbtk.
- * configure: Regenerate.
-
- * gdbtk.c (gdb_get_breakpoint_info): Add missing filename
- argument.
- (toplevel): Move include of guitcl.h into #ifdef IDE region.
- (gdbtk_init): Move ide_initialize_paths call into #ifdef IDE
- section.
-
- * Makefile.in (gdbtk.o): Update dependencies.
-
-Wed Nov 26 15:02:43 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdb_loc): symtab_to_filename can return NULL.
- (breakpoint_notify): Ditto.
- (gdb_get_breakpoint_info): Ditto.
-
-Wed Nov 26 11:33:09 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- Merge in code from Foundry branch:
-
- * Makefile.in (install-only): install the new gdbtk, not the old
-
- * gdbtk.c (gdbtk_call_command): also run idle hooks for class_trace
- commands
- (gdbtk_init): Add new commands "gdb_get_locals", "gdb_get_args",
- "gdb_get_function", "gdb_get_line", "gdb_get_file",
- "gdb_tracepoint_exists", "gdb_get_tracepoint_info", "gdb_actions",
- and "gdb_prompt".
- (gdb_get_vars_command): New function.
- (gdb_get_line_command): New.
- (gdb_get_file_command): New.
- (gdb_get_function_command): New.
- (gdb_get_tracepoint_info): New.
- (gdbtk_create_tracepoint): New.
- (gdbtk_delete_tracepoint): New.
- (tracepoint_notify): New.
- (tracepoint_exists): New.
- (gdb_actions_command): New.
- (gdb_tracepoint_exists_command): New.
- (gdb_prompt_command): New.
-
-Thu Nov 13 18:15:54 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c: Move include of gdbcore.h to top of file.
- (close_bfds): New static function if _WIN32.
- (gdbtk_readline): Call close_bfds.
- (call_wrapper, tk_command_loop): Likewise.
- (gdb_clear_file): New static function.
- (gdbtk_init): Create gdb_clear_file Tcl command.
-
-Wed Nov 12 14:58:39 1997 Jeff Holcomb <jeffh@cygnus.com>
-
- * gdbtk.c: gdbtk_load_hash and ui_load_progress_hook return an
- int result.
- (gdbtk_load_hash): download hash routine returns an int result.
-
-Mon Nov 10 15:11:51 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Call ide_create_shell_execute_command if
- __CYGWIN32__.
- * configure.in: Add -lshell32 to WIN32LIBS on cygwin32.
- * configure: Rebuild.
-
-Sun Nov 9 16:25:34 1997 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Run ide_create_help_command.
-
-Tue Oct 28 17:31:47 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Call ide_create_winprint_command.
-
-Thu Oct 23 15:53:37 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Add -lgdi32 to WIN32LIBS when linking gdbtk on
- cygwin32.
- * configure: Rebuild.
-
-Wed Oct 22 21:32:54 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Create sizebox command on Windows.
-
-Thu Oct 9 14:33:21 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Remove assertion argument from call to
- ide_create_window_register_command.
-
-Wed Oct 1 11:09:52 1997 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Pass name of restore interface to
- ide_create_window_register_command.
-
-Fri Sep 26 21:08:22 1997 Keith Seitz <keiths@pizza.cygnus.com>
-
- * gdbtk.c (gdbtk_init): Initialize ui_load_progress_hook.
-
-Thu Sep 25 03:05:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdb_load_info): New function. Returns a list
- of section names and sizes for an executable.
- (gdbtk_load_hash): Stub function to call tcl function
- download_hash.
-
-Tue Sep 23 01:29:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdb_get_mem): Fix compiler warning.
-
-Sun Sep 21 00:15:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdb_get_mem): Fix problem with ASCII dump.
-
-Tue Sep 16 18:07:17 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdb_get_mem): New function. Returns
- a formatted memory dump with optional ASCII dump.
-
-Mon Sep 8 12:48:50 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c: Include ilutk.h if IDE.
- (gdb_confirm_quit, gdb_force_quit): New static functions.
- (gdbtk_init): Add Tcl commands gdb_confirm_quit and
- gdb_force_quit.
-
-Mon Sep 8 03:05:33 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdb_get_breakpoint_info): Now returns the
- function a breakpoint is in.
-
-Fri Sep 5 20:23:58 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Call ide_create_exit_command.
-
-Wed Sep 3 19:39:15 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c: Include guitcl.h.
- (gdbtk_init): Always call ide_initialize_paths. Set the Tcl
- variable IDE to 1 when using the IDE. Always try using auto path
- to find main.tcl.
- * Makefile.in (IDE_CFLAGS_X): Always include libide.
- (LIBIDE): New variable.
- (IDE_X): Omit -lide.
- (IDE_DEPS): Omit libide.
- * configure.in: Add LIBIDE to TCL_LIBS and CONFIG_DEPS.
- * configure: Rebuild.
-
-Mon Aug 25 02:28:55 1997 Keith Seitz <keiths@pizza.cygnus.com>
-
- * gdbtk.c: (gdb_target_has_inferior) check if inferior_pid is non-zero
- before assuming that the inferior is running.
-
-Mon Aug 25 01:06:48 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (gdbtk_start_timer): Pass third argument to setitimer.
- (gdbtk_stop_timer): Likewise.
-
-Mon Aug 25 00:23:08 1997 Keith Seitz <keiths@pizza.cygnus.com>
-
- * gdbtk.c: (gdbtk_init) create new command "gdb_target_has_execution"
- (gdb_target_has_execution_command) new function
-
-Sun Aug 24 20:27:22 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (gdb_loc): If there are no symbols, just bail
- immediately.
- (tk_command_loop): Print errors encountered while running
- gdbtk_tcl_preloop.
-
-Sun Aug 24 13:44:03 1997 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Run ide_create_build_command.
-
-Sat Aug 23 21:53:39 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c: If CYGWIN32, include <sys/time.h>.
- (x_fd): Don't define if WINNT.
- (gdbtk_start_timer, gdbtk_stop_timer): New static functions if
- CYGWIN32.
- (gdbtk_wait): Don't set up signal handling if WINNT. If CYGWIN32,
- call gdbtk_start_timer and gdbtk_stop_timer.
- (gdbtk_init): Don't set up signal handling or make x_fd
- asynchronous if CYGWIN32.
-
-Fri Aug 22 15:23:15 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (error_string_ptr): New static variable.
- (gdbtk_fputs): If result_ptr is NULL, and error_string_ptr is not
- NULL, and we're outputting to stderr, append string to
- error_string_ptr rather than calling gdbtk_tcl_fputs.
- (call_wrapper): Set up error_string_ptr. Put both error string
- and normal string in Tcl result.
-
- * gdbtk.c (gdbtk_init): Don't call ide_run_server_init until after
- gdb has initialized.
-
-Thu Aug 21 19:14:38 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c: If _WIN32, include winuser.h.
- (gdbtk_init): If _WIN32, use MessageBox to display an error
- evaluating main.tcl.
-
-Thu Aug 21 00:48:00 1997 Martin M. Hunt <hunt@pern.cygnus.com>
-
- * gdbtk.c (gdbtk_init): Add call to ide_run_server_init().
- (gdb_cmd): For the load command, don't buffer the I/O.
-
-Wed Aug 20 11:41:22 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_query): Chaneg free() call to Tcl_Free().
-
-Tue Aug 19 17:09:19 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (TCL_DEPS, TK_DEPS): New variables.
- (ITCL_DEPS, TIX_DEPS): New variables.
- (IDE_DEPS): New variable.
- (CDEPS): Include @CONFIG_DEPS@.
- * configure.in: Set and substitute CONFIG_DEPS and TIX_DEPS.
- * configure: Rebuild.
-
-Sun Aug 17 00:42:11 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdb_listfuncs): New function that returns
- a list of all the functions in a source file.
-
-Tue Aug 12 16:35:21 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (install-only): Install tclIndex if ENABLE_IDE.
-
-Mon Aug 11 10:43:04 1997 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Use ide_event_init_from_environment.
-
-Fri Aug 8 15:59:24 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Change gdbtk_lib_tmp and gdbtk_file to be
- dynamically allocated, rather than fixed size. Pass "gdbtcl" to
- ide_initialize_paths to match installed directory name. If IDE,
- use auto_path to search for main.tcl.
- * Makefile.in (install-only): If ENABLE_IDE, install from gdbtcl2
- rather than gdbtcl.
-
- * gdbtk.c (gdbtk_cleanup): New static function.
- (gdbtk_init): Add gdbtk_cleanup as a final cleanup. Uncomment
- call to ide_initialize_paths. If we can't initialize the event
- system, set GDBTK_IDE to 0 in the Tcl interpreter. Create the
- ide_window_register and the ide_window commands. Initialize tk,
- itcl, and tix after initializing the IDE.
-
- * configure.in (tixdir): Update for cygwin32 case for Tcl 8.0.
- * configure: Rebuild.
-
-Fri Aug 8 00:13:32 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (breakpoint_notify): Change buffer size from 100
- to 256 to avoid memory corruption with very long pathnames.
-
-Thu Aug 7 14:08:23 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * configure.in: Change required Tix version to 4.1.8.0 .
- * configure: Rebuilt.
-
-Fri Aug 1 15:21:44 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (Tcl_Alloc): Don't provide our own version of this if
- _WIN32.
- (Tcl_Realloc, Tcl_Free): Likewise.
- * configure.in: Check for cygwin32 environment. Define and
- substitute WIN32LIBS and WIN32LDAPP. Always set configdir to
- unix; setting it to win was for an old Tcl/Tk configuration
- scheme.
- * aclocal.m4 (CY_AC_LOAD_TKCONFIG): Substitute TK_BUILD_INCLUDES.
- * Makefile.in (TK_CFLAGS): Add @TK_BUILD_INCLUDES@.
- (WIN32LDAPP, WIN32LIBS): Define.
- (CLIBS): Add $(WIN32LIBS).
- (gdb): Use $(WIN32LDAPP).
- * configure: Rebuild.
-
-Tue Jul 22 19:45:37 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * configure.in, aclocal.m4: Another fix to find the
- correct Tix library name.
-
- * configure: Rebuilt.
-
-Mon Jul 21 22:24:07 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * aclocal.m4: Search for the correct tix library.
-
-Thu Jul 10 00:02:41 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * Makefile.in, configure.in, aclocal.m4: Add Itcl, Tix, and
- IDE configuration information.
-
- * gdbtk.c (breakpoint_notify): Send address, linenumber and
- filename when a breakpoint is set. Avoids call to bp_info.
- (gdbtk_init): Call Tcl_FindExecutable(). Add code to handle
- Itcl, Tix and IDE initialization.
-
- * configure: Regenerated.
-
-Fri Jun 13 10:28:09 1997 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Make truth value test explicit.
- Remove unused static variable "Gdbtk_Library".
-
-Sat Jun 7 02:34:19 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * gdbtk.c (gdb_get_breakpoint_info): Add string for new
- enumeration del_at_next_stop to bpdisp array.
-
-Tue Jun 3 15:46:51 1997 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in (LIB_RUNTIME_DIR): New variable.
-
-Wed May 7 19:10:19 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk.c (wrapped_call): New function - make actual call to tk
- worker function.
- (call_wrapper): Rewrite to use top.c:catch_errors.
-
- * gdbtk.c (gdb_stop): If No target_stop set quit flag and hope for
- best.
-
-Mon Apr 21 14:00:08 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * gdbtk.c (gdb_disassemble): Store endian-ness in `di'.
-
-Wed Apr 16 12:33:06 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (install-only): Make list of gdbtcl files to install
- explicit - was picking up files such as ChangeLog etc.
- (install-only): Don't blindly create the directory.
-
-Tue Apr 1 15:04:21 1997 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * configure.in (gdbtcl): Create soft-link for gdbtcl/ directory
- instead of gdbtk.tcl.
-
-Fri Mar 28 17:04:02 1997 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * Makefile.in (gdbtk.o): look for GDBTK_LIBRARY in $(datadir) by
- default, not $(srcdir).
-
-Wed Mar 19 15:16:17 1997 Martin M. Hunt <hunt@onions.cygnus.com>
-
- * Makefile.in: Install gdbtcl dir instead of gdbtk.tcl.
-
- * gdbtk.c: Added some ifdefs for Windows. Changed GDBTK_FILENAME
- to GDBTK_LIBRARY, which is now a path to search.
- (gdb_path_conv): New function. Convert Cygwin32 pathname to
- DOS-style pathname.
-
- * {aclocal.m4,configure.in}: Changes for Windows builds.
-
- * configure: Rebuilt.
-
-Fri Mar 14 10:01:29 1997 Tom Tromey <tromey@cygnus.com>
-
- * configure: Regenerated.
- * configure.in (LIBS): Re-reverse order of TCL_LIBS and TK_LIBS.
-
-Wed Mar 12 14:29:52 1997 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk.c (x_event): Use Tcl_DoOneEvent, TCL_DONT_WAIT,
- TCL_ALL_EVENTS.
-
- * configure: Regenerated.
- * configure.in (ENABLE_GDBTK): Put TCL_LIBS after TK_LIBS in
- LIBS.
-
-Mon Feb 10 13:50:53 1997 Stu Grossman (grossman@critters.cygnus.com)
-
- * gdbtk.c (call_wrapper): Clear running_now if an error occurs.
-
-Wed Dec 11 18:51:35 1996 Mark Alexander <marka@cygnus.com>
-
- * gdbtk.c (gdb_loc): Correct truncation of PC on 64-bit MIPS.
-
-Tue Nov 19 09:26:14 1996 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk.c (gdbtk_readline): Fix memory leak.
-
-Mon Nov 18 23:43:05 1996 Tom Tromey <tromey@cygnus.com>
-
- Fixes for Tcl 7.6 / Tk 4.2:
- * gdbtk.tcl (apply_filespec): Use tk_getOpenFile.
- Remove old fileselect code.
- * gdbtk.c (Tcl_Alloc): Rename from Tcl_Malloc.
-
-Fri Sep 27 10:25:30 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.tcl (create_copyright_window): Increase timeout from
- 15 seconds to 30 seconds.
-
-Wed Sep 4 17:28:40 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * configure configure.in: Add host *windows* to list of hosts
- that don't support GDBtk.
-
-Fri Aug 23 00:44:57 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Check for a DISPLAY env variable and
- gracefully degrade to using command line interface if none is
- found.
-
-Fri Aug 9 12:32:53 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * Makefile.in (LIB_INSTALL_DIR): New macro.
- (TCL): Include @TCL_LD_SEARCH_FLAGS@.
-
-Thu Aug 1 20:35:01 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * gdbtk.c (mainWindow): Deleted.
- (cleanup_init): Don't destroy main window.
- (gdbtk_init): Main window now created by Tk_Init.
-
- * configure.in: Most X checks now handled automatically by Tk.
- Use new macros to find Tcl/Tk.
- * aclocal.m4: New version for new Tcl/Tk; from Don Libes.
- * config.in, configure: Regenerated.
-
- * Makefile.in (TCL, TCL_CFLAGS, TK, TK_CFLAGS, X11_CFLAGS,
- X11_LDFLAGS, X11_LIBS): Changed for new Tcl and Tk.
-
-Thu Aug 1 16:12:05 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * Makefile.in (gdbtk.tcl): put in $(datadir), not $(libdir).
-
-Fri Jul 26 14:07:37 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (gdb_disassemble): Initialize di.flavour.
-
-Thu Jul 25 19:41:31 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.c (null_routine): Ditto.
- (gdbtk_flush): Ditto.
- (gdbtk_fputs): Ditto.
- (gdbtk_query): Ditto.
- (gdbtk_readline): Ditto.
- (gdbtk_readline_end): Ditto.
- (gdb_get_breakpoint_list): Ditto.
- (gdb_get_breakpoint_info): Ditto.
- (breakpoint_notify): Ditto.
- (gdbtk_create_breakpoint): Ditto.
- (gdbtk_delete_breakpoint): Ditto.
- (gdbtk_modify_breakpoint): Ditto.
- (gdb_loc): Ditto.
- (gdb_eval): Ditto.
- (gdb_sourcelines): Ditto.
- (map_arg_registers): Ditto.
- (get_register_name): Ditto.
- (gdb_regnames): Ditto.
- (get_register): Ditto.
- (gdb_fetch_registers): Ditto.
- (register_changed_p): Ditto.
- (gdb_changed_register_list): Ditto.
- (gdb_cmd): Ditto.
- (call_wrapper): Ditto.
- (gdb_listfiles): Ditto.
- (gdb_stop): Ditto.
- (gdbtk_dis_asm_read_memory): Ditto.
- (compare_lines): Ditto.
- (gdb_disassemble): Ditto.
- (tk_command): Ditto.
- (cleanup_init): Ditto.
- (gdbtk_interactive): Ditto.
- (x_event): Ditto.
- (gdbtk_wait): Ditto.
- (gdbtk_call_command): Ditto.
- (tk_command_loop): Ditto.
- (gdbtk_init): Ditto.
-
- * gdbtk.c (register_changed_p): Remove unused local variable "buf".
-
-Sat Jul 20 17:46:40 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.tcl (files_command): Reorder the binding tags for
- the listbox widget to avoid referencing the listbox after
- the containing widget has been destroyed by the action of
- a previous binding.
-
-Sat Jul 20 10:09:28 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.tcl (delete_expr): Unset corresponding element of
- expr_update_list when destroying an expression.
- (create_expr_window): Initialize expr_num, delete_expr_num,
- and expr_update_list here when each new expression window
- is created, rather than once at startup.
-
-Mon Jul 15 16:44:05 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * gdbtk.c (gdb_disassemble): Setup di.mach from
- tm_print_insn_info.mach, and set endian from TARGET_BYTE_ORDER.
-
-Fri Jun 21 11:04:47 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.tcl (create_register_windows): Include missing '$'s.
- Add global declarations for various reg_format_* variables.
- * gdbtk.tcl (populate_register_window): Make initial window one
- line taller to account for new column header line.
-
-Fri Jun 21 09:46:47 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.c (get_register): Support for printing raw formats.
- * gdbtk.tcl: Add hint for using debug_interface.
- (center_window, add_breakpoint_frame, delete_breakpoint_frame):
- Enclose arg in braces for consistency.
- (create_registers_window, populate_reg_window, update_registers):
- Major rewrite to support displaying multiple formats in the register
- window.
- (init_reg_info): New function.
- (recompute_reg_display_list): Reset reg_display_list, start
- register display lines at line 2.
-
-Thu Jun 20 08:18:59 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.tcl (gdbtk_tcl_readline_begin): Handle backspace to
- avoid backing up over prompt. At every input, make sure insert
- point is at least after command start, handle control-u to delete
- current input line.
- (tclsh): Handle backspace to avoid backing up over prompt. Handle
- control-u to delete current input line.
-
-Wed Jun 19 17:23:38 1996 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: disable gdbtk for *cygwin32* hosted compiles
- * configure: regenerated with autoconf 2.8
-
-Sun May 19 16:49:37 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.c (gdbtk_readline_begin, gdbtk_readline, gdbtk_readline_end):
- New functions.
- (tk_command_loop): Set instream to NULL to enable Tk user interaction.
- (gdbtk_init): Set readline_begin_hook, readline_hook,
- and readline_end_hook.
- * gdbtk.tcl (gdbtk_tcl_readline_begin, gdbtk_tcl_readline,
- gdbtk_tcl_readline_end): New functions.
- (tclsh): Pack scroll bar on right side of window, not left.
-
-Fri May 17 13:54:34 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.tcl (create_command_window): Change a misspelled "get"
- to the intended "cget".
- (delete_line): Fix so it deletes the current line at the
- insertion cursor.
-
-Thu May 16 19:20:29 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.tcl (gdb_prompt): Set this early on.
- (create_command_window): Use gdb_prompt rather than "(gdb) ".
- (gdbtk_tcl_preloop): Proc executed just prior to Tk main loop.
- (tclsh): If an evaluation window already exists, just bring it
- to the front instead of trying to create another.
- * gdbtk.c (tk_command_loop): New function.
- (gdbtk_init): Call tk_command_loop rather than Tk_MainLoop.
-
-Thu May 16 16:16:35 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.tcl (evaluate_tcl_command, tclsh): New functions that
- implement a tcl evaluation window for gdbtk maintainers to use.
-
-Thu May 16 11:42:58 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * gdbtk.tcl (files_command): Correctly insert list of files into
- listbox widget.
-
- * gdbtk.tcl (files_command): listbox command no longer accepts
- -geometry.
-
-Wed May 15 16:04:09 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtk.tcl (create_command_window): If command window's buffer
- is disabled, don't execute any of the key bindings.
-
-Mon May 13 13:43:25 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.c (tk_command): Catch case where no argument is given
- since this will cause the tcl interpreter to dump core.
-
-Wed May 8 20:33:24 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.c: Fix a couple of misspellings.
-
-Thu May 2 19:17:49 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtk.tcl (debug_interface): New global, use to aid debugging.
- (insert_breakpoint_tag, delete_breakpoint_tag): Fix range.
- (file_popup_menu): Delete, never used.
- (listing_window_popup): Rename from listing_window_button_1,
- remove breakpoint toggling code.
- (toggle_breakpoint): New procedure.
- (create_file_win): Bind popup menu to button 2, toggle breakpoints
- with button 1 in breakpoint area, add display of tagged areas if
- debugging on.
-
-Fri Apr 5 13:44:40 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtk.c (running_now): New global variable.
- (gdb_cmd): Test it before executing any command.
- (gdbtk_call_command): Set it when inferior is running.
- * gdbtk.tcl (gdbtk_tcl_busy, gdbtk_tcl_idle): Enable and
- disable interaction with command window's text appropriately.
-
-Fri Apr 5 13:25:42 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * gdbtk.c (SIOCSPGRP, linux): If on Linux, undef SIOCSPGRP, since
- some versions of the kernel don't support it.
-
-Tue Feb 6 16:31:25 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * gdbtk.tcl (create_file_win): Eliminate text widget B1 binding so
- double-clicking will work again.
- (create_asm_win): Put "break" at end of all B1 bindings.
- (create_file_win): Lower "sel" tag, don't raise it.
- (ensure_line_visible): New proc.
- (update_listing, update_assembly): Use it.
- (create_copyright_window): Destroy window on Leave event.
- (create_command_window): Put "break" at end of all B2 bindings.
-
-Wed Jan 24 15:28:41 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * gdbtk.tcl, gdbtk.c: Updated copyrights.
-
- * configure.in: Look for -ldl or -ldld when using Tcl 7.5 or
- greater.
- * configure: Rebuilt.
-
-Tue Jan 23 09:00:48 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * gdbtk.c (gdb_disassemble): Pass fprintf_unfiltered to
- INIT_DISASSEMBLE_INFO.
-
-Mon Jan 15 09:58:41 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * gdbtk.tcl (create_expr_window): Many changes to update GUI.
- (add_expr): Changes from create_expr_window.
- (create_command_window): Set focus.
- (delete_expr): Rewrote.
- (expr_update_button): New proc.
- (add_expr): Put bindings on FocusIn, FocusOut.
- Don't allow .file_popup to be torn off.
-
-Fri Jan 12 09:36:17 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * gdbtk.tcl (gdbtk_tcl_query): Swap Yes and No buttons.
- (update_listing): Use lassign. Use "see" to scroll. Don't need
- screen_top, screen_bot, screen_height.
- (update_assembly): Use "see" to scroll.
- (textscrollproc): Removed.
- (create_file_win): Don't use textscrollproc.
- (asmscrollproc): Removed.
- (create_asm_window): Don't use asmscrollproc.
- (create_asm_win): Ditto.
- (screen_height, screen_top, screen_bot): Removed.
- (run_editor): New proc.
- (build_framework): Use it.
- (create_file_win, create_source_window): Don't use textscrollproc.
- (create_breakpoints_window): Set -xscrollcommand on canvas.
- (not_implemented_yet): Default button is 0.
- (delete_char): Don't use tk_textBackspace.
- (create_command_window): Allow Tk bindings to fire after deleting
- character.
- (create_command_window): Make Delete delete left, not right.
-
-Thu Jan 11 10:08:14 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * gdbtk.tcl (FSBox): Don't use tk_listboxSingleSelect.
-
- Changes in sync with expect:
- * configure.in (ENABLE_GDBTK): Use CY_AC_PATH_TCL and
- CY_AC_PATH_TK.
- * aclocal.m4: Replaced with version from expect.
- * configure: Regenerated.
-
-Wed Jan 10 09:07:22 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * gdbtk.tcl (gdbtk_tcl_fputs, gdbtk_tcl_fputs_error,
- gdbtk_tcl_flush): Use "see", not "yview".
- (gdbtk_tcl_query): Use questhead bitmap.
- various: Always wrap condition of 'if' in {...}.
- (add_breakpoint_frame): Set -value on radiobuttons.
- (lassign): New proc.
- (add_breakpoint_frame): Use lassign, not series of assignments.
- (decr): Made faster.
- (interactive_cmd): Use "see", not "yview".
- (not_implemented_yet): Use warning bitmap.
- (update_expr): Don't allow $expr to be evalled by Tcl.
- (create_expr_window): Don't use "focus".
- (delete_char, delete_line): Define globally.
- (delete_line, delete_char, create_command_window, update_autocmd,
- build_framework, create_asm_win, create_file_win): Use "see", not
- "yview".
- (create_copyright_window, center_window, bind_widget_after_class):
- New procs.
- (FSBox,create_command_window, create_autocmd_window): Binding
- changes for Tk4.
- (textscrollproc): Define globally.
- (build_framework): tk_menuBar no longer needed. Keys Prior, Next,
- Home, End, Up, and Down are all defined by Tk.
- (apply_filespec): Use error bitmap in dialog.
- (files_command): Don't use tk_listboxSingleSelect.
- (files_command): Don't use "uniq" to remove duplicates from a
- list.
- (update_assembly): Use lassign.
- (create_asm_win): Removed redundant bindings.
- (listing_window_button_1, file_popup_menu): Use tk_popup.
- (ButtonRelease-1 binding): Just remove tag from window; rest
- handled by Tk.
-
- * gdbtk.c (gdbtk_query): Use Tcl_Merge to provide quoting.
- (call_wrapper): Use Tcl_Eval, not Tcl_VarEval.
- (gdbtk_call_command): Ditto.
-
-Thu Jan 4 16:04:54 1996 Stu Grossman (grossman@cygnus.com)
-
- * configure configure.in: Make --enable-gdbtk be the default.
-
-Thu Dec 28 15:10:49 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * README.GDBTK: Polish introductory paragraph.
-
-Mon Oct 16 11:27:06 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdb_disassemble): Use fprintf_unfiltered instead of
- fprintf_filtered.
-
-Tue Oct 10 15:26:39 1995 Fred Fish <fnf@cygnus.com>
-
- * README.GDBTK: Updated for version 4.15.
-
-Sat Aug 19 17:20:22 1995 Michael Tiemann <tiemann@axon.cygnus.com>
-
- * gdbtk.tcl: ENABLE comes back as "1" or "0", not "enable" or
- "disable".
- Also, wire up the breakpoint window so that it can be demo'd.
-
-Tue Aug 1 11:44:53 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * gdbtk.c: Include "gdb_string.h" instead of <string.h>.
-
-Tue Jun 20 10:19:40 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c: Add functions Tcl_Malloc, Tcl_Realloc, and Tcl_Free.
-
- * gdbtk.tcl (add_breakpoint_frame): Add more fields.
- * (create_file_win create_asm_win build_framework): Create null
- bindings for meta keys to keep window from dropping down to
- insertion point when meta is pressed by itself. New bindings:
- Up/Down - Scroll up/down one line at a time
- Next/Prior - Scroll up/down one page at a time
- Home/End - Warp to current pc/end of file
- * (build_framework): Turn on breakpoint menu.
- * (create_command_window): Implement tab completion. Add binding
- for ^C to stop target.
-
-Fri May 19 06:15:40 1995 Jim Kingdon <kingdon@deneb.cygnus.com>
-
- * gdbtk.c: Conditionalize use of stdarg rather than varargs on
- ANSI_PROTOTYPES not __STDC__; it must match the definition of
- PARAMS.
-
-Thu May 18 15:58:46 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * gdbtk.c (gdbtk_query): Use stdarg.h macros when compiling with
- an ANSI compiler.
-
-Sat Apr 15 13:52:24 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtk.c (gdb_disassemble): Read from inferior if connected
- to a VxWorks target.
-
-Fri Apr 14 10:18:20 1995 Stu Grossman (grossman@cygnus.com)
-
- * README.GDBTK: New file. Contains the obvious.
-
-Tue Apr 11 11:07:12 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * gdbtk.c (gdbtk_init): If SIOCSPGRP is not available, but
- F_SETOWN is, use that.
-
-Thu Apr 6 17:00:46 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * Makefile.in (X11_INCLUDES): Define as empty.
- (X11_CFLAGS): Define as including $(X11_INCLUDES).
- (X11_LIB_SWITCHES): Define as empty.
- (X11_LIBS): Define as -lX11.
-
- * configure.in (enable_gdbtk): If gdbtk, support the --x-includes
- and --x-libraries switches, setting the X11_INCLUDES and
- X11_LIB_SWITCHES respectively. Instead of using a hardcoded -lX11
- in ENABLE_CLIBS, use the X11_LIB_SWITCHES and X11_LIBS variables.
-
- * gdbtk.c (gdbtk_init): If SIOCSPGRP is not available, don't use
- it. This means that the stop button doesn't work, but is better
- than nothing.
-
-Wed Mar 29 17:09:29 1995 Stu Grossman (grossman@cygnus.com)
-
- * Makefile.in (gdbtk.o): Use X11_CFLAGS to provide alternate
- locations (per-host) for X11 include files.
- * config/pa/hppahpux.mh (XM_CLIBS): Add -L/usr/lib/X11R5 to force
- the use of R5 libs.
- (X11_CFLAGS): Add this to indicate the locs
- of the R5 include files.
-
-Wed Mar 8 16:12:21 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdb_get_breakpoint_info): Return error if breakpoint
- type is not bp_breakpoint.
-
-Tue Feb 14 17:16:41 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c: Ditto.
- * gdbtk.c: General cleanups, get rid of unused variables. Redo
- handling of stdout/stderr to just return output as the result of
- the tcl command that caused the output. Cleanup -Wall stuff.
- * (breakpoint_notify): Now returns just action and breakpoint
- number.
- * (gdb_get_breakpoint_list): New routine. Does the obvious.
- * (gdb_get_breakpoint_info): Mostly derived from the old
- breakpoint_notify, but returns lots more info.
- * (dsprintf_append_element): Helper routine, works like printf,
- but appends a tcl element onto the specified DString. Good for
- building up lists as return values.
- * (gdbtk_enable/disable_breakpoint): Go away. Replaced with
- gdbtk_modify_breakpoint.
- * (*many routines*): Use new result protocol.
- * (call_wrapper): Make sure that recursive calls don't trash results.
- * gdbtk.tcl: New windows, autocmd, and breakpoints.
- * (gdbtk_tcl_fputs): Don't use $current_output_win redirection
- anymore. It's not needed (in fact, this routine may not be needed
- anymore).
- * (gdbtk_tcl_breakpoint): Change to reflect new breakpoint
- notification protocol.
- * (gdbtk_tcl_busy gdbtk_tcl_idle): Straighten out buttons, remove
- catches.
- * (interactive_cmd): Use this wrapper around button invocations
- of many commands. This will catch errors and put the results into
- the command window. It also updates all the other windows.
- * Also, change reliefs of most things to sunken. This actually
- looks better.
- * (create_file_win): Fix margin binding to allow breakpoints to
- work again.
- * (create_asm_win): Use return value of gdb_disassemble instead
- of implicit I/O to the command window.
- * (create_command_window): Use new result protocol to get output
- from commands.
-
-Sun Feb 5 20:32:44 1995 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * gdbtk.c (gdb_disassemble): Deference pointer to function before
- calling it (pre-ANSI compilers generally require this).
-
-Fri Feb 3 11:19:20 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdb_disassemble): Get rid of
- dis_asm_read_memory_hook. We can now call the disassemblers
- directly and have no need for this hook anymore.
-
-Mon Jan 30 17:34:24 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl (create_file_win): Disable old popup menu for source
- window.
-
-Wed Jan 25 18:23:46 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdbtk_init): Prevent segfault when gdbtk.tcl can't be
- found.
- * gdbtk.tcl: Initialize expr_update_list() to prevent errors when
- popping up expression window for the first time.
-
-Tue Jan 24 12:10:28 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl (create_registers_window): Work around a radiobutton
- widget bug to make Options|Natural button work.
-
- * gdbtk.c (gdb_disassemble): Fix problem with source+assembly and
- g++ caused by out-of-order pc's.
- * gdbtk.tcl (files_command): Remove duplicate file names. Also,
- add scrollbar.
-
-Mon Jan 23 17:21:09 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl: Take .gdbtkinit if it exists. Makes gdbtk match the
- doc!
-
-Thu Jan 12 15:02:40 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c, gdbtk.tcl: Update/add copyright.
- * gdbtk.tcl (build_framework): Several fixes for filespec widget,
- including dismiss button, and better error handling.
- * (create_command_win): Bind button 2 to retrieve selection.
-
-Wed Jan 11 17:06:55 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl: Add button to control mixed source disassembly.
- Use text widgets in expr window. The give me more control over
- layout.
- Add auto-updating of exprs in expression window.
- Handle expressions out of scope a bit better.
- Make selected window pop up to the top when invoked via the
- menubar.
- Make copyright message have raised relief.
-
- * gdbtk.c (gdbtk_init): Improve handling for errors in gdbtk.tcl
- during startup.
-
-Thu Jan 5 17:38:29 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (finish_saving_output): Don't do anything if not saving
- output.
- * (breakpoint_notify): Don't send null filename to tcl.
- * (gdb_eval): New tcl command to eval an expression.
- * (gdb_disassemble): New tcl command to do disassembly. This
- allows tcl code to choose between exec file and target memeory,
- and can also do mixed source and assembly.
- * (gdbtk_init): Move reading of gdbtk.tcl to the end to make sure
- that more of the environment is set up. Also, create link between
- gdb and tcl vars disassemble{-_}from{-_}exec.
-
- * gdbtk.tcl: New expression window support.
- * Make assembly window be 80 columns wide.
- * Use new disassembly method. Add menu items to select
- disassembly from exec file or target.
- * Change View menubar item to Options.
-
- * Get rid of Stack, Breakpoints, Signals, and Variables Windows,
- since they don't exist yet.
-
- * Pop up a copyright window on startup.
-
-Wed Jan 4 19:49:10 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtk.tcl (build_framework): Add standard commands menu, more
- windows to standard windows menu.
- (not_implemented_yet): Clarify message.
-
-Fri Dec 30 15:49:00 1994 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtk.tcl (FSBox): New proc, File Selection Box code from exmh.
- (not_implemented_yet): New proc.
- (build_framework): Add various file commands to file menu.
-
-Fri Dec 23 16:18:50 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdbtk_wait gdbtk_init): Portability improvements for
- SIGIO handling.
-
-Mon Dec 19 09:55:47 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl (update_assembly): Force update to make sure that pc
- is visible when creating new assembly windows.
-
-Sun Dec 18 23:31:20 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdbtk_wait gdbtk_init): Use different method of
- enabling I/O interrupts for SVR4 (streams).
- * (start_saving_output save_output get_saved_output
- finish_saving_output flush_holdbuf gdbtk_flush gdbtk_fputs
- gdbtk_init):
- Totally revamp to use TCLs dynamic string functions. Also, quote
- all data passed back to TCL to prevent errors with unmatched
- braces, odd characters, etc... This fixes several wierd problems
- with outputting strings containing unmatched braces.
- * (breakpoint_notify gdb_loc): Use long hex format to output
- addresses of breakpoints and PCs. This fixes some Alpha problems.
- * (breakpoint_notify): Add stream arg to call to gdbtk_fputs.
- * (gdb_listfiles): Also, go through the symtabs when looking for
- files. This makes xcoff work (sort of), but probably breaks
- something else.
- * (gdb_stop): Return TCL_OK instead of nothing. This fixes odd
- TCL errors when hitting stop button.
- * (tk_command): Don't pass interp->result on to Tcl_{Var}Eval, as
- that will trash the result. strdup the result instead and pass
- that on. Improve error handling as well.
-
- * gdbtk.tcl (gdbtk_tcl_flush): Use global def of
- current_output_win. Makes flushing actually work!
- * (asm_win_name create_asm_win update_assembly): Bunch of fixes
- to make assembly windows stop flashing when loading a new file.
- * (gdbtk_tcl_busy gdbtk_tcl_idle): Use catch to prevent gdb_cmd
- errors from losing control.
- * (create_source_window): Add source file selection to View menu.
- * (create_command_window (<Key-Return> binding): Quote text fed
- into gdb_cmd to prevent eval errors.
-
-Thu Dec 15 16:40:10 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c: Improve mechanism for capturing output values.
- (full_filename): Remove.
- (gdb_cmd call_wrapper gdbtk_init): Protect all calls from tcl land
- with call_wrapper. This prevents longjmps (usually via error())
- from jumping out of tcl/tk and leaving things in an indeterminate
- state.
- (gdbtk_fputs): Differentiate stdout from stderr when passing text
- into tcl land.
- * gdbtk.tcl: New view option to disable line numbers. Put catch
- around most uses of gdb_cmd. Add update button to reg config
- window. Stop doing immediate updates when selecting registers.
- Change register view values into checkbuttons.
-
-Mon Dec 12 16:59:29 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl (reg_config_menu create_registers_window
- recompute_reg_display_list): Use array instead of individual vars
- for register display list.
- * (recompute_reg_display_list update_registers): Fix bug with not
- displaying all registers.
-
-Mon Dec 12 12:22:21 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c: New tcl commands: gdb_fetch_registers,
- gdb_changed_register_list, and gdb_regnames.
- * gdbtk.tcl: Use monochrome color model for now.
- * (delete_breakpoint_tag create_file_win): Add breakdot support.
- * (create_file_win create_asm_win update_listing build_framework
- create_source_window create_command_window): Re-org window
- creation to give all windows consistent look and feel.
- * (update_listing update_asm): Change pc pointer to '->'.
- * (registers_command reg_config_menu create_registers_window
- populate_reg_window update_registers): Revamp register window.
- Allow selection of registers to be displayed. Highlight changed
- registers.
-
-Mon Nov 28 09:17:20 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl (build_framework): Fix bug with setting window titles.
-
- * gdbtk.tcl (build_framework): Add "Report bug" to help menu.
-
- * gdbtk.tcl: Re-arrange windows using new, consistent layout. Clean
- up lots of code and centralize framework initialization.
-
-Wed Nov 16 15:28:29 1994 Rob Savoye (rob@cygnus.com)
-
- * Makefile.in: Fix the test for installing gdbtk.
-
-Mon Nov 14 08:51:29 1994 Stu Grossman (grossman@cygnus.com)
-
- * Makefile.in: Install gdbtk.tcl.
- * configure.in: Add ENABLE_GDBTK flag.
- * gdbtk.c (gdb_sourcelines): Returns list of source lines
- containing code. (gdb_regnames): Returns list of register names.
-
-Thu Nov 3 14:25:24 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdb_stop): Switch to target_stop().
-
-Tue Nov 1 16:41:12 1994 Stu Grossman (grossman@cygnus.com)
-
- * Makefile.in: Use $(objdir)/tcl and $(objdir)/tk if they are
- available.
- * configure.in (ENABLE_CLIBS): Use $(TCL) and $(TK) instead of
- -ltcl and -ltk.
- * gdbtk.c: Get rid of lots of unnecessary #includes.
- * (gdbtk_init): Use ConnectionNumber macro instead of referencing
- Display structure directly.
- * gdbtk.tcl: Change exit button to quit button.
-
-Wed Oct 26 15:41:07 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c: Change sense and name of no_windows variable. Now
- called use_windows, and defaults to off (for compatibility).
-
-Thu Oct 20 17:35:45 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdb_cmd): Force GUI into idle mode when errors occur.
- * (gdb_stop): New tcl command to stop the target process.
- * (x_event, gdbtk_wait): Allow GUI to interrupt gdb out of target
- waits.
- * (gdbtk_call_command): Wrapper around command processing to
- alert GUI of target state changes.
- * (gdbtk_init): Get the fd of X server for doing async
- notification of X events (via x_event). Setup new hooks.
- * gdbtk.tcl: Add scrollbars to assembly and command windows.
- * Change window foreground & background colors.
- * Create margin tag for breakpoints in source and assembly windows.
- * Add new routines to be invoked when target state changes to/from
- idle.
- * Add start of expression window.
- * Change bindings of mouse button 1 in assembly and source window
- to just set or clear breakpoints when in the margin tag.
- * Change shape of register window to be more vertical to better
- reflect its contents.
- * Add stop button.
- * Cleanup some code around command window bindings.
-
-Sat Sep 17 17:05:14 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl: Let ^U delete lines in the command window.
-
-Fri Sep 16 15:40:34 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c: Replace calls to full_filename with symtab_to_filename.
- * gdbtk.tcl: New routine pc_to_line replaces in line code. New
- routine decr replaces in line code.
- * (create_file_win): Use catch to handle open failures more
- elegantly. Also, create special window to display file open
- failure message. Move opening of file prior to creation of text
- widget.
- * (create_asm_win): Add PC as argument. We now base disassembly
- on PC instead of function name, since function names can be
- ambiguous (usually seen with shared libs). Also, use catch to
- simplify code where we don't care about failures.
-
-Wed Sep 14 00:55:26 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl: Add ref counts to breakpoint tags.
- * Put quotes around function name in disassemble command to better
- handle assembler names containing `.'.
- * Make pclist element 0 be filler to avoid off-by-one problem with
- line numbers.
- * Set names of top-level windows.
- * Add register display window.
- * Add PC to label of assembly window.
-
-Tue Sep 13 08:59:04 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdbtk_flush gdbtk_fputs): Buffer up output to make
- disassembly more efficient.
- * (breakpoint_notify): Include pc in gdbtk_tcl_breakpoint
- callback.
- * (gdb_loc): Include pc in return value. Also, return function
- name if arg was specified.
- * (gdb_cmd_stub): Call gdb_flush to drain internal GDB buffers
- after command completes.
- * (gdbtk_init): Improve error handling.
-
- * gdbtk.tcl: Add lots of comments. Clean up code.
- * (gdbtk_tcl_fputs): Make output window redirectable.
- * Add assembly window, and breapoint support.
- * Make button 1 in margin toggle breakpoints.
- * Use stippling to indicate breakpoint disabling.
-
-Fri Sep 2 19:11:40 1994 Stu Grossman (grossman@cygnus.com)
-
- * configure.in: Don't symlink to gdbtk.tcl if it's already there.
-
-Thu Jul 28 14:37:36 1994 Stu Grossman (grossman@cygnus.com)
-
- Support for TK GUI.
- * Makefile.in: Add rule for gdbtk.o.
- * configure.in: Add support for --enable-gdbtk.
- * gdbtk.c: New file. Contains support routines for TK interface.
- * gdbtk.tcl: New file. Implements GUI policy.
-
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/gdb/gdbtk/generic/ChangeLog-1998 b/gdb/gdbtk/generic/ChangeLog-1998
deleted file mode 100644
index ca919a6156c..00000000000
--- a/gdb/gdbtk/generic/ChangeLog-1998
+++ /dev/null
@@ -1,837 +0,0 @@
- Mon Dec 21 11:11:02 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (get_register): Call get_saved_register instead of
- read_relative_register_raw_bytes to fetch registers.
-
- Thu Dec 17 09:00:56 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (gdb_search): Don't mention C++ RTTI and
- global constructor/destructor symbols.
-
- Thu Nov 12 15:20:15 1998 Jim Ingham <jingham@cygnus.com>
- * More bug fixes merged in from devo.
-
- * gdbtk-cmds.c (gdb_cmd): Added an optional second argument to the
- gdb_cmd, which is from_tty. This is passed to the gdb command
- parser. It is 0 by default, and the console window passes 1.
-
- * gdbtk-cmds.c: moved disassemble_from_exec from gdbtk.c to gdbtk-cmds.c
- with all the other link-var'ed variables
-
- * gdbtk-hooks.c (gdbtk_trace_find): Only run the hook functions if
- we are called from_tty.
-
- * gdbtk-hooks.c (gdbtk_trace_start_stop): Set the trace buttons
- from a trace_start_command callback rather than doing it as a
- special case in gdb_cmd.
-
- * tracepoint.c (tstart_command, tstop_command): Add call to
- trace_start_stop_hook here.
-
- 1998-11-04 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_set_bp_addr): For callback, send full
- pathname instead of just basename.
-
- 1998-11-03 Keith Seitz <keiths@cygnus.com>
- * v850ice.c (do_gdb): New function.
- (ice_stepi): Use do_gdb to step properly.
- (ice_nexti): Use do_gdb to step properly.
- (view_source): Correct call to src window's location for new version.
-
- Tue Aug 25 18:13:30 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk.c (gdbtk_init): I hadn't excised ALL the old startup code,
- so it was not working correctly. Now it does.
-
- Fri Aug 21 14:37:40 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Changed the startup code to use
- tcl_findLibrary
-
-
-
-
-on Dec 28 17:44:36 1998 David Taylor <taylor@texas.cygnus.com>
-
-
- The following changes were made by Jim Blandy <jimb@cygnus.com>,
- Edith Epstein <eepstein@cygnus.com>, Elena Zannoni
- <ezannoni@cygnus.com> Stan Shebs <shebs@cygnus.com>, and David
- Taylor <taylor@cygnus.com>, as part of the project to merge in
- changes originally made by HP; HP did not create ChangeLog
- entries.
-
- * gdbtk.c (gdbtk_init): change stderr to gdb_stderr.
-
- * gdbtk-cmds.c
- (get_pc_register): Use paddr_nz, not sprintf's %llx and
- a cast to `long long'. Those aren't portable.
- (gdb_eval): add embedded_offset param to val_print call
- (get_register): add embedded_offset param to val_print call
-
- * gdbtk-hooks.c
- (tk_command_loop): change instream to a FILE.
- (gdbtk_flush): change both the declaration and definition to
- use GDB_FILE rather than FILE.
-
-Mon Dec 21 11:11:02 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (get_register): Call get_saved_register instead of
- read_relative_register_raw_bytes to fetch registers.
-
-Thu Dec 17 09:00:56 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (gdb_search): Don't mention C++ RTTI and
- global constructor/destructor symbols.
-
-Tue Dec 15 10:09:31 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-cmds.c (gdb_disassemble): Fix typo.
-
-Sun Dec 13 09:52:51 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-cmds.c: Update TARGET_PRINT_INSN_INFO, TARGET_PRINT_INSN.
-
-Fri Dec 11 09:52:04 1998 Andrew Cagney <cagney@chook>
-
- * gdbtk-cmds.c: Replace reg_name with REGISTER_NAME.
-
-Mon Dec 14 13:20:50 1998 Jim Ingham <jingham@cygnus.com>
-
- * Makefile.in, configure.in configure - add support for LIBGUI
- outside the IDE context.
-
-Thu Nov 19 13:14:57 1998 Geoffrey Noer <noer@cygnus.com>
-
- * gdbtk-cmds.c: Can't start using new API names yet. Switch back
- to calling cygwin32_ funcs until some time has passed...
- * gdbtk.c: Ditto. Also, include sys/cygwin.h for Cygwin, instead
- of providing own proto.
-
-Fri Nov 13 00:15:08 1998 Geoffrey Noer <noer@cygnus.com>
-
- Changes to account for name change from cygwin32 to cygwin and
- clean up Win32-related ifdefs.
-
- * gdbtk.c: lose "32" from cygwin_ func calls. ifndef for
- checking DISPLAY should be for _WIN32, not WINNT.
- * gdbtk.h: pick GDBTK_PATH_SEP based on _WIN32, not WINNT.
- * gdbtk-cmds.c (gdb_path_conv): lose "32" from cygwin_ func call,
- change ifdef to __CYGWIN32__ instead of WINNT.
- * {gdbtk.c, gdbtk-hooks.c}: __CYGWIN32__ refs drop the "32".
-
-Thu Nov 12 15:20:15 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk-cmds.c (gdb_cmd): Added an optional second argument to the
- gdb_cmd, which is from_tty. This is passed to the gdb command
- parser. It is 0 by default, and the console window passes 1.
-
- * gdbtk-cmds.c: moved disassemble_from_exec from gdbtk.c to gdbtk-cmds.c
- with all the other link-var'ed variables
-
- * gdbtk-hooks.c (gdbtk_trace_find): Only run the hook functions if
- we are called from_tty.
-
- * gdbtk-hooks.c (gdbtk_trace_start_stop): Set the trace buttons
- from a trace_start_command callback rather than doing it as a
- special case in gdb_cmd.
-
- * tracepoint.c (tstart_command, tstop_command): Add call to
- trace_start_stop_hook here.
-
-Wed Nov 4 12:41:42 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk-cmds.c (gdb_set_bp_addr): Pass the type, enable & thread
- to gdbtk_tcl_breakpoint.
- * gdbtk-hooks.c (gdbtk_trace_find): Added this function. It is
- the hook function for tfind commands.
- * tracepoint.c (trace_find_command): Added the trace_find_hook,
- run when you do trace_find_command.
- * tracepoint.h: Define the trace_find_hook.
-
-1998-11-03 Keith Seitz <keiths@cygnus.com>
-
- * v850ice.c (do_gdb): New function.
- (ice_stepi): Use do_gdb to step properly.
- (ice_nexti): Use do_gdb to step properly.
- (view_source): Correct call to src window's location for new version.
-
-Mon Nov 2 11:16:10 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk-cmds (gdb_get_tracepoint_info): Demangle C++ function names.
-
-Fri Oct 30 11:22:23 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk-cmds (gdb_get_tracepoint_info): Fixed typo.
-
-Wed Oct 28 16:19:02 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_set_bp_addr): For callback, send full
- pathname instead of just basename.
-
-Wed Oct 28 10:14:33 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk-cmds.c: Made the bdtypes & bpdisp arrays shared so they
- could be used in gdbtk-hooks.c (breakpoint_notify).
- Also fixed a few error messages to actually print the bp number
- rather that #%d...
- * gdbtk-hooks.c (breakpoint_notify): pass more of the information
- about the breakpoint into the Tcl command, so it does not have to
- try and guess about information we have on the C side.
- * gdbtk.h: Export the bptypes & pbdisp arrays.
-
-1998-10-13 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * gdbtk.c, gdbtk-cmds.c: Cast parameters passed to make_cleanup to
- use the new make_cleanup_func typedef.
-
-1998-10-08 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-hooks.c (gdbtk_add_hooks): Install a hook for
- (new) file_changed_hook.
- (gdbtk_exec_file_changed): Rename to gdbtk_exec_file_display
- to mimic hook's name.
- (gdbtk_file_changed): New hook function.
-
-Tue Oct 6 22:57:13 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure.in (links): Link gdbtcl2 directory instead of gdbtcl.
-
-Mon Oct 5 00:34:00 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_set_bp_addr): New command. Sets a
- breakpoint at an address. Use this instead of gdb_cmd "break"
- because the syntax of the break command is broken and doesn't
- allow you to create a thread-specific BP at an address. Also
- this is faster.
-
-Sun Oct 4 22:35:47 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_set_bp): Add an optional thread number.
- (gdb_find_bp_at_line): New function. Returns a list of bpnums
- at the specified line number.
- (gdb_find_bp_at_addr): New function. Returns a list of bpnums
- at an address..
-
-1998-10-02 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-hooks.c (gdbtk_exec_file_changed): New function which handles
- exec_file changes.
- (gdbtk_add_hooks): Define exec_file_display_hook (to gdbtk_exec_file_changed)
-
- * gdbtk-cmds.c (gdb_stop): target_stop is ALWAYS defined, so
- compare against something a little more meaningful (target_ignore).
-
-1998-09-24 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk.c (gdbtk_wait): Don't run the timer for ice targets.
-
- * v850ice.c (WM_ADDR_TO_SYM): New message.
- (v850ice_wndproc): Add handler for WM_SOURCE.
- (v850ice_wait): Call the ui_loop_hook occasionally.
- (ice_cont): Acknowledge message before doing anything.
- (ice_stepi): Ack message and let gdbtk do stepping.
- (ice_nexti): Ack message and let gdbtk do stepping.
- (view_source): New function ICE calls to display source code.
-
-1998-09-18 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (get_frame_name): Demangle function names, too.
-
-Thu Sep 10 22:10:29 1998 Jim Ingham <jingham@cygnus.com>
-
- *gdbtk-cmds.c (gdb_disassemble): Make sure the symtab's linetable is not
- null before trying to use it...
-
-1998-09-02 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (gdb_cmd): Do not run the timer when downloading --
- the ui_progress_hook that has been installed will actually
- update the gui for us.
-
-Mon Aug 31 15:42:10 1998 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk-hooks.c (context_hook): Don't define.
-
-1998-08-31 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (gdb_listfuncs): When stripping out "global destructors"
- and "global constructors", do not append any elements to the result.
-
-Sun Aug 30 00:49:18 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (Gdbtk_Init): Link C variable gdb_context
- with tcl variable gdb_context_id.
-
- * gdbtk-hooks.c (gdbtk_context_change): Implement new hook called
- context_hook. Called when threads change.
-
- * gdbtk.c: Initialize gdb_context.
-
- * gdbtk.h: Declare gdb_context.
-
- * infrun (wait_for_inferior): Call context_hook.
-
- * thread.c (thread_command): Call context_hook.
-
- * defs.h: Declare context_hook.
-
-Fri Aug 28 12:14:49 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_loadfile): Open the file after doing
- the symtab lookup and calling symtab_to_filename(). This
- makes GDBtk work with the GDB "dir" command.
-
-1998-08-18 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-hooks.c (gdbtk_add_hooks): Set selected_frame_level_changed_hook.
- (gdbtk_selected_frame_changed): New function.
-
- * gdbtk-cmds.c (Gdbtk_Init): Add command gdb_stack into interpreter.
- Link gdb's global selected_frame_level with interpreter global
- gdb_selected_frame_level.
- (gdb_stack): New function to faciltate speedier backtraces from
- gdbtk.
- (get_frame_name): New helper function for gdb_stack.
-
-Tue Aug 18 15:42:40 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_listfuncs): Strip out global constructors
- and destructors from the function list.
-
-Thu Aug 13 15:09:59 1998 Drew Moseley <dmoseley@cygnus.com>
-
- * gdbtk.c (gdbtk_cleanup): added a scope-level around the contents
- of the #ifdef so that the variable declarations in there would not
- be illegal in a C compilation.
-
-Mon Jul 27 13:07:16 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_call_command): Removed because it is now
- in gdbtk-hooks.c
- (null_routine): Removed.
-
- * gdbtk-hooks.c (tracepoint_notify): Fix sprintf to
- match number of arguments.
-
- * gdbtk-cmds.c (gdb_loc): When calling gdb_loc with an
- argument, call find_pc_line() to get a complete
- symtab_and_line struct.
-
-Fri Jul 24 14:25:43 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (gdb_search): Add missing NULL to switches.
- Add missing flags to result_ptr.
- Pass along any errors caused by getting the list of files from
- tcl.
- Allocate correct amount of memory for the file list.
- Don't do any unecessary cleanups.
-
-Fri Jul 24 01:08:37 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_loadfile): When there are no
- linenumbers, use only one tab.
-
-Sat Jul 18 12:28:39 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_cleanup): Add call to tcl function
- gdbtk_cleanup. We need this so the GUI gets to clean
- up no matter how GDB exits.
-
-Wed Jul 1 13:10:58 1998 Jim Ingham <jingham@cygnus.com>
-
- * Moved gdbtk_hooks.c & gdbtk_cmds.c to gdbtk-hooks.c &
- gdbtk-cmds.c to comply with the gdb conventions. Changed the
- configure & makefile to reflect the change...
-
-Wed Jul 1 11:07:21 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk.c: removed all the commands and hooks from this file so
- now it contains only the startup code.
- * gdbtk.c (gdbtk_init): Fixed a bug in the startup code on Windows
- that caused gdbtk not to find the share directory unless
- GDBTK_LIBRARY was set.
- * gdbtk_cmds.c: New file - this contains all the Tcl commands that
- gdb defines. All the old commands were moved here, the
- string-based commands were converted to object commands, and the
- object-based commands were all converted to uniformly use the
- call_wrapper. A new function, Gdbtk_Init was added to centralize
- initializing the gdb package.
- * gdbtk_hooks.c: New file - All the hooks were moved here, and a new
- function, gdbtk_add_hooks was added to centralize adding all these
- hook functions. gdbtk_fputs was also modified to handle the new
- result_ptr structure. See the comments in gdbtk.h for more
- details.
- * gdbtk.h: New file - this contains all the defines and globals
- shared by gdbtk.c, gdbtk_cmds.c & gdbtk_hooks.c
- * Makefile.in, configure.in & configure: mutatis mutandi for the
- new files.
-
-
-Mon Jun 29 11:49:17 1998 Keith Seitz <keiths@cygnus.com>
-
- * main.c (main): Don't include gdbtk test code if GDBTK is
- not defined by configure.
-
- * configure.in: When enabling gdbtk, add "-DGDBTK" to ENABLE_CFLAGS.
-
- * configure: Regenerate.
-
-Fri Jun 26 13:56:07 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk.c: Change all references to static global "interp" to
- "gdbtk_interp" and export this global.
- (gdbtk_init): If gdbtk_source_filename is not NULL, source this file
- into the interpreter when it goes idle.
- Add new command "gdb_search".
- (gdb_search): New function which searches the symbol table.
- (gdbtk_test): New function called by main when the --tclcommand
- option is used.
-
- * main.c (main): Add a new option "--tclcommand" which is used
- by the testsuite to source a file into the interpreter when it
- goes idle.
-
-Sun Jun 21 09:31:12 1998 Ron Unrau (runrau@cygnus.com)
-
- * gdbtk.c (gdb_set_bp): Use new interface.
-
-Wed Jun 17 19:12:23 1998 Jeff Holcomb <jeffh@cygnus.com>
-
- * Makefile.in (install-only): Install tracing help files.
-
-Mon Jun 15 13:18:21 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Add elements to the auto_path AS LIST
- ELEMENTS. This allows gdbtk to work when installed in a directory
- which has a space in the path. D. Moseley pointed out the bug.
-
-
-Tue Jun 9 14:10:46 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk.c (gdb_get_vars_command): Return static variables and
- variables stored in registers.
-
- * main.c (main): Call pre/post_add_symbol_hook's when loading
- executables and symbol files.
-
-Fri Jun 5 00:16:22 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Change all references to
- GDBTK_IDE to IDE_ENABLED.
-
-Thu Jun 4 18:31:53 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Initialize tkTable.
-
-Thu Jun 4 10:15:03 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * gdbtk.c: merged:
-
- - Elena Zannoni <ezannoni@kwikemart.cygnus.com>
- (call_obj_wrapper): in case of error, copy the
- error message from the result to the error_string.
- (gdbtk_fputs): add comments.
- (gdb_actions_command): call validate_actionline when installing the
- tracepoint, to do the syntax checking of the actions for us.
- - Elena Zannoni <ezannoni@kwikemart.cygnus.com>
- (gdb_get_trace_frame_num): new function to get the
- trace frame number from gdb.
- (gdbtk_init): added new command gdb_get_trace_frame_num.
- - Jim Blandy <jimb@zwingli.cygnus.com>
- (struct wrapped_call_objs): Change the `func' member to
- be a Tcl_ObjCmdProc, not an Tcl_CmdProc, since it accepts a vector
- of objects as arguments. Change the object vector to be const,
- since that's what all the users of this structure seem to expect.
- (call_obj_wrapper): Cast clientData properly before storing it in
- the wrapped_args structure.
-
-Thu May 28 17:19:14 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk.c (_initialize_gdbtk): Get rid of the console. Patch from
- Chris Faylor (cgf@cygnus.com).
-
- * configure.in: Link cygwin32 with subsystem console.
-
- * configure: Regenerated
-
-Sun May 24 14:00:24 1998 Keith Seitz <keiths@cygnus.com>
-
- * ser-unix.c (wait_for): Do not reset timeout_remaining for cygwin32 so that
- we can use this member to track real timeouts.
- (hardwire_readchar): Modify for cygwin32 so that we only ever use a real
- system timeout of one second. Track the "real" timeout as a series of these
- one second timeouts.
- Call ui_loop_hook to keep the gui alive.
-
- * top.c: Define new hook for cygwin32, "ui_loop_hook".
-
- * gdbtk.c (gdbtk_init): Add ui_loop_hook for CygWin32 to work around
- update problems.
-
-Thu May 21 13:56:24 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * gdbtk.c: reinserted the changes that were accidentally deleted:
- (_initialize_gdbtk): Use correct device names in
- cygwin-specific call (cosmetic change).
- (gdbtk_ignorable_warning): removed va_list parameter,
- which was unused.
- (_initialize_gdbtk): add cygwin32 specific code to
- allow `gdb -nw' to work when specified specified from a windows
- console-mode command line.
-
-1998-05-19 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * gdbtk.c (struct wrapped_call_objs): Change the `func' member to
- be a Tcl_ObjCmdProc, not an Tcl_CmdProc, since it accepts a vector
- of objects as arguments. Change the object vector to be const,
- since that's what all the users of this structure seem to expect.
- (call_obj_wrapper): Cast clientData properly before storing it in
- the wrapped_args structure.
-
-Wed May 13 11:12:58 1998 James Ingham <jingham@leda.cygnus.com>
-
- * gdbtk.c: Fixed a goof in the definition of the gdb_get_args &
- gdb_get_locals Tcl commands. Moved the previous ChangeLog entry
- from ChangeLog to ChangeLog-gdbtk (here)...
-
-Tue May 12 13:29:20 1998 Jeff Holcomb <jeffh@cygnus.com>
-
- * Makefile.in (install-only): Add images/icons.txt and
- images2/icons.txt to files that need to be installed.
-
-Tue May 12 12:03:16 1998 James Ingham <jingham@leda.cygnus.com>
-
- * gdbtk.c: Add an object call wrapper for the new Tcl_Obj based
- commands. This way the obj commands will also go through
- catch_errors. This is just a bandaid while I rewrite the
- string-based commands to use the object format.
-
-Tue May 5 09:30:25 1998 Christopher Faylor <cgf@cygnus.com>
-
- * gdbtk.c (_initialize_gdbtk): Use correct device names in
- cygwin-specific call (cosmetic change).
-
-Wed Apr 29 15:53:16 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * gdbtk.c (gdbtk_ignorable_warning): removed va_list parameter,
- which was unused.
-
-Tue Apr 28 19:41:33 1998 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in (GDBTKLIBS): New macro.
- (INSTALLED_LIBS): Include GDBTKLIBS.
- (CLIBS): Likewise.
- * configure: Rebuilt.
- * configure.in: Put Tcl/Tk libs into GDBTKLIBS, not LIBS.
- (GDBTKLIBS): AC_SUBST.
-
-Thu Apr 23 19:01:05 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * Makefile.in (install-only): Install help files.
-
-Wed Apr 22 21:17:35 1998 Christopher Faylor <cgf@cygnus.com>
-
- * gdbtk.c (_initialize_gdbtk): add cygwin32 specific code to
- allow `gdb -nw' to work when specified specified from a windows
- console-mode command line.
-
-Wed Apr 15 11:23:53 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtcl: Remove directory and contents, this version of
- the interface is obsolete.
-
-Mon Apr 13 16:17:52 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdb_loadfile): Change fstat() call to stat().
- Needed because you can't convert a FILE* to an fd.
-
-Mon Apr 13 16:28:07 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * gdbtk.c: (perror_with_name_wrapper) new function to call
- perror_with_name safely.
- (gdb_loadfile) added source vs. executable time stamp check.
- (gdbtk_warning) new function to pass a warning message to the gui.
- (gdbtk_ignorable_warning) new function to pass a warning
- to the gui. Used only for the src. vs. exec check.
- (gdbtk_init) added warning_hook
- added include <sys/stat.h>
-
-Mon Apr 13 12:58:26 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdbtk_start_timer): Include on all platforms. Decrease
- timer interval a little.
- (gdbtk_stop_timer): Include on all platforms.
- (gdbtk_wait): No more signals! Use a timer on all platforms to keep the
- GUI alive.
- (gdbtk_init): Remove FIOASYNC and all x_fd references. Now using timers
- on all platforms.
-
-Fri Apr 10 15:48:10 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * gdbtk.c (gdb_listfiles): Allocate space for 'files' dynamically.
-
-Thu Apr 9 14:20:59 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Remove redundant variable "IDE".
-
-Tue Apr 7 15:13:58 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtk.tcl: Remove, no longer used.
-
-Tue Apr 7 12:49:45 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdb_cmd): NEVER call the busy, update, and idle hooks.
-
-Tue Mar 31 15:42:06 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdb_loadfile): Don't use the return result from
- sprintf, which returns a char * under SunOS4.
-
-Tue Mar 31 17:18:43 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Add $(LIBIDETCL) as well as $(LIBIDE) if
- --enable-ide.
- * Makefile.in (IDE_CFLAGS_X): Add -I for libidetcl/src.
- (LIBIDETCL): Define.
- * configure: Rebuild.
-
-Sun Mar 29 21:19:46 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdb_get_tracepoint_info): Change formatting of address.
- (tracepoint_exists): Remove code which confuses assembly traces.
-
-Sat Mar 28 12:13:23 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdb_cmd): If argc > 2, assume that the busy and idle hooks
- should not be called.
-
-Thu Mar 26 22:29:28 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * gdbtk.c: (gdb_trace_status) new function.
- (gdbtk_init) added command "gdb_is_tracing".
- (tracepoint_notify) added passcount information.
-
-Thu Mar 26 12:00:35 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_fputs): Insert fencepost.
- (gdb_loc): Correct pc calculation.
- (gdb_immediate_command): Return if a load is in progress.
- (gdb_cmd): Return if a load is in progress.
- (target_stop_wrapper): New function.
- (gdb_stop): Call target_stop_wrapper.
- (x_event): Add fencepost and optimize load cancel check.
- (gdbtk_start_timer): Set up structs only once.
- (gdbtk_stop_timer): Just use preset structs to set timer parameters.
- (gdb_loadfile): If file cannot be loaded, return error message.
- (gdb_loadfile): Add space before tab so that lines without
- a '-' can later be changed to have one.
-
-Wed Mar 25 14:08:51 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * gdbtk.c (gdbtk_pre_add_symbol): Use Tcl_merge to form Tcl commands.
-
-Mon Mar 23 13:41:39 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * gdbtk.c (gdb_get_mem): Rewrite to fetch entire contents
- of the memory window at once.
-
-Sat Mar 21 19:34:49 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- Merged changes from Foundry: list follows by author:
-
- - Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in (gdbres.o): New target.
- (WINDRES): New define.
- * configure: Rebuilt.
- * configure.in (WINDRES): Define.
- (CONFIG_OBS): Include gdbres.o on Windows.
- * gdbtool.ico: New file.
- * gdb.rc: New file.
- * gdbtk.c (gdbtk_init): Call ide_create_messagebox_command.
- (gdbtk_cleanup): Call ide_interface_deregister_all.
- (gdbtk_init): Pass event handle to cleanup.
- (TclDebug): Use Tcl_Merge to construct command.
- (gdbtk_init): Call ide_create_cygwin_path_command.
-
- - Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdb_set_bp): Set addr_string for bp.
- (gdb_get_breakpoint_info): Demangle function
- names in breakpoint info.
- Include "demangle.h".
- (gdb_loc, gdb_listfuncs): Demangle C++
- function names.
- (gdb_set_bp): Properly quote filename to fix
- problems with spaces. Send pc back as a hex string.
- (gdb_listfuncs): Remove debugging line.
- Turn off some debugging lines.
- (breakpoint_notify): Return correct line number.
- (gdb_get_breakpoint_info): Return correct line number.
- (gdb_set_bp): New function to provide a better way to
- set breakpoints.
- (gdbtk_readline, gdbtk_readline_begin): Memory
- allocated by tcl needs to be freed by Tcl_Free().
- (find_file_in_dir): Deleted.
- (gdb_find_file_command): Call full_lookup_symtab().
- (gdb_listfuncs): Call full_lookup_symtab().
- (full_lookup_symtab): New function. Like lookup_symtab
- except handles multiple files with the same basename,
- full pathnames, and always sets symtab->fullname.
- (gdb_loadfile): Call full_lookup_symtab(). Clear
- realloc'd memory.
- (gdb_loadfile): Don't tag lines without source.
- Tag source lines with source_tag.
- (gdb_find_file_command, find_file_in_dir):
- Rewrite. Now searches symtabs and psymtabs for a match
- on the partial or full filename. Returns the full pathname.
- (gdb_loadfile): Realloc additional memory
- if someone loads in a file with more than 160,000
- lines. I don't know if this really works because
- I don't have enough memory to test it.
- (gdb_sourcelines): Deleted.
- (gdb_loadfile): New function. Takes a text widget
- and loads it with the contents of a file. Marks
- and tags source lines.
- (pc_changed): New function.
- (get_pc_register): Returns the value of
- the PC to GDB.
- (gdb_loc): If looking on the stack, return
- real pc along with calling source line.
- (gdb_loc): Return "" instead of "N/A" if
- filename is not found.
- (gdb_get_breakpoint_info): Same.
- (get_register): For Natural mode, set format to 0.
- Minor bugfixes from keiths.
- (TclDebug): New function for debugging use.
- (gdb_loc): Return correct PC for frames
- that are not the innermost frame.
- (gdb_listfiles): Rewritten to use object
- API. Now takes an optional dirname which will cause
- only files in that directory or its subdirectories
- to be returned. Now returns basenames instead of
- full pathnames.
- (gdb_cmd): Set/reset load_in_progress flag.
- (call_wrapper): Don't pop up dialog for errors in
- downloads; just abort download.
- (gdbtk_load_hash): Set return value correctly.
-
- - Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdbtk_init): Define the ui_loop_hook so that it can be
- called by routines which might block, allowing us to update the GUI.
- (gdbtk_wait): Move timer calls to annotation hooks.
- (gdbtk_init): Define the annotation hooks.
- (gdbtk_annotate_starting): New function for cygwin32 hosts.
- (gdbtk_annotate_stopped): New function for cygwin32 hosts.
- (gdbtk_annotate_exited): New function for cygwin32 hosts.
- (gdbtk_annotate_signalled): New function. for cygwin32 hosts.
- (gdbtk_init): Use gdbtk_print_frame_info hook.
- (gdbtk_print_frame_info): New function which sets current_source_symtab
- based on the given symtab and line info.
- (gdb_immediate_command): New function which does
- not buffer any
- output. (Contrast to gdb_cmd.)
- (gdb_prompt_command): New function to return gdb's prompt.
- (find_file_in_dir): New functon which searches source paths
- for a given filename.
- (gdb_find_file): New function which returns path to given file -- uses
- find_file_in_dir.
- (gdbtk_init): Install "gdb_immediate", "gdb_find_file", and
- "gdb_prompt"
- commands into interpreter.
-
- - Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (gdbtk_timer_going): If __CYGWIN32__, new static
- variable.
- (gdb_cmd): If __CYGWIN32__, if executing the load command, call
- gdbtk_start_timer and gdbtk_stop_timer.
- (call_wrapper): If __CYGWIN32__, if the timer is going, turn it
- off. Clear load_in_progress.
- (x_event): If load_in_progress, quit if download_cancel_ok.
- (gdbtk_start_timer): Set gdbtk_timer_going.
- (gdbtk_stop_timer): Clear gdbtk_timer_going.
- (gdbtk_wait): Call x_event.
- (gdbtk_init): Call ide_create_win_grab_command if
- __CYGIN32__.
- (gdb_clear_file): Clear stop_pc.
-
-Wed Mar 4 16:50:18 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * gdbtk.c (gdb_listfiles): Fix thinko in last change.
-
-Wed Mar 4 15:34:49 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * gdbtk.c (gdb_listfiles): Allocate space for 'files' dynamically.
-
-Tue Feb 10 17:50:37 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdbtk_modify_tracepoint): Define new tracepoint modification hook.
- (gdbtk_print_frame_info): Define this hook so that current_source_symtab
- is set properly.
- (gdb_actions_command): Use free_actions () from tracepoint.c/h.
-
-Mon Jan 26 11:37:55 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdb_actions_command): Make note of next action
- before freeing all references to it.
-
-Sat Jan 24 23:52:08 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c: Merge from Foundry branch.
- (TclDebug): New debugging function.
- (gdb_loc): For frames, find address of calling function
- instead of whatever is on the stack (usually the next
- instruction).
- (gdb_listfiles): Takes an optional pathname argument and
- returns an alphabetized list of basenames of files in the
- path.
-
-Wed Jan 22 10:37:02 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * symfile.c: Define two new hooks for symbol reading:
- "pre_add_symbol_hook" and "post_add_symbol_hook". These hooks
- are called before we begin reading symbols, and after we finish.
- (generic_load): Use new symbol reading hooks and get rid of
- compiler warning.
-
- * gdbtk.c (gdbtk_init): Add hooks for pre- and post-symbol reading.
- (gdbtk_pre_add_symbol): New function: the pre-add-symbol hook.
- (gdbtk_post_add_symbol): New function: the post-add-symbol hook.
- (find_file_in_dir): New function. Moved the guts of gdb_find_file_command
- into here to allow its use by others.
- (gdb_loc): Use find_file_in_dir to return the real path to the file
- (or "N/A" if we can't find it).
-
- * configure.in (TIX_LIB_EXT): Define new variable for those special cases
- when TCL_SHLIB_SUFFIX is not enough to specify the dependency.
-
- * configure: Regenerate.
-
-Fri Jan 23 07:47:06 1998 Fred Fish <fnf@cygnus.com>
-
- * Makefile.in (uninstall): Remove installed gdbtcl dir, if one
- was installed.
-
-Thu Jan 15 12:42:28 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdb_immediate_command): New function which does not buffer any
- output. (Contrast to gdb_cmd.)
- (gdbtk_init): Install "gdb_immediate" command into interpreter.
-
-Wed Jan 14 16:38:44 1998 Keith Seitz <keiths@pizza.cygnus.com>
-
- * configure.in (--enable-gdbtk): If tcl was built with --enable-shared,
- use TCL_SHLIB_SUFFIX to specify the suffix of the library file so that
- we don't expect to see "libfoo.a" instead of "libfoo.{so,sl, etc}".
-
- * configure: Regenerate.
-
-Wed Dec 31 16:50:26 1998 Keith Seitz (keiths@onions.cygnus.com)
-
- * gdbtk.c (gdb_actions_command): extract and save step count
- from "while-stepping" command
-
diff --git a/gdb/gdbtk/generic/ChangeLog-1999 b/gdb/gdbtk/generic/ChangeLog-1999
deleted file mode 100644
index b5788594070..00000000000
--- a/gdb/gdbtk/generic/ChangeLog-1999
+++ /dev/null
@@ -1,2624 +0,0 @@
-1999-09-23 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * gdbtk-varobj.c (variable_value): Fix small memory leak.
-
-Thu Nov 18 18:19:59 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk.c (tk_command), gdbtk-hooks.c (gdbtk_readline),
- gdbtk-variable.c (variable_type): Replace strdup with xstrdup.
-
-Thu Nov 18 19:03:28 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-cmds.c (gdb_get_mem): Document nbr parameter. Fix check
- on nbr and nbytes parameters.
-
-1999-11-18 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk-cmds.c (gdb_actions_command): Updated for new
- get_tracepoint_by_number.
-
-Tue Nov 9 15:40:51 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-cmds.c (gdb_get_mem): Keep calling
- target_read_memory_partial until all the data is read.
-
-1999-11-01 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk-cmds.c (gdb_actions_command): Updated for new
- get_tracepoint_by_number.
-
-Fri Oct 15 18:34:41 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-hooks.c (ui_load_progress_hook): Move extern declaration
- to defs.h.
- (gdbtk_load_hash): Update SECTION argument to match prototype.
- Make static.
-
-Wed Oct 13 17:57:17 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-hooks.c (gdbtk_flush): Delete.
- (gdbtk_add_hooks): Don't initialize flush_hook.
-
-Mon Oct 11 10:19:04 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-cmds.c (gdb_get_tracepoint_info): Use paddr_nz to convert
- the address into a string.
-
-1999-10-05 James Ingham <jingham@leda.cygnus.com>
-
- * gdbtk-cmds.c (map_arg_registers): Don't stop at the first
- undefined register, but skip it and go on. There may be other
- defined registers higher up in the list.
-
-1999-09-29 Fred Fish <fnf@cygnus.com>
-
- * gdbtk-varobj.c (variable_create): Replace cast "(CORE_ADDR) - 1"
- with the more obviously intended expression "(CORE_ADDR) -1".
-
-1999-09-23 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * gdbtk-variable.c (variable_value): Fix handling of baseclasses and
- correct the behavior when it is not a baseclass (both cases could
- potentially dumping core).
-
-1999-09-23 James Ingham <jingham@leda.cygnus.com>
-
- * gdbtk.c (gdbtk_init): Add the initialization of the shell
- execute command under cygwin.
-
- * gdbtk-hooks.c (gdbtk_attach): New function, run from the attach
- hook.
- (gdbtk_detach): New function, run from the detach hook.
- (gdbtk_add_hooks): Add the attach & detach hooks.
-
-1999-09-23 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * gdbtk-varobj.c (variable_create): Dynamically allocate variable
- object name string.
-
-1999-09-22 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * gdbtk-variable.c (_gdb_variable): Remove unused entry.
- (variable_update): Fix error in list initialization (apparently
- innocuous).
- (type_changeable): Fix handling of typedef'ed structs and
- unions (removing c_variable.exp test case 2.12 FAIL).
-
-Mon Sep 20 18:03:28 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-variable.c (new_root_variable): Fix prototype declaration.
- * gdbtk.c (_initialize_gdbtk): Add declaration.
- * gdbtk-cmds.c (tracepoint_exists): Make static. Add declaration.
- * gdbtk.c (gdbtk_add_hooks): Move declaration from here.
- * gdbtk.h (gdbtk_add_hooks): To here.
-
-Fri Sep 17 19:00:39 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-cmds.c: Include "source.h".
- (gdb_load_disassembly): Fix printf calls.
- Makefile.in (gdbtk-cmds.o): Add dependency on source.h.
-
- * gdbtk.c: Include <itk.h> for Itk_Init.
-
-1999-09-17 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * gdbtk-varobj.c: New file. It supersedes gdbtk-variable.c and
- uses standard gdb varobj code.
-
-Fri Sep 3 20:16:54 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk.c (gdbtk_init): Cast ``host_name'' and ``target_name'' to
- void. While Tcl_SetVar2 treats the value argument as read-only
- its prototype does not specify const for the parameter.
-
-Mon Aug 30 17:56:28 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk.c, gdbtk-hooks.c, gdbtk-cmds.c: #include <unistd.h> moved
- to defs.h.
-
-Mon Aug 30 15:34:42 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-hooks.c (x_event): Missing result to return - return 0.
- Make in_x_event volatile.
- (in_fputs): Make volatile.
-
-1999-09-02 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtk.c: Include version.h, remove inconsistent decls of
- host_name and target_name.
-
-1999-08-27 James Ingham <jingham@leda.cygnus.com>
-
- * gdbtk.h: Add def'n for gdbtk_fputs, since it is needed outside
- of gdbtk-hooks.c
-
- * gdbtk-cmds.c (gdb_load_disassembly): Really implement this
- function. Load the source widget from C.
- (gdbtk_load_source): Helper for the above, which loads source lines.
- (gdbtk_load_asm): Helper for the above, which loads assembly
- lines.
- (gdb_restore_fputs): New function, restore the gdbtk_fputs hook,
- in case somebody supressed it, and then errored out before they
- got a chance to put it back.
-
-1999-08-10 James Ingham <jingham@leda.cygnus.com>
-
- * gdbtk-hooks.c: Remove the gdb_disassembly_flavor_hook. Use the
- set_hook instead.
-
-Mon Aug 9 10:28:22 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk.c, gdbtk-cmds.c: Delete #if ANSI_PROTOTYPES code, GDB
- assumes ISO-C.
-
-1999-08-06 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk-hooks.c (gdbtk_add_hooks): Set `set_hook'.
- (gdbtk_set_hook): New function.
-
-1999-08-05 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-variable.c (new_variable): Add missing return value.
-
-1999-08-02 James Ingham <jingham@leda.cygnus.com>
-
- * gdbtk-cmds.c: Misc. Cleanups... Mostly wrapping at 80
- characters.
- (gdb_loadfile): Go straight to the widget command to insert the
- text, rather than through the interpreter. Gives about 2x-3x
- speedup in rendering the source text.
- (gdb_disassemble): Rewrite to separate out the generic disassembly
- work from the printing part. The former goes in
- gdb_disassembly_driver. This way I can share the code with the
- version that loads the text widget directly.
- (gdb_load_disassembly): New function. This will load the text
- widget directly (not done yet).
- (gdbtk_load_source): Load the text widget with a source line.
- (gdbtk_load_asm): Load the text widget with an assembly line.
- (gdbtk_print_source): Print a source line to stdout.
- (gdbtk_print_asm): Print an assembly line to stdout.
- (gdb_disassemble_driver): New function.
-
- * gdbtk.h: Fix a compiler warning from Keith's 07-27 checkin.
-
-1999-08-02 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-variable.c (CPLUS_FAKE_CHILD): NULL variables are not
- "fakes", either.
-
-1999-07-27 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-variable.c: Rewrite. :-)
- * gdbtk-wrapper.c (GDB_value_ind): New function.
- (GDB_value_slice): New function.
- (GDB_value_coerce_array): New function.
- (GDB_value_struct_elt): New function.
- (GDB_value_cast): New function.
- (GDB_get_frame_block): New function.
- (wrap_value_slice): New function.
- (wrap_value_coerce_array): New function.
- (wrap_value_struct_elt): New function.
- (wrap_value_cast): New function.
- (wrap_get_frame_block): New function.
- * gdbtk-wrapper.h: Add declarations for above new functions.
- * gdbtk-cmds.c (gdb_selected_block): New function.
- (gdb_get_blocks): New function.
- (gdb_block_vars): New function.
-
-1999-07-16 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (gdb_loc): Change all references of "stop_pc" to
- "read_pc ()".
-
- * gdbtk.c (target_is_native): New function.
- (target_should_use_timer): Use target_is_native to determine whether
- the timer should run.
- * gdbtk.h (target_is_native): Add prototype.
- * gdbtk-cmds.c (gdb_disassemble): Use target_is_native to determine if
- we should disassemble from inferior memory.
-
-1999-07-09 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * gdbtk-variable.c (variable_obj_command): Add missing comments
- for object variable commands.
-
-Fri Jul 9 12:06:36 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-cmds.c (Gdbtk_Init): Explicitly route log/debug and target
- output to stderr instead of stdout.
-
-1999-06-21 James Ingham <jingham@leda.cygnus.com>
-
- * gdbtk.c (target_should_use_timer): Add check for "linuxthreads"
- to enable the timer for Linux as well as other natives.
-
-1999-06-15 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-hooks.c (gdbtk_annotate_signal): Run
- gdbtk_stop_idle_callback so that signals don't interfere
- with the stop button.
-
-1999-06-10 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Add host_name and target_name to
- GDBStartup.
-
- * gdbtk-cmds.c (gdb_clear_file): Delete breakpoints and
- clear the exec file, too.
- (gdb_loadfile): Don't close a file that's not opened until
- later.
-
-Wed Jun 9 14:21:40 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-cmds.c (old_regs): Change array to a pointer.
- (setup_architecture_data): New function.
- (Gdbtk_Init): Call setup_architecture_data. Register ``old_regs''
- as an architecture dependant variable.
-
-1999-05-25 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-wrapper.c (GDB_val_print): Fix compiler warnings.
- (wrap_val_print): Ditto.
- (GDB_block_for_pc): Ditto.
- (wrap_block_for_pc): Ditto.
- (GDB_find_frame_addr_in_frame_chain): Ditto.
- (wrap_find_frame_addr_in_frame_chain): Ditto.
-
- * gdbtk-variable.c (variable_create): Rename "-pc" option
- to the more explicit name "-frame". Update usage.
- (create_variable): Swallow errors before parse_exp_1, too.
- If no frame is given as an argument, use the current frame;
- otherwise, use the current block in the specified frame.
- (variable_children): Check for errors creating children.
- (create_child): Ditto.
-
- * gdbtk-cmds.c (get_selected_frame): New function.
- (Gdbtk_Init): Add get_selected_frame to interpreter.
- (gdb_get_vars_command): Use current block in selected frame
- if no args specified.
-
- * Makefile.in (gdbtk-cmds.o): Depend on frame.h, too
-
-Tue May 25 16:12:57 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-cmds.c (REGISTER_CONVERTIBLE,
- REGISTER_CONVERT_TO_VIRTUAL): Delete default definitions.
- gdbarch.h ensures that there is always a definition available.
-
-1999-05-20 Andrew Cagney <cagney@b1.cygnus.com>
-
- Mon Apr 26 09:15:27 1999 Andrew Cagney <cagney@b1.cygnus.com>:
- * gdbtk.c (x_event_wrapper): Wrapper for x_event that matches
- signal function signature.
- (gdbtk_start_timer): set .sa_handler to x_event_wrapper instead of
- x_event.
-
-1999-05-14 Keith Seitz <keiths@cygnus.com>
-
- * configure.in (ENABLE_GDBTK): Don't clobber WIN32LIBS.
- * configure: Regenerated.
-
-1999-04-12 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-variable.c (variable_value_changed): Swallow errors from
- evaluate_expression.
-
-1999-04-09 James Ingham <jingham@cygnus.com>
-
- * gdbtk-cmds.c (gdb_get_mem): Use the Tcl list API to add the
- ASCII entry to the return list. We were trying to do the quoting
- by hand which is bound to lose in some cases.
-
-1999-04-06 Martin Hunt <hunt@cygnus.com>
-
- * gdbtk-hooks.c (gdbtk_annotate_signal): New function.
- Notifies GDBtk when a signal occurs.
-
-1999-04-02 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-hooks.c (gdbtk_force_detach): New global.
- (x_event): Change to return gdbtk_force_detach so that
- callers will know if we want to detach. See comments.
- (gdbtk_wait): Insert calls to gdbtk_start/stop_timer. This
- is a nop for most hosts/targets. Remove ice-specific code.
-
- * gdbtk-cmds.c (gdb_stop): Add "detach" option, which forces
- gdb to detach from the target. See comments.
-
- * gdbtk.c (target_should_use_timer): New function.
- (gdbtk_start_timer): Only use on unix native targets.
- (gdbtk_stop_timer): Ditto.
-
- * gdbtk.h (x_event): Update declaration: now returns an int.
-
-1999-03-29 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtk.c, gdbtk-cmds.c, gdbtk-hooks.c: Don't include setjmp.h.
-
-1999-03-29 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (pc_function_name): New function which returns the
- source name (regardless of mangling) of the function at a given PC.
- (gdb_get_function_command): Use it.
- (gdb_get_tracepoint_info): Ditto.
- (gdb_loc): Ditto.
- (gdb_get_breakpoint_info): Ditto.
-
- * Makefile.in (install-only): Don't install help/index.toc: it doesn't
- exist anymore.
-
-Wed Mar 10 19:37:23 1999 Geoffrey Noer <noer@cygnus.com>
-
- * gdbtk-cmds.c: Don't need to include any Win32 API headers.
- * gdbtk-hooks.c: Include Windows.h, not just winuser.h.
- * gdbtk.c: Ditto.
-
-1999-03-04 Martin Hunt <hunt@cygnus.com>
-
- * gdbtk-hooks.c (gdbtk_load_hash): Change download_hash()
- to Download::download_hash().
-
-1999-03-01 Martin Hunt <hunt@cygnus.com>
-
- * gdbtk.c (TclDebug): Increase buffer size to 10000, in case
- backtraces are very long.
-
-1999-02-26 James Ingham <jingham@cygnus.com>
-
- * gdbtk-cmds.c (gdb_search): Add a -filename switch, which returns
- the file in which the function or type was defined, along with the
- function...
-
- * gdbtk.c (gdbtk_find_main): The external editor stuff was getting
- set twice...
-
-1999-02-18 Martin Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_disassemble): When debugging native threads,
- set disassemble_from_exec to 0. This fixes bugs where disassembly
- of threaded programs failed.
-
-1999-02-16 James Ingham <jingham@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Remove redundant setting of the external
- editor variables.
-
-1999-02-11 Martin Hunt <hunt@cygnus.com>
-
- * gdbtk-variable.c (variable_format): Enable binary format.
-
-1999-02-11 Martin Hunt <hunt@cygnus.com>
-
- * gdbtk-hooks.c: Change ALL Tcl_Eval calls in hooks to
- call report_error() if there are errors.
-
-1999-02-11 Martin Hunt <hunt@cygnus.com>
-
- * gdbtk.c, gdbtk-cmds.c, gdbtk-hooks.c: Removed old IDE stuff.
-
-1999-02-09 Martin Hunt <hunt@cygnus.com>
-
- * gdbtk-hooks.c: Remove gdbtk_ignorable_warning prototype.
- It is in gdbtk.h.
- (report_error): New function. Displays debugging information
- if a hook function fails. All hook functions should probably
- call this.
- (gdbtk_warning): Call report_error() if there is a problem.
- (gdbtk_register_changed): Call report_error() if there is a problem.
- (gdbtk_memory_changed): Call report_error() if there is a problem.
- (gdbtk_ignorable_warning): Pass along class argument. If there
- is a problem, call report_error().
-
- * gdbtk-cmds.c: Remove TclDebug prototype. It is in gdbtk.h.
- (gdb_loadfile): Add class name to gdbtk_ignorable_warning call.
-
- * gdbtk.c (TclDebug): Add "priority" argument. Calls "dbug"
- instead of "debug". Removed non-ANSI ifdefs.
-
- * gdbtk.h: Fixed protos for gdbtk_ignorable_warning and TclDebug.
-
-1999-02-05 James Ingham <jingham@cygnus.com>
-
- * Makefile.in: Add GDBTK_CFLAGS - this is now used to hold
- -fwritable-strings when compiling with Tk8.1.
- * configure.in: Add GDBTK_CFLAGS, set it to -fwritable-strings for
- Tcl/Tk8.1 & greater.
- * acinclude.m4: Move the rest of the defines to find Itcl, Itk &
- Tix from aclocal.m4 to here.
- * aclocal.m4: regenerate.
- * configure: regenerate.
-
- * gdbtk-hooks.c (x_event): Tcl_ObjGetVar2 was removed from
- Tcl8.1. Use Tcl_GetVar2 instead.
- * gdbtk-hooks.c (gdbtk_trace_find): Fix up call to
- Tcl_GlobalEvalObj for Tcl/Tk 8.1.
- * gdbtk-hooks.c (gdbtk_trace_start_stop): Call to Tcl_EvalObj was
- inefficient, replace with call to Tcl_GlobalEval.
- * gdbtk.c: Don't swap out the Tcl_Alloc calls in gdbtk.c. We took
- care of that in Tcl itself for 8.1.
- * gdbtk.c: Remove const from the script string since Tcl8.1 has
- taken to scribbling sentinals into strings passed to it again...
-
- * gdbtk-cmds.c (wrapped_call): Change declaration of 1st arg from
- char * to PTR to eliminate warning.
- * gdbtk-cmds.c (perror_with_name_wrapper): Ditto
-
-Thu Feb 4 10:35:28 1999 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-variable.c (variable_create): Allocate enough
- space to hold the NULL, too!
-
-Wed Feb 3 13:37:07 1999 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-variable.c (variable_create): Add parentheses to the name
- so that casts do not confuse the expression parser.
-
-1999-02-03 Keith Seitz <keiths@cygnus.com>
-
- * gdbtool.ico: Add missing desktop image.
-
-1999-02-02 Martin Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (get_register): For RAW display, concat all the
- pieces together before calling fputs.
-
-1999-02-01 Martin Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c: (gdb_set_bp): Change the "type" argument
- to be ASCII instead of an integer. Currently accepts "temp"
- or "normal". Fixed error messages.
- (gdb_set_bp_addr): Ditto.
-
-1999-01-29 James Ingham <jingham@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Set the fputs_unfiltered_hook to
- gdbtk_fputs BEFORE you eval script. The old code was setting it
- to null until after you did this, but that is wrong, because it
- will cause the output of CAUGHT errors to go to gdb_stderr, which
- is wrong. You only want to write errors to the console if the
- eval generates an error.
-
-1999-01-29 Martin Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_get_breakpoint_info): When printing addresses,
- do not rely on the format string "%lx" -- it does not exist for all
- hosts. Use paddr instead.
- (gdb_loadfile): Increase maximum line size to pass testsuite cases.
-
- * gdbtk-hooks.c (gdbtk_add_hooks): Remove pc_changed_hook and
- add register_changed_hook and memory_changed_hook.
- (gdbtk_register_changed): New function.
- (gdbtk_memory_changed): New function.
-
- * gdbtk.c (gdbtk_init): Create tcl warp_pointer command
- for use with testing.
-
- * gdbtk-cmds.c (gdb_loc): Fix for case where there are only
- minimal symbols. Also make gdb_loc return the shared library
- the location is in, if it is in one.
-
-1999-01-27 James Ingham <jingham@cygnus.com>
-
- * gdbtk-wrapper.c: Missed a couple of places where FILE->GDB_FILE
- in the fputs_unfiltered_hook needed to propagate.
-
-1999-01-27 James Ingham <jingham@cygnus.com>
-
- Merging in changes from gdbtk-980810 - the Itcl3
- gdb branch.
-
- 1999-01-12 Martin Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_loadfile): Increase maximum line size so
- files with very long lines get numbered correctly.
-
- Thu Jan 7 06:50:32 1999 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-hooks.c (gdbtk_add_hooks): Add the error_begin_hook;
- (gdbtk_error_begin): New function.
- (gdbtk_fputs): If GDBTK_ERROR_ONLY is set, treat output to
- any stream as if it had come from gdb_stderr.
-
- * gdbtk.h: Define GDBTK_SYMBOL_SOURCE_NAME: does the same thing
- as SYMBOL_SOURCE_NAME, except that it NEVER returns a mangled name.
- Define GDBTK_ERROR_ONLY flag for result_ptr.
-
- * gdbtk-cmds.c (gdb_listfuncs): Use SYMBOL_DEMANGLED_NAME to
- get the symbol's fully demangled name (including class and
- args for overloaded funcs), not cplus_demangle.
- (get_frame_name): Use GDBTK_SYMBOL_SOURCE_NAME to get the name
- of the frame level.
-
- * gdbtk-wrapper.c, gdbtk-wrapper.h:
- (GDB_val_print): Allow caller to specify all function args to val_print.
- (wrap_val_print): Ditto.
-
- * gdbtk-variable.c (variable_value): Clear addressprint when getting
- value of C++ reference-type variables
- If we errored because a parent (struct pointer) was junk, output
- an error message indicating so.
- (call_gdb_val_print): Tell val_print to dereference C++ reference
- types.
- (number_of_children): void * also has no children.
- (get_call_output): Clear any error flags that may have been set
- as a result of error_begin.
-
- * utils.c (error_begin_hook): New hook.
- (error_begin): Call error_begin_hook so that the GUI
- gets notified.
-
- * defs.h (error_begin_hook): Declare.
-
- Wed Jan 6 08:43:31 1999 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-wrapper.c, gdbtk-wrapper.h: Add wrappers for parse_exp_1,
- evaluate_type, block_for_pc, block_innermost_frame, reinit_frame_cache,
- and find_frame_addr_in_frame_chain.
-
- * gdbtk-variable.c (variable_create): Check for failure when
- creating variables.
- (create_variable): Use wrapped calls for block_for_pc, parse_exp_1,
- and block_innermost_frame.
- Return NULL if parse_exp_1 fails.
- Attempt to prohibit creating a gdb_variable for type names.
- (variable_value_changed): Use wrapped calls for reinit_frame_cache and
- find_frame_addr_in_frame_chain.
- (variable_type): Use wrapped call for evaluate_type.
- (variable_value): Use wrapped call for parse_exp_1.
- (variable_editable): Use wrapped call for evaluate_type.
-
- Tue Jan 5 11:37:17 1999 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-variable.c: New variable object interface.
- * gdbtk-wrapper.c, gdbtk-wrapper.h: New wrappers for safely calling
- gdb functions without the fear of longjmp'ing.
- * configure.in (CONFIG_OBS): Add gdbtk-wrapper.o and gdbtk-variable.o
- when gdbtk is enabled.
- * configure: Regenerate.
- * Makefile.in: Add gdbtk-wrapper.o and gdbtk-variable.o
- * gdbtk-cmds.c (call_wrapper): Export so that other files can use.
- (Gdbtk_Init): Initialize new variable interface.
- * gdbtk.h: Add declaration for call_wrapper.
-
- Tue Jan 5 11:19:14 1999 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (gdb_loc): Call resolve_sal_pc to before using
- the sal's pc.
-
- * gdbtk.c (gdbtk_init): Add global array GDBStartup to interpreter
- which contains any startup info. Add "inhibit_prefs" (follows -nx)
- so that "-nx" turns preference reading/writing off.
-
- Mon Dec 21 11:11:02 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (get_register): Call get_saved_register instead of
- read_relative_register_raw_bytes to fetch registers.
-
- Thu Dec 17 09:00:56 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (gdb_search): Don't mention C++ RTTI and
- global constructor/destructor symbols.
-
- Thu Nov 12 15:20:15 1998 Jim Ingham <jingham@cygnus.com>
- * More bug fixes merged in from devo.
-
- * gdbtk-cmds.c (gdb_cmd): Added an optional second argument to the
- gdb_cmd, which is from_tty. This is passed to the gdb command
- parser. It is 0 by default, and the console window passes 1.
-
- * gdbtk-cmds.c: moved disassemble_from_exec from gdbtk.c to gdbtk-cmds.c
- with all the other link-var'ed variables
-
- * gdbtk-hooks.c (gdbtk_trace_find): Only run the hook functions if
- we are called from_tty.
-
- * gdbtk-hooks.c (gdbtk_trace_start_stop): Set the trace buttons
- from a trace_start_command callback rather than doing it as a
- special case in gdb_cmd.
-
- * tracepoint.c (tstart_command, tstop_command): Add call to
- trace_start_stop_hook here.
-
- 1998-11-04 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_set_bp_addr): For callback, send full
- pathname instead of just basename.
-
- 1998-11-03 Keith Seitz <keiths@cygnus.com>
- * v850ice.c (do_gdb): New function.
- (ice_stepi): Use do_gdb to step properly.
- (ice_nexti): Use do_gdb to step properly.
- (view_source): Correct call to src window's location for new version.
-
- Tue Aug 25 18:13:30 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk.c (gdbtk_init): I hadn't excised ALL the old startup code,
- so it was not working correctly. Now it does.
-
- Fri Aug 21 14:37:40 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Changed the startup code to use
- tcl_findLibrary
-
-
-
-
-on Dec 28 17:44:36 1998 David Taylor <taylor@texas.cygnus.com>
-
-
- The following changes were made by Jim Blandy <jimb@cygnus.com>,
- Edith Epstein <eepstein@cygnus.com>, Elena Zannoni
- <ezannoni@cygnus.com> Stan Shebs <shebs@cygnus.com>, and David
- Taylor <taylor@cygnus.com>, as part of the project to merge in
- changes originally made by HP; HP did not create ChangeLog
- entries.
-
- * gdbtk.c (gdbtk_init): change stderr to gdb_stderr.
-
- * gdbtk-cmds.c
- (get_pc_register): Use paddr_nz, not sprintf's %llx and
- a cast to `long long'. Those aren't portable.
- (gdb_eval): add embedded_offset param to val_print call
- (get_register): add embedded_offset param to val_print call
-
- * gdbtk-hooks.c
- (tk_command_loop): change instream to a FILE.
- (gdbtk_flush): change both the declaration and definition to
- use GDB_FILE rather than FILE.
-
-Mon Dec 21 11:11:02 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (get_register): Call get_saved_register instead of
- read_relative_register_raw_bytes to fetch registers.
-
-Thu Dec 17 09:00:56 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (gdb_search): Don't mention C++ RTTI and
- global constructor/destructor symbols.
-
-Tue Dec 15 10:09:31 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-cmds.c (gdb_disassemble): Fix typo.
-
-Sun Dec 13 09:52:51 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-cmds.c: Update TARGET_PRINT_INSN_INFO, TARGET_PRINT_INSN.
-
-Fri Dec 11 09:52:04 1998 Andrew Cagney <cagney@chook>
-
- * gdbtk-cmds.c: Replace reg_name with REGISTER_NAME.
-
-Mon Dec 14 13:20:50 1998 Jim Ingham <jingham@cygnus.com>
-
- * Makefile.in, configure.in configure - add support for LIBGUI
- outside the IDE context.
-
-Thu Nov 19 13:14:57 1998 Geoffrey Noer <noer@cygnus.com>
-
- * gdbtk-cmds.c: Can't start using new API names yet. Switch back
- to calling cygwin32_ funcs until some time has passed...
- * gdbtk.c: Ditto. Also, include sys/cygwin.h for Cygwin, instead
- of providing own proto.
-
-Fri Nov 13 00:15:08 1998 Geoffrey Noer <noer@cygnus.com>
-
- Changes to account for name change from cygwin32 to cygwin and
- clean up Win32-related ifdefs.
-
- * gdbtk.c: lose "32" from cygwin_ func calls. ifndef for
- checking DISPLAY should be for _WIN32, not WINNT.
- * gdbtk.h: pick GDBTK_PATH_SEP based on _WIN32, not WINNT.
- * gdbtk-cmds.c (gdb_path_conv): lose "32" from cygwin_ func call,
- change ifdef to __CYGWIN32__ instead of WINNT.
- * {gdbtk.c, gdbtk-hooks.c}: __CYGWIN32__ refs drop the "32".
-
-Thu Nov 12 15:20:15 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk-cmds.c (gdb_cmd): Added an optional second argument to the
- gdb_cmd, which is from_tty. This is passed to the gdb command
- parser. It is 0 by default, and the console window passes 1.
-
- * gdbtk-cmds.c: moved disassemble_from_exec from gdbtk.c to gdbtk-cmds.c
- with all the other link-var'ed variables
-
- * gdbtk-hooks.c (gdbtk_trace_find): Only run the hook functions if
- we are called from_tty.
-
- * gdbtk-hooks.c (gdbtk_trace_start_stop): Set the trace buttons
- from a trace_start_command callback rather than doing it as a
- special case in gdb_cmd.
-
- * tracepoint.c (tstart_command, tstop_command): Add call to
- trace_start_stop_hook here.
-
-Wed Nov 4 12:41:42 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk-cmds.c (gdb_set_bp_addr): Pass the type, enable & thread
- to gdbtk_tcl_breakpoint.
- * gdbtk-hooks.c (gdbtk_trace_find): Added this function. It is
- the hook function for tfind commands.
- * tracepoint.c (trace_find_command): Added the trace_find_hook,
- run when you do trace_find_command.
- * tracepoint.h: Define the trace_find_hook.
-
-1998-11-03 Keith Seitz <keiths@cygnus.com>
-
- * v850ice.c (do_gdb): New function.
- (ice_stepi): Use do_gdb to step properly.
- (ice_nexti): Use do_gdb to step properly.
- (view_source): Correct call to src window's location for new version.
-
-Mon Nov 2 11:16:10 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk-cmds (gdb_get_tracepoint_info): Demangle C++ function names.
-
-Fri Oct 30 11:22:23 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk-cmds (gdb_get_tracepoint_info): Fixed typo.
-
-Wed Oct 28 16:19:02 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_set_bp_addr): For callback, send full
- pathname instead of just basename.
-
-Wed Oct 28 10:14:33 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk-cmds.c: Made the bdtypes & bpdisp arrays shared so they
- could be used in gdbtk-hooks.c (breakpoint_notify).
- Also fixed a few error messages to actually print the bp number
- rather that #%d...
- * gdbtk-hooks.c (breakpoint_notify): pass more of the information
- about the breakpoint into the Tcl command, so it does not have to
- try and guess about information we have on the C side.
- * gdbtk.h: Export the bptypes & pbdisp arrays.
-
-1998-10-13 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * gdbtk.c, gdbtk-cmds.c: Cast parameters passed to make_cleanup to
- use the new make_cleanup_func typedef.
-
-1998-10-08 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-hooks.c (gdbtk_add_hooks): Install a hook for
- (new) file_changed_hook.
- (gdbtk_exec_file_changed): Rename to gdbtk_exec_file_display
- to mimic hook's name.
- (gdbtk_file_changed): New hook function.
-
-Tue Oct 6 22:57:13 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure.in (links): Link gdbtcl2 directory instead of gdbtcl.
-
-Mon Oct 5 00:34:00 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_set_bp_addr): New command. Sets a
- breakpoint at an address. Use this instead of gdb_cmd "break"
- because the syntax of the break command is broken and doesn't
- allow you to create a thread-specific BP at an address. Also
- this is faster.
-
-Sun Oct 4 22:35:47 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_set_bp): Add an optional thread number.
- (gdb_find_bp_at_line): New function. Returns a list of bpnums
- at the specified line number.
- (gdb_find_bp_at_addr): New function. Returns a list of bpnums
- at an address..
-
-1998-10-02 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-hooks.c (gdbtk_exec_file_changed): New function which handles
- exec_file changes.
- (gdbtk_add_hooks): Define exec_file_display_hook (to gdbtk_exec_file_changed)
-
- * gdbtk-cmds.c (gdb_stop): target_stop is ALWAYS defined, so
- compare against something a little more meaningful (target_ignore).
-
-1998-09-24 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk.c (gdbtk_wait): Don't run the timer for ice targets.
-
- * v850ice.c (WM_ADDR_TO_SYM): New message.
- (v850ice_wndproc): Add handler for WM_SOURCE.
- (v850ice_wait): Call the ui_loop_hook occasionally.
- (ice_cont): Acknowledge message before doing anything.
- (ice_stepi): Ack message and let gdbtk do stepping.
- (ice_nexti): Ack message and let gdbtk do stepping.
- (view_source): New function ICE calls to display source code.
-
-1998-09-18 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (get_frame_name): Demangle function names, too.
-
-Thu Sep 10 22:10:29 1998 Jim Ingham <jingham@cygnus.com>
-
- *gdbtk-cmds.c (gdb_disassemble): Make sure the symtab's linetable is not
- null before trying to use it...
-
-1998-09-02 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (gdb_cmd): Do not run the timer when downloading --
- the ui_progress_hook that has been installed will actually
- update the gui for us.
-
-Mon Aug 31 15:42:10 1998 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk-hooks.c (context_hook): Don't define.
-
-1998-08-31 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (gdb_listfuncs): When stripping out "global destructors"
- and "global constructors", do not append any elements to the result.
-
-Sun Aug 30 00:49:18 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (Gdbtk_Init): Link C variable gdb_context
- with tcl variable gdb_context_id.
-
- * gdbtk-hooks.c (gdbtk_context_change): Implement new hook called
- context_hook. Called when threads change.
-
- * gdbtk.c: Initialize gdb_context.
-
- * gdbtk.h: Declare gdb_context.
-
- * infrun (wait_for_inferior): Call context_hook.
-
- * thread.c (thread_command): Call context_hook.
-
- * defs.h: Declare context_hook.
-
-Fri Aug 28 12:14:49 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_loadfile): Open the file after doing
- the symtab lookup and calling symtab_to_filename(). This
- makes GDBtk work with the GDB "dir" command.
-
-1998-08-18 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-hooks.c (gdbtk_add_hooks): Set selected_frame_level_changed_hook.
- (gdbtk_selected_frame_changed): New function.
-
- * gdbtk-cmds.c (Gdbtk_Init): Add command gdb_stack into interpreter.
- Link gdb's global selected_frame_level with interpreter global
- gdb_selected_frame_level.
- (gdb_stack): New function to faciltate speedier backtraces from
- gdbtk.
- (get_frame_name): New helper function for gdb_stack.
-
-Tue Aug 18 15:42:40 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_listfuncs): Strip out global constructors
- and destructors from the function list.
-
-Thu Aug 13 15:09:59 1998 Drew Moseley <dmoseley@cygnus.com>
-
- * gdbtk.c (gdbtk_cleanup): added a scope-level around the contents
- of the #ifdef so that the variable declarations in there would not
- be illegal in a C compilation.
-
-Mon Jul 27 13:07:16 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_call_command): Removed because it is now
- in gdbtk-hooks.c
- (null_routine): Removed.
-
- * gdbtk-hooks.c (tracepoint_notify): Fix sprintf to
- match number of arguments.
-
- * gdbtk-cmds.c (gdb_loc): When calling gdb_loc with an
- argument, call find_pc_line() to get a complete
- symtab_and_line struct.
-
-Fri Jul 24 14:25:43 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk-cmds.c (gdb_search): Add missing NULL to switches.
- Add missing flags to result_ptr.
- Pass along any errors caused by getting the list of files from
- tcl.
- Allocate correct amount of memory for the file list.
- Don't do any unecessary cleanups.
-
-Fri Jul 24 01:08:37 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk-cmds.c (gdb_loadfile): When there are no
- linenumbers, use only one tab.
-
-Sat Jul 18 12:28:39 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_cleanup): Add call to tcl function
- gdbtk_cleanup. We need this so the GUI gets to clean
- up no matter how GDB exits.
-
-Wed Jul 1 13:10:58 1998 Jim Ingham <jingham@cygnus.com>
-
- * Moved gdbtk_hooks.c & gdbtk_cmds.c to gdbtk-hooks.c &
- gdbtk-cmds.c to comply with the gdb conventions. Changed the
- configure & makefile to reflect the change...
-
-Wed Jul 1 11:07:21 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk.c: removed all the commands and hooks from this file so
- now it contains only the startup code.
- * gdbtk.c (gdbtk_init): Fixed a bug in the startup code on Windows
- that caused gdbtk not to find the share directory unless
- GDBTK_LIBRARY was set.
- * gdbtk_cmds.c: New file - this contains all the Tcl commands that
- gdb defines. All the old commands were moved here, the
- string-based commands were converted to object commands, and the
- object-based commands were all converted to uniformly use the
- call_wrapper. A new function, Gdbtk_Init was added to centralize
- initializing the gdb package.
- * gdbtk_hooks.c: New file - All the hooks were moved here, and a new
- function, gdbtk_add_hooks was added to centralize adding all these
- hook functions. gdbtk_fputs was also modified to handle the new
- result_ptr structure. See the comments in gdbtk.h for more
- details.
- * gdbtk.h: New file - this contains all the defines and globals
- shared by gdbtk.c, gdbtk_cmds.c & gdbtk_hooks.c
- * Makefile.in, configure.in & configure: mutatis mutandi for the
- new files.
-
-
-Mon Jun 29 11:49:17 1998 Keith Seitz <keiths@cygnus.com>
-
- * main.c (main): Don't include gdbtk test code if GDBTK is
- not defined by configure.
-
- * configure.in: When enabling gdbtk, add "-DGDBTK" to ENABLE_CFLAGS.
-
- * configure: Regenerate.
-
-Fri Jun 26 13:56:07 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk.c: Change all references to static global "interp" to
- "gdbtk_interp" and export this global.
- (gdbtk_init): If gdbtk_source_filename is not NULL, source this file
- into the interpreter when it goes idle.
- Add new command "gdb_search".
- (gdb_search): New function which searches the symbol table.
- (gdbtk_test): New function called by main when the --tclcommand
- option is used.
-
- * main.c (main): Add a new option "--tclcommand" which is used
- by the testsuite to source a file into the interpreter when it
- goes idle.
-
-Sun Jun 21 09:31:12 1998 Ron Unrau (runrau@cygnus.com)
-
- * gdbtk.c (gdb_set_bp): Use new interface.
-
-Wed Jun 17 19:12:23 1998 Jeff Holcomb <jeffh@cygnus.com>
-
- * Makefile.in (install-only): Install tracing help files.
-
-Mon Jun 15 13:18:21 1998 Jim Ingham <jingham@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Add elements to the auto_path AS LIST
- ELEMENTS. This allows gdbtk to work when installed in a directory
- which has a space in the path. D. Moseley pointed out the bug.
-
-
-Tue Jun 9 14:10:46 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk.c (gdb_get_vars_command): Return static variables and
- variables stored in registers.
-
- * main.c (main): Call pre/post_add_symbol_hook's when loading
- executables and symbol files.
-
-Fri Jun 5 00:16:22 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Change all references to
- GDBTK_IDE to IDE_ENABLED.
-
-Thu Jun 4 18:31:53 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Initialize tkTable.
-
-Thu Jun 4 10:15:03 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * gdbtk.c: merged:
-
- - Elena Zannoni <ezannoni@kwikemart.cygnus.com>
- (call_obj_wrapper): in case of error, copy the
- error message from the result to the error_string.
- (gdbtk_fputs): add comments.
- (gdb_actions_command): call validate_actionline when installing the
- tracepoint, to do the syntax checking of the actions for us.
- - Elena Zannoni <ezannoni@kwikemart.cygnus.com>
- (gdb_get_trace_frame_num): new function to get the
- trace frame number from gdb.
- (gdbtk_init): added new command gdb_get_trace_frame_num.
- - Jim Blandy <jimb@zwingli.cygnus.com>
- (struct wrapped_call_objs): Change the `func' member to
- be a Tcl_ObjCmdProc, not an Tcl_CmdProc, since it accepts a vector
- of objects as arguments. Change the object vector to be const,
- since that's what all the users of this structure seem to expect.
- (call_obj_wrapper): Cast clientData properly before storing it in
- the wrapped_args structure.
-
-Thu May 28 17:19:14 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdbtk.c (_initialize_gdbtk): Get rid of the console. Patch from
- Chris Faylor (cgf@cygnus.com).
-
- * configure.in: Link cygwin32 with subsystem console.
-
- * configure: Regenerated
-
-Sun May 24 14:00:24 1998 Keith Seitz <keiths@cygnus.com>
-
- * ser-unix.c (wait_for): Do not reset timeout_remaining for cygwin32 so that
- we can use this member to track real timeouts.
- (hardwire_readchar): Modify for cygwin32 so that we only ever use a real
- system timeout of one second. Track the "real" timeout as a series of these
- one second timeouts.
- Call ui_loop_hook to keep the gui alive.
-
- * top.c: Define new hook for cygwin32, "ui_loop_hook".
-
- * gdbtk.c (gdbtk_init): Add ui_loop_hook for CygWin32 to work around
- update problems.
-
-Thu May 21 13:56:24 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * gdbtk.c: reinserted the changes that were accidentally deleted:
- (_initialize_gdbtk): Use correct device names in
- cygwin-specific call (cosmetic change).
- (gdbtk_ignorable_warning): removed va_list parameter,
- which was unused.
- (_initialize_gdbtk): add cygwin32 specific code to
- allow `gdb -nw' to work when specified specified from a windows
- console-mode command line.
-
-1998-05-19 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * gdbtk.c (struct wrapped_call_objs): Change the `func' member to
- be a Tcl_ObjCmdProc, not an Tcl_CmdProc, since it accepts a vector
- of objects as arguments. Change the object vector to be const,
- since that's what all the users of this structure seem to expect.
- (call_obj_wrapper): Cast clientData properly before storing it in
- the wrapped_args structure.
-
-Wed May 13 11:12:58 1998 James Ingham <jingham@leda.cygnus.com>
-
- * gdbtk.c: Fixed a goof in the definition of the gdb_get_args &
- gdb_get_locals Tcl commands. Moved the previous ChangeLog entry
- from ChangeLog to ChangeLog-gdbtk (here)...
-
-Tue May 12 13:29:20 1998 Jeff Holcomb <jeffh@cygnus.com>
-
- * Makefile.in (install-only): Add images/icons.txt and
- images2/icons.txt to files that need to be installed.
-
-Tue May 12 12:03:16 1998 James Ingham <jingham@leda.cygnus.com>
-
- * gdbtk.c: Add an object call wrapper for the new Tcl_Obj based
- commands. This way the obj commands will also go through
- catch_errors. This is just a bandaid while I rewrite the
- string-based commands to use the object format.
-
-Tue May 5 09:30:25 1998 Christopher Faylor <cgf@cygnus.com>
-
- * gdbtk.c (_initialize_gdbtk): Use correct device names in
- cygwin-specific call (cosmetic change).
-
-Wed Apr 29 15:53:16 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * gdbtk.c (gdbtk_ignorable_warning): removed va_list parameter,
- which was unused.
-
-Tue Apr 28 19:41:33 1998 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in (GDBTKLIBS): New macro.
- (INSTALLED_LIBS): Include GDBTKLIBS.
- (CLIBS): Likewise.
- * configure: Rebuilt.
- * configure.in: Put Tcl/Tk libs into GDBTKLIBS, not LIBS.
- (GDBTKLIBS): AC_SUBST.
-
-Thu Apr 23 19:01:05 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * Makefile.in (install-only): Install help files.
-
-Wed Apr 22 21:17:35 1998 Christopher Faylor <cgf@cygnus.com>
-
- * gdbtk.c (_initialize_gdbtk): add cygwin32 specific code to
- allow `gdb -nw' to work when specified specified from a windows
- console-mode command line.
-
-Wed Apr 15 11:23:53 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtcl: Remove directory and contents, this version of
- the interface is obsolete.
-
-Mon Apr 13 16:17:52 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdb_loadfile): Change fstat() call to stat().
- Needed because you can't convert a FILE* to an fd.
-
-Mon Apr 13 16:28:07 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * gdbtk.c: (perror_with_name_wrapper) new function to call
- perror_with_name safely.
- (gdb_loadfile) added source vs. executable time stamp check.
- (gdbtk_warning) new function to pass a warning message to the gui.
- (gdbtk_ignorable_warning) new function to pass a warning
- to the gui. Used only for the src. vs. exec check.
- (gdbtk_init) added warning_hook
- added include <sys/stat.h>
-
-Mon Apr 13 12:58:26 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdbtk_start_timer): Include on all platforms. Decrease
- timer interval a little.
- (gdbtk_stop_timer): Include on all platforms.
- (gdbtk_wait): No more signals! Use a timer on all platforms to keep the
- GUI alive.
- (gdbtk_init): Remove FIOASYNC and all x_fd references. Now using timers
- on all platforms.
-
-Fri Apr 10 15:48:10 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * gdbtk.c (gdb_listfiles): Allocate space for 'files' dynamically.
-
-Thu Apr 9 14:20:59 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Remove redundant variable "IDE".
-
-Tue Apr 7 15:13:58 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtk.tcl: Remove, no longer used.
-
-Tue Apr 7 12:49:45 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdb_cmd): NEVER call the busy, update, and idle hooks.
-
-Tue Mar 31 15:42:06 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdb_loadfile): Don't use the return result from
- sprintf, which returns a char * under SunOS4.
-
-Tue Mar 31 17:18:43 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Add $(LIBIDETCL) as well as $(LIBIDE) if
- --enable-ide.
- * Makefile.in (IDE_CFLAGS_X): Add -I for libidetcl/src.
- (LIBIDETCL): Define.
- * configure: Rebuild.
-
-Sun Mar 29 21:19:46 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdb_get_tracepoint_info): Change formatting of address.
- (tracepoint_exists): Remove code which confuses assembly traces.
-
-Sat Mar 28 12:13:23 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdb_cmd): If argc > 2, assume that the busy and idle hooks
- should not be called.
-
-Thu Mar 26 22:29:28 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * gdbtk.c: (gdb_trace_status) new function.
- (gdbtk_init) added command "gdb_is_tracing".
- (tracepoint_notify) added passcount information.
-
-Thu Mar 26 12:00:35 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_fputs): Insert fencepost.
- (gdb_loc): Correct pc calculation.
- (gdb_immediate_command): Return if a load is in progress.
- (gdb_cmd): Return if a load is in progress.
- (target_stop_wrapper): New function.
- (gdb_stop): Call target_stop_wrapper.
- (x_event): Add fencepost and optimize load cancel check.
- (gdbtk_start_timer): Set up structs only once.
- (gdbtk_stop_timer): Just use preset structs to set timer parameters.
- (gdb_loadfile): If file cannot be loaded, return error message.
- (gdb_loadfile): Add space before tab so that lines without
- a '-' can later be changed to have one.
-
-Wed Mar 25 14:08:51 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * gdbtk.c (gdbtk_pre_add_symbol): Use Tcl_merge to form Tcl commands.
-
-Mon Mar 23 13:41:39 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * gdbtk.c (gdb_get_mem): Rewrite to fetch entire contents
- of the memory window at once.
-
-Sat Mar 21 19:34:49 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- Merged changes from Foundry: list follows by author:
-
- - Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in (gdbres.o): New target.
- (WINDRES): New define.
- * configure: Rebuilt.
- * configure.in (WINDRES): Define.
- (CONFIG_OBS): Include gdbres.o on Windows.
- * gdbtool.ico: New file.
- * gdb.rc: New file.
- * gdbtk.c (gdbtk_init): Call ide_create_messagebox_command.
- (gdbtk_cleanup): Call ide_interface_deregister_all.
- (gdbtk_init): Pass event handle to cleanup.
- (TclDebug): Use Tcl_Merge to construct command.
- (gdbtk_init): Call ide_create_cygwin_path_command.
-
- - Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdb_set_bp): Set addr_string for bp.
- (gdb_get_breakpoint_info): Demangle function
- names in breakpoint info.
- Include "demangle.h".
- (gdb_loc, gdb_listfuncs): Demangle C++
- function names.
- (gdb_set_bp): Properly quote filename to fix
- problems with spaces. Send pc back as a hex string.
- (gdb_listfuncs): Remove debugging line.
- Turn off some debugging lines.
- (breakpoint_notify): Return correct line number.
- (gdb_get_breakpoint_info): Return correct line number.
- (gdb_set_bp): New function to provide a better way to
- set breakpoints.
- (gdbtk_readline, gdbtk_readline_begin): Memory
- allocated by tcl needs to be freed by Tcl_Free().
- (find_file_in_dir): Deleted.
- (gdb_find_file_command): Call full_lookup_symtab().
- (gdb_listfuncs): Call full_lookup_symtab().
- (full_lookup_symtab): New function. Like lookup_symtab
- except handles multiple files with the same basename,
- full pathnames, and always sets symtab->fullname.
- (gdb_loadfile): Call full_lookup_symtab(). Clear
- realloc'd memory.
- (gdb_loadfile): Don't tag lines without source.
- Tag source lines with source_tag.
- (gdb_find_file_command, find_file_in_dir):
- Rewrite. Now searches symtabs and psymtabs for a match
- on the partial or full filename. Returns the full pathname.
- (gdb_loadfile): Realloc additional memory
- if someone loads in a file with more than 160,000
- lines. I don't know if this really works because
- I don't have enough memory to test it.
- (gdb_sourcelines): Deleted.
- (gdb_loadfile): New function. Takes a text widget
- and loads it with the contents of a file. Marks
- and tags source lines.
- (pc_changed): New function.
- (get_pc_register): Returns the value of
- the PC to GDB.
- (gdb_loc): If looking on the stack, return
- real pc along with calling source line.
- (gdb_loc): Return "" instead of "N/A" if
- filename is not found.
- (gdb_get_breakpoint_info): Same.
- (get_register): For Natural mode, set format to 0.
- Minor bugfixes from keiths.
- (TclDebug): New function for debugging use.
- (gdb_loc): Return correct PC for frames
- that are not the innermost frame.
- (gdb_listfiles): Rewritten to use object
- API. Now takes an optional dirname which will cause
- only files in that directory or its subdirectories
- to be returned. Now returns basenames instead of
- full pathnames.
- (gdb_cmd): Set/reset load_in_progress flag.
- (call_wrapper): Don't pop up dialog for errors in
- downloads; just abort download.
- (gdbtk_load_hash): Set return value correctly.
-
- - Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdbtk_init): Define the ui_loop_hook so that it can be
- called by routines which might block, allowing us to update the GUI.
- (gdbtk_wait): Move timer calls to annotation hooks.
- (gdbtk_init): Define the annotation hooks.
- (gdbtk_annotate_starting): New function for cygwin32 hosts.
- (gdbtk_annotate_stopped): New function for cygwin32 hosts.
- (gdbtk_annotate_exited): New function for cygwin32 hosts.
- (gdbtk_annotate_signalled): New function. for cygwin32 hosts.
- (gdbtk_init): Use gdbtk_print_frame_info hook.
- (gdbtk_print_frame_info): New function which sets current_source_symtab
- based on the given symtab and line info.
- (gdb_immediate_command): New function which does
- not buffer any
- output. (Contrast to gdb_cmd.)
- (gdb_prompt_command): New function to return gdb's prompt.
- (find_file_in_dir): New functon which searches source paths
- for a given filename.
- (gdb_find_file): New function which returns path to given file -- uses
- find_file_in_dir.
- (gdbtk_init): Install "gdb_immediate", "gdb_find_file", and
- "gdb_prompt"
- commands into interpreter.
-
- - Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (gdbtk_timer_going): If __CYGWIN32__, new static
- variable.
- (gdb_cmd): If __CYGWIN32__, if executing the load command, call
- gdbtk_start_timer and gdbtk_stop_timer.
- (call_wrapper): If __CYGWIN32__, if the timer is going, turn it
- off. Clear load_in_progress.
- (x_event): If load_in_progress, quit if download_cancel_ok.
- (gdbtk_start_timer): Set gdbtk_timer_going.
- (gdbtk_stop_timer): Clear gdbtk_timer_going.
- (gdbtk_wait): Call x_event.
- (gdbtk_init): Call ide_create_win_grab_command if
- __CYGIN32__.
- (gdb_clear_file): Clear stop_pc.
-
-Wed Mar 4 16:50:18 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * gdbtk.c (gdb_listfiles): Fix thinko in last change.
-
-Wed Mar 4 15:34:49 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * gdbtk.c (gdb_listfiles): Allocate space for 'files' dynamically.
-
-Tue Feb 10 17:50:37 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdbtk_modify_tracepoint): Define new tracepoint modification hook.
- (gdbtk_print_frame_info): Define this hook so that current_source_symtab
- is set properly.
- (gdb_actions_command): Use free_actions () from tracepoint.c/h.
-
-Mon Jan 26 11:37:55 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdb_actions_command): Make note of next action
- before freeing all references to it.
-
-Sat Jan 24 23:52:08 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c: Merge from Foundry branch.
- (TclDebug): New debugging function.
- (gdb_loc): For frames, find address of calling function
- instead of whatever is on the stack (usually the next
- instruction).
- (gdb_listfiles): Takes an optional pathname argument and
- returns an alphabetized list of basenames of files in the
- path.
-
-Wed Jan 22 10:37:02 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * symfile.c: Define two new hooks for symbol reading:
- "pre_add_symbol_hook" and "post_add_symbol_hook". These hooks
- are called before we begin reading symbols, and after we finish.
- (generic_load): Use new symbol reading hooks and get rid of
- compiler warning.
-
- * gdbtk.c (gdbtk_init): Add hooks for pre- and post-symbol reading.
- (gdbtk_pre_add_symbol): New function: the pre-add-symbol hook.
- (gdbtk_post_add_symbol): New function: the post-add-symbol hook.
- (find_file_in_dir): New function. Moved the guts of gdb_find_file_command
- into here to allow its use by others.
- (gdb_loc): Use find_file_in_dir to return the real path to the file
- (or "N/A" if we can't find it).
-
- * configure.in (TIX_LIB_EXT): Define new variable for those special cases
- when TCL_SHLIB_SUFFIX is not enough to specify the dependency.
-
- * configure: Regenerate.
-
-Fri Jan 23 07:47:06 1998 Fred Fish <fnf@cygnus.com>
-
- * Makefile.in (uninstall): Remove installed gdbtcl dir, if one
- was installed.
-
-Thu Jan 15 12:42:28 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdb_immediate_command): New function which does not buffer any
- output. (Contrast to gdb_cmd.)
- (gdbtk_init): Install "gdb_immediate" command into interpreter.
-
-Wed Jan 14 16:38:44 1998 Keith Seitz <keiths@pizza.cygnus.com>
-
- * configure.in (--enable-gdbtk): If tcl was built with --enable-shared,
- use TCL_SHLIB_SUFFIX to specify the suffix of the library file so that
- we don't expect to see "libfoo.a" instead of "libfoo.{so,sl, etc}".
-
- * configure: Regenerate.
-
-Wed Dec 31 16:50:26 1998 Keith Seitz (keiths@onions.cygnus.com)
-
- * gdbtk.c (gdb_actions_command): extract and save step count
- from "while-stepping" command
-
-Tue Dec 16 21:16:42 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (LIBGUI): New variable.
- (GUI_CFLAGS_X): New variable.
- (IDE_CFLAGS): Add $(GUI_CFLAGS_X).
- * configure.in: Add $(LIBGUI) to TCL_LIBS and CONFIG_DEPS.
- * configure: Rebuild.
-
-Wed Dec 10 13:16:45 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdb_get_tracepoint_info): Use info in struct
- symtab_and_line (not struct tracepoint) so that we get the
- real line info for an address. Arrange data more like
- gdb_get_breakpoint_info.
- (tracepoint_notify): Use info in struct symtab_and_line again.
- (gdbtk_init): Add command "gdb_get_tracepoint_list" into
- interpreter.
- (gdb_get_tracepoint_list): New function that aids the source
- window in displaying tracepoints when the file changes.
-
-Fri Dec 5 10:31:23 1997 Keith Seitz <keiths@pizza.cygnus.com>
-
- * gdbtk.c (gdbtk_init): Add gdb_find_file into interpreter.
- (gdb_find_file_command): New function which searches source path
- to find the real full filename of a file.
-
-Mon Dec 1 10:19:44 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c: Move include of "guitcl.h" back out of IDE ifdef.
- (gdbtk_init): Move ide_initialize_paths out of IDE ifdef.
-
- * configure.in (TCL_LIBS, CONFIG_DEPS): Add IDE libraries for all
- builds.
- (CONFIG_OBS): Remove tracepoint.o, which should always be included.
-
- * configure: regenerate
-
- * Makefile.in (install-only): ALWAYS install the new gdbtk
- (REMOTE_OBS): add tracepoint.o
-
-Thu Nov 27 09:07:18 1997 Michael Meissner <meissner@cygnus.com>
-
- * configure.in ({TCL_LIBS,CONFIG_DEPS}): Don't add IDE libraries
- if not --enable-ide.
- (CONFIG_OBS): Add tracepoint.o to list if --enable-gdbtk.
- * configure: Regenerate.
-
- * gdbtk.c (gdb_get_breakpoint_info): Add missing filename
- argument.
- (toplevel): Move include of guitcl.h into #ifdef IDE region.
- (gdbtk_init): Move ide_initialize_paths call into #ifdef IDE
- section.
-
- * Makefile.in (gdbtk.o): Update dependencies.
-
-Wed Nov 26 15:02:43 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * gdbtk.c (gdb_loc): symtab_to_filename can return NULL.
- (breakpoint_notify): Ditto.
- (gdb_get_breakpoint_info): Ditto.
-
-Wed Nov 26 11:33:09 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- Merge in code from Foundry branch:
-
- * Makefile.in (install-only): install the new gdbtk, not the old
-
- * gdbtk.c (gdbtk_call_command): also run idle hooks for class_trace
- commands
- (gdbtk_init): Add new commands "gdb_get_locals", "gdb_get_args",
- "gdb_get_function", "gdb_get_line", "gdb_get_file",
- "gdb_tracepoint_exists", "gdb_get_tracepoint_info", "gdb_actions",
- and "gdb_prompt".
- (gdb_get_vars_command): New function.
- (gdb_get_line_command): New.
- (gdb_get_file_command): New.
- (gdb_get_function_command): New.
- (gdb_get_tracepoint_info): New.
- (gdbtk_create_tracepoint): New.
- (gdbtk_delete_tracepoint): New.
- (tracepoint_notify): New.
- (tracepoint_exists): New.
- (gdb_actions_command): New.
- (gdb_tracepoint_exists_command): New.
- (gdb_prompt_command): New.
-
-Thu Nov 13 18:15:54 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c: Move include of gdbcore.h to top of file.
- (close_bfds): New static function if _WIN32.
- (gdbtk_readline): Call close_bfds.
- (call_wrapper, tk_command_loop): Likewise.
- (gdb_clear_file): New static function.
- (gdbtk_init): Create gdb_clear_file Tcl command.
-
-Wed Nov 12 14:58:39 1997 Jeff Holcomb <jeffh@cygnus.com>
-
- * gdbtk.c: gdbtk_load_hash and ui_load_progress_hook return an
- int result.
- (gdbtk_load_hash): download hash routine returns an int result.
-
-Mon Nov 10 15:11:51 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Call ide_create_shell_execute_command if
- __CYGWIN32__.
- * configure.in: Add -lshell32 to WIN32LIBS on cygwin32.
- * configure: Rebuild.
-
-Sun Nov 9 16:25:34 1997 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Run ide_create_help_command.
-
-Tue Oct 28 17:31:47 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Call ide_create_winprint_command.
-
-Thu Oct 23 15:53:37 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Add -lgdi32 to WIN32LIBS when linking gdbtk on
- cygwin32.
- * configure: Rebuild.
-
-Wed Oct 22 21:32:54 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Create sizebox command on Windows.
-
-Thu Oct 9 14:33:21 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Remove assertion argument from call to
- ide_create_window_register_command.
-
-Wed Oct 1 11:09:52 1997 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Pass name of restore interface to
- ide_create_window_register_command.
-
-Fri Sep 26 21:08:22 1997 Keith Seitz <keiths@pizza.cygnus.com>
-
- * gdbtk.c (gdbtk_init): Initialize ui_load_progress_hook.
-
-Thu Sep 25 03:05:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdb_load_info): New function. Returns a list
- of section names and sizes for an executable.
- (gdbtk_load_hash): Stub function to call tcl function
- download_hash.
-
-Tue Sep 23 01:29:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdb_get_mem): Fix compiler warning.
-
-Sun Sep 21 00:15:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdb_get_mem): Fix problem with ASCII dump.
-
-Tue Sep 16 18:07:17 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdb_get_mem): New function. Returns
- a formatted memory dump with optional ASCII dump.
-
-Mon Sep 8 12:48:50 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c: Include ilutk.h if IDE.
- (gdb_confirm_quit, gdb_force_quit): New static functions.
- (gdbtk_init): Add Tcl commands gdb_confirm_quit and
- gdb_force_quit.
-
-Mon Sep 8 03:05:33 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdb_get_breakpoint_info): Now returns the
- function a breakpoint is in.
-
-Fri Sep 5 20:23:58 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Call ide_create_exit_command.
-
-Wed Sep 3 19:39:15 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c: Include guitcl.h.
- (gdbtk_init): Always call ide_initialize_paths. Set the Tcl
- variable IDE to 1 when using the IDE. Always try using auto path
- to find main.tcl.
- * Makefile.in (IDE_CFLAGS_X): Always include libide.
- (LIBIDE): New variable.
- (IDE_X): Omit -lide.
- (IDE_DEPS): Omit libide.
- * configure.in: Add LIBIDE to TCL_LIBS and CONFIG_DEPS.
- * configure: Rebuild.
-
-Mon Aug 25 02:28:55 1997 Keith Seitz <keiths@pizza.cygnus.com>
-
- * gdbtk.c: (gdb_target_has_inferior) check if inferior_pid is non-zero
- before assuming that the inferior is running.
-
-Mon Aug 25 01:06:48 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (gdbtk_start_timer): Pass third argument to setitimer.
- (gdbtk_stop_timer): Likewise.
-
-Mon Aug 25 00:23:08 1997 Keith Seitz <keiths@pizza.cygnus.com>
-
- * gdbtk.c: (gdbtk_init) create new command "gdb_target_has_execution"
- (gdb_target_has_execution_command) new function
-
-Sun Aug 24 20:27:22 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (gdb_loc): If there are no symbols, just bail
- immediately.
- (tk_command_loop): Print errors encountered while running
- gdbtk_tcl_preloop.
-
-Sun Aug 24 13:44:03 1997 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Run ide_create_build_command.
-
-Sat Aug 23 21:53:39 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c: If CYGWIN32, include <sys/time.h>.
- (x_fd): Don't define if WINNT.
- (gdbtk_start_timer, gdbtk_stop_timer): New static functions if
- CYGWIN32.
- (gdbtk_wait): Don't set up signal handling if WINNT. If CYGWIN32,
- call gdbtk_start_timer and gdbtk_stop_timer.
- (gdbtk_init): Don't set up signal handling or make x_fd
- asynchronous if CYGWIN32.
-
-Fri Aug 22 15:23:15 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (error_string_ptr): New static variable.
- (gdbtk_fputs): If result_ptr is NULL, and error_string_ptr is not
- NULL, and we're outputting to stderr, append string to
- error_string_ptr rather than calling gdbtk_tcl_fputs.
- (call_wrapper): Set up error_string_ptr. Put both error string
- and normal string in Tcl result.
-
- * gdbtk.c (gdbtk_init): Don't call ide_run_server_init until after
- gdb has initialized.
-
-Thu Aug 21 19:14:38 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c: If _WIN32, include winuser.h.
- (gdbtk_init): If _WIN32, use MessageBox to display an error
- evaluating main.tcl.
-
-Thu Aug 21 00:48:00 1997 Martin M. Hunt <hunt@pern.cygnus.com>
-
- * gdbtk.c (gdbtk_init): Add call to ide_run_server_init().
- (gdb_cmd): For the load command, don't buffer the I/O.
-
-Wed Aug 20 11:41:22 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdbtk_query): Chaneg free() call to Tcl_Free().
-
-Tue Aug 19 17:09:19 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (TCL_DEPS, TK_DEPS): New variables.
- (ITCL_DEPS, TIX_DEPS): New variables.
- (IDE_DEPS): New variable.
- (CDEPS): Include @CONFIG_DEPS@.
- * configure.in: Set and substitute CONFIG_DEPS and TIX_DEPS.
- * configure: Rebuild.
-
-Sun Aug 17 00:42:11 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (gdb_listfuncs): New function that returns
- a list of all the functions in a source file.
-
-Tue Aug 12 16:35:21 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (install-only): Install tclIndex if ENABLE_IDE.
-
-Mon Aug 11 10:43:04 1997 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Use ide_event_init_from_environment.
-
-Fri Aug 8 15:59:24 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Change gdbtk_lib_tmp and gdbtk_file to be
- dynamically allocated, rather than fixed size. Pass "gdbtcl" to
- ide_initialize_paths to match installed directory name. If IDE,
- use auto_path to search for main.tcl.
- * Makefile.in (install-only): If ENABLE_IDE, install from gdbtcl2
- rather than gdbtcl.
-
- * gdbtk.c (gdbtk_cleanup): New static function.
- (gdbtk_init): Add gdbtk_cleanup as a final cleanup. Uncomment
- call to ide_initialize_paths. If we can't initialize the event
- system, set GDBTK_IDE to 0 in the Tcl interpreter. Create the
- ide_window_register and the ide_window commands. Initialize tk,
- itcl, and tix after initializing the IDE.
-
- * configure.in (tixdir): Update for cygwin32 case for Tcl 8.0.
- * configure: Rebuild.
-
-Fri Aug 8 00:13:32 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * gdbtk.c (breakpoint_notify): Change buffer size from 100
- to 256 to avoid memory corruption with very long pathnames.
-
-Thu Aug 7 14:08:23 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * configure.in: Change required Tix version to 4.1.8.0 .
- * configure: Rebuilt.
-
-Fri Aug 1 15:21:44 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (Tcl_Alloc): Don't provide our own version of this if
- _WIN32.
- (Tcl_Realloc, Tcl_Free): Likewise.
- * configure.in: Check for cygwin32 environment. Define and
- substitute WIN32LIBS and WIN32LDAPP. Always set configdir to
- unix; setting it to win was for an old Tcl/Tk configuration
- scheme.
- * aclocal.m4 (CY_AC_LOAD_TKCONFIG): Substitute TK_BUILD_INCLUDES.
- * Makefile.in (TK_CFLAGS): Add @TK_BUILD_INCLUDES@.
- (WIN32LDAPP, WIN32LIBS): Define.
- (CLIBS): Add $(WIN32LIBS).
- (gdb): Use $(WIN32LDAPP).
- * configure: Rebuild.
-
-Tue Jul 22 19:45:37 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * configure.in, aclocal.m4: Another fix to find the
- correct Tix library name.
-
- * configure: Rebuilt.
-
-Mon Jul 21 22:24:07 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * aclocal.m4: Search for the correct tix library.
-
-Thu Jul 10 00:02:41 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * Makefile.in, configure.in, aclocal.m4: Add Itcl, Tix, and
- IDE configuration information.
-
- * gdbtk.c (breakpoint_notify): Send address, linenumber and
- filename when a breakpoint is set. Avoids call to bp_info.
- (gdbtk_init): Call Tcl_FindExecutable(). Add code to handle
- Itcl, Tix and IDE initialization.
-
- * configure: Regenerated.
-
-Fri Jun 13 10:28:09 1997 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Make truth value test explicit.
- Remove unused static variable "Gdbtk_Library".
-
-Sat Jun 7 02:34:19 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * gdbtk.c (gdb_get_breakpoint_info): Add string for new
- enumeration del_at_next_stop to bpdisp array.
-
-Tue Jun 3 15:46:51 1997 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in (LIB_RUNTIME_DIR): New variable.
-
-Wed May 7 19:10:19 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk.c (wrapped_call): New function - make actual call to tk
- worker function.
- (call_wrapper): Rewrite to use top.c:catch_errors.
-
- * gdbtk.c (gdb_stop): If No target_stop set quit flag and hope for
- best.
-
-Mon Apr 21 14:00:08 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * gdbtk.c (gdb_disassemble): Store endian-ness in `di'.
-
-Wed Apr 16 12:33:06 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (install-only): Make list of gdbtcl files to install
- explicit - was picking up files such as ChangeLog etc.
- (install-only): Don't blindly create the directory.
-
-Tue Apr 1 15:04:21 1997 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * configure.in (gdbtcl): Create soft-link for gdbtcl/ directory
- instead of gdbtk.tcl.
-
-Fri Mar 28 17:04:02 1997 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * Makefile.in (gdbtk.o): look for GDBTK_LIBRARY in $(datadir) by
- default, not $(srcdir).
-
-Wed Mar 19 15:16:17 1997 Martin M. Hunt <hunt@onions.cygnus.com>
-
- * Makefile.in: Install gdbtcl dir instead of gdbtk.tcl.
-
- * gdbtk.c: Added some ifdefs for Windows. Changed GDBTK_FILENAME
- to GDBTK_LIBRARY, which is now a path to search.
- (gdb_path_conv): New function. Convert Cygwin32 pathname to
- DOS-style pathname.
-
- * {aclocal.m4,configure.in}: Changes for Windows builds.
-
- * configure: Rebuilt.
-
-Fri Mar 14 10:01:29 1997 Tom Tromey <tromey@cygnus.com>
-
- * configure: Regenerated.
- * configure.in (LIBS): Re-reverse order of TCL_LIBS and TK_LIBS.
-
-Wed Mar 12 14:29:52 1997 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk.c (x_event): Use Tcl_DoOneEvent, TCL_DONT_WAIT,
- TCL_ALL_EVENTS.
-
- * configure: Regenerated.
- * configure.in (ENABLE_GDBTK): Put TCL_LIBS after TK_LIBS in
- LIBS.
-
-Mon Feb 10 13:50:53 1997 Stu Grossman (grossman@critters.cygnus.com)
-
- * gdbtk.c (call_wrapper): Clear running_now if an error occurs.
-
-Wed Dec 11 18:51:35 1996 Mark Alexander <marka@cygnus.com>
-
- * gdbtk.c (gdb_loc): Correct truncation of PC on 64-bit MIPS.
-
-Tue Nov 19 09:26:14 1996 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk.c (gdbtk_readline): Fix memory leak.
-
-Mon Nov 18 23:43:05 1996 Tom Tromey <tromey@cygnus.com>
-
- Fixes for Tcl 7.6 / Tk 4.2:
- * gdbtk.tcl (apply_filespec): Use tk_getOpenFile.
- Remove old fileselect code.
- * gdbtk.c (Tcl_Alloc): Rename from Tcl_Malloc.
-
-Fri Sep 27 10:25:30 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.tcl (create_copyright_window): Increase timeout from
- 15 seconds to 30 seconds.
-
-Wed Sep 4 17:28:40 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * configure configure.in: Add host *windows* to list of hosts
- that don't support GDBtk.
-
-Fri Aug 23 00:44:57 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.c (gdbtk_init): Check for a DISPLAY env variable and
- gracefully degrade to using command line interface if none is
- found.
-
-Fri Aug 9 12:32:53 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * Makefile.in (LIB_INSTALL_DIR): New macro.
- (TCL): Include @TCL_LD_SEARCH_FLAGS@.
-
-Thu Aug 1 20:35:01 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * gdbtk.c (mainWindow): Deleted.
- (cleanup_init): Don't destroy main window.
- (gdbtk_init): Main window now created by Tk_Init.
-
- * configure.in: Most X checks now handled automatically by Tk.
- Use new macros to find Tcl/Tk.
- * aclocal.m4: New version for new Tcl/Tk; from Don Libes.
- * config.in, configure: Regenerated.
-
- * Makefile.in (TCL, TCL_CFLAGS, TK, TK_CFLAGS, X11_CFLAGS,
- X11_LDFLAGS, X11_LIBS): Changed for new Tcl and Tk.
-
-Thu Aug 1 16:12:05 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * Makefile.in (gdbtk.tcl): put in $(datadir), not $(libdir).
-
-Fri Jul 26 14:07:37 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbtk.c (gdb_disassemble): Initialize di.flavour.
-
-Thu Jul 25 19:41:31 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.c (null_routine): Ditto.
- (gdbtk_flush): Ditto.
- (gdbtk_fputs): Ditto.
- (gdbtk_query): Ditto.
- (gdbtk_readline): Ditto.
- (gdbtk_readline_end): Ditto.
- (gdb_get_breakpoint_list): Ditto.
- (gdb_get_breakpoint_info): Ditto.
- (breakpoint_notify): Ditto.
- (gdbtk_create_breakpoint): Ditto.
- (gdbtk_delete_breakpoint): Ditto.
- (gdbtk_modify_breakpoint): Ditto.
- (gdb_loc): Ditto.
- (gdb_eval): Ditto.
- (gdb_sourcelines): Ditto.
- (map_arg_registers): Ditto.
- (get_register_name): Ditto.
- (gdb_regnames): Ditto.
- (get_register): Ditto.
- (gdb_fetch_registers): Ditto.
- (register_changed_p): Ditto.
- (gdb_changed_register_list): Ditto.
- (gdb_cmd): Ditto.
- (call_wrapper): Ditto.
- (gdb_listfiles): Ditto.
- (gdb_stop): Ditto.
- (gdbtk_dis_asm_read_memory): Ditto.
- (compare_lines): Ditto.
- (gdb_disassemble): Ditto.
- (tk_command): Ditto.
- (cleanup_init): Ditto.
- (gdbtk_interactive): Ditto.
- (x_event): Ditto.
- (gdbtk_wait): Ditto.
- (gdbtk_call_command): Ditto.
- (tk_command_loop): Ditto.
- (gdbtk_init): Ditto.
-
- * gdbtk.c (register_changed_p): Remove unused local variable "buf".
-
-Sat Jul 20 17:46:40 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.tcl (files_command): Reorder the binding tags for
- the listbox widget to avoid referencing the listbox after
- the containing widget has been destroyed by the action of
- a previous binding.
-
-Sat Jul 20 10:09:28 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.tcl (delete_expr): Unset corresponding element of
- expr_update_list when destroying an expression.
- (create_expr_window): Initialize expr_num, delete_expr_num,
- and expr_update_list here when each new expression window
- is created, rather than once at startup.
-
-Mon Jul 15 16:44:05 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * gdbtk.c (gdb_disassemble): Setup di.mach from
- tm_print_insn_info.mach, and set endian from TARGET_BYTE_ORDER.
-
-Fri Jun 21 11:04:47 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.tcl (create_register_windows): Include missing '$'s.
- Add global declarations for various reg_format_* variables.
- * gdbtk.tcl (populate_register_window): Make initial window one
- line taller to account for new column header line.
-
-Fri Jun 21 09:46:47 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.c (get_register): Support for printing raw formats.
- * gdbtk.tcl: Add hint for using debug_interface.
- (center_window, add_breakpoint_frame, delete_breakpoint_frame):
- Enclose arg in braces for consistency.
- (create_registers_window, populate_reg_window, update_registers):
- Major rewrite to support displaying multiple formats in the register
- window.
- (init_reg_info): New function.
- (recompute_reg_display_list): Reset reg_display_list, start
- register display lines at line 2.
-
-Thu Jun 20 08:18:59 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.tcl (gdbtk_tcl_readline_begin): Handle backspace to
- avoid backing up over prompt. At every input, make sure insert
- point is at least after command start, handle control-u to delete
- current input line.
- (tclsh): Handle backspace to avoid backing up over prompt. Handle
- control-u to delete current input line.
-
-Wed Jun 19 17:23:38 1996 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: disable gdbtk for *cygwin32* hosted compiles
- * configure: regenerated with autoconf 2.8
-
-Sun May 19 16:49:37 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.c (gdbtk_readline_begin, gdbtk_readline, gdbtk_readline_end):
- New functions.
- (tk_command_loop): Set instream to NULL to enable Tk user interaction.
- (gdbtk_init): Set readline_begin_hook, readline_hook,
- and readline_end_hook.
- * gdbtk.tcl (gdbtk_tcl_readline_begin, gdbtk_tcl_readline,
- gdbtk_tcl_readline_end): New functions.
- (tclsh): Pack scroll bar on right side of window, not left.
-
-Fri May 17 13:54:34 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.tcl (create_command_window): Change a misspelled "get"
- to the intended "cget".
- (delete_line): Fix so it deletes the current line at the
- insertion cursor.
-
-Thu May 16 19:20:29 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.tcl (gdb_prompt): Set this early on.
- (create_command_window): Use gdb_prompt rather than "(gdb) ".
- (gdbtk_tcl_preloop): Proc executed just prior to Tk main loop.
- (tclsh): If an evaluation window already exists, just bring it
- to the front instead of trying to create another.
- * gdbtk.c (tk_command_loop): New function.
- (gdbtk_init): Call tk_command_loop rather than Tk_MainLoop.
-
-Thu May 16 16:16:35 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.tcl (evaluate_tcl_command, tclsh): New functions that
- implement a tcl evaluation window for gdbtk maintainers to use.
-
-Thu May 16 11:42:58 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * gdbtk.tcl (files_command): Correctly insert list of files into
- listbox widget.
-
- * gdbtk.tcl (files_command): listbox command no longer accepts
- -geometry.
-
-Wed May 15 16:04:09 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtk.tcl (create_command_window): If command window's buffer
- is disabled, don't execute any of the key bindings.
-
-Mon May 13 13:43:25 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.c (tk_command): Catch case where no argument is given
- since this will cause the tcl interpreter to dump core.
-
-Wed May 8 20:33:24 1996 Fred Fish <fnf@cygnus.com>
-
- * gdbtk.c: Fix a couple of misspellings.
-
-Thu May 2 19:17:49 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtk.tcl (debug_interface): New global, use to aid debugging.
- (insert_breakpoint_tag, delete_breakpoint_tag): Fix range.
- (file_popup_menu): Delete, never used.
- (listing_window_popup): Rename from listing_window_button_1,
- remove breakpoint toggling code.
- (toggle_breakpoint): New procedure.
- (create_file_win): Bind popup menu to button 2, toggle breakpoints
- with button 1 in breakpoint area, add display of tagged areas if
- debugging on.
-
-Fri Apr 5 13:44:40 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtk.c (running_now): New global variable.
- (gdb_cmd): Test it before executing any command.
- (gdbtk_call_command): Set it when inferior is running.
- * gdbtk.tcl (gdbtk_tcl_busy, gdbtk_tcl_idle): Enable and
- disable interaction with command window's text appropriately.
-
-Fri Apr 5 13:25:42 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * gdbtk.c (SIOCSPGRP, linux): If on Linux, undef SIOCSPGRP, since
- some versions of the kernel don't support it.
-
-Tue Feb 6 16:31:25 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * gdbtk.tcl (create_file_win): Eliminate text widget B1 binding so
- double-clicking will work again.
- (create_asm_win): Put "break" at end of all B1 bindings.
- (create_file_win): Lower "sel" tag, don't raise it.
- (ensure_line_visible): New proc.
- (update_listing, update_assembly): Use it.
- (create_copyright_window): Destroy window on Leave event.
- (create_command_window): Put "break" at end of all B2 bindings.
-
-Wed Jan 24 15:28:41 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * gdbtk.tcl, gdbtk.c: Updated copyrights.
-
- * configure.in: Look for -ldl or -ldld when using Tcl 7.5 or
- greater.
- * configure: Rebuilt.
-
-Tue Jan 23 09:00:48 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * gdbtk.c (gdb_disassemble): Pass fprintf_unfiltered to
- INIT_DISASSEMBLE_INFO.
-
-Mon Jan 15 09:58:41 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * gdbtk.tcl (create_expr_window): Many changes to update GUI.
- (add_expr): Changes from create_expr_window.
- (create_command_window): Set focus.
- (delete_expr): Rewrote.
- (expr_update_button): New proc.
- (add_expr): Put bindings on FocusIn, FocusOut.
- Don't allow .file_popup to be torn off.
-
-Fri Jan 12 09:36:17 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * gdbtk.tcl (gdbtk_tcl_query): Swap Yes and No buttons.
- (update_listing): Use lassign. Use "see" to scroll. Don't need
- screen_top, screen_bot, screen_height.
- (update_assembly): Use "see" to scroll.
- (textscrollproc): Removed.
- (create_file_win): Don't use textscrollproc.
- (asmscrollproc): Removed.
- (create_asm_window): Don't use asmscrollproc.
- (create_asm_win): Ditto.
- (screen_height, screen_top, screen_bot): Removed.
- (run_editor): New proc.
- (build_framework): Use it.
- (create_file_win, create_source_window): Don't use textscrollproc.
- (create_breakpoints_window): Set -xscrollcommand on canvas.
- (not_implemented_yet): Default button is 0.
- (delete_char): Don't use tk_textBackspace.
- (create_command_window): Allow Tk bindings to fire after deleting
- character.
- (create_command_window): Make Delete delete left, not right.
-
-Thu Jan 11 10:08:14 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * gdbtk.tcl (FSBox): Don't use tk_listboxSingleSelect.
-
- Changes in sync with expect:
- * configure.in (ENABLE_GDBTK): Use CY_AC_PATH_TCL and
- CY_AC_PATH_TK.
- * aclocal.m4: Replaced with version from expect.
- * configure: Regenerated.
-
-Wed Jan 10 09:07:22 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * gdbtk.tcl (gdbtk_tcl_fputs, gdbtk_tcl_fputs_error,
- gdbtk_tcl_flush): Use "see", not "yview".
- (gdbtk_tcl_query): Use questhead bitmap.
- various: Always wrap condition of 'if' in {...}.
- (add_breakpoint_frame): Set -value on radiobuttons.
- (lassign): New proc.
- (add_breakpoint_frame): Use lassign, not series of assignments.
- (decr): Made faster.
- (interactive_cmd): Use "see", not "yview".
- (not_implemented_yet): Use warning bitmap.
- (update_expr): Don't allow $expr to be evalled by Tcl.
- (create_expr_window): Don't use "focus".
- (delete_char, delete_line): Define globally.
- (delete_line, delete_char, create_command_window, update_autocmd,
- build_framework, create_asm_win, create_file_win): Use "see", not
- "yview".
- (create_copyright_window, center_window, bind_widget_after_class):
- New procs.
- (FSBox,create_command_window, create_autocmd_window): Binding
- changes for Tk4.
- (textscrollproc): Define globally.
- (build_framework): tk_menuBar no longer needed. Keys Prior, Next,
- Home, End, Up, and Down are all defined by Tk.
- (apply_filespec): Use error bitmap in dialog.
- (files_command): Don't use tk_listboxSingleSelect.
- (files_command): Don't use "uniq" to remove duplicates from a
- list.
- (update_assembly): Use lassign.
- (create_asm_win): Removed redundant bindings.
- (listing_window_button_1, file_popup_menu): Use tk_popup.
- (ButtonRelease-1 binding): Just remove tag from window; rest
- handled by Tk.
-
- * gdbtk.c (gdbtk_query): Use Tcl_Merge to provide quoting.
- (call_wrapper): Use Tcl_Eval, not Tcl_VarEval.
- (gdbtk_call_command): Ditto.
-
-Thu Jan 4 16:04:54 1996 Stu Grossman (grossman@cygnus.com)
-
- * configure configure.in: Make --enable-gdbtk be the default.
-
-Thu Dec 28 15:10:49 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * README.GDBTK: Polish introductory paragraph.
-
-Mon Oct 16 11:27:06 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdb_disassemble): Use fprintf_unfiltered instead of
- fprintf_filtered.
-
-Tue Oct 10 15:26:39 1995 Fred Fish <fnf@cygnus.com>
-
- * README.GDBTK: Updated for version 4.15.
-
-Sat Aug 19 17:20:22 1995 Michael Tiemann <tiemann@axon.cygnus.com>
-
- * gdbtk.tcl: ENABLE comes back as "1" or "0", not "enable" or
- "disable".
- Also, wire up the breakpoint window so that it can be demo'd.
-
-Tue Aug 1 11:44:53 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * gdbtk.c: Include "gdb_string.h" instead of <string.h>.
-
-Tue Jun 20 10:19:40 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c: Add functions Tcl_Malloc, Tcl_Realloc, and Tcl_Free.
-
- * gdbtk.tcl (add_breakpoint_frame): Add more fields.
- * (create_file_win create_asm_win build_framework): Create null
- bindings for meta keys to keep window from dropping down to
- insertion point when meta is pressed by itself. New bindings:
- Up/Down - Scroll up/down one line at a time
- Next/Prior - Scroll up/down one page at a time
- Home/End - Warp to current pc/end of file
- * (build_framework): Turn on breakpoint menu.
- * (create_command_window): Implement tab completion. Add binding
- for ^C to stop target.
-
-Fri May 19 06:15:40 1995 Jim Kingdon <kingdon@deneb.cygnus.com>
-
- * gdbtk.c: Conditionalize use of stdarg rather than varargs on
- ANSI_PROTOTYPES not __STDC__; it must match the definition of
- PARAMS.
-
-Thu May 18 15:58:46 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * gdbtk.c (gdbtk_query): Use stdarg.h macros when compiling with
- an ANSI compiler.
-
-Sat Apr 15 13:52:24 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtk.c (gdb_disassemble): Read from inferior if connected
- to a VxWorks target.
-
-Fri Apr 14 10:18:20 1995 Stu Grossman (grossman@cygnus.com)
-
- * README.GDBTK: New file. Contains the obvious.
-
-Tue Apr 11 11:07:12 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * gdbtk.c (gdbtk_init): If SIOCSPGRP is not available, but
- F_SETOWN is, use that.
-
-Thu Apr 6 17:00:46 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * Makefile.in (X11_INCLUDES): Define as empty.
- (X11_CFLAGS): Define as including $(X11_INCLUDES).
- (X11_LIB_SWITCHES): Define as empty.
- (X11_LIBS): Define as -lX11.
-
- * configure.in (enable_gdbtk): If gdbtk, support the --x-includes
- and --x-libraries switches, setting the X11_INCLUDES and
- X11_LIB_SWITCHES respectively. Instead of using a hardcoded -lX11
- in ENABLE_CLIBS, use the X11_LIB_SWITCHES and X11_LIBS variables.
-
- * gdbtk.c (gdbtk_init): If SIOCSPGRP is not available, don't use
- it. This means that the stop button doesn't work, but is better
- than nothing.
-
-Wed Mar 29 17:09:29 1995 Stu Grossman (grossman@cygnus.com)
-
- * Makefile.in (gdbtk.o): Use X11_CFLAGS to provide alternate
- locations (per-host) for X11 include files.
- * config/pa/hppahpux.mh (XM_CLIBS): Add -L/usr/lib/X11R5 to force
- the use of R5 libs.
- (X11_CFLAGS): Add this to indicate the locs
- of the R5 include files.
-
-Wed Mar 8 16:12:21 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdb_get_breakpoint_info): Return error if breakpoint
- type is not bp_breakpoint.
-
-Tue Feb 14 17:16:41 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c: Ditto.
- * gdbtk.c: General cleanups, get rid of unused variables. Redo
- handling of stdout/stderr to just return output as the result of
- the tcl command that caused the output. Cleanup -Wall stuff.
- * (breakpoint_notify): Now returns just action and breakpoint
- number.
- * (gdb_get_breakpoint_list): New routine. Does the obvious.
- * (gdb_get_breakpoint_info): Mostly derived from the old
- breakpoint_notify, but returns lots more info.
- * (dsprintf_append_element): Helper routine, works like printf,
- but appends a tcl element onto the specified DString. Good for
- building up lists as return values.
- * (gdbtk_enable/disable_breakpoint): Go away. Replaced with
- gdbtk_modify_breakpoint.
- * (*many routines*): Use new result protocol.
- * (call_wrapper): Make sure that recursive calls don't trash results.
- * gdbtk.tcl: New windows, autocmd, and breakpoints.
- * (gdbtk_tcl_fputs): Don't use $current_output_win redirection
- anymore. It's not needed (in fact, this routine may not be needed
- anymore).
- * (gdbtk_tcl_breakpoint): Change to reflect new breakpoint
- notification protocol.
- * (gdbtk_tcl_busy gdbtk_tcl_idle): Straighten out buttons, remove
- catches.
- * (interactive_cmd): Use this wrapper around button invocations
- of many commands. This will catch errors and put the results into
- the command window. It also updates all the other windows.
- * Also, change reliefs of most things to sunken. This actually
- looks better.
- * (create_file_win): Fix margin binding to allow breakpoints to
- work again.
- * (create_asm_win): Use return value of gdb_disassemble instead
- of implicit I/O to the command window.
- * (create_command_window): Use new result protocol to get output
- from commands.
-
-Sun Feb 5 20:32:44 1995 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * gdbtk.c (gdb_disassemble): Deference pointer to function before
- calling it (pre-ANSI compilers generally require this).
-
-Fri Feb 3 11:19:20 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdb_disassemble): Get rid of
- dis_asm_read_memory_hook. We can now call the disassemblers
- directly and have no need for this hook anymore.
-
-Mon Jan 30 17:34:24 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl (create_file_win): Disable old popup menu for source
- window.
-
-Wed Jan 25 18:23:46 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdbtk_init): Prevent segfault when gdbtk.tcl can't be
- found.
- * gdbtk.tcl: Initialize expr_update_list() to prevent errors when
- popping up expression window for the first time.
-
-Tue Jan 24 12:10:28 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl (create_registers_window): Work around a radiobutton
- widget bug to make Options|Natural button work.
-
- * gdbtk.c (gdb_disassemble): Fix problem with source+assembly and
- g++ caused by out-of-order pc's.
- * gdbtk.tcl (files_command): Remove duplicate file names. Also,
- add scrollbar.
-
-Mon Jan 23 17:21:09 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl: Take .gdbtkinit if it exists. Makes gdbtk match the
- doc!
-
-Thu Jan 12 15:02:40 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c, gdbtk.tcl: Update/add copyright.
- * gdbtk.tcl (build_framework): Several fixes for filespec widget,
- including dismiss button, and better error handling.
- * (create_command_win): Bind button 2 to retrieve selection.
-
-Wed Jan 11 17:06:55 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl: Add button to control mixed source disassembly.
- Use text widgets in expr window. The give me more control over
- layout.
- Add auto-updating of exprs in expression window.
- Handle expressions out of scope a bit better.
- Make selected window pop up to the top when invoked via the
- menubar.
- Make copyright message have raised relief.
-
- * gdbtk.c (gdbtk_init): Improve handling for errors in gdbtk.tcl
- during startup.
-
-Thu Jan 5 17:38:29 1995 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (finish_saving_output): Don't do anything if not saving
- output.
- * (breakpoint_notify): Don't send null filename to tcl.
- * (gdb_eval): New tcl command to eval an expression.
- * (gdb_disassemble): New tcl command to do disassembly. This
- allows tcl code to choose between exec file and target memeory,
- and can also do mixed source and assembly.
- * (gdbtk_init): Move reading of gdbtk.tcl to the end to make sure
- that more of the environment is set up. Also, create link between
- gdb and tcl vars disassemble{-_}from{-_}exec.
-
- * gdbtk.tcl: New expression window support.
- * Make assembly window be 80 columns wide.
- * Use new disassembly method. Add menu items to select
- disassembly from exec file or target.
- * Change View menubar item to Options.
-
- * Get rid of Stack, Breakpoints, Signals, and Variables Windows,
- since they don't exist yet.
-
- * Pop up a copyright window on startup.
-
-Wed Jan 4 19:49:10 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtk.tcl (build_framework): Add standard commands menu, more
- windows to standard windows menu.
- (not_implemented_yet): Clarify message.
-
-Fri Dec 30 15:49:00 1994 Stan Shebs <shebs@andros.cygnus.com>
-
- * gdbtk.tcl (FSBox): New proc, File Selection Box code from exmh.
- (not_implemented_yet): New proc.
- (build_framework): Add various file commands to file menu.
-
-Fri Dec 23 16:18:50 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdbtk_wait gdbtk_init): Portability improvements for
- SIGIO handling.
-
-Mon Dec 19 09:55:47 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl (update_assembly): Force update to make sure that pc
- is visible when creating new assembly windows.
-
-Sun Dec 18 23:31:20 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdbtk_wait gdbtk_init): Use different method of
- enabling I/O interrupts for SVR4 (streams).
- * (start_saving_output save_output get_saved_output
- finish_saving_output flush_holdbuf gdbtk_flush gdbtk_fputs
- gdbtk_init):
- Totally revamp to use TCLs dynamic string functions. Also, quote
- all data passed back to TCL to prevent errors with unmatched
- braces, odd characters, etc... This fixes several wierd problems
- with outputting strings containing unmatched braces.
- * (breakpoint_notify gdb_loc): Use long hex format to output
- addresses of breakpoints and PCs. This fixes some Alpha problems.
- * (breakpoint_notify): Add stream arg to call to gdbtk_fputs.
- * (gdb_listfiles): Also, go through the symtabs when looking for
- files. This makes xcoff work (sort of), but probably breaks
- something else.
- * (gdb_stop): Return TCL_OK instead of nothing. This fixes odd
- TCL errors when hitting stop button.
- * (tk_command): Don't pass interp->result on to Tcl_{Var}Eval, as
- that will trash the result. strdup the result instead and pass
- that on. Improve error handling as well.
-
- * gdbtk.tcl (gdbtk_tcl_flush): Use global def of
- current_output_win. Makes flushing actually work!
- * (asm_win_name create_asm_win update_assembly): Bunch of fixes
- to make assembly windows stop flashing when loading a new file.
- * (gdbtk_tcl_busy gdbtk_tcl_idle): Use catch to prevent gdb_cmd
- errors from losing control.
- * (create_source_window): Add source file selection to View menu.
- * (create_command_window (<Key-Return> binding): Quote text fed
- into gdb_cmd to prevent eval errors.
-
-Thu Dec 15 16:40:10 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c: Improve mechanism for capturing output values.
- (full_filename): Remove.
- (gdb_cmd call_wrapper gdbtk_init): Protect all calls from tcl land
- with call_wrapper. This prevents longjmps (usually via error())
- from jumping out of tcl/tk and leaving things in an indeterminate
- state.
- (gdbtk_fputs): Differentiate stdout from stderr when passing text
- into tcl land.
- * gdbtk.tcl: New view option to disable line numbers. Put catch
- around most uses of gdb_cmd. Add update button to reg config
- window. Stop doing immediate updates when selecting registers.
- Change register view values into checkbuttons.
-
-Mon Dec 12 16:59:29 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl (reg_config_menu create_registers_window
- recompute_reg_display_list): Use array instead of individual vars
- for register display list.
- * (recompute_reg_display_list update_registers): Fix bug with not
- displaying all registers.
-
-Mon Dec 12 12:22:21 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c: New tcl commands: gdb_fetch_registers,
- gdb_changed_register_list, and gdb_regnames.
- * gdbtk.tcl: Use monochrome color model for now.
- * (delete_breakpoint_tag create_file_win): Add breakdot support.
- * (create_file_win create_asm_win update_listing build_framework
- create_source_window create_command_window): Re-org window
- creation to give all windows consistent look and feel.
- * (update_listing update_asm): Change pc pointer to '->'.
- * (registers_command reg_config_menu create_registers_window
- populate_reg_window update_registers): Revamp register window.
- Allow selection of registers to be displayed. Highlight changed
- registers.
-
-Mon Nov 28 09:17:20 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl (build_framework): Fix bug with setting window titles.
-
- * gdbtk.tcl (build_framework): Add "Report bug" to help menu.
-
- * gdbtk.tcl: Re-arrange windows using new, consistent layout. Clean
- up lots of code and centralize framework initialization.
-
-Wed Nov 16 15:28:29 1994 Rob Savoye (rob@cygnus.com)
-
- * Makefile.in: Fix the test for installing gdbtk.
-
-Mon Nov 14 08:51:29 1994 Stu Grossman (grossman@cygnus.com)
-
- * Makefile.in: Install gdbtk.tcl.
- * configure.in: Add ENABLE_GDBTK flag.
- * gdbtk.c (gdb_sourcelines): Returns list of source lines
- containing code. (gdb_regnames): Returns list of register names.
-
-Thu Nov 3 14:25:24 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdb_stop): Switch to target_stop().
-
-Tue Nov 1 16:41:12 1994 Stu Grossman (grossman@cygnus.com)
-
- * Makefile.in: Use $(objdir)/tcl and $(objdir)/tk if they are
- available.
- * configure.in (ENABLE_CLIBS): Use $(TCL) and $(TK) instead of
- -ltcl and -ltk.
- * gdbtk.c: Get rid of lots of unnecessary #includes.
- * (gdbtk_init): Use ConnectionNumber macro instead of referencing
- Display structure directly.
- * gdbtk.tcl: Change exit button to quit button.
-
-Wed Oct 26 15:41:07 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c: Change sense and name of no_windows variable. Now
- called use_windows, and defaults to off (for compatibility).
-
-Thu Oct 20 17:35:45 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdb_cmd): Force GUI into idle mode when errors occur.
- * (gdb_stop): New tcl command to stop the target process.
- * (x_event, gdbtk_wait): Allow GUI to interrupt gdb out of target
- waits.
- * (gdbtk_call_command): Wrapper around command processing to
- alert GUI of target state changes.
- * (gdbtk_init): Get the fd of X server for doing async
- notification of X events (via x_event). Setup new hooks.
- * gdbtk.tcl: Add scrollbars to assembly and command windows.
- * Change window foreground & background colors.
- * Create margin tag for breakpoints in source and assembly windows.
- * Add new routines to be invoked when target state changes to/from
- idle.
- * Add start of expression window.
- * Change bindings of mouse button 1 in assembly and source window
- to just set or clear breakpoints when in the margin tag.
- * Change shape of register window to be more vertical to better
- reflect its contents.
- * Add stop button.
- * Cleanup some code around command window bindings.
-
-Sat Sep 17 17:05:14 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl: Let ^U delete lines in the command window.
-
-Fri Sep 16 15:40:34 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c: Replace calls to full_filename with symtab_to_filename.
- * gdbtk.tcl: New routine pc_to_line replaces in line code. New
- routine decr replaces in line code.
- * (create_file_win): Use catch to handle open failures more
- elegantly. Also, create special window to display file open
- failure message. Move opening of file prior to creation of text
- widget.
- * (create_asm_win): Add PC as argument. We now base disassembly
- on PC instead of function name, since function names can be
- ambiguous (usually seen with shared libs). Also, use catch to
- simplify code where we don't care about failures.
-
-Wed Sep 14 00:55:26 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.tcl: Add ref counts to breakpoint tags.
- * Put quotes around function name in disassemble command to better
- handle assembler names containing `.'.
- * Make pclist element 0 be filler to avoid off-by-one problem with
- line numbers.
- * Set names of top-level windows.
- * Add register display window.
- * Add PC to label of assembly window.
-
-Tue Sep 13 08:59:04 1994 Stu Grossman (grossman@cygnus.com)
-
- * gdbtk.c (gdbtk_flush gdbtk_fputs): Buffer up output to make
- disassembly more efficient.
- * (breakpoint_notify): Include pc in gdbtk_tcl_breakpoint
- callback.
- * (gdb_loc): Include pc in return value. Also, return function
- name if arg was specified.
- * (gdb_cmd_stub): Call gdb_flush to drain internal GDB buffers
- after command completes.
- * (gdbtk_init): Improve error handling.
-
- * gdbtk.tcl: Add lots of comments. Clean up code.
- * (gdbtk_tcl_fputs): Make output window redirectable.
- * Add assembly window, and breapoint support.
- * Make button 1 in margin toggle breakpoints.
- * Use stippling to indicate breakpoint disabling.
-
-Fri Sep 2 19:11:40 1994 Stu Grossman (grossman@cygnus.com)
-
- * configure.in: Don't symlink to gdbtk.tcl if it's already there.
-
-Thu Jul 28 14:37:36 1994 Stu Grossman (grossman@cygnus.com)
-
- Support for TK GUI.
- * Makefile.in: Add rule for gdbtk.o.
- * configure.in: Add support for --enable-gdbtk.
- * gdbtk.c: New file. Contains support routines for TK interface.
- * gdbtk.tcl: New file. Implements GUI policy.
-
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/gdb/gdbtk/generic/ChangeLog-2000 b/gdb/gdbtk/generic/ChangeLog-2000
deleted file mode 100644
index 51993bdee1a..00000000000
--- a/gdb/gdbtk/generic/ChangeLog-2000
+++ /dev/null
@@ -1,211 +0,0 @@
-2000-11-29 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk-cmds.c (Gdbtk_Init): Create gdb_current_directory,
- gdb_inferior_args, and gdb_source_path variables.
-
-2000-11-29 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk-cmds.c (call_wrapper): Don't reset result if wrapped
- command returned error.
-
-2000-11-28 Tom Tromey <tromey@cygnus.com>
-
- * gdbtk-cmds.c (gdb_clear_file): Use Tcl_WrongNumArgs.
- (gdb_confirm_quit): Likewise.
- (gdb_force_quit): Likewise.
- (gdb_eval): Likewise.
- (gdb_immediate_command): Likewise.
- (gdb_get_vars_command): Likewise.
- (gdb_get_line_command): Likewise.
- (gdb_get_file_command): Likewise.
- (gdb_get_function_command): Likewise.
- (gdb_cmd): Likewise. Also, don't allow more than 2 arguments.
- (gdb_listfiles): Corrected usage of Tcl_WrongNumArgs.
- (gdb_listfuncs): Use Tcl_WrongNumArgs. Return error.
- (gdb_fetch_registers): Likewise.
- (gdb_tracepoint_exists_command): Use Tcl_WrongNumArgs.
- (gdb_get_tracepoint_info): Likewise.
- (gdb_get_trace_frame_num): Likewise.
- (gdb_actions_command): Likewise.
- (gdb_disassemble): Likewise. Also, return error.
- (gdb_get_breakpoint_list): Likewise.
- (gdb_path_conv): Likewise.
- (gdb_load_disassembly): Use Tcl_WrongNumArgs.
- (gdb_loc): Likewise.
- (gdb_set_bp): Likewise.
- (gdb_set_bp_addr): Likewise.
- (gdb_get_breakpoint_info): Likewise.
-
-2000-10-23 Fernando Nasser <fnasser@redhat.com>
-
- From 2000-10-19 Steven Johnson <sbjohnson@ozemail.com.au>
- Note: The original patch used asprintf/vasprintf. I changed it to
- use the new xasprintf/xvasprintf gdb functions.
- * gdbtk.c (TclDebug, gdbtk_init): Replaced the vast majority of
- sprintf/vsprintf calls with asprintf and vasprintf respectively.
- Should prevent any possible buffer overruns possible with
- fixed size sprintf buffers. Specifically fixes a problem with long
- filenames and clearing breakpoints overflowing their buffers when
- using sprintf, causing a segfault. Generically should also prevent
- any other similar problems from occuring.
- * gdbtk-cmds.c (sprintf_append_element_to_obj, get_pc_register,
- gdb_get_tracepoint_info, gdb_load_disassembly, gdbtk_load_source,
- gdbtk_load_asm, gdb_set_bp, gdb_set_bp_addr, gdb_get_breakpoint_info,
- gdb_selected_frame, gdb_selected_block, gdb_get_blocks): Ditto.
- * gdbtk-hooks.c (gdbtk_warning, gdbtk_ignorable_warning,
- gdbtk_readline_begin, gdbtk_set_hook, breakpoint_notify,
- gdbtk_query, tracepoint_notify, gdbtk_error_begin,
- gdbtk_annotate_signal): Ditto.
-
-2000-10-23 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * gdbtk-hooks.c (x_event): Only process events if the target is
- running.
-
-2000-10-23 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * gdbtk-variable.c: Removed. Obsolete file.
-
-2000-10-13 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * gdbtk.c (target_is_native): The "multi-thread" target is native.
-
-2000-09-15 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * gdbtk-varobj.c (variable_value): Send back the error text issued
- by gdb so it can be displayed in a pop-up box.
-
-2000-07-25 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * gdbtk-cmds.c (map_arg_registers): Set numregs to include the
- pseudo regs as well.
-
-2000-07-10 Kevin Buettner <kevinb@redhat.com>
-
- * gdbtk-cmds.c, gdbtk-hooks.c, gdbtk-variable.c: Eliminate use
- of PARAMS in function pointer declarations.
-
-2000-07-02 Kevin Buettner <kevinb@redhat.com>
-
- * gdbtk-cmds.c, gdbtk-hooks.c, gdbtk-variable.c,
- gdbtk-varobj.c, gdbtk-wrapper.c, gdbtk-wrapper.h, gdbtk.c,
- gdbtk.h: Eliminate use of PARAMS from declarations in these
- files.
-
-2000-06-08 Fernando Nasser <fnasser@cygnus.com>
-
- * gdbtk-cmds.c (get_register): Allow editing of typed registers if
- the type is a union with the first tag equal to the register name.
-
-Thu Jun 8 17:59:01 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- (gdb_load_info): Use make_cleanup_bfd_close.
- (gdb_search): Use make_cleanup_free_search_symbols.
- * gdbtk.c (cleanup_init): Change signature to match make_cleanups.
- (gdbtk_init): Discard make_cleanup_func cast.
- * gdbtk-cmds.c (gdb_eval): Ditto.
-
-2000-06-06 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * gdbtk.c: Remove CYGWIN32 conditional around timer machinery.
- Cygwin can handle timers fine now.
-
-2000-04-17 Jonathan Larmour <jlarmour@redhat.co.uk>
-
- * ChangeLog-gdbtk: Renamed to ChangeLog
- * ChangeLog: New file
- * gdbtk-cmds.c, gdbtk-hooks.c, gdbtk-variable.c, gdbtk-varobj.c,
- gdbtk-wrapper.h, gdbtk-wrapper.c, gdbtk.h, gdbtk.c: No need for
- changelog-default-name hint for Emacs now
-
-2000-04-14 Jonathan Larmour <jlarmour@redhat.co.uk>
-
- * gdbtk.c (gdbtk_init): For now, reset gdb_stdtarg to gdb_stdout
- when using gdbtk.
-
-2000-04-01 Jim Blandy <jimb@redhat.com>
-
- * gdbtk-hooks.c (gdbtk_restore_result_ptr): New function.
- * gdbtk.h (gdbtk_restore_result_ptr): Declare it.
- * gdbtk-cmds.c (gdbtk_load_asm): Use it to restore the old value
- of result_ptr, in case we get errors while disassembling things.
-
-2000-03-28 Jim Blandy <jimb@redhat.com>
-
- Handle the fact that there are holes in the register numbering.
- * gdbtk-cmds.c (gdb_regnames): If given the -numbers option,
- return the register numbers along with their names.
- (get_register_name): Record both the register name and number, if
- requested.
-
-2000-03-13 James Ingham <jingham@leda.cygnus.com>
-
- * gdbtk-varobj.c (variable_create): Pass the correct
- "how_specified" flag to the varobj_create routine.
-
-2000-02-29 James Ingham <jingham@leda.cygnus.com>
-
- * gdbtk-cmds.c (gdb_disassemble_driver): The to_shortname for
- Linux is "linuxthreads", not "linux-threads", so we have to change
- the heuristic to account for this. This fixes a crash when trying
- to disassemble from shared libraries.
-
-2000-02-23 Keith R Seitz <kseitz@nwlink.com>
-
- * gdbtk-wrapper.h: Add declarations for GDB_get_prev_frame, GDB_get_next_frame,
- GDB_find_relative_frame, GDB_get_current_frame.
- * gdbtk-wrapper.c (GDB_get_prev_frame, wrap_get_prev_frame): New functions.
- (GDB_get_next_frame, wrap_get_next_frame): New functions.
- (GDB_find_relative_frame, wrap_find_relative_frame): New functions.
- (GDB_get_current_frame, wrap_get_current_frame): New functions.
-
- * gdbtk-hooks.c (gdbtk_add_hooks): Use "specify_exec_file_hook" so
- that our hook is added to the list of hooks run instead of overwriting
- all other hooks.
-
- * gdbtk-cmds.c (gdb_stack): Wrap all calls to internal functions and
- deal with errors more gracefully.
-
-Wed Feb 23 13:01:36 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-cmds.c (gdbtk_dis_asm_read_memory): Change LEN to unsigned
- long. Match ../include/dis-asm.h change.
-
-Fri Feb 4 23:19:03 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk.c (gdbtk_init): Update default path to tcl code - now
- gdbtk/library.
-
-Fri Feb 4 23:19:03 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * ChangeLog-gdbtk, gdbtk-cmds.c, gdbtk-hooks.c, gdbtk-variable.c,
- gdbtk-varobj.c, gdbtk-wrapper.c, gdbtk-wrapper.h, gdbtk.c,
- gdbtk.h: Moved here from the top level GDB directory.
-
-Tue Feb 1 00:17:12 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-hooks.c, gdbtk-variable.c, gdbtk-wrapper.c,
- gdbtk-wrapper.h, gdbtk.h: Update to reflect rename of gdb-file /
- GDB_FILE to ui-file / ``struct ui_file''.
-
-2000-01-31 Keith Seitz <kseitz@nwlink.com>
-
- * gdbtk-cmds.c (gdb_disassemble_driver) If using multi-arch, set the
- architecture in the disassembly info.
-
-Mon Jan 31 18:32:06 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-variable.c, gdbtk-cmds.c, gdbtk.c: Include "tui/tui-file.h"
-
-Mon Jan 3 01:09:24 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtk-cmds.c (gdb_get_mem): Use builtin_type_int32 et.al. to
- force the word size to 32 bits.
-
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/gdb/gdbtk/generic/gdbtk-bp.c b/gdb/gdbtk/generic/gdbtk-bp.c
deleted file mode 100644
index 932ec1510aa..00000000000
--- a/gdb/gdbtk/generic/gdbtk-bp.c
+++ /dev/null
@@ -1,995 +0,0 @@
-/* Tcl/Tk command definitions for Insight - Breakpoints.
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#include "defs.h"
-#include "symtab.h"
-#include "symfile.h"
-#include "source.h"
-#include "linespec.h"
-#include "breakpoint.h"
-#include "tracepoint.h"
-#include "gdb_string.h"
-#include <tcl.h>
-#include "gdbtk.h"
-#include "gdbtk-cmds.h"
-
-/* From breakpoint.c */
-extern struct breakpoint *breakpoint_chain;
-
-/* From gdbtk-hooks.c */
-extern void report_error (void);
-
-/* These two lookup tables are used to translate the type & disposition fields
- of the breakpoint structure (respectively) into something gdbtk understands.
- They are also used in gdbtk-hooks.c */
-
-char *bptypes[] =
- {"none", "breakpoint", "hw breakpoint", "until",
- "finish", "watchpoint", "hw watchpoint",
- "read watchpoint", "acc watchpoint",
- "longjmp", "longjmp resume", "step resume",
- "sigtramp", "watchpoint scope",
- "call dummy", "shlib events", "catch load",
- "catch unload", "catch fork", "catch vfork",
- "catch exec", "catch catch", "catch throw"
- };
-char *bpdisp[] =
- {"delete", "delstop", "disable", "donttouch"};
-
-/* Is this breakpoint interesting to a user interface? */
-#define BREAKPOINT_IS_INTERESTING(bp) \
-((bp)->type == bp_breakpoint \
- || (bp)->type == bp_hardware_breakpoint \
- || (bp)->type == bp_watchpoint \
- || (bp)->type == bp_hardware_watchpoint \
- || (bp)->type == bp_read_watchpoint \
- || (bp)->type == bp_access_watchpoint)
-
-/* Is this breakpoint a watchpoint? */
-#define BREAKPOINT_IS_WATCHPOINT(bp) \
-((bp)->type == bp_watchpoint \
- || (bp)->type == bp_hardware_watchpoint \
- || (bp)->type == bp_read_watchpoint \
- || (bp)->type == bp_access_watchpoint)
-
-/*
- * These are routines we need from breakpoint.c.
- * at some point make these static in breakpoint.c and move GUI code there
- */
-
-extern struct breakpoint *set_raw_breakpoint (struct symtab_and_line sal,
- enum bptype bp_type);
-extern void set_breakpoint_count (int);
-extern int breakpoint_count;
-
-/* Breakpoint/Tracepoint lists. Unfortunately, gdb forces us to
- keep a list of breakpoints, too. Why couldn't it be done like
- treacepoints? */
-#define DEFAULT_LIST_SIZE 32
-static struct breakpoint **breakpoint_list;
-static int breakpoint_list_size = DEFAULT_LIST_SIZE;
-
-/*
- * Forward declarations
- */
-
-/* Breakpoint-related functions */
-static int gdb_find_bp_at_addr (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-static int gdb_find_bp_at_line (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-static int gdb_get_breakpoint_info (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST[]);
-static int gdb_get_breakpoint_list (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST[]);
-static int gdb_set_bp (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST objv[]);
-static int gdb_set_bp_addr (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-
-/* Tracepoint-related functions */
-static int gdb_actions_command (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-static int gdb_get_trace_frame_num (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-static int gdb_get_tracepoint_info (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-static int gdb_get_tracepoint_list (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-static int gdb_trace_status (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST[]);
-static int gdb_tracepoint_exists_command (ClientData, Tcl_Interp *,
- int, Tcl_Obj * CONST objv[]);
-static Tcl_Obj *get_breakpoint_commands (struct command_line *cmd);
-
-static int tracepoint_exists (char *args);
-
-/* Breakpoint/tracepoint events and related functions */
-
-void gdbtk_create_breakpoint (int);
-void gdbtk_delete_breakpoint (int);
-void gdbtk_modify_breakpoint (int);
-void gdbtk_create_tracepoint (int);
-void gdbtk_delete_tracepoint (int);
-void gdbtk_modify_tracepoint (int);
-static void breakpoint_notify (int, const char *);
-static void tracepoint_notify (int, const char *);
-
-int
-Gdbtk_Breakpoint_Init (Tcl_Interp *interp)
-{
- /* Breakpoint commands */
- Tcl_CreateObjCommand (interp, "gdb_find_bp_at_addr", gdbtk_call_wrapper,
- gdb_find_bp_at_addr, NULL);
- Tcl_CreateObjCommand (interp, "gdb_find_bp_at_line", gdbtk_call_wrapper,
- gdb_find_bp_at_line, NULL);
- Tcl_CreateObjCommand (interp, "gdb_get_breakpoint_info", gdbtk_call_wrapper,
- gdb_get_breakpoint_info, NULL);
- Tcl_CreateObjCommand (interp, "gdb_get_breakpoint_list", gdbtk_call_wrapper,
- gdb_get_breakpoint_list, NULL);
- Tcl_CreateObjCommand (interp, "gdb_set_bp", gdbtk_call_wrapper, gdb_set_bp, NULL);
- Tcl_CreateObjCommand (interp, "gdb_set_bp_addr", gdbtk_call_wrapper,
- gdb_set_bp_addr, NULL);
-
- /* Tracepoint commands */
- Tcl_CreateObjCommand (interp, "gdb_actions",
- gdbtk_call_wrapper, gdb_actions_command, NULL);
- Tcl_CreateObjCommand (interp, "gdb_get_trace_frame_num",
- gdbtk_call_wrapper, gdb_get_trace_frame_num, NULL);
- Tcl_CreateObjCommand (interp, "gdb_get_tracepoint_info",
- gdbtk_call_wrapper, gdb_get_tracepoint_info, NULL);
- Tcl_CreateObjCommand (interp, "gdb_get_tracepoint_list",
- gdbtk_call_wrapper, gdb_get_tracepoint_list, NULL);
- Tcl_CreateObjCommand (interp, "gdb_is_tracing",
- gdbtk_call_wrapper, gdb_trace_status, NULL);
- Tcl_CreateObjCommand (interp, "gdb_tracepoint_exists",
- gdbtk_call_wrapper, gdb_tracepoint_exists_command, NULL);
-
- /* Initialize our tables of BPs. */
- breakpoint_list = (struct breakpoint **) xmalloc (breakpoint_list_size * sizeof (struct breakpoint *));
- memset (breakpoint_list, 0, breakpoint_list_size * sizeof (struct breakpoint *));
-
- return TCL_OK;
-}
-
-/*
- * This section contains commands for manipulation of breakpoints.
- */
-
-/* set a breakpoint by source file and line number
- flags are as follows:
- least significant 2 bits are disposition, rest is
- type (normally 0).
-
- enum bptype {
- bp_breakpoint, Normal breakpoint
- bp_hardware_breakpoint, Hardware assisted breakpoint
- }
-
- Disposition of breakpoint. Ie: what to do after hitting it.
- enum bpdisp {
- del, Delete it
- del_at_next_stop, Delete at next stop, whether hit or not
- disable, Disable it
- donttouch Leave it alone
- };
-*/
-
-
-/* This implements the tcl command "gdb_find_bp_at_addr"
-
-* Tcl Arguments:
-* addr: CORE_ADDR
-* Tcl Result:
-* It returns a list of breakpoint numbers
-*/
-static int
-gdb_find_bp_at_addr (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- int i;
- CORE_ADDR addr;
- Tcl_WideInt waddr;
-
- if (objc != 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "address");
- return TCL_ERROR;
- }
-
- if (Tcl_GetWideIntFromObj (interp, objv[1], &waddr) != TCL_OK)
- return TCL_ERROR;
- addr = waddr;
-
- Tcl_SetListObj (result_ptr->obj_ptr, 0, NULL);
- for (i = 0; i < breakpoint_list_size; i++)
- {
- if (breakpoint_list[i] != NULL
- && breakpoint_list[i]->loc->address == addr)
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewIntObj (i));
- }
-
- return TCL_OK;
-}
-
-/* This implements the tcl command "gdb_find_bp_at_line"
-
-* Tcl Arguments:
-* filename: the file in which to find the breakpoint
-* line: the line number for the breakpoint
-* Tcl Result:
-* It returns a list of breakpoint numbers
-*/
-static int
-gdb_find_bp_at_line (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-
-{
- struct symtab *s;
- int i, line;
-
- if (objc != 3)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "filename line");
- return TCL_ERROR;
- }
-
- s = lookup_symtab (Tcl_GetStringFromObj (objv[1], NULL));
- if (s == NULL)
- return TCL_ERROR;
-
- if (Tcl_GetIntFromObj (interp, objv[2], &line) == TCL_ERROR)
- {
- result_ptr->flags = GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
-
- Tcl_SetListObj (result_ptr->obj_ptr, 0, NULL);
- for (i = 0; i < breakpoint_list_size; i++)
- if (breakpoint_list[i] != NULL
- && breakpoint_list[i]->line_number == line
- && !strcmp (breakpoint_list[i]->source_file, s->filename))
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewIntObj (i));
-
- return TCL_OK;
-}
-
-/* This implements the tcl command gdb_get_breakpoint_info
- *
- * Tcl Arguments:
- * breakpoint_number
- * Tcl Result:
- * A list with {file, function, line_number, address, type, enabled?,
- * disposition, ignore_count, {list_of_commands},
- * condition, thread, hit_count user_specification}
- */
-static int
-gdb_get_breakpoint_info (ClientData clientData, Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[])
-{
- struct symtab_and_line sal;
- int bpnum;
- struct breakpoint *b;
- char *funcname, *filename;
-
- Tcl_Obj *new_obj;
-
- if (objc != 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "breakpoint");
- return TCL_ERROR;
- }
-
- if (Tcl_GetIntFromObj (NULL, objv[1], &bpnum) != TCL_OK)
- {
- result_ptr->flags = GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
-
- b = (bpnum <= breakpoint_list_size ? breakpoint_list[bpnum] : NULL);
- if (!b || b->type != bp_breakpoint)
- {
- gdbtk_set_result (interp, "Breakpoint #%d does not exist.", bpnum);
- return TCL_ERROR;
- }
-
- sal = find_pc_line (b->loc->address, 0);
-
- filename = symtab_to_filename (sal.symtab);
- if (filename == NULL)
- filename = "";
-
- Tcl_SetListObj (result_ptr->obj_ptr, 0, NULL);
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj (filename, -1));
-
- funcname = pc_function_name (b->loc->address);
- new_obj = Tcl_NewStringObj (funcname, -1);
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, new_obj);
-
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewIntObj (b->line_number));
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj (core_addr_to_string
- (b->loc->address),
- -1));
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj (bptypes[b->type], -1));
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewBooleanObj (b->enable_state == bp_enabled));
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj (bpdisp[b->disposition], -1));
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewIntObj (b->ignore_count));
-
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- get_breakpoint_commands (b->commands));
-
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj (b->cond_string, -1));
-
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewIntObj (b->thread));
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewIntObj (b->hit_count));
-
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj (BREAKPOINT_IS_WATCHPOINT (b)
- ? b->exp_string
- : b->addr_string, -1));
-
- return TCL_OK;
-}
-
-/* Helper function for gdb_get_breakpoint_info, this function is
- responsible for figuring out what to type at the "commands" command
- in gdb's cli in order to get at the same command list passed here. */
-
-static Tcl_Obj *
-get_breakpoint_commands (struct command_line *cmd)
-{
- Tcl_Obj *obj, *tmp;
-
- obj = Tcl_NewObj ();
- while (cmd != NULL)
- {
- switch (cmd->control_type)
- {
- case simple_control:
- /* A simple command. Just append it. */
- Tcl_ListObjAppendElement (NULL, obj,
- Tcl_NewStringObj (cmd->line, -1));
- break;
-
- case break_control:
- /* A loop_break */
- Tcl_ListObjAppendElement (NULL, obj,
- Tcl_NewStringObj ("loop_break", -1));
- break;
-
- case continue_control:
- /* A loop_continue */
- Tcl_ListObjAppendElement (NULL, obj,
- Tcl_NewStringObj ("loop_continue", -1));
- break;
-
- case while_control:
- /* A while loop. Must append "end" to the end of it. */
- tmp = Tcl_NewStringObj ("while ", -1);
- Tcl_AppendToObj (tmp, cmd->line, -1);
- Tcl_ListObjAppendElement (NULL, obj, tmp);
- Tcl_ListObjAppendList (NULL, obj,
- get_breakpoint_commands (*cmd->body_list));
- Tcl_ListObjAppendElement (NULL, obj,
- Tcl_NewStringObj ("end", -1));
- break;
-
- case if_control:
- /* An if statement. cmd->body_list[0] is the true part,
- cmd->body_list[1] contains the "else" (false) part. */
- tmp = Tcl_NewStringObj ("if ", -1);
- Tcl_AppendToObj (tmp, cmd->line, -1);
- Tcl_ListObjAppendElement (NULL, obj, tmp);
- Tcl_ListObjAppendList (NULL, obj,
- get_breakpoint_commands (cmd->body_list[0]));
- if (cmd->body_count == 2)
- {
- Tcl_ListObjAppendElement (NULL, obj,
- Tcl_NewStringObj ("else", -1));
- Tcl_ListObjAppendList (NULL, obj,
- get_breakpoint_commands(cmd->body_list[1]));
- }
- Tcl_ListObjAppendElement (NULL, obj,
- Tcl_NewStringObj ("end", -1));
- break;
-
- case invalid_control:
- /* Something invalid. Just skip it. */
- break;
- }
-
- cmd = cmd->next;
- }
-
- return obj;
-}
-
-/* This implements the tcl command gdb_get_breakpoint_list
- * It builds up a list of the current breakpoints.
- *
- * Tcl Arguments:
- * None.
- * Tcl Result:
- * A list of breakpoint numbers.
- */
-static int
-gdb_get_breakpoint_list (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- int i;
- Tcl_Obj *new_obj;
-
- if (objc != 1)
- {
- Tcl_WrongNumArgs (interp, 1, objv, NULL);
- return TCL_ERROR;
- }
-
- for (i = 0; i < breakpoint_list_size; i++)
- {
- if (breakpoint_list[i] != NULL
- && breakpoint_list[i]->type == bp_breakpoint)
- {
- new_obj = Tcl_NewIntObj (i);
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, new_obj);
- }
- }
-
- return TCL_OK;
-}
-
-/* This implements the tcl command "gdb_set_bp"
- * It sets breakpoints, and notifies the GUI.
- *
- * Tcl Arguments:
- * filename: the file in which to set the breakpoint
- * line: the line number for the breakpoint
- * type: the type of the breakpoint
- * thread: optional thread number
- * Tcl Result:
- * The return value of the call to gdbtk_tcl_breakpoint.
- */
-static int
-gdb_set_bp (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- struct symtab_and_line sal;
- int line, thread = -1;
- struct breakpoint *b;
- char *buf, *typestr;
- enum bpdisp disp;
-
- if (objc != 4 && objc != 5)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "filename line type ?thread?");
- return TCL_ERROR;
- }
-
- sal.symtab = lookup_symtab (Tcl_GetStringFromObj (objv[1], NULL));
- if (sal.symtab == NULL)
- return TCL_ERROR;
-
- if (Tcl_GetIntFromObj (interp, objv[2], &line) == TCL_ERROR)
- {
- result_ptr->flags = GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
-
- typestr = Tcl_GetStringFromObj (objv[3], NULL);
- if (strncmp (typestr, "temp", 4) == 0)
- disp = disp_del;
- else if (strncmp (typestr, "normal", 6) == 0)
- disp = disp_donttouch;
- else
- {
- gdbtk_set_result (interp, "type must be \"temp\" or \"normal\"");
- return TCL_ERROR;
- }
-
- if (objc == 5)
- {
- if (Tcl_GetIntFromObj (interp, objv[4], &thread) == TCL_ERROR)
- {
- result_ptr->flags = GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
- }
-
- sal.line = line;
- if (!find_line_pc (sal.symtab, sal.line, &sal.pc))
- return TCL_ERROR;
-
- sal.section = find_pc_overlay (sal.pc);
- b = set_raw_breakpoint (sal, bp_breakpoint);
- set_breakpoint_count (breakpoint_count + 1);
- b->number = breakpoint_count;
- b->disposition = disp;
- b->thread = thread;
-
- /* FIXME: this won't work for duplicate basenames! */
- xasprintf (&buf, "%s:%d", lbasename (Tcl_GetStringFromObj (objv[1], NULL)),
- line);
- b->addr_string = xstrdup (buf);
- free(buf);
-
- /* now send notification command back to GUI */
- breakpoint_create_event (b->number);
- return TCL_OK;
-}
-
-/* This implements the tcl command "gdb_set_bp_addr"
- * It sets breakpoints, and notifies the GUI.
- *
- * Tcl Arguments:
- * addr: the CORE_ADDR at which to set the breakpoint
- * type: the type of the breakpoint
- * thread: optional thread number
- * Tcl Result:
- * The return value of the call to gdbtk_tcl_breakpoint.
- */
-static int
-gdb_set_bp_addr (ClientData clientData, Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[])
-
-{
- struct symtab_and_line sal;
- int thread = -1;
- CORE_ADDR addr;
- Tcl_WideInt waddr;
- struct breakpoint *b;
- char *saddr, *typestr;
- enum bpdisp disp;
-
- if (objc != 3 && objc != 4)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "address type ?thread?");
- return TCL_ERROR;
- }
-
- if (Tcl_GetWideIntFromObj (interp, objv[1], &waddr) != TCL_OK)
- return TCL_ERROR;
- addr = waddr;
- saddr = Tcl_GetStringFromObj (objv[1], NULL);
-
- typestr = Tcl_GetStringFromObj (objv[2], NULL);
- if (strncmp (typestr, "temp", 4) == 0)
- disp = disp_del;
- else if (strncmp (typestr, "normal", 6) == 0)
- disp = disp_donttouch;
- else
- {
- gdbtk_set_result (interp, "type must be \"temp\" or \"normal\"");
- return TCL_ERROR;
- }
-
- if (objc == 4)
- {
- if (Tcl_GetIntFromObj (interp, objv[3], &thread) == TCL_ERROR)
- {
- result_ptr->flags = GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
- }
-
- sal = find_pc_line (addr, 0);
- sal.pc = addr;
- b = set_raw_breakpoint (sal, bp_breakpoint);
- set_breakpoint_count (breakpoint_count + 1);
- b->number = breakpoint_count;
- b->disposition = disp;
- b->thread = thread;
- b->addr_string = xstrdup (saddr);
-
- /* now send notification command back to GUI */
- breakpoint_create_event (b->number);
- return TCL_OK;
-}
-
-/*
- * This section contains functions that deal with breakpoint
- * events from gdb.
- */
-
-/* The next three functions use breakpoint_notify to allow the GUI
- * to handle creating, deleting and modifying breakpoints. These three
- * functions are put into the appropriate gdb hooks in gdbtk_init.
- */
-
-void
-gdbtk_create_breakpoint (int num)
-{
- struct breakpoint *b;
- for (b = breakpoint_chain; b != NULL; b = b->next)
- {
- if (b->number == num)
- break;
- }
-
- if (b == NULL || !BREAKPOINT_IS_INTERESTING (b))
- return;
-
- /* Check if there is room to store it */
- if (num >= breakpoint_list_size)
- {
- int oldsize = breakpoint_list_size;
- while (num >= breakpoint_list_size)
- breakpoint_list_size += DEFAULT_LIST_SIZE;
- breakpoint_list = (struct breakpoint **) xrealloc (breakpoint_list, breakpoint_list_size * sizeof (struct breakpoint *));
- memset (&(breakpoint_list[oldsize]), 0, (breakpoint_list_size - oldsize) * sizeof (struct breakpoint *));
- }
-
- breakpoint_list[num] = b;
- breakpoint_notify (num, "create");
-}
-
-void
-gdbtk_delete_breakpoint (int num)
-{
- if (num >= 0
- && num <= breakpoint_list_size
- && breakpoint_list[num] != NULL)
- {
- breakpoint_notify (num, "delete");
- breakpoint_list[num] = NULL;
- }
-}
-
-void
-gdbtk_modify_breakpoint (int num)
-{
- if (num >= 0)
- breakpoint_notify (num, "modify");
-}
-
-/* This is the generic function for handling changes in
- * a breakpoint. It routes the information to the Tcl
- * command "gdbtk_tcl_breakpoint" in the form:
- * gdbtk_tcl_breakpoint action b_number b_address b_line b_file
- * On error, the error string is written to gdb_stdout.
- */
-static void
-breakpoint_notify (int num, const char *action)
-{
- char *buf;
-
- if (num > breakpoint_list_size
- || num < 0
- || breakpoint_list[num] == NULL
- /* FIXME: should not be so restrictive... */
- || breakpoint_list[num]->type != bp_breakpoint)
- return;
-
- /* We ensure that ACTION contains no special Tcl characters, so we
- can do this. */
- xasprintf (&buf, "gdbtk_tcl_breakpoint %s %d", action, num);
-
- if (Tcl_Eval (gdbtk_interp, buf) != TCL_OK)
- report_error ();
- free(buf);
-}
-
-/*
- * This section contains the commands that deal with tracepoints:
- */
-
-/* This implements the tcl command gdb_actions
- * It sets actions for a given tracepoint.
- *
- * Tcl Arguments:
- * number: the tracepoint in question
- * actions: the actions to add to this tracepoint
- * Tcl Result:
- * None.
- */
-
-static int
-gdb_actions_command (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- struct tracepoint *tp;
- Tcl_Obj **actions;
- int nactions, i, len;
- char *number, *args, *action;
- long step_count;
- struct action_line *next = NULL, *temp;
- enum actionline_type linetype;
-
- if (objc != 3)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "number actions");
- return TCL_ERROR;
- }
-
- args = number = Tcl_GetStringFromObj (objv[1], NULL);
- tp = get_tracepoint_by_number (&args, 0, 0);
- if (tp == NULL)
- {
- Tcl_AppendStringsToObj (result_ptr->obj_ptr, "Tracepoint \"",
- number, "\" does not exist", NULL);
- return TCL_ERROR;
- }
-
- /* Free any existing actions */
- if (tp->actions != NULL)
- free_actions (tp);
-
- step_count = 0;
-
- Tcl_ListObjGetElements (interp, objv[2], &nactions, &actions);
-
- /* Add the actions to the tracepoint */
- for (i = 0; i < nactions; i++)
- {
- temp = xmalloc (sizeof (struct action_line));
- temp->next = NULL;
- action = Tcl_GetStringFromObj (actions[i], &len);
- temp->action = savestring (action, len);
-
- linetype = validate_actionline (&(temp->action), tp);
-
- if (linetype == BADLINE)
- {
- free (temp);
- continue;
- }
-
- if (next == NULL)
- {
- tp->actions = temp;
- next = temp;
- }
- else
- {
- next->next = temp;
- next = temp;
- }
- }
-
- return TCL_OK;
-}
-
-static int
-gdb_get_trace_frame_num (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- if (objc != 1)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "linespec");
- return TCL_ERROR;
- }
-
- Tcl_SetIntObj (result_ptr->obj_ptr, get_traceframe_number ());
- return TCL_OK;
-
-}
-
-static int
-gdb_get_tracepoint_info (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- struct symtab_and_line sal;
- int tpnum;
- struct tracepoint *tp;
- struct action_line *al;
- Tcl_Obj *action_list;
- char *filename, *funcname;
-
- if (objc != 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "tpnum");
- return TCL_ERROR;
- }
-
- if (Tcl_GetIntFromObj (NULL, objv[1], &tpnum) != TCL_OK)
- {
- result_ptr->flags |= GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
-
- ALL_TRACEPOINTS (tp)
- if (tp->number == tpnum)
- break;
-
- if (tp == NULL)
- {
- gdbtk_set_result (interp, "Tracepoint #%d does not exist", tpnum);
- return TCL_ERROR;
- }
-
- Tcl_SetListObj (result_ptr->obj_ptr, 0, NULL);
- sal = find_pc_line (tp->address, 0);
- filename = symtab_to_filename (sal.symtab);
- if (filename == NULL)
- filename = "N/A";
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr,
- Tcl_NewStringObj (filename, -1));
-
- funcname = pc_function_name (tp->address);
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr, Tcl_NewStringObj
- (funcname, -1));
-
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr,
- Tcl_NewIntObj (sal.line));
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr,
- Tcl_NewStringObj (core_addr_to_string (tp->address), -1));
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr,
- Tcl_NewIntObj (tp->enabled_p));
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr,
- Tcl_NewIntObj (tp->pass_count));
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr,
- Tcl_NewIntObj (tp->step_count));
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr,
- Tcl_NewIntObj (tp->thread));
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr,
- Tcl_NewIntObj (tp->hit_count));
-
- /* Append a list of actions */
- action_list = Tcl_NewObj ();
- for (al = tp->actions; al != NULL; al = al->next)
- {
- Tcl_ListObjAppendElement (interp, action_list,
- Tcl_NewStringObj (al->action, -1));
- }
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr, action_list);
-
- return TCL_OK;
-}
-
-/* return a list of all tracepoint numbers in interpreter */
-static int
-gdb_get_tracepoint_list (ClientData clientData,
- Tcl_Interp *interp,
- int objc,
- Tcl_Obj *CONST objv[])
-{
- struct tracepoint *tp;
-
- Tcl_SetListObj (result_ptr->obj_ptr, 0, NULL);
-
- ALL_TRACEPOINTS (tp)
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr,
- Tcl_NewIntObj (tp->number));
-
- return TCL_OK;
-}
-
-static int
-gdb_trace_status (ClientData clientData,
- Tcl_Interp *interp,
- int objc,
- Tcl_Obj *CONST objv[])
-{
- int result = 0;
-
- if (trace_running_p)
- result = 1;
-
- Tcl_SetIntObj (result_ptr->obj_ptr, result);
- return TCL_OK;
-}
-
-/* returns -1 if not found, tracepoint # if found */
-static int
-tracepoint_exists (char *args)
-{
- struct tracepoint *tp;
- char **canonical;
- struct symtabs_and_lines sals;
- char *file = NULL;
- int result = -1;
-
- sals = decode_line_1 (&args, 1, NULL, 0, &canonical, NULL);
- if (sals.nelts == 1)
- {
- resolve_sal_pc (&sals.sals[0]);
- file = xmalloc (strlen (sals.sals[0].symtab->dirname)
- + strlen (sals.sals[0].symtab->filename) + 1);
- if (file != NULL)
- {
- strcpy (file, sals.sals[0].symtab->dirname);
- strcat (file, sals.sals[0].symtab->filename);
-
- ALL_TRACEPOINTS (tp)
- {
- if (tp->address == sals.sals[0].pc)
- result = tp->number;
-#if 0
- /* Why is this here? This messes up assembly traces */
- else if (tp->source_file != NULL
- && strcmp (tp->source_file, file) == 0
- && sals.sals[0].line == tp->line_number)
- result = tp->number;
-#endif
- }
- }
- }
- if (file != NULL)
- free (file);
- return result;
-}
-
-static int
-gdb_tracepoint_exists_command (ClientData clientData,
- Tcl_Interp *interp,
- int objc,
- Tcl_Obj *CONST objv[])
-{
- char *args;
-
- if (objc != 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv,
- "function:line|function|line|*addr");
- return TCL_ERROR;
- }
-
- args = Tcl_GetStringFromObj (objv[1], NULL);
-
- Tcl_SetIntObj (result_ptr->obj_ptr, tracepoint_exists (args));
- return TCL_OK;
-}
-
-/*
- * This section contains functions which deal with tracepoint
- * events from gdb.
- */
-
-void
-gdbtk_create_tracepoint (int num)
-{
- tracepoint_notify (num, "create");
-}
-
-void
-gdbtk_delete_tracepoint (int num)
-{
- tracepoint_notify (num, "delete");
-}
-
-void
-gdbtk_modify_tracepoint (int num)
-{
- tracepoint_notify (num, "modify");
-}
-
-static void
-tracepoint_notify (int num, const char *action)
-{
- char *buf;
-
- /* We ensure that ACTION contains no special Tcl characters, so we
- can do this. */
- xasprintf (&buf, "gdbtk_tcl_tracepoint %s %d", action, num);
-
- if (Tcl_Eval (gdbtk_interp, buf) != TCL_OK)
- report_error ();
- free(buf);
-}
diff --git a/gdb/gdbtk/generic/gdbtk-cmds.c b/gdb/gdbtk/generic/gdbtk-cmds.c
deleted file mode 100644
index 75cc5a348d5..00000000000
--- a/gdb/gdbtk/generic/gdbtk-cmds.c
+++ /dev/null
@@ -1,3026 +0,0 @@
-/* Tcl/Tk command definitions for Insight.
- Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004
- Free Software Foundation, Inc.
-
- Written by Stu Grossman <grossman@cygnus.com> of Cygnus Support.
- Substantially augmented by Martin Hunt, Keith Seitz & Jim Ingham of
- Cygnus Support.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#include "defs.h"
-#include "inferior.h"
-#include "source.h"
-#include "symfile.h"
-#include "objfiles.h"
-#include "gdbcore.h"
-#include "demangle.h"
-#include "linespec.h"
-#include "tui/tui-file.h"
-#include "top.h"
-#include "annotate.h"
-#include "block.h"
-#include "dictionary.h"
-#include "filenames.h"
-#include "disasm.h"
-#include "value.h"
-#include "exceptions.h"
-
-/* tcl header files includes varargs.h unless HAS_STDARG is defined,
- but gdb uses stdarg.h, so make sure HAS_STDARG is defined. */
-#define HAS_STDARG 1
-
-#include <itcl.h>
-#include <tcl.h>
-#include <tk.h>
-
-#include "guitcl.h"
-#include "gdbtk.h"
-#include "gdbtk-wrapper.h"
-#include "gdbtk-cmds.h"
-
-#include <signal.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <sys/time.h>
-#include <sys/stat.h>
-
-#include "gdb_string.h"
-#include "dis-asm.h"
-#include "gdbcmd.h"
-
-#ifdef __CYGWIN__
-#include <sys/cygwin.h> /* for cygwin_conv_to_full_win32_path */
-#endif
-
-#ifdef HAVE_CTYPE_H
-#include <ctype.h> /* for isprint() */
-#endif
-
-/* Various globals we reference. */
-extern char *source_path;
-
-/* These two objects hold boolean true and false,
- and are shared by all the list objects that gdb_listfuncs
- returns. */
-
-static Tcl_Obj *mangled, *not_mangled;
-
-/* These two control how the GUI behaves when gdb is either tracing or loading.
- They are used in this file & gdbtk_hooks.c */
-
-int No_Update = 0;
-int load_in_progress = 0;
-
-/* This Structure is used in gdb_disassemble_driver.
- We need a different sort of line table from the normal one cuz we can't
- depend upon implicit line-end pc's for lines to do the
- reordering in this function. */
-
-struct my_line_entry
-{
- int line;
- CORE_ADDR start_pc;
- CORE_ADDR end_pc;
-};
-
-/* Use this to pass the Tcl Text widget command and the open file
- descriptor to the disassembly load command. */
-
-struct disassembly_client_data
-{
- FILE *fp;
- int file_opened_p;
- int widget_line_no;
- Tcl_Interp *interp;
- char *widget;
- Tcl_Obj *result_obj[3];
- const char *asm_argv[14];
- const char *source_argv[7];
- char *map_arr;
- Tcl_DString src_to_line_prefix;
- Tcl_DString pc_to_line_prefix;
- Tcl_DString line_to_pc_prefix;
- Tcl_CmdInfo cmd;
-};
-
-/* This variable determines where memory used for disassembly is read
- from. See note in gdbtk.h for details. */
-/* NOTE: cagney/2003-09-08: This variable is unused. */
-int disassemble_from_exec = -1;
-
-extern int gdb_variable_init (Tcl_Interp * interp);
-
-/*
- * Declarations for routines exported from this file
- */
-
-int Gdbtk_Init (Tcl_Interp * interp);
-
-/*
- * Declarations for routines used only in this file.
- */
-
-static int compare_lines (const PTR, const PTR);
-static int comp_files (const void *, const void *);
-static int gdb_clear_file (ClientData, Tcl_Interp * interp, int,
- Tcl_Obj * CONST[]);
-static int gdb_cmd (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST[]);
-static int gdb_confirm_quit (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST[]);
-static int gdb_entry_point (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST[]);
-static int gdb_eval (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST[]);
-static int gdb_find_file_command (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-static int gdb_force_quit (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST[]);
-static int gdb_get_file_command (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-static int gdb_get_function_command (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-static int gdb_get_line_command (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-static int gdb_update_mem (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST[]);
-static int gdb_set_mem (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST[]);
-static int gdb_immediate_command (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST[]);
-static int gdb_incr_addr (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST[]);
-static int gdb_CA_to_TAS (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST[]);
-static int gdb_listfiles (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST[]);
-static int gdb_listfuncs (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST[]);
-static int gdb_loadfile (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-static int gdb_load_disassembly (ClientData clientData, Tcl_Interp
- * interp, int objc, Tcl_Obj * CONST objv[]);
-static int gdb_get_inferior_args (ClientData clientData,
- Tcl_Interp *interp,
- int objc, Tcl_Obj * CONST objv[]);
-static int gdb_set_inferior_args (ClientData clientData,
- Tcl_Interp *interp,
- int objc, Tcl_Obj * CONST objv[]);
-static int gdb_load_info (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-static int gdb_loc (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST[]);
-static int gdb_path_conv (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST[]);
-static int gdb_prompt_command (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-static int gdb_restore_fputs (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST[]);
-static int gdb_search (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST objv[]);
-static int gdb_stop (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST[]);
-static int gdb_target_has_execution_command (ClientData,
- Tcl_Interp *, int,
- Tcl_Obj * CONST[]);
-static void gdbtk_load_source (ClientData clientData,
- struct symtab *symtab,
- int start_line, int end_line);
-static CORE_ADDR gdbtk_load_asm (ClientData clientData, CORE_ADDR pc,
- struct disassemble_info *di);
-static int gdb_disassemble_driver (CORE_ADDR low, CORE_ADDR high,
- int mixed_source_and_assembly,
- ClientData clientData,
- void (*print_source_fn) (ClientData, struct
- symtab *, int,
- int),
- CORE_ADDR (*print_asm_fn) (ClientData,
- CORE_ADDR,
- struct
- disassemble_info
- *));
-char *get_prompt (void);
-static int perror_with_name_wrapper (PTR args);
-static int wrapped_call (PTR opaque_args);
-static int hex2bin (const char *hex, char *bin, int count);
-static int fromhex (int a);
-
-
-/* Gdbtk_Init
- * This loads all the Tcl commands into the Tcl interpreter.
- *
- * Arguments:
- * interp - The interpreter into which to load the commands.
- *
- * Result:
- * A standard Tcl result.
- */
-
-int
-Gdbtk_Init (Tcl_Interp *interp)
-{
- Tcl_CreateObjCommand (interp, "gdb_cmd", gdbtk_call_wrapper, gdb_cmd, NULL);
- Tcl_CreateObjCommand (interp, "gdb_immediate", gdbtk_call_wrapper,
- gdb_immediate_command, NULL);
- Tcl_CreateObjCommand (interp, "gdb_loc", gdbtk_call_wrapper, gdb_loc, NULL);
- Tcl_CreateObjCommand (interp, "gdb_path_conv", gdbtk_call_wrapper, gdb_path_conv,
- NULL);
- Tcl_CreateObjCommand (interp, "gdb_listfiles", gdbtk_call_wrapper, gdb_listfiles,
- NULL);
- Tcl_CreateObjCommand (interp, "gdb_listfuncs", gdbtk_call_wrapper, gdb_listfuncs,
- NULL);
- Tcl_CreateObjCommand (interp, "gdb_entry_point", gdbtk_call_wrapper,
- gdb_entry_point, NULL);
- Tcl_CreateObjCommand (interp, "gdb_update_mem", gdbtk_call_wrapper, gdb_update_mem,
- NULL);
- Tcl_CreateObjCommand (interp, "gdb_set_mem", gdbtk_call_wrapper, gdb_set_mem,
- NULL);
- Tcl_CreateObjCommand (interp, "gdb_stop", gdbtk_call_wrapper, gdb_stop, NULL);
- Tcl_CreateObjCommand (interp, "gdb_restore_fputs", gdbtk_call_wrapper, gdb_restore_fputs,
- NULL);
- Tcl_CreateObjCommand (interp, "gdb_eval", gdbtk_call_wrapper, gdb_eval, NULL);
- Tcl_CreateObjCommand (interp, "gdb_incr_addr", gdbtk_call_wrapper, gdb_incr_addr, NULL);
- Tcl_CreateObjCommand (interp, "gdb_CA_to_TAS", gdbtk_call_wrapper, gdb_CA_to_TAS, NULL);
- Tcl_CreateObjCommand (interp, "gdb_clear_file", gdbtk_call_wrapper,
- gdb_clear_file, NULL);
- Tcl_CreateObjCommand (interp, "gdb_confirm_quit", gdbtk_call_wrapper,
- gdb_confirm_quit, NULL);
- Tcl_CreateObjCommand (interp, "gdb_force_quit", gdbtk_call_wrapper,
- gdb_force_quit, NULL);
- Tcl_CreateObjCommand (interp, "gdb_target_has_execution",
- gdbtk_call_wrapper,
- gdb_target_has_execution_command, NULL);
- Tcl_CreateObjCommand (interp, "gdb_load_info", gdbtk_call_wrapper, gdb_load_info,
- NULL);
- Tcl_CreateObjCommand (interp, "gdb_get_function", gdbtk_call_wrapper,
- gdb_get_function_command, NULL);
- Tcl_CreateObjCommand (interp, "gdb_get_line", gdbtk_call_wrapper,
- gdb_get_line_command, NULL);
- Tcl_CreateObjCommand (interp, "gdb_get_file", gdbtk_call_wrapper,
- gdb_get_file_command, NULL);
- Tcl_CreateObjCommand (interp, "gdb_prompt",
- gdbtk_call_wrapper, gdb_prompt_command, NULL);
- Tcl_CreateObjCommand (interp, "gdb_find_file",
- gdbtk_call_wrapper, gdb_find_file_command, NULL);
- Tcl_CreateObjCommand (interp, "gdb_loadfile", gdbtk_call_wrapper, gdb_loadfile,
- NULL);
- Tcl_CreateObjCommand (interp, "gdb_load_disassembly", gdbtk_call_wrapper,
- gdb_load_disassembly, NULL);
- Tcl_CreateObjCommand (gdbtk_interp, "gdb_search", gdbtk_call_wrapper,
- gdb_search, NULL);
- Tcl_CreateObjCommand (interp, "gdb_get_inferior_args", gdbtk_call_wrapper,
- gdb_get_inferior_args, NULL);
- Tcl_CreateObjCommand (interp, "gdb_set_inferior_args", gdbtk_call_wrapper,
- gdb_set_inferior_args, NULL);
-
- /* gdb_context is used for debugging multiple threads or tasks */
- Tcl_LinkVar (interp, "gdb_context_id",
- (char *) &gdb_context,
- TCL_LINK_INT | TCL_LINK_READ_ONLY);
-
- /* Make gdb's notion of the pwd visible. This is read-only because
- (1) it doesn't make sense to change it directly and (2) it is
- allocated using xmalloc and not Tcl_Alloc. You might think we
- could just use the Tcl `pwd' command. However, Tcl (erroneously,
- imho) maintains a cache of the current directory name, and
- doesn't provide a way for gdb to invalidate the cache. */
- Tcl_LinkVar (interp, "gdb_current_directory",
- (char *) &current_directory,
- TCL_LINK_STRING | TCL_LINK_READ_ONLY);
-
- /* Current gdb source file search path. This is read-only for
- reasons similar to those for gdb_current_directory. */
- Tcl_LinkVar (interp, "gdb_source_path",
- (char *) &source_path,
- TCL_LINK_STRING | TCL_LINK_READ_ONLY);
-
- /* Init variable interface... */
- if (gdb_variable_init (interp) != TCL_OK)
- return TCL_ERROR;
-
- /* Init breakpoint module */
- if (Gdbtk_Breakpoint_Init (interp) != TCL_OK)
- return TCL_ERROR;
-
- /* Init stack module */
- if (Gdbtk_Stack_Init (interp) != TCL_OK)
- return TCL_ERROR;
-
- /* Init register module */
- if (Gdbtk_Register_Init (interp) != TCL_OK)
- return TCL_ERROR;
-
- /* Determine where to disassemble from */
- Tcl_LinkVar (gdbtk_interp, "disassemble-from-exec",
- (char *) &disassemble_from_exec,
- TCL_LINK_INT);
-
- Tcl_PkgProvide (interp, "Gdbtk", GDBTK_VERSION);
- return TCL_OK;
-}
-
-/* This routine acts as a top-level for all GDB code called by Tcl/Tk. It
- handles cleanups, and uses catch_errors to trap calls to return_to_top_level
- (usually via error).
- This is necessary in order to prevent a longjmp out of the bowels of Tk,
- possibly leaving things in a bad state. Since this routine can be called
- recursively, it needs to save and restore the contents of the result_ptr as
- necessary. */
-
-int
-gdbtk_call_wrapper (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- struct wrapped_call_args wrapped_args;
- gdbtk_result new_result, *old_result_ptr;
- int wrapped_returned_error = 0;
-
- old_result_ptr = result_ptr;
- result_ptr = &new_result;
- result_ptr->obj_ptr = Tcl_NewObj ();
- result_ptr->flags = GDBTK_TO_RESULT;
-
- wrapped_args.func = (Tcl_ObjCmdProc *) clientData;
- wrapped_args.interp = interp;
- wrapped_args.objc = objc;
- wrapped_args.objv = objv;
- wrapped_args.val = TCL_OK;
-
- if (!catch_errors (wrapped_call, &wrapped_args, "", RETURN_MASK_ALL))
- {
-
- wrapped_args.val = TCL_ERROR; /* Flag an error for TCL */
-
- /* Make sure the timer interrupts are turned off. */
- gdbtk_stop_timer ();
-
- gdb_flush (gdb_stderr); /* Flush error output */
- gdb_flush (gdb_stdout); /* Sometimes error output comes here as well */
-
- /* If we errored out here, and the results were going to the
- console, then gdbtk_fputs will have gathered the result into the
- result_ptr. We also need to echo them out to the console here */
-
- gdb_flush (gdb_stderr); /* Flush error output */
- gdb_flush (gdb_stdout); /* Sometimes error output comes here as well */
-
- /* In case of an error, we may need to force the GUI into idle
- mode because gdbtk_call_command may have bombed out while in
- the command routine. */
-
- running_now = 0;
- Tcl_Eval (interp, "gdbtk_tcl_idle");
-
- }
- else
- {
- /* If the wrapped call returned an error directly, then we don't
- want to reset the result. */
- wrapped_returned_error = wrapped_args.val == TCL_ERROR;
- }
-
- /* do not suppress any errors -- a remote target could have errored */
- load_in_progress = 0;
-
- /*
- * Now copy the result over to the true Tcl result. If
- * GDBTK_TO_RESULT flag bit is set, this just copies a null object
- * over to the Tcl result, which is fine because we should reset the
- * result in this case anyway. If the wrapped command returned an
- * error, then we assume that the result is already set correctly.
- */
- if ((result_ptr->flags & GDBTK_IN_TCL_RESULT) || wrapped_returned_error)
- {
- Tcl_DecrRefCount (result_ptr->obj_ptr);
- }
- else
- {
- Tcl_SetObjResult (interp, result_ptr->obj_ptr);
- }
-
- result_ptr = old_result_ptr;
-
-#ifdef _WIN32
- close_bfds ();
-#endif
-
- return wrapped_args.val;
-}
-
-/*
- * This is the wrapper that is passed to catch_errors.
- */
-
-static int
-wrapped_call (PTR opaque_args)
-{
- struct wrapped_call_args *args = (struct wrapped_call_args *) opaque_args;
- args->val = (*args->func) (args->func, args->interp, args->objc, args->objv);
- return 1;
-}
-
-
-/*
- * This section contains the commands that control execution.
- */
-
-/* This implements the tcl command gdb_clear_file.
-
-* Prepare to accept a new executable file. This is called when we
-* want to clear away everything we know about the old file, without
-* asking the user. The Tcl code will have already asked the user if
-* necessary. After this is called, we should be able to run the
-* `file' command without getting any questions.
-*
-* Arguments:
-* None
-* Tcl Result:
-* None
-*/
-
-static int
-gdb_clear_file (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- if (objc != 1)
- {
- Tcl_WrongNumArgs (interp, 1, objv, NULL);
- return TCL_ERROR;
- }
-
- if (! ptid_equal (inferior_ptid, null_ptid) && target_has_execution)
- {
- if (attach_flag)
- target_detach (NULL, 0);
- else
- target_kill ();
- }
-
- if (target_has_execution)
- pop_target ();
-
- delete_command (NULL, 0);
- exec_file_clear (0);
- symbol_file_clear (0);
-
- return TCL_OK;
-}
-
-/* This implements the tcl command gdb_confirm_quit
- * Ask the user to confirm an exit request.
- *
- * Arguments:
- * None
- * Tcl Result:
- * A boolean, 1 if the user answered yes, 0 if no.
- */
-
-static int
-gdb_confirm_quit (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- int ret;
-
- if (objc != 1)
- {
- Tcl_WrongNumArgs (interp, 1, objv, NULL);
- return TCL_ERROR;
- }
-
- ret = quit_confirm ();
- Tcl_SetBooleanObj (result_ptr->obj_ptr, ret);
- return TCL_OK;
-}
-
-/* This implements the tcl command gdb_force_quit
- * Quit without asking for confirmation.
- *
- * Arguments:
- * None
- * Tcl Result:
- * None
- */
-
-static int
-gdb_force_quit (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- if (objc != 1)
- {
- Tcl_WrongNumArgs (interp, 1, objv, NULL);
- return TCL_ERROR;
- }
-
- quit_force ((char *) NULL, 1);
- return TCL_OK;
-}
-
-/* Pressing the stop button on the source window should attempt to
- * stop the target. If, after some short time, this fails, a dialog
- * should appear allowing the user to detach.
- *
- * The global GDBTK_FORCE_DETACH is set when we wish to detach from a
- * target. This value is returned by deprecated_ui_loop_hook
- * (x_event), indicating to callers that they should detach.
- *
- * Read the comments before x_event to find out how we (try) to keep
- * gdbtk alive while some other event loop has stolen control from us.
- */
-
-/*
- * This command implements the tcl command gdb_stop, which
- * is used to either stop the target or detach.
- * Note that it is assumed that a simulator or native target
- * can ALWAYS be stopped. Doing a "detach" on them has no effect.
- *
- * Arguments:
- * None or "detach"
- * Tcl Result:
- * None
- */
-
-static int
-gdb_stop (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- int force = 0;
- char *s;
-
- if (objc > 1)
- {
- s = Tcl_GetStringFromObj (objv[1], NULL);
- if (strcmp (s, "detach") == 0)
- force = 1;
- }
-
- if (force)
- {
- /* Set the "forcibly detach from target" flag. x_event will
- return this value to callers when they should forcibly detach. */
- gdbtk_force_detach = 1;
- }
- else
- {
- if (target_stop != target_ignore)
- target_stop ();
- else
- quit_flag = 1; /* hope something sees this */
- }
-
- return TCL_OK;
-}
-
-
-/*
- * This section contains Tcl commands that are wrappers for invoking
- * the GDB command interpreter.
- */
-
-
-/* This implements the tcl command `gdb_eval'.
- * It uses the gdb evaluator to return the value of
- * an expression in the current language
- *
- * Tcl Arguments:
- * expression - the expression to evaluate.
- * format - optional format character. Valid chars are:
- * o - octal
- * x - hex
- * d - decimal
- * u - unsigned decimal
- * t - binary
- * f - float
- * a - address
- * c - char
- * Tcl Result:
- * The result of the evaluation.
- */
-
-static int
-gdb_eval (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- struct expression *expr;
- struct cleanup *old_chain = NULL;
- int format = 0;
- value_ptr val;
- struct ui_file *stb;
- long dummy;
- char *result;
-
- if (objc != 2 && objc != 3)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "expression [format]");
- return TCL_ERROR;
- }
-
- if (objc == 3)
- format = *(Tcl_GetStringFromObj (objv[2], NULL));
-
- expr = parse_expression (Tcl_GetStringFromObj (objv[1], NULL));
- old_chain = make_cleanup (free_current_contents, &expr);
- val = evaluate_expression (expr);
-
- /* "Print" the result of the expression evaluation. */
- stb = mem_fileopen ();
- make_cleanup_ui_file_delete (stb);
- val_print (value_type (val), value_contents (val),
- value_embedded_offset (val), VALUE_ADDRESS (val),
- stb, format, 0, 0, 0);
- result = ui_file_xstrdup (stb, &dummy);
- Tcl_SetObjResult (interp, Tcl_NewStringObj (result, -1));
- xfree (result);
- result_ptr->flags |= GDBTK_IN_TCL_RESULT;
-
- do_cleanups (old_chain);
- return TCL_OK;
-}
-
-/* This implements the tcl command "gdb_cmd".
-
-* It sends its argument to the GDB command scanner for execution.
-* This command will never cause the update, idle and busy hooks to be called
-* within the GUI.
-*
-* Tcl Arguments:
-* command - The GDB command to execute
-* from_tty - 1 indicates this comes to the console.
-* Pass this to the gdb command.
-* Tcl Result:
-* The output from the gdb command (except for the "load" & "while"
-* which dump their output to the console.
-*/
-
-static int
-gdb_cmd (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- int from_tty = 0;
-
- if (objc < 2 || objc > 3)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "command ?from_tty?");
- return TCL_ERROR;
- }
-
- if (objc == 3)
- {
- if (Tcl_GetBooleanFromObj (NULL, objv[2], &from_tty) != TCL_OK)
- {
- gdbtk_set_result (interp, "from_tty must be a boolean.");
- return TCL_ERROR;
- }
- }
-
- if (running_now || load_in_progress)
- return TCL_OK;
-
- No_Update = 1;
-
- /* for the load instruction (and possibly others later) we
- set turn off the GDBTK_TO_RESULT flag bit so gdbtk_fputs()
- will not buffer all the data until the command is finished. */
-
- if ((strncmp ("load ", Tcl_GetStringFromObj (objv[1], NULL), 5) == 0))
- {
- result_ptr->flags &= ~GDBTK_TO_RESULT;
- load_in_progress = 1;
- }
-
- execute_command (Tcl_GetStringFromObj (objv[1], NULL), from_tty);
-
- if (load_in_progress)
- {
- load_in_progress = 0;
- result_ptr->flags |= GDBTK_TO_RESULT;
- }
-
- bpstat_do_actions (&stop_bpstat);
-
- return TCL_OK;
-}
-
-/*
- * This implements the tcl command "gdb_immediate"
- *
- * It does exactly the same thing as gdb_cmd, except NONE of its outut
- * is buffered. This will also ALWAYS cause the busy, update, and idle
- * hooks to be called, contrasted with gdb_cmd, which NEVER calls them.
- * It turns off the GDBTK_TO_RESULT flag, which diverts the result
- * to the console window.
- *
- * Tcl Arguments:
- * command - The GDB command to execute
- * from_tty - 1 to indicate this is from the console.
- * Tcl Result:
- * None.
- */
-
-static int
-gdb_immediate_command (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- int from_tty = 0;
-
- if (objc < 2 || objc > 3)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "command ?from_tty?");
- return TCL_ERROR;
- }
-
- if (objc == 3)
- {
- if (Tcl_GetBooleanFromObj (NULL, objv[2], &from_tty) != TCL_OK)
- {
- gdbtk_set_result (interp, "from_tty must be a boolean.");
- return TCL_ERROR;
- }
- }
-
- if (running_now || load_in_progress)
- return TCL_OK;
-
- No_Update = 0;
-
- result_ptr->flags &= ~GDBTK_TO_RESULT;
-
- execute_command (Tcl_GetStringFromObj (objv[1], NULL), from_tty);
-
- bpstat_do_actions (&stop_bpstat);
-
- result_ptr->flags |= GDBTK_TO_RESULT;
-
- return TCL_OK;
-}
-
-/* This implements the tcl command "gdb_prompt"
-
-* It returns the gdb interpreter's prompt.
-*
-* Tcl Arguments:
-* None.
-* Tcl Result:
-* The prompt.
-*/
-
-static int
-gdb_prompt_command (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- Tcl_SetStringObj (result_ptr->obj_ptr, get_prompt (), -1);
- return TCL_OK;
-}
-
-
-/*
- * This section contains general informational commands.
- */
-
-/* This implements the tcl command "gdb_target_has_execution"
-
-* Tells whether the target is executing.
-*
-* Tcl Arguments:
-* None
-* Tcl Result:
-* A boolean indicating whether the target is executing.
-*/
-
-static int
-gdb_target_has_execution_command (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- int result = 0;
-
- if (target_has_execution && ! ptid_equal (inferior_ptid, null_ptid))
- result = 1;
-
- Tcl_SetBooleanObj (result_ptr->obj_ptr, result);
- return TCL_OK;
-}
-
-/* This implements the tcl command "gdb_get_inferior_args"
-
-* Returns inferior command line arguments as a string
-*
-* Tcl Arguments:
-* None
-* Tcl Result:
-* A string containing the inferior command line arguments
-*/
-
-static int
-gdb_get_inferior_args (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- if (objc != 1)
- {
- Tcl_WrongNumArgs (interp, 1, objv, NULL);
- return TCL_ERROR;
- }
-
- Tcl_SetStringObj (result_ptr->obj_ptr, get_inferior_args (), -1);
- return TCL_OK;
-}
-
-/* This implements the tcl command "gdb_set_inferior_args"
-
-* Sets inferior command line arguments
-*
-* Tcl Arguments:
-* A string containing the inferior command line arguments
-* Tcl Result:
-* None
-*/
-
-static int
-gdb_set_inferior_args (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- char *args;
-
- if (objc != 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "argument");
- return TCL_ERROR;
- }
-
- args = Tcl_GetStringFromObj (objv[1], NULL);
-
- /* The xstrdup/xfree stuff is so that we maintain a coherent picture
- for gdb. I would expect the accessors to do this, but they
- don't. */
- args = xstrdup (args);
- args = set_inferior_args (args);
- xfree (args);
-
- return TCL_OK;
-}
-
-/* This implements the tcl command "gdb_load_info"
-
-* It returns information about the file about to be downloaded.
-*
-* Tcl Arguments:
-* filename: The file to open & get the info on.
-* Tcl Result:
-* A list consisting of the name and size of each section.
-*/
-
-static int
-gdb_load_info (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- bfd *loadfile_bfd;
- struct cleanup *old_cleanups;
- asection *s;
- Tcl_Obj *ob[2];
-
- char *filename = Tcl_GetStringFromObj (objv[1], NULL);
-
- loadfile_bfd = bfd_openr (filename, gnutarget);
- if (loadfile_bfd == NULL)
- {
- gdbtk_set_result (interp, "Open of %s failed", filename);
- return TCL_ERROR;
- }
- old_cleanups = make_cleanup_bfd_close (loadfile_bfd);
-
- if (!bfd_check_format (loadfile_bfd, bfd_object))
- {
- gdbtk_set_result (interp, "Bad Object File");
- return TCL_ERROR;
- }
-
- Tcl_SetListObj (result_ptr->obj_ptr, 0, NULL);
-
- for (s = loadfile_bfd->sections; s; s = s->next)
- {
- if (s->flags & SEC_LOAD)
- {
- bfd_size_type size = bfd_get_section_size (s);
- if (size > 0)
- {
- ob[0] = Tcl_NewStringObj ((char *)
- bfd_get_section_name (loadfile_bfd, s),
- -1);
- ob[1] = Tcl_NewLongObj ((long) size);
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewListObj (2, ob));
- }
- }
- }
-
- do_cleanups (old_cleanups);
- return TCL_OK;
-}
-
-
-/* This implements the tcl command "gdb_get_line"
-
-* It returns the linenumber for a given linespec. It will take any spec
-* that can be passed to decode_line_1
-*
-* Tcl Arguments:
-* linespec - the line specification
-* Tcl Result:
-* The line number for that spec.
-*/
-static int
-gdb_get_line_command (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- struct symtabs_and_lines sals;
- char *args, **canonical;
-
- if (objc != 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "linespec");
- return TCL_ERROR;
- }
-
- args = Tcl_GetStringFromObj (objv[1], NULL);
- sals = decode_line_1 (&args, 1, NULL, 0, &canonical, NULL);
- if (sals.nelts == 1)
- {
- Tcl_SetIntObj (result_ptr->obj_ptr, sals.sals[0].line);
- return TCL_OK;
- }
-
- Tcl_SetStringObj (result_ptr->obj_ptr, "N/A", -1);
- return TCL_OK;
-
-}
-
-/* This implements the tcl command "gdb_get_file"
-
-* It returns the file containing a given line spec.
-*
-* Tcl Arguments:
-* linespec - The linespec to look up
-* Tcl Result:
-* The file containing it.
-*/
-
-static int
-gdb_get_file_command (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- struct symtabs_and_lines sals;
- char *args, **canonical;
-
- if (objc != 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "linespec");
- return TCL_ERROR;
- }
-
- args = Tcl_GetStringFromObj (objv[1], NULL);
- sals = decode_line_1 (&args, 1, NULL, 0, &canonical, NULL);
- if (sals.nelts == 1)
- {
- Tcl_SetStringObj (result_ptr->obj_ptr,
- sals.sals[0].symtab->filename, -1);
- return TCL_OK;
- }
-
- Tcl_SetStringObj (result_ptr->obj_ptr, "N/A", -1);
- return TCL_OK;
-}
-
-/* This implements the tcl command "gdb_get_function"
-
-* It finds the function containing the given line spec.
-*
-* Tcl Arguments:
-* linespec - The line specification
-* Tcl Result:
-* The function that contains it, or "N/A" if it is not in a function.
-*/
-static int
-gdb_get_function_command (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- char *function;
- struct symtabs_and_lines sals;
- char *args, **canonical;
-
- if (objc != 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "linespec");
- return TCL_ERROR;
- }
-
- args = Tcl_GetStringFromObj (objv[1], NULL);
- sals = decode_line_1 (&args, 1, NULL, 0, &canonical, NULL);
- if (sals.nelts == 1)
- {
- resolve_sal_pc (&sals.sals[0]);
- function = pc_function_name (sals.sals[0].pc);
- Tcl_SetStringObj (result_ptr->obj_ptr, function, -1);
- return TCL_OK;
- }
-
- Tcl_SetStringObj (result_ptr->obj_ptr, "N/A", -1);
- return TCL_OK;
-}
-
-/* This implements the tcl command "gdb_find_file"
-
-* It searches the symbol tables to get the full pathname to a file.
-*
-* Tcl Arguments:
-* filename: the file name to search for.
-* Tcl Result:
-* The full path to the file, an empty string if the file was not
-* available or an error message if the file is not found in the symtab.
-*/
-
-static int
-gdb_find_file_command (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- struct symtab *st;
- char *filename, *fullname = NULL;
-
- if (objc != 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "filename");
- return TCL_ERROR;
- }
-
- filename = Tcl_GetStringFromObj (objv[1], NULL);
-
- /* Shortcut: There seems to be some mess in gdb dealing with
- files. While we should let gdb sort it out, it doesn't hurt
- to be a little defensive here.
-
- If the filename is already an absolute filename, just try
- to stat it. If it's not found, then ask gdb to find it for us. */
- if (IS_ABSOLUTE_PATH (filename))
- {
- struct stat st;
- const int status = stat (filename, &st);
-
- if (status == 0)
- {
- if (S_ISREG (st.st_mode))
- fullname = filename;
- }
- }
- else
- {
- /* Ask gdb to find the file for us. */
- st = lookup_symtab (filename);
-
- /* We should always get a symtab. */
- if (!st)
- {
- gdbtk_set_result (interp, "File not found in symtab (2)");
- return TCL_ERROR;
- }
-
- fullname =
- (st->fullname == NULL ? symtab_to_filename (st) : st->fullname);
- }
-
- /* We may not be able to open the file (not available). */
- if (fullname == NULL)
- {
- Tcl_SetStringObj (result_ptr->obj_ptr, "", -1);
- return TCL_OK;
- }
-
- Tcl_SetStringObj (result_ptr->obj_ptr, fullname, -1);
-
- return TCL_OK;
-}
-
-/* This implements the tcl command "gdb_listfiles"
-
-* This lists all the files in the current executible.
-*
-* Note that this currently pulls in all sorts of filenames
-* that aren't really part of the executable. It would be
-* best if we could check each file to see if it actually
-* contains executable lines of code, but we can't do that
-* with psymtabs.
-*
-* Arguments:
-* ?pathname? - If provided, only files which match pathname
-* (up to strlen(pathname)) are included. THIS DOES NOT
-* CURRENTLY WORK BECAUSE PARTIAL_SYMTABS DON'T SUPPLY
-* THE FULL PATHNAME!!!
-*
-* Tcl Result:
-* A list of all matching files.
-*/
-static int
-gdb_listfiles (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- struct objfile *objfile;
- struct partial_symtab *psymtab;
- struct symtab *symtab;
- const char *lastfile, *pathname = NULL;
- const char **files;
- int files_size;
- int i, numfiles = 0, len = 0;
-
- files_size = 1000;
- files = (const char **) xmalloc (sizeof (char *) * files_size);
-
- if (objc > 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "?pathname?");
- return TCL_ERROR;
- }
- else if (objc == 2)
- pathname = Tcl_GetStringFromObj (objv[1], &len);
-
- ALL_PSYMTABS (objfile, psymtab)
- {
- if (numfiles == files_size)
- {
- files_size = files_size * 2;
- files = (const char **) xrealloc (files, sizeof (char *) * files_size);
- }
- if (psymtab->filename)
- {
- if (!len || !strncmp (pathname, psymtab->filename, len)
- || !strcmp (psymtab->filename, lbasename (psymtab->filename)))
- {
- files[numfiles++] = lbasename (psymtab->filename);
- }
- }
- }
-
- ALL_SYMTABS (objfile, symtab)
- {
- if (numfiles == files_size)
- {
- files_size = files_size * 2;
- files = (const char **) xrealloc (files, sizeof (char *) * files_size);
- }
- if (symtab->filename && symtab->linetable && symtab->linetable->nitems)
- {
- if (!len || !strncmp (pathname, symtab->filename, len)
- || !strcmp (symtab->filename, lbasename (symtab->filename)))
- {
- files[numfiles++] = lbasename (symtab->filename);
- }
- }
- }
-
- qsort (files, numfiles, sizeof (char *), comp_files);
-
- lastfile = "";
-
- /* Discard the old result pointer, in case it has accumulated anything
- and set it to a new list object */
-
- Tcl_SetListObj (result_ptr->obj_ptr, 0, NULL);
-
- for (i = 0; i < numfiles; i++)
- {
- if (strcmp (files[i], lastfile))
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr,
- Tcl_NewStringObj (files[i], -1));
- lastfile = files[i];
- }
-
- free (files);
- return TCL_OK;
-}
-
-static int
-comp_files (const void *file1, const void *file2)
-{
- return strcmp (*(char **) file1, *(char **) file2);
-}
-
-
-/* This implements the tcl command "gdb_search"
-
-
-* Tcl Arguments:
-* option - One of "functions", "variables" or "types"
-* regexp - The regular expression to look for.
-* Then, optionally:
-* -files fileList
-* -static 1/0
-* -filename 1/0
-* Tcl Result:
-* A list of all the matches found. Optionally, if -filename is set to 1,
-* then the output is a list of two element lists, with the symbol first,
-* and the file in which it is found second.
-*/
-
-static int
-gdb_search (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- struct symbol_search *ss = NULL;
- struct symbol_search *p;
- struct cleanup *old_chain = NULL;
- Tcl_Obj *CONST * switch_objv;
- int index, switch_objc, i, show_files = 0;
- domain_enum space = 0;
- char *regexp;
- int static_only, nfiles;
- Tcl_Obj **file_list;
- char **files;
- static const char *search_options[] =
- {"functions", "variables", "types", (char *) NULL};
- static const char *switches[] =
- {"-files", "-filename", "-static", (char *) NULL};
- enum search_opts
- {
- SEARCH_FUNCTIONS, SEARCH_VARIABLES, SEARCH_TYPES
- };
- enum switches_opts
- {
- SWITCH_FILES, SWITCH_FILENAME, SWITCH_STATIC_ONLY
- };
-
- if (objc < 3)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "option regexp ?arg ...?");
- return TCL_ERROR;
- }
-
- if (Tcl_GetIndexFromObj (interp, objv[1], search_options, "option", 0,
- &index) != TCL_OK)
- {
- result_ptr->flags |= GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
-
- /* Unfortunately, we cannot teach search_symbols to search on
- multiple regexps, so we have to do a two-tier search for
- any searches which choose to narrow the playing field. */
- switch ((enum search_opts) index)
- {
- case SEARCH_FUNCTIONS:
- space = FUNCTIONS_DOMAIN;
- break;
- case SEARCH_VARIABLES:
- space = VARIABLES_DOMAIN;
- break;
- case SEARCH_TYPES:
- space = TYPES_DOMAIN;
- break;
- }
-
- regexp = Tcl_GetStringFromObj (objv[2], NULL);
- /* Process any switches that refine the search */
- switch_objc = objc - 3;
- switch_objv = objv + 3;
-
- static_only = 0;
- nfiles = 0;
- files = (char **) NULL;
- while (switch_objc > 0)
- {
- if (Tcl_GetIndexFromObj (interp, switch_objv[0], switches,
- "option", 0, &index) != TCL_OK)
- {
- result_ptr->flags |= GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
-
- switch ((enum switches_opts) index)
- {
- case SWITCH_FILENAME:
- {
- if (switch_objc < 2)
- {
- Tcl_WrongNumArgs (interp, 3, objv,
- "?-files fileList -filename 1|0 -static 1|0?");
- result_ptr->flags |= GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
- if (Tcl_GetBooleanFromObj (interp, switch_objv[1], &show_files)
- != TCL_OK)
- {
- result_ptr->flags |= GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
- switch_objc--;
- switch_objv++;
- }
- break;
- case SWITCH_FILES:
- {
- int result;
- if (switch_objc < 2)
- {
- Tcl_WrongNumArgs (interp, 3, objv,
- "?-files fileList -filename 1|0 -static 1|0?");
- result_ptr->flags |= GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
- result = Tcl_ListObjGetElements (interp, switch_objv[1],
- &nfiles, &file_list);
- if (result != TCL_OK)
- return result;
-
- files = (char **) xmalloc (nfiles * sizeof (char *));
- for (i = 0; i < nfiles; i++)
- files[i] = Tcl_GetStringFromObj (file_list[i], NULL);
- switch_objc--;
- switch_objv++;
- }
- break;
- case SWITCH_STATIC_ONLY:
- if (switch_objc < 2)
- {
- Tcl_WrongNumArgs (interp, 3, objv,
- "?-files fileList -filename 1|0 -static 1|0?");
- result_ptr->flags |= GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
- if (Tcl_GetBooleanFromObj (interp, switch_objv[1], &static_only)
- != TCL_OK)
- {
- result_ptr->flags |= GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
- switch_objc--;
- switch_objv++;
- }
- switch_objc--;
- switch_objv++;
- }
-
- search_symbols (regexp, space, nfiles, files, &ss);
- if (ss != NULL)
- old_chain = make_cleanup_free_search_symbols (ss);
-
- Tcl_SetListObj (result_ptr->obj_ptr, 0, NULL);
-
- for (p = ss; p != NULL; p = p->next)
- {
- Tcl_Obj *elem;
-
- if (static_only && p->block != STATIC_BLOCK)
- continue;
-
- /* Strip off some C++ special symbols, like RTTI and global
- constructors/destructors. */
- if ((p->symbol != NULL
- && strncmp (SYMBOL_LINKAGE_NAME (p->symbol), "__tf", 4) != 0
- && strncmp (SYMBOL_LINKAGE_NAME (p->symbol), "_GLOBAL_", 8) != 0)
- || p->msymbol != NULL)
- {
- elem = Tcl_NewListObj (0, NULL);
-
- if (p->msymbol == NULL)
- Tcl_ListObjAppendElement (interp, elem,
- Tcl_NewStringObj (SYMBOL_PRINT_NAME (p->symbol), -1));
- else
- Tcl_ListObjAppendElement (interp, elem,
- Tcl_NewStringObj (SYMBOL_PRINT_NAME (p->msymbol), -1));
-
- if (show_files)
- {
- if ((p->symtab != NULL) && (p->symtab->filename != NULL))
- {
- Tcl_ListObjAppendElement (interp, elem, Tcl_NewStringObj
- (p->symtab->filename, -1));
- }
- else
- {
- Tcl_ListObjAppendElement (interp, elem,
- Tcl_NewStringObj ("", 0));
- }
- }
-
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr, elem);
- }
- }
-
- if (ss != NULL)
- do_cleanups (old_chain);
-
- return TCL_OK;
-}
-
-/* This implements the tcl command gdb_listfuncs
-
-* It lists all the functions defined in a given file
-*
-* Arguments:
-* file - the file to look in
-* Tcl Result:
-* A list of two element lists, the first element is
-* the symbol name, and the second is a boolean indicating
-* whether the symbol is demangled (1 for yes).
-*/
-
-static int
-gdb_listfuncs (clientData, interp, objc, objv)
- ClientData clientData;
- Tcl_Interp *interp;
- int objc;
- Tcl_Obj *CONST objv[];
-{
- struct symtab *symtab;
- struct blockvector *bv;
- struct block *b;
- struct symbol *sym;
- int i;
- struct dict_iterator iter;
- Tcl_Obj *funcVals[2];
-
- if (objc != 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "file");
- return TCL_ERROR;
- }
-
- symtab = lookup_symtab (Tcl_GetStringFromObj (objv[1], NULL));
- if (!symtab)
- {
- gdbtk_set_result (interp, "No such file (%s)",
- Tcl_GetStringFromObj (objv[1], NULL));
- return TCL_ERROR;
- }
-
- if (mangled == NULL)
- {
- mangled = Tcl_NewBooleanObj (1);
- not_mangled = Tcl_NewBooleanObj (0);
- Tcl_IncrRefCount (mangled);
- Tcl_IncrRefCount (not_mangled);
- }
-
- Tcl_SetListObj (result_ptr->obj_ptr, 0, NULL);
-
- bv = BLOCKVECTOR (symtab);
- for (i = GLOBAL_BLOCK; i <= STATIC_BLOCK; i++)
- {
- b = BLOCKVECTOR_BLOCK (bv, i);
- ALL_BLOCK_SYMBOLS (b, iter, sym)
- {
- if (SYMBOL_CLASS (sym) == LOC_BLOCK)
- {
-
- char *name = SYMBOL_DEMANGLED_NAME (sym);
-
- if (name)
- {
- /* strip out "global constructors" and
- * "global destructors"
- * because we aren't interested in them. */
-
- if (strncmp (name, "global ", 7))
- {
- /* If the function is overloaded,
- * print out the functions
- * declaration, not just its name. */
-
- funcVals[0] = Tcl_NewStringObj (name, -1);
- funcVals[1] = mangled;
- }
- else
- continue;
-
- }
- else
- {
- funcVals[0] = Tcl_NewStringObj (DEPRECATED_SYMBOL_NAME (sym), -1);
- funcVals[1] = not_mangled;
- }
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewListObj (2, funcVals));
- }
- }
- }
- return TCL_OK;
-}
-
-/* This implements the TCL command `gdb_restore_fputs'
- It sets the fputs_unfiltered hook back to gdbtk_fputs.
- Its sole reason for being is that sometimes we move the
- fputs hook out of the way to specially trap output, and if
- we get an error which we weren't expecting, it won't get put
- back, so we run this at idle time as insurance.
-*/
-
-static int
-gdb_restore_fputs (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- gdbtk_disable_fputs = 0;
- return TCL_OK;
-}
-
-
-/* This implements the tcl command gdb_load_disassembly
- *
- * Arguments:
- * widget - the name of a text widget into which to load the data
- * source_with_assm - must be "source" or "nosource"
- * low_address - the CORE_ADDR from which to start disassembly
- * ?hi_address? - the CORE_ADDR to which to disassemble, defaults
- * to the end of the function containing low_address.
- * Tcl Result:
- * The text widget is loaded with the data, and a list is returned.
- * The first element of the list is a two element list containing the
- * real low & high elements, the rest is a mapping between line number
- * in the text widget, and either the source line number of that line,
- * if it is a source line, or the assembly address. You can distinguish
- * between the two, because the address will start with 0x...
- */
-
-static int
-gdb_load_disassembly (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- CORE_ADDR low, high, orig;
- struct disassembly_client_data client_data;
- int mixed_source_and_assembly, ret_val, i;
- char *arg_ptr;
- char *map_name;
- Tcl_WideInt waddr;
-
- if (objc != 6 && objc != 7)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "[source|nosource] map_arr index_prefix low_address ?hi_address");
- return TCL_ERROR;
- }
-
- client_data.widget = Tcl_GetStringFromObj (objv[1], NULL);
- if ( Tk_NameToWindow (interp, client_data.widget,
- Tk_MainWindow (interp)) == NULL)
- {
- gdbtk_set_result (interp, "Invalid widget name.");
- return TCL_ERROR;
- }
-
- if (!Tcl_GetCommandInfo (interp, client_data.widget, &client_data.cmd))
- {
- gdbtk_set_result (interp, "Can't get widget command info");
- return TCL_ERROR;
- }
-
- arg_ptr = Tcl_GetStringFromObj (objv[2], NULL);
- if (*arg_ptr == 's' && strcmp (arg_ptr, "source") == 0)
- mixed_source_and_assembly = 1;
- else if (*arg_ptr == 'n' && strcmp (arg_ptr, "nosource") == 0)
- mixed_source_and_assembly = 0;
- else
- {
- gdbtk_set_result (interp, "Second arg must be 'source' or 'nosource'");
- return TCL_ERROR;
- }
-
- /* As we populate the text widget, we will also create an array in the
- caller's scope. The name is given by objv[3].
- Each source line gets an entry or the form:
- array($prefix,srcline=$src_line_no) = $widget_line_no
-
- Each assembly line gets two entries of the form:
- array($prefix,pc=$pc) = $widget_line_no
- array($prefix,line=$widget_line_no) = $src_line_no
-
- Where prefix is objv[4].
- */
-
- map_name = Tcl_GetStringFromObj (objv[3], NULL);
-
- if (*map_name != '\0')
- {
- char *prefix;
- int prefix_len;
-
- client_data.map_arr = "map_array";
- if (Tcl_UpVar (interp, "1", map_name, client_data.map_arr, 0) != TCL_OK)
- {
- gdbtk_set_result (interp, "Can't link map array.");
- return TCL_ERROR;
- }
-
- prefix = Tcl_GetStringFromObj (objv[4], &prefix_len);
-
- Tcl_DStringInit(&client_data.src_to_line_prefix);
- Tcl_DStringAppend (&client_data.src_to_line_prefix,
- prefix, prefix_len);
- Tcl_DStringAppend (&client_data.src_to_line_prefix, ",srcline=",
- sizeof (",srcline=") - 1);
-
- Tcl_DStringInit(&client_data.pc_to_line_prefix);
- Tcl_DStringAppend (&client_data.pc_to_line_prefix,
- prefix, prefix_len);
- Tcl_DStringAppend (&client_data.pc_to_line_prefix, ",pc=",
- sizeof (",pc=") - 1);
-
- Tcl_DStringInit(&client_data.line_to_pc_prefix);
- Tcl_DStringAppend (&client_data.line_to_pc_prefix,
- prefix, prefix_len);
- Tcl_DStringAppend (&client_data.line_to_pc_prefix, ",line=",
- sizeof (",line=") - 1);
-
- }
- else
- {
- client_data.map_arr = "";
- }
-
- /* Now parse the addresses */
- if (Tcl_GetWideIntFromObj (interp, objv[5], &waddr) != TCL_OK)
- return TCL_ERROR;
- low = waddr;
-
- orig = low;
-
- if (objc == 6)
- {
- if (find_pc_partial_function (low, NULL, &low, &high) == 0)
- error ("No function contains address 0x%s", core_addr_to_string (orig));
- }
- else
- {
- if (Tcl_GetWideIntFromObj (interp, objv[6], &waddr) != TCL_OK)
- return TCL_ERROR;
- high = waddr;
- }
-
- /* Setup the client_data structure, and call the driver function. */
-
- client_data.file_opened_p = 0;
- client_data.widget_line_no = 0;
- client_data.interp = interp;
- for (i = 0; i < 3; i++)
- {
- client_data.result_obj[i] = Tcl_NewObj();
- Tcl_IncrRefCount (client_data.result_obj[i]);
- }
-
- /* Fill up the constant parts of the argv structures */
- client_data.asm_argv[0] = client_data.widget;
- client_data.asm_argv[1] = "insert";
- client_data.asm_argv[2] = "end";
- client_data.asm_argv[3] = "-\t";
- client_data.asm_argv[4] = "break_rgn_tag";
- /* client_data.asm_argv[5] = address; */
- client_data.asm_argv[6] = "break_rgn_tag";
- /* client_data.asm_argv[7] = offset; */
- client_data.asm_argv[8] = "break_rgn_tag";
- client_data.asm_argv[9] = ":\t\t";
- client_data.asm_argv[10] = "source_tag";
- /* client_data.asm_argv[11] = code; */
- client_data.asm_argv[12] = "source_tag";
- client_data.asm_argv[13] = "\n";
-
- if (mixed_source_and_assembly)
- {
- client_data.source_argv[0] = client_data.widget;
- client_data.source_argv[1] = "insert";
- client_data.source_argv[2] = "end";
- /* client_data.source_argv[3] = line_number; */
- client_data.source_argv[4] = "";
- /* client_data.source_argv[5] = line; */
- client_data.source_argv[6] = "source_tag2";
- }
-
- ret_val = gdb_disassemble_driver (low, high, mixed_source_and_assembly,
- (ClientData) &client_data,
- gdbtk_load_source, gdbtk_load_asm);
-
- /* Now clean up the opened file, and the Tcl data structures */
-
- if (client_data.file_opened_p == 1)
- fclose(client_data.fp);
-
- if (*client_data.map_arr != '\0')
- {
- Tcl_DStringFree(&client_data.src_to_line_prefix);
- Tcl_DStringFree(&client_data.pc_to_line_prefix);
- Tcl_DStringFree(&client_data.line_to_pc_prefix);
- }
-
- for (i = 0; i < 3; i++)
- {
- Tcl_DecrRefCount (client_data.result_obj[i]);
- }
-
- /* Finally, if we were successful, stick the low & high addresses
- into the Tcl result. */
-
- if (ret_val == TCL_OK)
- {
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj (core_addr_to_string (low), -1));
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj (core_addr_to_string (high), -1));
- }
- return ret_val;
-}
-
-static void
-gdbtk_load_source (ClientData clientData, struct symtab *symtab,
- int start_line, int end_line)
-{
- struct disassembly_client_data *client_data =
- (struct disassembly_client_data *) clientData;
- char *buffer;
- int index_len;
-
- index_len = Tcl_DStringLength (&client_data->src_to_line_prefix);
-
- if (client_data->file_opened_p == 1)
- {
- const char **text_argv;
- char line[10000], line_number[18];
- int found_carriage_return = 1;
-
- /* First do some sanity checks on the requested lines */
-
- if (start_line < 1
- || end_line < start_line || end_line > symtab->nlines)
- {
- return;
- }
-
- line_number[0] = '\t';
- line[0] = '\t';
-
- text_argv = client_data->source_argv;
-
- text_argv[3] = line_number;
- text_argv[5] = line;
-
- if (fseek (client_data->fp, symtab->line_charpos[start_line - 1],
- SEEK_SET) < 0)
- {
- fclose(client_data->fp);
- client_data->file_opened_p = -1;
- return;
- }
-
- for (; start_line < end_line; start_line++)
- {
- if (!fgets (line + 1, 9980, client_data->fp))
- {
- fclose(client_data->fp);
- client_data->file_opened_p = -1;
- return;
- }
-
- client_data->widget_line_no++;
-
- sprintf (line_number + 1, "%d", start_line);
-
- if (found_carriage_return)
- {
- char *p = strrchr(line, '\0') - 2;
- if (*p == '\r')
- {
- *p = '\n';
- *(p + 1) = '\0';
- }
- else
- found_carriage_return = 0;
- }
-
- /* Run the command, then add an entry to the map array in
- the caller's scope, if requested. */
-
- client_data->cmd.proc (client_data->cmd.clientData,
- client_data->interp, 7, text_argv);
-
- if (*client_data->map_arr != '\0')
- {
-
- Tcl_DStringAppend (&client_data->src_to_line_prefix,
- line_number + 1, -1);
-
- /* FIXME: Convert to Tcl_SetVar2Ex when we move to 8.2. This
- will allow us avoid converting widget_line_no into a string. */
-
- xasprintf (&buffer, "%d", client_data->widget_line_no);
-
- Tcl_SetVar2 (client_data->interp, client_data->map_arr,
- Tcl_DStringValue (&client_data->src_to_line_prefix),
- buffer, 0);
- free(buffer);
-
- Tcl_DStringSetLength (&client_data->src_to_line_prefix, index_len);
- }
- }
-
- }
- else if (!client_data->file_opened_p)
- {
- int fdes;
- /* The file is not yet open, try to open it, then print the
- first line. If we fail, set FILE_OPEN_P to -1. */
-
- fdes = open_source_file (symtab);
- if (fdes < 0)
- {
- client_data->file_opened_p = -1;
- }
- else
- {
- /* FIXME: Convert to a Tcl File Channel and read from there.
- This will allow us to get the line endings and conversion
- to UTF8 right automatically when we move to 8.2.
- Need a Cygwin call to convert a file descriptor to the native
- Windows handler to do this. */
-
- client_data->file_opened_p = 1;
- client_data->fp = fdopen (fdes, FOPEN_RB);
- clearerr (client_data->fp);
-
- if (symtab->line_charpos == 0)
- find_source_lines (symtab, fdes);
-
- /* We are called with an actual load request, so call ourselves
- to load the first line. */
-
- gdbtk_load_source (clientData, symtab, start_line, end_line);
- }
- }
- else
- {
- /* If we couldn't open the file, or got some prior error, just exit. */
- return;
- }
-}
-
-
-/* FIXME: cagney/2003-09-08: "di" is not used and unneeded. */
-static CORE_ADDR
-gdbtk_load_asm (ClientData clientData, CORE_ADDR pc,
- struct disassemble_info *di)
-{
- struct disassembly_client_data * client_data
- = (struct disassembly_client_data *) clientData;
- const char **text_argv;
- int i, pc_to_line_len, line_to_pc_len;
- gdbtk_result new_result;
- int insn;
- struct cleanup *old_chain = NULL;
-
- pc_to_line_len = Tcl_DStringLength (&client_data->pc_to_line_prefix);
- line_to_pc_len = Tcl_DStringLength (&client_data->line_to_pc_prefix);
-
- text_argv = client_data->asm_argv;
-
- /* Preserve the current Tcl result object, print out what we need, and then
- suck it out of the result, and replace... */
-
- old_chain = make_cleanup (gdbtk_restore_result_ptr, (void *) result_ptr);
- result_ptr = &new_result;
- result_ptr->obj_ptr = client_data->result_obj[0];
- result_ptr->flags = GDBTK_TO_RESULT;
-
- /* Null out the three return objects we will use. */
-
- for (i = 0; i < 3; i++)
- Tcl_SetObjLength (client_data->result_obj[i], 0);
-
- deprecated_print_address_numeric (pc, 1, gdb_stdout);
- gdb_flush (gdb_stdout);
-
- result_ptr->obj_ptr = client_data->result_obj[1];
- print_address_symbolic (pc, gdb_stdout, 1, "\t");
- gdb_flush (gdb_stdout);
-
- result_ptr->obj_ptr = client_data->result_obj[2];
- /* FIXME: cagney/2003-09-08: This should use gdb_disassembly. */
- insn = gdb_print_insn (pc, gdb_stdout);
- gdb_flush (gdb_stdout);
-
- client_data->widget_line_no++;
-
- text_argv[5] = Tcl_GetStringFromObj (client_data->result_obj[0], NULL);
- text_argv[7] = Tcl_GetStringFromObj (client_data->result_obj[1], NULL);
- text_argv[11] = Tcl_GetStringFromObj (client_data->result_obj[2], NULL);
-
- client_data->cmd.proc (client_data->cmd.clientData,
- client_data->interp, 14, text_argv);
-
- if (*client_data->map_arr != '\0')
- {
- char *buffer;
-
- /* Run the command, then add an entry to the map array in
- the caller's scope. */
-
- Tcl_DStringAppend (&client_data->pc_to_line_prefix, core_addr_to_string (pc), -1);
-
- /* FIXME: Convert to Tcl_SetVar2Ex when we move to 8.2. This
- will allow us avoid converting widget_line_no into a string. */
-
- xasprintf (&buffer, "%d", client_data->widget_line_no);
-
- Tcl_SetVar2 (client_data->interp, client_data->map_arr,
- Tcl_DStringValue (&client_data->pc_to_line_prefix),
- buffer, 0);
-
- Tcl_DStringAppend (&client_data->line_to_pc_prefix, buffer, -1);
-
-
- Tcl_SetVar2 (client_data->interp, client_data->map_arr,
- Tcl_DStringValue (&client_data->line_to_pc_prefix),
- core_addr_to_string (pc), 0);
-
- /* Restore the prefixes to their initial state. */
-
- Tcl_DStringSetLength (&client_data->pc_to_line_prefix, pc_to_line_len);
- Tcl_DStringSetLength (&client_data->line_to_pc_prefix, line_to_pc_len);
-
- xfree (buffer);
- }
-
- do_cleanups (old_chain);
-
- return pc + insn;
-}
-
-static int
-gdb_disassemble_driver (CORE_ADDR low, CORE_ADDR high,
- int mixed_source_and_assembly,
- ClientData clientData,
- void (*print_source_fn) (ClientData, struct symtab *, int, int),
- CORE_ADDR (*print_asm_fn) (ClientData, CORE_ADDR, struct disassemble_info *))
-{
- CORE_ADDR pc;
-
- /* If just doing straight assembly, all we need to do is disassemble
- everything between low and high. If doing mixed source/assembly, we've
- got a totally different path to follow. */
-
- if (mixed_source_and_assembly)
- { /* Come here for mixed source/assembly */
- /* The idea here is to present a source-O-centric view of a function to
- the user. This means that things are presented in source order, with
- (possibly) out of order assembly immediately following. */
- struct symtab *symtab;
- struct linetable_entry *le;
- int nlines;
- int newlines;
- struct my_line_entry *mle;
- struct symtab_and_line sal;
- int i;
- int out_of_order;
- int next_line;
-
- /* Assume symtab is valid for whole PC range */
- symtab = find_pc_symtab (low);
-
- if (!symtab || !symtab->linetable)
- goto assembly_only;
-
- /* First, convert the linetable to a bunch of my_line_entry's. */
-
- le = symtab->linetable->item;
- nlines = symtab->linetable->nitems;
-
- if (nlines <= 0)
- goto assembly_only;
-
- mle = (struct my_line_entry *) alloca (nlines *
- sizeof (struct my_line_entry));
-
- out_of_order = 0;
-
- /* Copy linetable entries for this function into our data structure,
- creating end_pc's and setting out_of_order as appropriate. */
-
- /* First, skip all the preceding functions. */
-
- for (i = 0; i < nlines - 1 && le[i].pc < low; i++) ;
-
- /* Now, copy all entries before the end of this function. */
-
- newlines = 0;
- for (; i < nlines - 1 && le[i].pc < high; i++)
- {
- if (le[i].line == le[i + 1].line
- && le[i].pc == le[i + 1].pc)
- continue; /* Ignore duplicates */
-
- /* Skip any end-of-function markers. */
- if (le[i].line == 0)
- continue;
-
- mle[newlines].line = le[i].line;
- if (le[i].line > le[i + 1].line)
- out_of_order = 1;
- mle[newlines].start_pc = le[i].pc;
- mle[newlines].end_pc = le[i + 1].pc;
- newlines++;
- }
-
- /* If we're on the last line, and it's part of the function, then we
- need to get the end pc in a special way. */
-
- if (i == nlines - 1
- && le[i].pc < high)
- {
- mle[newlines].line = le[i].line;
- mle[newlines].start_pc = le[i].pc;
- sal = find_pc_line (le[i].pc, 0);
- mle[newlines].end_pc = sal.end;
- newlines++;
- }
-
- /* Now, sort mle by line #s (and, then by addresses within lines). */
-
- if (out_of_order)
- qsort (mle, newlines, sizeof (struct my_line_entry), compare_lines);
-
- /* Now, for each line entry, emit the specified lines (unless they have
- been emitted before), followed by the assembly code for that line. */
-
- next_line = 0; /* Force out first line */
- for (i = 0; i < newlines; i++)
- {
- /* Print out everything from next_line to the current line. */
-
- if (mle[i].line >= next_line)
- {
- if (next_line != 0)
- print_source_fn (clientData, symtab, next_line,
- mle[i].line + 1);
- else
- print_source_fn (clientData, symtab, mle[i].line,
- mle[i].line + 1);
-
- next_line = mle[i].line + 1;
- }
-
- for (pc = mle[i].start_pc; pc < mle[i].end_pc; )
- {
- QUIT;
- /* FIXME: cagney/2003-09-08: This entire function should
- be replaced by gdb_disassembly. */
- pc = print_asm_fn (clientData, pc, NULL);
- }
- }
- }
- else
- {
- assembly_only:
- for (pc = low; pc < high; )
- {
- QUIT;
- /* FIXME: cagney/2003-09-08: This entire function should be
- replaced by gdb_disassembly. */
- pc = print_asm_fn (clientData, pc, NULL);
- }
- }
-
- return TCL_OK;
-}
-
-/* This will be passed to qsort to sort the results of the disassembly */
-
-static int
-compare_lines (const PTR mle1p, const PTR mle2p)
-{
- struct my_line_entry *mle1, *mle2;
- int val;
-
- mle1 = (struct my_line_entry *) mle1p;
- mle2 = (struct my_line_entry *) mle2p;
-
- val = mle1->line - mle2->line;
-
- if (val != 0)
- return val;
-
- return mle1->start_pc - mle2->start_pc;
-}
-
-/* This implements the TCL command `gdb_loc',
-
-* Arguments:
-* ?symbol? The symbol or address to locate - defaults to pc
-* Tcl Return:
-* a list consisting of the following:
-* basename, function name, filename, line number, address, current pc
-*/
-
-static int
-gdb_loc (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
-{
- char *filename;
- struct symtab_and_line sal;
- char *fname;
- CORE_ADDR pc;
-
- if (objc == 1)
- {
- /* This function can be called, before the target is properly
- set-up, the following prevents an error, by trying to
- read_pc when there is no pc to read. It defaults pc,
- before the target is connected to the entry point of the
- program */
- if (!target_has_registers)
- {
- pc = entry_point_address ();
- sal = find_pc_line (pc, 0);
- }
- else
- {
- struct frame_info *frame;
-
- frame = get_selected_frame (NULL);
-
- if (get_frame_pc (frame) != read_pc ())
- {
- /* Note - this next line is not correct on all architectures.
- For a graphical debugger we really want to highlight the
- assembly line that called the next function on the stack.
- Many architectures have the next instruction saved as the
- pc on the stack, so what happens is the next instruction
- is highlighted. FIXME */
- pc = get_frame_pc (frame);
- find_frame_sal (frame, &sal);
- }
- else
- {
- pc = read_pc ();
- sal = find_pc_line (pc, 0);
- }
- }
- }
- else if (objc == 2)
- {
- struct symtabs_and_lines sals;
- int nelts;
-
- sals = decode_line_spec (Tcl_GetStringFromObj (objv[1], NULL), 1);
-
- nelts = sals.nelts;
- sal = sals.sals[0];
- free (sals.sals);
-
- if (sals.nelts != 1)
- {
- gdbtk_set_result (interp, "Ambiguous line spec", -1);
- return TCL_ERROR;
- }
- resolve_sal_pc (&sal);
- pc = sal.pc;
- }
- else
- {
- Tcl_WrongNumArgs (interp, 1, objv, "?symbol?");
- return TCL_ERROR;
- }
-
- if (sal.symtab)
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj (sal.symtab->filename, -1));
- else
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj ("", 0));
-
- fname = pc_function_name (pc);
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj (fname, -1));
-
- filename = symtab_to_filename (sal.symtab);
- if (filename == NULL)
- filename = "";
-
- /* file name */
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, Tcl_NewStringObj (filename, -1));
- /* line number */
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, Tcl_NewIntObj (sal.line));
- /* PC in current frame */
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj (core_addr_to_string (pc), -1));
- /* Real PC */
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj (core_addr_to_string (stop_pc), -1));
- /* shared library */
-#ifdef PC_SOLIB
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj (PC_SOLIB (pc), -1));
-#else
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj ("", -1));
-#endif
- return TCL_OK;
-}
-
-/* This implements the TCL command gdb_entry_point. It returns the current
- entry point address. */
-
-static int
-gdb_entry_point (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- char *addrstr;
-
- /* If we have not yet loaded an exec file, then we have no
- entry point, so return an empty string.*/
- if ((int) current_target.to_stratum > (int) dummy_stratum)
- {
- addrstr = (char *)core_addr_to_string (entry_point_address ());
- Tcl_SetStringObj (result_ptr->obj_ptr, addrstr, -1);
- }
- else
- Tcl_SetStringObj (result_ptr->obj_ptr, "", -1);
-
- return TCL_OK;
-}
-
-/* Covert hex to binary. Stolen from remote.c,
- but added error handling */
-static int
-fromhex (int a)
-{
- if (a >= '0' && a <= '9')
- return a - '0';
- else if (a >= 'a' && a <= 'f')
- return a - 'a' + 10;
- else if (a >= 'A' && a <= 'F')
- return a - 'A' + 10;
-
- return -1;
-}
-
-static int
-hex2bin (const char *hex, char *bin, int count)
-{
- int i, m, n;
- int incr = 2;
-
-
- if (TARGET_BYTE_ORDER == BFD_ENDIAN_LITTLE)
- {
- /* need to read string in reverse */
- hex += count - 2;
- incr = -2;
- }
-
- for (i = 0; i < count; i += 2)
- {
- if (hex[0] == 0 || hex[1] == 0)
- {
- /* Hex string is short, or of uneven length.
- Return the count that has been converted so far. */
- return i;
- }
- m = fromhex (hex[0]);
- n = fromhex (hex[1]);
- if (m == -1 || n == -1)
- return -1;
- *bin++ = m * 16 + n;
- hex += incr;
- }
-
- return i;
-}
-
-/* This implements the Tcl command 'gdb_set_mem', which
- * sets some chunk of memory.
- *
- * Arguments:
- * gdb_set_mem addr hexstr len
- *
- * addr: address of data to set
- * hexstr: ascii string of data to set
- * len: number of bytes of data to set
- */
-static int
-gdb_set_mem (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- CORE_ADDR addr;
- gdb_byte buf[128];
- char *hexstr;
- int len, size;
-
- if (objc != 4)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "addr hex_data len");
- return TCL_ERROR;
- }
-
- /* Address to write */
- addr = string_to_core_addr (Tcl_GetStringFromObj (objv[1], NULL));
-
- /* String value to write: it's in hex */
- hexstr = Tcl_GetStringFromObj (objv[2], NULL);
- if (hexstr == NULL)
- return TCL_ERROR;
-
- /* Length of buf */
- if (Tcl_GetIntFromObj (interp, objv[3], &len) != TCL_OK)
- return TCL_ERROR;
-
- /* Convert hexstr to binary and write */
- if (hexstr[0] == '0' && hexstr[1] == 'x')
- hexstr += 2;
- size = hex2bin (hexstr, (char *) buf, strlen (hexstr));
- if (size < 0)
- {
- /* Error in input */
- gdbtk_set_result (interp, "Invalid hexadecimal input: \"0x%s\"", hexstr);
- return TCL_ERROR;
- }
-
- target_write_memory (addr, buf, len);
- return TCL_OK;
-}
-
-/* This implements the Tcl command 'gdb_update_mem', which
- * updates a block of memory in the memory window
- *
- * Arguments:
- * gdb_update_mem data addr form size nbytes bpr aschar
- *
- * 1 data: variable that holds table's data
- * 2 addr: address of data to dump
- * 3 mform: a char indicating format
- * 4 size: size of each element; 1,2,4, or 8 bytes
- * 5 nbytes: the number of bytes to read
- * 6 bpr: bytes per row
- * 7 aschar: if present, an ASCII dump of the row is included. ASCHAR
- * used for unprintable characters.
- *
- * Return:
- * a list of three integers: {border_col_width data_col_width ascii_col_width}
- * which can be used to set the table's column widths. */
-
-static int
-gdb_update_mem (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- long dummy;
- char index[20];
- CORE_ADDR addr;
- int nbytes, rnum, bpr;
- int size, asize, i, j, bc;
- int max_ascii_len, max_val_len, max_label_len;
- char format, aschar;
- char *data, *tmp;
- char buff[128], *mbuf, *mptr, *cptr, *bptr;
- struct ui_file *stb;
- struct type *val_type;
- struct cleanup *old_chain;
-
- if (objc < 7 || objc > 8)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "data addr format size bytes bytes_per_row ?ascii_char?");
- return TCL_ERROR;
- }
-
- /* Get table data and link to a local variable */
- data = Tcl_GetStringFromObj (objv[1], NULL);
- if (data == NULL)
- {
- gdbtk_set_result (interp, "could not get data variable");
- return TCL_ERROR;
- }
-
- if (Tcl_UpVar (interp, "1", data, "data", 0) != TCL_OK)
- {
- gdbtk_set_result (interp, "could not link table data");
- return TCL_ERROR;
- }
-
- if (Tcl_GetIntFromObj (interp, objv[4], &size) != TCL_OK)
- return TCL_ERROR;
- else if (size <= 0)
- {
- gdbtk_set_result (interp, "Invalid size, must be > 0");
- return TCL_ERROR;
- }
-
- if (Tcl_GetIntFromObj (interp, objv[5], &nbytes) != TCL_OK)
- return TCL_ERROR;
- else if (nbytes <= 0)
- {
- gdbtk_set_result (interp, "Invalid number of bytes, must be > 0");
- return TCL_ERROR;
- }
-
- if (Tcl_GetIntFromObj (interp, objv[6], &bpr) != TCL_OK)
- return TCL_ERROR;
- else if (bpr <= 0)
- {
- gdbtk_set_result (interp, "Invalid bytes per row, must be > 0");
- return TCL_ERROR;
- }
-
- tmp = Tcl_GetStringFromObj (objv[2], NULL);
- if (tmp == NULL)
- {
- gdbtk_set_result (interp, "could not get address");
- return TCL_ERROR;
- }
- addr = string_to_core_addr (tmp);
-
- format = *(Tcl_GetStringFromObj (objv[3], NULL));
- mbuf = (char *) xmalloc (nbytes + 32);
- if (!mbuf)
- {
- gdbtk_set_result (interp, "Out of memory.");
- return TCL_ERROR;
- }
-
- memset (mbuf, 0, nbytes + 32);
- mptr = cptr = mbuf;
-
- rnum = target_read (&current_target, TARGET_OBJECT_MEMORY, NULL,
- mbuf, addr, nbytes);
- if (rnum <= 0)
- {
- gdbtk_set_result (interp, "Unable to read memory.");
- return TCL_ERROR;
- }
-
- if (objc == 8)
- aschar = *(Tcl_GetStringFromObj (objv[7], NULL));
- else
- aschar = 0;
-
- switch (size)
- {
- case 1:
- val_type = builtin_type_int8;
- asize = 'b';
- break;
- case 2:
- val_type = builtin_type_int16;
- asize = 'h';
- break;
- case 4:
- val_type = builtin_type_int32;
- asize = 'w';
- break;
- case 8:
- val_type = builtin_type_int64;
- asize = 'g';
- break;
- default:
- val_type = builtin_type_int8;
- asize = 'b';
- }
-
- bc = 0; /* count of bytes in a row */
- bptr = &buff[0]; /* pointer for ascii dump */
-
- /* Open a memory ui_file that we can use to print memory values */
- stb = mem_fileopen ();
- old_chain = make_cleanup_ui_file_delete (stb);
-
- /* A little macro to do column indices. As a rule, given the current
- byte, i, of a total nbytes and the bytes per row, bpr, and the size of
- each cell, size, the row and column will be given by:
-
- row = i/bpr
- col = (i%bpr)/size
- */
-#define INDEX(row,col) sprintf (index, "%d,%d",(row),(col))
-
- /* Fill in address labels */
- max_label_len = 0;
- for (i = 0; i < nbytes; i += bpr)
- {
- char s[130];
- sprintf (s, "%s", core_addr_to_string (addr + i));
- INDEX ((int) i/bpr, -1);
- Tcl_SetVar2 (interp, "data", index, s, 0);
-
- /* The tcl code in MemWin::update_addr used to track the size
- of each cell. I don't see how these could change for any given
- update, so we don't loop over all cells. We just note the first
- size. */
- if (max_label_len == 0)
- max_label_len = strlen (s);
- }
-
- /* Fill in memory */
- max_val_len = 0; /* Ditto the above comments about max_label_len */
- max_ascii_len = 0;
- for (i = 0; i < nbytes; i += size)
- {
- INDEX ((int) i/bpr, (int) (i%bpr)/size);
-
- if (i >= rnum)
- {
- /* Read fewer bytes than requested */
- tmp = "N/A";
-
- if (aschar)
- {
- for (j = 0; j < size; j++)
- *bptr++ = 'X';
- }
- }
- else
- {
- /* print memory to our uiout file and set the table's variable */
- ui_file_rewind (stb);
- print_scalar_formatted (mptr, val_type, format, asize, stb);
- tmp = ui_file_xstrdup (stb, &dummy);
-
- /* See comments above on max_*_len */
- if (max_val_len == 0)
- max_val_len = strlen (tmp);
-
- if (aschar)
- {
- for (j = 0; j < size; j++)
- {
- if (isprint (*cptr))
- *bptr++ = *cptr++;
- else
- {
- *bptr++ = aschar;
- cptr++;;
- }
- }
- }
- }
- Tcl_SetVar2 (interp, "data", index, tmp, 0);
-
- mptr += size;
- bc += size;
-
- if (aschar && (bc >= bpr))
- {
- /* end of row. Add it to the result and reset variables */
- *bptr = '\000';
- INDEX (i/bpr, bpr/size);
- Tcl_SetVar2 (interp, "data", index, buff, 0);
-
- /* See comments above on max_*_len */
- if (max_ascii_len == 0)
- max_ascii_len = strlen (buff);
-
- bc = 0;
- bptr = &buff[0];
- }
- }
-
- /* return max_*_len so that column widths can be set */
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr, Tcl_NewIntObj (max_label_len + 1));
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr, Tcl_NewIntObj (max_val_len + 1));
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr, Tcl_NewIntObj (max_ascii_len + 1));
- do_cleanups (old_chain);
- xfree (mbuf);
- return TCL_OK;
-#undef INDEX
-}
-
-
-/* This implements the tcl command "gdb_loadfile"
- * It loads a c source file into a text widget.
- *
- * Tcl Arguments:
- * widget: the name of the text widget to fill
- * filename: the name of the file to load
- * linenumbers: A boolean indicating whether or not to display line numbers.
- * Tcl Result:
- *
- */
-
-/* In this routine, we will build up a "line table", i.e. a
- * table of bits showing which lines in the source file are executible.
- * LTABLE_SIZE is the number of bytes to allocate for the line table.
- *
- * Its size limits the maximum number of lines
- * in a file to 8 * LTABLE_SIZE. This memory is freed after
- * the file is loaded, so it is OK to make this very large.
- * Additional memory will be allocated if needed. */
-#define LTABLE_SIZE 20000
-static int
-gdb_loadfile (ClientData clientData, Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[])
-{
- char *file, *widget;
- int linenumbers, ln, lnum, ltable_size;
- FILE *fp;
- char *ltable;
- struct symtab *symtab;
- struct linetable_entry *le;
- long mtime = 0;
- struct stat st;
- char line[10000], line_num_buf[18];
- const char *text_argv[9];
- Tcl_CmdInfo text_cmd;
-
-
- if (objc != 4)
- {
- Tcl_WrongNumArgs(interp, 1, objv, "widget filename linenumbers");
- return TCL_ERROR;
- }
-
- widget = Tcl_GetStringFromObj (objv[1], NULL);
- if ( Tk_NameToWindow (interp, widget, Tk_MainWindow (interp)) == NULL)
- {
- return TCL_ERROR;
- }
-
- if (!Tcl_GetCommandInfo (interp, widget, &text_cmd))
- {
- gdbtk_set_result (interp, "Can't get widget command info");
- return TCL_ERROR;
- }
-
- file = Tcl_GetStringFromObj (objv[2], NULL);
- Tcl_GetBooleanFromObj (interp, objv[3], &linenumbers);
-
- symtab = lookup_symtab (file);
- if (!symtab)
- {
- gdbtk_set_result (interp, "File not found in symtab");
- return TCL_ERROR;
- }
-
- file = symtab_to_filename ( symtab );
- if ((fp = fopen ( file, "r" )) == NULL)
- {
- gdbtk_set_result (interp, "Can't open file for reading");
- return TCL_ERROR;
- }
-
- if (stat (file, &st) < 0)
- {
- catch_errors (perror_with_name_wrapper, "gdbtk: get time stamp", "",
- RETURN_MASK_ALL);
- return TCL_ERROR;
- }
-
- if (symtab && symtab->objfile && symtab->objfile->obfd)
- mtime = bfd_get_mtime(symtab->objfile->obfd);
- else if (exec_bfd)
- mtime = bfd_get_mtime(exec_bfd);
-
- if (mtime && mtime < st.st_mtime)
- {
- gdbtk_ignorable_warning("file_times",\
- "Source file is more recent than executable.\n");
- }
-
-
- /* Source linenumbers don't appear to be in order, and a sort is */
- /* too slow so the fastest solution is just to allocate a huge */
- /* array and set the array entry for each linenumber */
-
- ltable_size = LTABLE_SIZE;
- ltable = (char *)malloc (LTABLE_SIZE);
- if (ltable == NULL)
- {
- fclose (fp);
- gdbtk_set_result (interp, "Out of memory.");
- return TCL_ERROR;
- }
-
- memset (ltable, 0, LTABLE_SIZE);
-
- if (symtab->linetable && symtab->linetable->nitems)
- {
- le = symtab->linetable->item;
- for (ln = symtab->linetable->nitems ;ln > 0; ln--, le++)
- {
- lnum = le->line >> 3;
- if (lnum >= ltable_size)
- {
- char *new_ltable;
- new_ltable = (char *)realloc (ltable, ltable_size*2);
- memset (new_ltable + ltable_size, 0, ltable_size);
- ltable_size *= 2;
- if (new_ltable == NULL)
- {
- free (ltable);
- fclose (fp);
- gdbtk_set_result (interp, "Out of memory.");
- return TCL_ERROR;
- }
- ltable = new_ltable;
- }
- ltable[lnum] |= 1 << (le->line % 8);
- }
- }
-
- ln = 1;
-
- line[0] = '\t';
- text_argv[0] = widget;
- text_argv[1] = "insert";
- text_argv[2] = "end";
- text_argv[5] = line;
- text_argv[6] = "source_tag";
- text_argv[8] = NULL;
-
- if (linenumbers)
- {
- int found_carriage_return = 1;
-
- line_num_buf[1] = '\t';
-
- text_argv[3] = line_num_buf;
-
- while (fgets (line + 1, 9980, fp))
- {
- /* Look for DOS style \r\n endings, and if found,
- * strip off the \r. We assume (for the sake of
- * speed) that ALL lines in the file have DOS endings,
- * or none do.
- */
-
- if (found_carriage_return)
- {
- char *p = strrchr(line, '\0') - 2;
- if (*p == '\r')
- {
- *p = '\n';
- *(p + 1) = '\0';
- }
- else
- found_carriage_return = 0;
- }
-
- sprintf (line_num_buf+2, "%d", ln);
- if (ltable[ln >> 3] & (1 << (ln % 8)))
- {
- line_num_buf[0] = '-';
- text_argv[4] = "break_rgn_tag";
- }
- else
- {
- line_num_buf[0] = ' ';
- text_argv[4] = "";
- }
-
- text_cmd.proc(text_cmd.clientData, interp, 7, text_argv);
- ln++;
- }
- }
- else
- {
- int found_carriage_return = 1;
-
- while (fgets (line + 1, 9980, fp))
- {
- if (found_carriage_return)
- {
- char *p = strrchr(line, '\0') - 2;
- if (*p == '\r')
- {
- *p = '\n';
- *(p + 1) = '\0';
- }
- else
- found_carriage_return = 0;
- }
-
- if (ltable[ln >> 3] & (1 << (ln % 8)))
- {
- text_argv[3] = "- ";
- text_argv[4] = "break_rgn_tag";
- }
- else
- {
- text_argv[3] = " ";
- text_argv[4] = "";
- }
-
- text_cmd.proc(text_cmd.clientData, interp, 7, text_argv);
- ln++;
- }
- }
-
- free (ltable);
- fclose (fp);
- return TCL_OK;
-}
-
-/*
- * This section contains a bunch of miscellaneous utility commands
- */
-
-/* This implements the tcl command gdb_path_conv
-
-* On Windows, it canonicalizes the pathname,
-* On Unix, it is a no op.
-*
-* Arguments:
-* path
-* Tcl Result:
-* The canonicalized path.
-*/
-
-static int
-gdb_path_conv (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- if (objc != 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv, NULL);
- return TCL_ERROR;
- }
-
-#ifdef __CYGWIN__
- {
- char pathname[256], *ptr;
-
- cygwin_conv_to_full_win32_path (Tcl_GetStringFromObj (objv[1], NULL),
- pathname);
- for (ptr = pathname; *ptr; ptr++)
- {
- if (*ptr == '\\')
- *ptr = '/';
- }
- Tcl_SetStringObj (result_ptr->obj_ptr, pathname, -1);
- }
-#else
- Tcl_SetStringObj (result_ptr->obj_ptr, Tcl_GetStringFromObj (objv[1], NULL),
- -1);
-#endif
-
- return TCL_OK;
-}
-
-/*
- * This section has utility routines that are not Tcl commands.
- */
-
-static int
-perror_with_name_wrapper (PTR args)
-{
- perror_with_name (args);
- return 1;
-}
-
-/* Look for the function that contains PC and return the source
- (demangled) name for this function.
-
- If no symbol is found, it returns an empty string. In either
- case, memory is owned by gdb. Do not attempt to free it. */
-char *
-pc_function_name (CORE_ADDR pc)
-{
- struct symbol *sym;
- char *funcname = NULL;
-
- /* First lookup the address in the symbol table... */
- sym = find_pc_function (pc);
- if (sym != NULL)
- funcname = GDBTK_SYMBOL_SOURCE_NAME (sym);
- else
- {
- /* ... if that fails, look it up in the minimal symbols. */
- struct minimal_symbol *msym = NULL;
-
- msym = lookup_minimal_symbol_by_pc (pc);
- if (msym != NULL)
- funcname = GDBTK_SYMBOL_SOURCE_NAME (msym);
- }
-
- if (funcname == NULL)
- funcname = "";
-
- return funcname;
-}
-
-void
-gdbtk_set_result (Tcl_Interp *interp, const char *fmt,...)
-{
- va_list args;
- char *buf;
-
- va_start (args, fmt);
- xvasprintf (&buf, fmt, args);
- va_end (args);
- Tcl_SetObjResult (interp, Tcl_NewStringObj (buf, -1));
- xfree(buf);
-}
-
-
-/* This implements the tcl command 'gdb_incr_addr'.
- * It does address arithmetic and outputs a proper
- * hex string. This was originally implemented
- * when tcl did not support 64-bit values, but we keep
- * it because it saves us from having to call incr
- * followed by format to get the result in hex.
- * Also, it may be true in the future that CORE_ADDRs
- * will have their own ALU to deal properly with
- * architecture-specific address arithmetic.
- *
- * Tcl Arguments:
- * addr - CORE_ADDR
- * number - optional number to add to the address
- * default is 1.
- *
- * Tcl Result:
- * hex string containing the result of addr + number
- */
-
-static int
-gdb_incr_addr (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- CORE_ADDR address;
- int number = 1;
-
- if (objc != 2 && objc != 3)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "CORE_ADDR [number]");
- return TCL_ERROR;
- }
-
- address = string_to_core_addr (Tcl_GetStringFromObj (objv[1], NULL));
-
- if (objc == 3)
- {
- if (Tcl_GetIntFromObj (interp, objv[2], &number) != TCL_OK)
- return TCL_ERROR;
- }
-
- address += number;
-
- Tcl_SetStringObj (result_ptr->obj_ptr, (char *)core_addr_to_string (address), -1);
-
- return TCL_OK;
-}
-
-/* This implements the tcl command 'gdb_CAS_to_TAS'.
- * It takes a CORE_ADDR and outputs a string suitable
- * for displaying as the target address.
- *
- * Note that CORE_ADDRs are internal addresses which map
- * to target addresses in different ways depending on the
- * architecture. The target address string is a user-readable
- * string may be quite different than the CORE_ADDR. For example,
- * a CORE_ADDR of 0x02001234 might indicate a data address of
- * 0x1234 which this function might someday output as something
- * like "D:1234".
- *
- * Tcl Arguments:
- * address - CORE_ADDR
- *
- * Tcl Result:
- * string
- */
-
-static int
-gdb_CA_to_TAS (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- CORE_ADDR address;
- Tcl_WideInt wide_addr;
-
- if (objc != 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "CORE_ADDR");
- return TCL_ERROR;
- }
-
- /* Read address into a wideint, which is the largest tcl supports
- then convert to a CORE_ADDR */
- if (Tcl_GetWideIntFromObj (interp, objv[1], &wide_addr) != TCL_OK)
- return TCL_ERROR;
- address = wide_addr;
-
- /* This is not really correct. Using paddr_nz() will convert to hex and truncate
- to 32-bits when required but will otherwise not do what we really want. */
- Tcl_SetStringObj (result_ptr->obj_ptr, paddr_nz (address), -1);
-
- return TCL_OK;
-}
-
-/* Another function that was removed in GDB and replaced
- * with something similar, but different enough to break
- * Insight.
- */
-int find_and_open_source (struct objfile *objfile, const char *filename,
- const char *dirname, char **fullname);
-
-char *
-symtab_to_filename (struct symtab *s)
-{
-
- int r;
-
- if (!s)
- return NULL;
-
- /* Don't check s->fullname here, the file could have been
- deleted/moved/..., look for it again */
- r = find_and_open_source (s->objfile, s->filename, s->dirname,
- &s->fullname);
- if (r)
- close (r);
-
- if (s->fullname && *s->fullname)
- return s->fullname;
- return s->filename;
-}
diff --git a/gdb/gdbtk/generic/gdbtk-cmds.h b/gdb/gdbtk/generic/gdbtk-cmds.h
deleted file mode 100644
index 9a1c6a94f73..00000000000
--- a/gdb/gdbtk/generic/gdbtk-cmds.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Tcl/Tk command interface for Insight
- Copyright (C) 2001 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#if !defined(GDBTK_CMDS_H)
-#define GDBTK_CMDS_H 1
-
-/* This structure filled in gdbtk_call_wrapper and passed to
- the wrapped call function.
- It stores the command pointer and arguments
- run in the wrapper function. */
-struct wrapped_call_args
- {
- Tcl_Interp *interp;
- Tcl_ObjCmdProc *func;
- int objc;
- Tcl_Obj *CONST * objv;
- int val;
- };
-
-/* A generic call-wrapper to catch longjmps when calling C commands from
- tcl. ALL tcl commands should be wrapped in this call. */
-extern int gdbtk_call_wrapper (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST[]);
-
-/* Returns the source (demangled) name for a function at PC. Returns empty string
- if not found. Memory is owned by gdb. Do not free it. */
-extern char *pc_function_name (CORE_ADDR pc);
-
-/* Convenience function to sprintf something(s) into a new element in
- a Tcl list object. */
-extern void sprintf_append_element_to_obj (Tcl_Obj * objp, char *format, ...);
-
-/* printf-like function to return error messages */
-extern void gdbtk_set_result (Tcl_Interp *interp, const char *fmt,...);
-
-/* Module init routines: Each module of commands should be declared here. */
-extern int Gdbtk_Breakpoint_Init (Tcl_Interp *interp);
-extern int Gdbtk_Stack_Init (Tcl_Interp *interp);
-extern int Gdbtk_Register_Init (Tcl_Interp *interp);
-
-/* replacement for removed gdb function */
-char *symtab_to_filename (struct symtab *s);
-
-#endif /* GDBTK_CMDS_H */
diff --git a/gdb/gdbtk/generic/gdbtk-hooks.c b/gdb/gdbtk/generic/gdbtk-hooks.c
deleted file mode 100644
index 1324d28f83f..00000000000
--- a/gdb/gdbtk/generic/gdbtk-hooks.c
+++ /dev/null
@@ -1,836 +0,0 @@
-/* Startup code for Insight.
-
- Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 200, 2002, 2003, 2004
- Free Software Foundation, Inc.
-
- Written by Stu Grossman <grossman@cygnus.com> of Cygnus Support.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#include "defs.h"
-#include "inferior.h"
-#include "symfile.h"
-#include "objfiles.h"
-#include "gdbcore.h"
-#include "tracepoint.h"
-#include "demangle.h"
-#include "gdb-events.h"
-#include "top.h"
-#include "annotate.h"
-#include "cli/cli-decode.h"
-
-#ifdef _WIN32
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#endif
-
-/* tcl header files includes varargs.h unless HAS_STDARG is defined,
- but gdb uses stdarg.h, so make sure HAS_STDARG is defined. */
-#define HAS_STDARG 1
-
-#include <itcl.h>
-#include <tcl.h>
-#include <tk.h>
-#include "guitcl.h"
-#include "gdbtk.h"
-
-#include <signal.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <sys/time.h>
-
-#include "gdb_string.h"
-#include "dis-asm.h"
-#include "gdbcmd.h"
-
-
-volatile int in_fputs = 0;
-
-/* Set by gdb_stop, this flag informs x_event to tell its caller
- that it should forcibly detach from the target. */
-int gdbtk_force_detach = 0;
-
-/* From gdbtk-bp.c */
-extern void gdbtk_create_breakpoint (int);
-extern void gdbtk_delete_breakpoint (int);
-extern void gdbtk_modify_breakpoint (int);
-extern void gdbtk_create_tracepoint (int);
-extern void gdbtk_delete_tracepoint (int);
-extern void gdbtk_modify_tracepoint (int);
-
-static void gdbtk_architecture_changed (void);
-static void gdbtk_trace_find (char *arg, int from_tty);
-static void gdbtk_trace_start_stop (int, int);
-static void gdbtk_attach (void);
-static void gdbtk_detach (void);
-static void gdbtk_file_changed (char *);
-static void gdbtk_exec_file_display (char *);
-static void gdbtk_call_command (struct cmd_list_element *, char *, int);
-static ptid_t gdbtk_wait (ptid_t, struct target_waitstatus *);
-int x_event (int);
-static int gdbtk_query (const char *, va_list);
-static void gdbtk_warning (const char *, va_list);
-static char *gdbtk_readline (char *);
-static void gdbtk_readline_begin (char *format,...);
-static void gdbtk_readline_end (void);
-static void gdbtk_pre_add_symbol (const char *);
-static void gdbtk_print_frame_info (struct symtab *, int, int, int);
-static void gdbtk_post_add_symbol (void);
-static void gdbtk_register_changed (int regno);
-static void gdbtk_memory_changed (CORE_ADDR addr, int len);
-static void gdbtk_selected_frame_changed (int);
-static void gdbtk_context_change (int);
-static void gdbtk_error_begin (void);
-void report_error (void);
-static void gdbtk_annotate_signal (void);
-static void gdbtk_set_hook (struct cmd_list_element *cmdblk);
-
-/*
- * gdbtk_fputs can't be static, because we need to call it in gdbtk.c.
- * See note there for details.
- */
-
-long gdbtk_read (struct ui_file *, char *, long);
-void gdbtk_fputs (const char *, struct ui_file *);
-static int gdbtk_load_hash (const char *, unsigned long);
-
-/*
- * gdbtk_add_hooks - add all the hooks to gdb. This will get called by the
- * startup code to fill in the hooks needed by core gdb.
- */
-
-void
-gdbtk_add_hooks (void)
-{
- static struct gdb_events handlers;
-
- /* Gdb event handlers */
- handlers.breakpoint_create = gdbtk_create_breakpoint;
- handlers.breakpoint_modify = gdbtk_modify_breakpoint;
- handlers.breakpoint_delete = gdbtk_delete_breakpoint;
- handlers.tracepoint_create = gdbtk_create_tracepoint;
- handlers.tracepoint_modify = gdbtk_modify_tracepoint;
- handlers.tracepoint_delete = gdbtk_delete_tracepoint;
- handlers.architecture_changed = gdbtk_architecture_changed;
- deprecated_set_gdb_event_hooks (&handlers);
-
- /* Hooks */
- deprecated_call_command_hook = gdbtk_call_command;
- deprecated_set_hook = gdbtk_set_hook;
- deprecated_readline_begin_hook = gdbtk_readline_begin;
- deprecated_readline_hook = gdbtk_readline;
- deprecated_readline_end_hook = gdbtk_readline_end;
-
- deprecated_print_frame_info_listing_hook = gdbtk_print_frame_info;
- deprecated_query_hook = gdbtk_query;
- deprecated_warning_hook = gdbtk_warning;
-
- deprecated_interactive_hook = gdbtk_interactive;
- deprecated_target_wait_hook = gdbtk_wait;
- deprecated_ui_load_progress_hook = gdbtk_load_hash;
-
- deprecated_ui_loop_hook = x_event;
- deprecated_pre_add_symbol_hook = gdbtk_pre_add_symbol;
- deprecated_post_add_symbol_hook = gdbtk_post_add_symbol;
- deprecated_file_changed_hook = gdbtk_file_changed;
- specify_exec_file_hook (gdbtk_exec_file_display);
-
- deprecated_trace_find_hook = gdbtk_trace_find;
- deprecated_trace_start_stop_hook = gdbtk_trace_start_stop;
-
- deprecated_attach_hook = gdbtk_attach;
- deprecated_detach_hook = gdbtk_detach;
-
- deprecated_register_changed_hook = gdbtk_register_changed;
- deprecated_memory_changed_hook = gdbtk_memory_changed;
- deprecated_selected_frame_level_changed_hook = gdbtk_selected_frame_changed;
- deprecated_context_hook = gdbtk_context_change;
-
- deprecated_error_begin_hook = gdbtk_error_begin;
-
- deprecated_annotate_signal_hook = gdbtk_annotate_signal;
- deprecated_annotate_signalled_hook = gdbtk_annotate_signal;
-}
-
-/* These control where to put the gdb output which is created by
- {f}printf_{un}filtered and friends. gdbtk_fputs is the lowest
- level of these routines and capture all output from the rest of
- GDB.
-
- The reason to use the result_ptr rather than the gdbtk_interp's result
- directly is so that a call_wrapper invoked function can preserve its result
- across calls into Tcl which might be made in the course of the function's
- execution.
-
- * result_ptr->obj_ptr is where to accumulate the result.
- * GDBTK_TO_RESULT flag means the output goes to the gdbtk_tcl_fputs proc
- instead of to the result_ptr.
- * GDBTK_MAKES_LIST flag means add to the result as a list element.
-
-*/
-
-gdbtk_result *result_ptr = NULL;
-
-/* If you want to restore an old value of result_ptr whenever cleanups
- are run, pass this function to make_cleanup, along with the value
- of result_ptr you'd like to reinstate. */
-void
-gdbtk_restore_result_ptr (void *old_result_ptr)
-{
- result_ptr = (gdbtk_result *) old_result_ptr;
-}
-
-/* This allows you to Tcl_Eval a tcl command which takes
- a command word, and then a single argument. */
-int
-gdbtk_two_elem_cmd (cmd_name, argv1)
- char *cmd_name;
- char *argv1;
-{
- char *command;
- int result, flags_ptr, arg_len, cmd_len;
-
- arg_len = Tcl_ScanElement (argv1, &flags_ptr);
- cmd_len = strlen (cmd_name);
- command = malloc (arg_len + cmd_len + 2);
- strcpy (command, cmd_name);
- strcat (command, " ");
-
- Tcl_ConvertElement (argv1, command + cmd_len + 1, flags_ptr);
-
- result = Tcl_Eval (gdbtk_interp, command);
- if (result != TCL_OK)
- report_error ();
- free (command);
- return result;
-}
-
-struct ui_file *
-gdbtk_fileopenin (void)
-{
- struct ui_file *file = ui_file_new ();
- set_ui_file_read (file, gdbtk_read);
- return file;
-}
-
-struct ui_file *
-gdbtk_fileopen (void)
-{
- struct ui_file *file = ui_file_new ();
- set_ui_file_fputs (file, gdbtk_fputs);
- return file;
-}
-
-/* This handles input from the gdb console.
- */
-
-long
-gdbtk_read (struct ui_file *stream, char *buf, long sizeof_buf)
-{
- int result;
- size_t actual_len;
-
- if (stream == gdb_stdtargin)
- {
- result = Tcl_Eval (gdbtk_interp, "gdbtk_console_read");
- if (result != TCL_OK)
- {
- report_error ();
- actual_len = 0;
- }
- else
- actual_len = strlen (gdbtk_interp->result);
-
- /* Truncate the string if it is too big for the caller's buffer. */
- if (actual_len >= sizeof_buf)
- actual_len = sizeof_buf - 1;
-
- memcpy (buf, gdbtk_interp->result, actual_len);
- buf[actual_len] = '\0';
- return actual_len;
- }
- else
- {
- errno = EBADF;
- return 0;
- }
-}
-
-
-/* This handles all the output from gdb. All the gdb printf_xxx functions
- * eventually end up here. The output is either passed to the result_ptr
- * where it will go to the result of some gdbtk command, or passed to the
- * Tcl proc gdbtk_tcl_fputs (where it is usually just dumped to the console
- * window.
- *
- * The cases are:
- *
- * 1) result_ptr == NULL - This happens when some output comes from gdb which
- * is not generated by a command in gdbtk-cmds, usually startup stuff.
- * In this case we just route the data to gdbtk_tcl_fputs.
- * 2) The GDBTK_TO_RESULT flag is set - The result is supposed to go to Tcl.
- * We place the data into the result_ptr, either as a string,
- * or a list, depending whether the GDBTK_MAKES_LIST bit is set.
- * 3) The GDBTK_TO_RESULT flag is unset - We route the data to gdbtk_tcl_fputs
- * UNLESS it was coming to gdb_stderr. Then we place it in the result_ptr
- * anyway, so it can be dealt with.
- *
- */
-
-void
-gdbtk_fputs (const char *ptr, struct ui_file *stream)
-{
- if (gdbtk_disable_fputs)
- return;
-
- in_fputs = 1;
-
- if (stream == gdb_stdlog)
- gdbtk_two_elem_cmd ("gdbtk_tcl_fputs_log", (char *) ptr);
- else if (stream == gdb_stdtarg)
- gdbtk_two_elem_cmd ("gdbtk_tcl_fputs_target", (char *) ptr);
- else if (result_ptr != NULL)
- {
- if (result_ptr->flags & GDBTK_TO_RESULT)
- {
- if (result_ptr->flags & GDBTK_MAKES_LIST)
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj ((char *) ptr, -1));
- else
- Tcl_AppendToObj (result_ptr->obj_ptr, (char *) ptr, -1);
- }
- else if (stream == gdb_stderr || result_ptr->flags & GDBTK_ERROR_ONLY)
- {
- if (result_ptr->flags & GDBTK_ERROR_STARTED)
- Tcl_AppendToObj (result_ptr->obj_ptr, (char *) ptr, -1);
- else
- {
- Tcl_SetStringObj (result_ptr->obj_ptr, (char *) ptr, -1);
- result_ptr->flags |= GDBTK_ERROR_STARTED;
- }
- }
- else
- {
- gdbtk_two_elem_cmd ("gdbtk_tcl_fputs", (char *) ptr);
- if (result_ptr->flags & GDBTK_MAKES_LIST)
- gdbtk_two_elem_cmd ("gdbtk_tcl_fputs", " ");
- }
- }
- else
- {
- gdbtk_two_elem_cmd ("gdbtk_tcl_fputs", (char *) ptr);
- }
-
- in_fputs = 0;
-}
-
-/*
- * This routes all warnings to the Tcl function "gdbtk_tcl_warning".
- */
-
-static void
-gdbtk_warning (const char *warning, va_list args)
-{
- char *buf;
- xvasprintf (&buf, warning, args);
- gdbtk_two_elem_cmd ("gdbtk_tcl_warning", buf);
- free(buf);
-}
-
-
-/* Error-handling function for all hooks */
-/* Hooks are not like tcl functions, they do not simply return */
-/* TCL_OK or TCL_ERROR. Also, the calling function typically */
-/* doesn't care about errors in the hook functions. Therefore */
-/* after every hook function, report_error should be called. */
-/* report_error can just call Tcl_BackgroundError() which will */
-/* pop up a messagebox, or it can silently log the errors through */
-/* the gdbtk dbug command. */
-
-void
-report_error ()
-{
- TclDebug ('E', Tcl_GetVar (gdbtk_interp, "errorInfo", TCL_GLOBAL_ONLY));
- /* Tcl_BackgroundError(gdbtk_interp); */
-}
-
-/*
- * This routes all ignorable warnings to the Tcl function
- * "gdbtk_tcl_ignorable_warning".
- */
-
-void
-gdbtk_ignorable_warning (const char *class, const char *warning)
-{
- char *buf;
- xasprintf (&buf, "gdbtk_tcl_ignorable_warning {%s} {%s}", class, warning);
- if (Tcl_Eval (gdbtk_interp, buf) != TCL_OK)
- report_error ();
- free(buf);
-}
-
-static void
-gdbtk_register_changed (int regno)
-{
- if (Tcl_Eval (gdbtk_interp, "gdbtk_register_changed") != TCL_OK)
- report_error ();
-}
-
-static void
-gdbtk_memory_changed (CORE_ADDR addr, int len)
-{
- if (Tcl_Eval (gdbtk_interp, "gdbtk_memory_changed") != TCL_OK)
- report_error ();
-}
-
-
-/* This hook is installed as the deprecated_ui_loop_hook, which is
- * used in several places to keep the gui alive (x_event runs gdbtk's
- * event loop). Users include:
- * - ser-tcp.c in socket reading code
- * - ser-unix.c in serial port reading code
- * - built-in simulators while executing
- *
- * x_event used to be called on SIGIO on the socket to the X server
- * for unix. Unfortunately, Linux does not deliver SIGIO, so we resort
- * to an elaborate scheme to keep the gui alive.
- *
- * For simulators and socket or serial connections on all hosts, we
- * rely on deprecated_ui_loop_hook (x_event) to keep us going. If the
- * user requests a detach (as a result of pressing the stop button --
- * see comments before gdb_stop in gdbtk-cmds.c), it sets the global
- * GDBTK_FORCE_DETACH, which is the value that x_event returns to it's
- * caller. It is up to the caller of x_event to act on this
- * information.
- *
- * For native unix, we simply set an interval timer which calls
- * x_event to allow the debugger to run through the Tcl event
- * loop. See comments before gdbtk_start_timer and gdb_stop_timer
- * in gdbtk.c.
- *
- * For native windows (and a few other targets, like the v850 ICE), we
- * rely on the target_wait loops to call deprecated_ui_loop_hook to
- * keep us alive. */
-int
-x_event (int signo)
-{
- static volatile int in_x_event = 0;
- static Tcl_Obj *varname = NULL;
-
- /* Do nor re-enter this code or enter it while collecting gdb output. */
- if (in_x_event || in_fputs)
- return 0;
-
- /* Also, only do things while the target is running (stops and redraws).
- FIXME: We wold like to at least redraw at other times but this is bundled
- together in the TCL_WINDOW_EVENTS group and we would also process user
- input. We will have to prevent (unwanted) user input to be generated
- in order to be able to redraw (removing this test here). */
- if (!running_now)
- return 0;
-
- in_x_event = 1;
- gdbtk_force_detach = 0;
-
- /* Process pending events */
- while (Tcl_DoOneEvent (TCL_DONT_WAIT | TCL_ALL_EVENTS) != 0)
- ;
-
- if (load_in_progress)
- {
- int val;
- if (varname == NULL)
- {
-#if TCL_MAJOR_VERSION == 8 && (TCL_MINOR_VERSION < 1 || TCL_MINOR_VERSION > 2)
- Tcl_Obj *varnamestrobj = Tcl_NewStringObj ("download_cancel_ok", -1);
- varname = Tcl_ObjGetVar2 (gdbtk_interp, varnamestrobj, NULL, TCL_GLOBAL_ONLY);
-#else
- varname = Tcl_GetObjVar2 (gdbtk_interp, "download_cancel_ok", NULL, TCL_GLOBAL_ONLY);
-#endif
- }
- if ((Tcl_GetIntFromObj (gdbtk_interp, varname, &val) == TCL_OK) && val)
- {
- quit_flag = 1;
-#ifdef REQUEST_QUIT
- REQUEST_QUIT;
-#else
- if (immediate_quit)
- quit ();
-#endif
- }
- }
- in_x_event = 0;
-
- return gdbtk_force_detach;
-}
-
-/* VARARGS */
-static void
-gdbtk_readline_begin (char *format,...)
-{
- va_list args;
- char *buf;
-
- va_start (args, format);
- xvasprintf (&buf, format, args);
- gdbtk_two_elem_cmd ("gdbtk_tcl_readline_begin", buf);
- free(buf);
-}
-
-static char *
-gdbtk_readline (char *prompt)
-{
- int result;
-
-#ifdef _WIN32
- close_bfds ();
-#endif
-
- result = gdbtk_two_elem_cmd ("gdbtk_tcl_readline", prompt);
-
- if (result == TCL_OK)
- {
- return (xstrdup (gdbtk_interp->result));
- }
- else
- {
- gdbtk_fputs (gdbtk_interp->result, gdb_stdout);
- gdbtk_fputs ("\n", gdb_stdout);
- return (NULL);
- }
-}
-
-static void
-gdbtk_readline_end ()
-{
- if (Tcl_Eval (gdbtk_interp, "gdbtk_tcl_readline_end") != TCL_OK)
- report_error ();
-}
-
-static void
-gdbtk_call_command (struct cmd_list_element *cmdblk,
- char *arg, int from_tty)
-{
- struct cleanup *old_chain;
-
- old_chain = make_cleanup (null_cleanup, 0);
- running_now = 0;
- if (cmdblk->class == class_run || cmdblk->class == class_trace)
- {
-
- running_now = 1;
- if (!No_Update)
- Tcl_Eval (gdbtk_interp, "gdbtk_tcl_busy");
- cmd_func (cmdblk, arg, from_tty);
- running_now = 0;
- if (!No_Update)
- Tcl_Eval (gdbtk_interp, "gdbtk_tcl_idle");
- }
- else
- cmd_func (cmdblk, arg, from_tty);
-
- do_cleanups (old_chain);
-}
-
-/* Called after a `set' command succeeds. Runs the Tcl hook
- `gdb_set_hook' with the full name of the variable (a Tcl list) as
- the first argument and the new value as the second argument. */
-
-static void
-gdbtk_set_hook (struct cmd_list_element *cmdblk)
-{
- Tcl_DString cmd;
- char *p;
- char *buffer = NULL;
-
- Tcl_DStringInit (&cmd);
- Tcl_DStringAppendElement (&cmd, "gdbtk_tcl_set_variable");
-
- /* Append variable name as sublist. */
- Tcl_DStringStartSublist (&cmd);
- p = cmdblk->prefixname;
- while (p && *p)
- {
- char *q = strchr (p, ' ');
- char save = '\0';
- if (q)
- {
- save = *q;
- *q = '\0';
- }
- Tcl_DStringAppendElement (&cmd, p);
- if (q)
- *q = save;
- p = q + 1;
- }
- Tcl_DStringAppendElement (&cmd, cmdblk->name);
- Tcl_DStringEndSublist (&cmd);
-
- switch (cmdblk->var_type)
- {
- case var_string_noescape:
- case var_filename:
- case var_enum:
- case var_string:
- Tcl_DStringAppendElement (&cmd, (*(char **) cmdblk->var
- ? *(char **) cmdblk->var
- : "(null)"));
- break;
-
- case var_boolean:
- Tcl_DStringAppendElement (&cmd, (*(int *) cmdblk->var ? "1" : "0"));
- break;
-
- case var_uinteger:
- case var_zinteger:
- xasprintf (&buffer, "%u", *(unsigned int *) cmdblk->var);
- Tcl_DStringAppendElement (&cmd, buffer);
- break;
-
- case var_integer:
- xasprintf (&buffer, "%d", *(int *) cmdblk->var);
- Tcl_DStringAppendElement (&cmd, buffer);
- break;
-
- default:
- /* This case should already be trapped by the hook caller. */
- Tcl_DStringAppendElement (&cmd, "error");
- break;
- }
-
- if (Tcl_Eval (gdbtk_interp, Tcl_DStringValue (&cmd)) != TCL_OK)
- report_error ();
-
- Tcl_DStringFree (&cmd);
-
- if (buffer != NULL)
- {
- free(buffer);
- }
-}
-
-int
-gdbtk_load_hash (const char *section, unsigned long num)
-{
- char *buf;
- xasprintf (&buf, "Download::download_hash %s %ld", section, num);
- if (Tcl_Eval (gdbtk_interp, buf) != TCL_OK)
- report_error ();
- free(buf);
-
- return atoi (gdbtk_interp->result);
-}
-
-
-/* This hook is called whenever we are ready to load a symbol file so that
- the UI can notify the user... */
-static void
-gdbtk_pre_add_symbol (const char *name)
-{
- gdbtk_two_elem_cmd ("gdbtk_tcl_pre_add_symbol", (char *) name);
-}
-
-/* This hook is called whenever we finish loading a symbol file. */
-static void
-gdbtk_post_add_symbol ()
-{
- if (Tcl_Eval (gdbtk_interp, "gdbtk_tcl_post_add_symbol") != TCL_OK)
- report_error ();
-}
-
-/* This hook function is called whenever we want to wait for the
- target. */
-
-static ptid_t
-gdbtk_wait (ptid_t ptid, struct target_waitstatus *ourstatus)
-{
- gdbtk_force_detach = 0;
- gdbtk_start_timer ();
- ptid = target_wait (ptid, ourstatus);
- gdbtk_stop_timer ();
-
- return ptid;
-}
-
-/*
- * This handles all queries from gdb.
- * The first argument is a printf style format statement, the rest are its
- * arguments. The resultant formatted string is passed to the Tcl function
- * "gdbtk_tcl_query".
- * It returns the users response to the query, as well as putting the value
- * in the result field of the Tcl interpreter.
- */
-
-static int
-gdbtk_query (const char *query, va_list args)
-{
- char *buf;
- long val;
-
- xvasprintf (&buf, query, args);
- gdbtk_two_elem_cmd ("gdbtk_tcl_query", buf);
- free(buf);
-
- val = atol (gdbtk_interp->result);
- return val;
-}
-
-
-static void
-gdbtk_print_frame_info (struct symtab *s, int line,
- int stopline, int noerror)
-{
-}
-
-/*
- * gdbtk_trace_find
- *
- * This is run by the trace_find_command. arg is the argument that was passed
- * to that command, from_tty is 1 if the command was run from a tty, 0 if it
- * was run from a script. It runs gdbtk_tcl_tfind_hook passing on these two
- * arguments.
- *
- */
-
-static void
-gdbtk_trace_find (char *arg, int from_tty)
-{
- Tcl_Obj *cmdObj;
-
- cmdObj = Tcl_NewListObj (0, NULL);
- Tcl_ListObjAppendElement (gdbtk_interp, cmdObj,
- Tcl_NewStringObj ("gdbtk_tcl_trace_find_hook", -1));
- Tcl_ListObjAppendElement (gdbtk_interp, cmdObj, Tcl_NewStringObj (arg, -1));
- Tcl_ListObjAppendElement (gdbtk_interp, cmdObj, Tcl_NewIntObj (from_tty));
-#if TCL_MAJOR_VERSION == 8 && (TCL_MINOR_VERSION < 1 || TCL_MINOR_VERSION > 2)
- if (Tcl_GlobalEvalObj (gdbtk_interp, cmdObj) != TCL_OK)
- report_error ();
-#else
- if (Tcl_EvalObj (gdbtk_interp, cmdObj, TCL_EVAL_GLOBAL) != TCL_OK)
- report_error ();
-#endif
-}
-
-/*
- * gdbtk_trace_start_stop
- *
- * This is run by the trace_start_command and trace_stop_command.
- * The START variable determines which, 1 meaning trace_start was run,
- * 0 meaning trace_stop was run.
- *
- */
-
-static void
-gdbtk_trace_start_stop (int start, int from_tty)
-{
-
- if (start)
- Tcl_GlobalEval (gdbtk_interp, "gdbtk_tcl_tstart");
- else
- Tcl_GlobalEval (gdbtk_interp, "gdbtk_tcl_tstop");
-
-}
-
-static void
-gdbtk_selected_frame_changed (int level)
-{
-#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION < 1
- char *a;
- xasprintf (&a, "%d", level);
- Tcl_SetVar (gdbtk_interp, "gdb_selected_frame_level", a, TCL_GLOBAL_ONLY);
- xfree (a);
-#else
- Tcl_SetVar2Ex (gdbtk_interp, "gdb_selected_frame_level", NULL,
- Tcl_NewIntObj (level), TCL_GLOBAL_ONLY);
-#endif
-}
-
-/* Called when the current thread changes. */
-/* gdb_context is linked to the tcl variable "gdb_context_id" */
-static void
-gdbtk_context_change (int num)
-{
- gdb_context = num;
-}
-
-/* Called from file_command */
-static void
-gdbtk_file_changed (char *filename)
-{
- gdbtk_two_elem_cmd ("gdbtk_tcl_file_changed", filename);
-}
-
-/* Called from exec_file_command */
-static void
-gdbtk_exec_file_display (char *filename)
-{
- gdbtk_two_elem_cmd ("gdbtk_tcl_exec_file_display", filename);
-}
-
-/* Called from error_begin, this hook is used to warn the gui
- about multi-line error messages */
-static void
-gdbtk_error_begin ()
-{
- if (result_ptr != NULL)
- result_ptr->flags |= GDBTK_ERROR_ONLY;
-}
-
-/* notify GDBtk when a signal occurs */
-static void
-gdbtk_annotate_signal ()
-{
- char *buf;
-
- /* Inform gui that the target has stopped. This is
- a necessary stop button evil. We don't want signal notification
- to interfere with the elaborate and painful stop button detach
- timeout. */
- Tcl_Eval (gdbtk_interp, "gdbtk_stop_idle_callback");
-
- xasprintf (&buf, "gdbtk_signal %s {%s}", target_signal_to_name (stop_signal),
- target_signal_to_string (stop_signal));
- if (Tcl_Eval (gdbtk_interp, buf) != TCL_OK)
- report_error ();
- free(buf);
-}
-
-static void
-gdbtk_attach ()
-{
- if (Tcl_Eval (gdbtk_interp, "after idle \"update idletasks;gdbtk_attached\"") != TCL_OK)
- {
- report_error ();
- }
-}
-
-static void
-gdbtk_detach ()
-{
- if (Tcl_Eval (gdbtk_interp, "gdbtk_detached") != TCL_OK)
- {
- report_error ();
- }
-}
-
-/* Called from gdbarch_update_p whenever the architecture changes. */
-static void
-gdbtk_architecture_changed (void)
-{
- Tcl_Eval (gdbtk_interp, "gdbtk_tcl_architecture_changed");
-}
diff --git a/gdb/gdbtk/generic/gdbtk-interp.c b/gdb/gdbtk/generic/gdbtk-interp.c
deleted file mode 100644
index 07bb559c8d3..00000000000
--- a/gdb/gdbtk/generic/gdbtk-interp.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/* Insight Definitions for GDB, the GNU debugger.
- Written by Keith Seitz <kseitz@sources.redhat.com>
-
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
-
- This file is part of Insight.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#include "defs.h"
-#include "interps.h"
-#include "ui-file.h"
-#include "ui-out.h"
-#include "cli-out.h"
-#include "gdb_string.h"
-#include "cli/cli-cmds.h"
-#include "cli/cli-decode.h"
-#include "exceptions.h"
-
-#include "tcl.h"
-#include "tk.h"
-#include "gdbtk.h"
-
-static void gdbtk_command_loop (void);
-static void hack_disable_interpreter_exec (char *, int);
-
-struct gdbtk_interp_data
-{
- struct ui_file *_stdout;
- struct ui_file *_stderr;
- struct ui_file *_stdlog;
- struct ui_file *_stdtarg;
- struct ui_file *_stdtargin;
-};
-
-static struct gdbtk_interp_data *gdbtk_data;
-
-/* See note in gdbtk_interpreter_init */
-static void
-hack_disable_interpreter_exec (char *args, int from_tty)
-{
- error ("interpreter-exec not available when running Insight");
-}
-
-static void *
-gdbtk_interpreter_init (void)
-{
- /* Disable interpreter-exec. It causes us big trouble right now. */
- struct cmd_list_element *cmd = NULL;
- struct cmd_list_element *alias = NULL;
- struct cmd_list_element *prefix = NULL;
-
- gdbtk_init ();
-
- if (lookup_cmd_composition ("interpreter-exec", &alias, &prefix, &cmd))
- {
- set_cmd_cfunc (cmd, hack_disable_interpreter_exec);
- }
-
- return gdbtk_data;
-}
-
-static int
-gdbtk_interpreter_resume (void *data)
-{
- static int started = 0;
- struct gdbtk_interp_data *d = (struct gdbtk_interp_data *) data;
- gdbtk_add_hooks ();
-
- gdb_stdout = d->_stdout;
- gdb_stderr = d->_stderr;
- gdb_stdlog = d->_stdlog;
- gdb_stdtarg = d->_stdtarg;
- gdb_stdtargin = d->_stdtargin;
-
- deprecated_command_loop_hook = gdbtk_command_loop;
-
- /* 2003-02-11 keiths: We cannot actually source our main Tcl file in
- our interpreter's init function because any errors that may
- get generated will go to the wrong gdb_stderr. Instead of hacking
- our interpreter init function to force gdb_stderr to our ui_file,
- we defer sourcing the startup file until now, when gdb is ready
- to let our interpreter run. */
- if (!started)
- {
- started = 1;
- gdbtk_source_start_file ();
- }
-
- return 1;
-}
-
-static int
-gdbtk_interpreter_suspend (void *data)
-{
- return 1;
-}
-
-static int
-gdbtk_interpreter_display_prompt_p (void *data)
-{
- return 1;
-}
-
-static struct gdb_exception
-gdbtk_interpreter_exec (void *data, const char *command_str)
-{
- return exception_none;
-}
-
-/* This function is called instead of gdb's internal command loop. This is the
- last chance to do anything before entering the main Tk event loop.
- At the end of the command, we enter the main loop. */
-
-static void
-gdbtk_command_loop (void)
-{
- extern FILE *instream;
-
- /* We no longer want to use stdin as the command input stream */
- instream = NULL;
-
- if (Tcl_Eval (gdbtk_interp, "gdbtk_tcl_preloop") != TCL_OK)
- {
- const char *msg;
-
- /* Force errorInfo to be set up propertly. */
- Tcl_AddErrorInfo (gdbtk_interp, "");
-
- msg = Tcl_GetVar (gdbtk_interp, "errorInfo", TCL_GLOBAL_ONLY);
-#ifdef _WIN32
- MessageBox (NULL, msg, NULL, MB_OK | MB_ICONERROR | MB_TASKMODAL);
-#else
- fputs_unfiltered (msg, gdb_stderr);
-#endif
- }
-
-#ifdef _WIN32
- close_bfds ();
-#endif
-
- Tk_MainLoop ();
-}
-
-void
-_initialize_gdbtk_interp (void)
-{
- static const struct interp_procs procs = {
- gdbtk_interpreter_init, /* init_proc */
- gdbtk_interpreter_resume, /* resume_proc */
- gdbtk_interpreter_suspend, /* suspend_proc */
- gdbtk_interpreter_exec, /* exec_proc */
- gdbtk_interpreter_display_prompt_p /* prompt_proc_p */
- };
- struct interp *gdbtk_interp;
-
- gdbtk_data =
- (struct gdbtk_interp_data *) xmalloc (sizeof (struct gdbtk_interp_data));
- memset (gdbtk_data, 0, sizeof (struct gdbtk_interp_data));
- gdbtk_data->_stdout = gdbtk_fileopen ();
- gdbtk_data->_stderr = gdbtk_fileopen ();
- gdbtk_data->_stdlog = gdbtk_fileopen ();
- gdbtk_data->_stdtarg = gdbtk_fileopen ();
- gdbtk_data->_stdtargin = gdbtk_fileopenin ();
- gdbtk_interp = interp_new ("insight", gdbtk_data, cli_out_new (gdbtk_data->_stdout),
- &procs);
- interp_add (gdbtk_interp);
-}
diff --git a/gdb/gdbtk/generic/gdbtk-main.c b/gdb/gdbtk/generic/gdbtk-main.c
deleted file mode 100644
index 39864f93a9e..00000000000
--- a/gdb/gdbtk/generic/gdbtk-main.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Main function for gdb with insight.
-
- Copyright (C) 2002 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-
-#include "defs.h"
-#include "main.h"
-#include "gdb_string.h"
-
-int
-main (int argc, char **argv)
-{
- struct captured_main_args args;
- memset (&args, 0, sizeof args);
- args.argc = argc;
- args.argv = argv;
- args.use_windows = 1;
- args.interpreter_p = "insight";
- return gdb_main (&args);
-}
diff --git a/gdb/gdbtk/generic/gdbtk-register.c b/gdb/gdbtk/generic/gdbtk-register.c
deleted file mode 100644
index 6a0dd48b405..00000000000
--- a/gdb/gdbtk/generic/gdbtk-register.c
+++ /dev/null
@@ -1,567 +0,0 @@
-/* Tcl/Tk command definitions for Insight - Registers
- Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#include "defs.h"
-#include "frame.h"
-#include "regcache.h"
-#include "reggroups.h"
-#include "value.h"
-#include "target.h"
-#include "gdb_string.h"
-
-#include <tcl.h>
-#include "gdbtk.h"
-#include "gdbtk-cmds.h"
-
-/* This contains the previous values of the registers, since the last call to
- gdb_changed_register_list.
-
- It is an array of (NUM_REGS+NUM_PSEUDO_REGS)*MAX_REGISTER_RAW_SIZE bytes. */
-
-static int gdb_register_info (ClientData, Tcl_Interp *, int, Tcl_Obj **);
-static void get_register (int, void *);
-static void get_register_name (int, void *);
-static void get_register_size (int regnum, void *arg);
-static int map_arg_registers (Tcl_Interp *, int, Tcl_Obj **,
- void (*)(int, void *), void *);
-static void register_changed_p (int, void *);
-static void setup_architecture_data (void);
-static int gdb_regformat (ClientData, Tcl_Interp *, int, Tcl_Obj **);
-static int gdb_reggroup (ClientData, Tcl_Interp *, int, Tcl_Obj **);
-static int gdb_reggrouplist (ClientData, Tcl_Interp *, int, Tcl_Obj **);
-
-static void get_register_types (int regnum, void *arg);
-
-static char *old_regs = NULL;
-static int *regformat = (int *)NULL;
-static struct type **regtype = (struct type **)NULL;
-
-int
-Gdbtk_Register_Init (Tcl_Interp *interp)
-{
- Tcl_CreateObjCommand (interp, "gdb_reginfo", gdbtk_call_wrapper,
- gdb_register_info, NULL);
-
- /* Register/initialize any architecture specific data */
- setup_architecture_data ();
-
- deprecated_register_gdbarch_swap (&old_regs, sizeof (old_regs), NULL);
- deprecated_register_gdbarch_swap (&regformat, sizeof (regformat), NULL);
- deprecated_register_gdbarch_swap (&regtype, sizeof (regtype), NULL);
- deprecated_register_gdbarch_swap (NULL, 0, setup_architecture_data);
-
- return TCL_OK;
-}
-
-/* This implements the tcl command "gdb_reginfo".
- * It returns the requested information about registers.
- *
- * Tcl Arguments:
- * OPTION - "changed", "name", "size", "value" (see below)
- * REGNUM(S) - the register(s) for which info is requested
- *
- * Tcl Result:
- * The requested information
- *
- * Options:
- * changed
- * Returns a list of registers whose values have changed since the
- * last time the proc was called.
- *
- * usage: gdb_reginfo changed [regnum0, ..., regnumN]
- *
- * name
- * Return a list containing the names of the registers whose numbers
- * are given by REGNUM ... . If no register numbers are given, return
- * all the registers' names.
- *
- * usage: gdb_reginfo name [-numbers] [regnum0, ..., regnumN]
- *
- * Note that some processors have gaps in the register numberings:
- * even if there is no register numbered N, there may still be a
- * register numbered N+1. So if you call gdb_regnames with no
- * arguments, you can't assume that the N'th element of the result is
- * register number N.
- *
- * Given the -numbers option, gdb_regnames returns, not a list of names,
- * but a list of pairs {NAME NUMBER}, where NAME is the register name,
- * and NUMBER is its number.
- *
- * size
- * Returns the raw size of the register(s) in bytes.
- *
- * usage: gdb_reginfo size [regnum0, ..., regnumN]
- *
- * value
- * Returns a list of register values.
- *
- * usage: gdb_reginfo value [regnum0, ..., regnumN]
- */
-static int
-gdb_register_info (ClientData clientData, Tcl_Interp *interp, int objc,
- Tcl_Obj **objv)
-{
- int index;
- void *argp;
- void (*func)(int, void *);
- static const char *commands[] = {"changed", "name", "size", "value", "type",
- "format", "group", "grouplist", NULL};
- enum commands_enum { REGINFO_CHANGED, REGINFO_NAME, REGINFO_SIZE, REGINFO_VALUE,
- REGINFO_TYPE, REGINFO_FORMAT, REGINFO_GROUP, REGINFO_GROUPLIST };
-
- if (objc < 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "name|size|value|type|format|groups [regnum1 ... regnumN]");
- return TCL_ERROR;
- }
-
- if (Tcl_GetIndexFromObj (interp, objv[1], commands, "options", 0,
- &index) != TCL_OK)
- {
- result_ptr->flags |= GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
-
- /* Skip the option */
- objc -= 2;
- objv += 2;
-
- switch ((enum commands_enum) index)
- {
- case REGINFO_CHANGED:
- func = register_changed_p;
- argp = NULL;
- break;
-
- case REGINFO_NAME:
- {
- int len;
- char *s = Tcl_GetStringFromObj (objv[0], &len);
- if (objc != 0 && strncmp (s, "-numbers", len) == 0)
- {
- argp = (void *) 1;
- objc--;
- objv++;
- }
- else
- argp = NULL;
-
- func = get_register_name;
- }
- break;
-
- case REGINFO_SIZE:
- func = get_register_size;
- argp = NULL;
- break;
-
- case REGINFO_VALUE:
- func = get_register;
- argp = NULL;
- break;
-
- case REGINFO_TYPE:
- func = get_register_types;
- argp = NULL;
- break;
-
- case REGINFO_FORMAT:
- return gdb_regformat (clientData, interp, objc, objv);
-
- case REGINFO_GROUP:
- return gdb_reggroup (clientData, interp, objc, objv);
-
- case REGINFO_GROUPLIST:
- return gdb_reggrouplist (clientData, interp, objc, objv);
-
- default:
- return TCL_ERROR;
- }
-
- return map_arg_registers (interp, objc, objv, func, argp);
-}
-
-static void
-get_register_size (int regnum, void *arg)
-{
- Tcl_ListObjAppendElement (gdbtk_interp, result_ptr->obj_ptr,
- Tcl_NewIntObj (register_size (current_gdbarch, regnum)));
-}
-
-/* returns a list of valid types for a register */
-/* Normally this will be only one type, except for SIMD and other */
-/* special registers. */
-
-static void
-get_register_types (int regnum, void *arg)
-{
- struct type *reg_vtype;
- int i,n;
-
- reg_vtype = register_type (current_gdbarch, regnum);
-
- if (TYPE_CODE (reg_vtype) == TYPE_CODE_UNION)
- {
- n = TYPE_NFIELDS (reg_vtype);
- /* limit to 16 types */
- if (n > 16)
- n = 16;
-
- for (i = 0; i < n; i++)
- {
- Tcl_Obj *ar[3], *list;
- char *buff;
- xasprintf (&buff, "%lx", (long)TYPE_FIELD_TYPE (reg_vtype, i));
- ar[0] = Tcl_NewStringObj (TYPE_FIELD_NAME (reg_vtype, i), -1);
- ar[1] = Tcl_NewStringObj (buff, -1);
- if (TYPE_CODE (TYPE_FIELD_TYPE (reg_vtype, i)) == TYPE_CODE_FLT)
- ar[2] = Tcl_NewStringObj ("float", -1);
- else
- ar[2] = Tcl_NewStringObj ("int", -1);
- list = Tcl_NewListObj (3, ar);
- Tcl_ListObjAppendElement (gdbtk_interp, result_ptr->obj_ptr, list);
- xfree (buff);
- }
- }
- else
- {
- Tcl_Obj *ar[3], *list;
- char *buff;
- xasprintf (&buff, "%lx", (long)reg_vtype);
- ar[0] = Tcl_NewStringObj (TYPE_NAME(reg_vtype), -1);
- ar[1] = Tcl_NewStringObj (buff, -1);
- if (TYPE_CODE (reg_vtype) == TYPE_CODE_FLT)
- ar[2] = Tcl_NewStringObj ("float", -1);
- else
- ar[2] = Tcl_NewStringObj ("int", -1);
- list = Tcl_NewListObj (3, ar);
- xfree (buff);
- Tcl_ListObjAppendElement (gdbtk_interp, result_ptr->obj_ptr, list);
- }
-}
-
-
-static void
-get_register (int regnum, void *arg)
-{
- int realnum;
- CORE_ADDR addr;
- enum lval_type lval;
- struct type *reg_vtype;
- gdb_byte buffer[MAX_REGISTER_SIZE];
- int optim, format;
- struct cleanup *old_chain = NULL;
- struct ui_file *stb;
- long dummy;
- char *res;
-
- format = regformat[regnum];
- if (format == 0)
- format = 'x';
-
- reg_vtype = regtype[regnum];
- if (reg_vtype == NULL)
- reg_vtype = register_type (current_gdbarch, regnum);
-
- if (!target_has_registers)
- {
- if (result_ptr->flags & GDBTK_MAKES_LIST)
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, Tcl_NewStringObj ("", -1));
- else
- Tcl_SetStringObj (result_ptr->obj_ptr, "", -1);
- return;
- }
-
- frame_register (get_selected_frame (NULL), regnum, &optim, &lval,
- &addr, &realnum, buffer);
-
- if (optim)
- {
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr,
- Tcl_NewStringObj ("Optimized out", -1));
- return;
- }
-
- stb = mem_fileopen ();
- old_chain = make_cleanup_ui_file_delete (stb);
-
- if (format == 'r')
- {
- /* shouldn't happen. raw format is deprecated */
- int j;
- char *ptr, buf[1024];
-
- strcpy (buf, "0x");
- ptr = buf + 2;
- for (j = 0; j < register_size (current_gdbarch, regnum); j++)
- {
- int idx = TARGET_BYTE_ORDER == BFD_ENDIAN_BIG ? j
- : register_size (current_gdbarch, regnum) - 1 - j;
- sprintf (ptr, "%02x", (unsigned char) buffer[idx]);
- ptr += 2;
- }
- fputs_unfiltered (buf, stb);
- }
- else
- {
- if ((TYPE_CODE (reg_vtype) == TYPE_CODE_UNION)
- && (strcmp (FIELD_NAME (TYPE_FIELD (reg_vtype, 0)),
- REGISTER_NAME (regnum)) == 0))
- {
- val_print (FIELD_TYPE (TYPE_FIELD (reg_vtype, 0)), buffer, 0, 0,
- stb, format, 1, 0, Val_pretty_default);
- }
- else
- val_print (reg_vtype, buffer, 0, 0,
- stb, format, 1, 0, Val_pretty_default);
- }
-
- res = ui_file_xstrdup (stb, &dummy);
-
- if (result_ptr->flags & GDBTK_MAKES_LIST)
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, Tcl_NewStringObj (res, -1));
- else
- Tcl_SetStringObj (result_ptr->obj_ptr, res, -1);
-
- xfree (res);
- do_cleanups (old_chain);
-}
-
-static void
-get_register_name (int regnum, void *argp)
-{
- /* Non-zero if the caller wants the register numbers, too. */
- int numbers = (int) argp;
- Tcl_Obj *name = Tcl_NewStringObj (REGISTER_NAME (regnum), -1);
- Tcl_Obj *elt;
-
- if (numbers)
- {
- /* Build a tuple of the form "{REGNAME NUMBER}", and append it to
- our result. */
- Tcl_Obj *array[2];
-
- array[0] = name;
- array[1] = Tcl_NewIntObj (regnum);
- elt = Tcl_NewListObj (2, array);
- }
- else
- elt = name;
-
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, elt);
-}
-
-/* This is a sort of mapcar function for operations on registers */
-
-static int
-map_arg_registers (Tcl_Interp *interp, int objc, Tcl_Obj **objv,
- void (*func) (int regnum, void *argp), void *argp)
-{
- int regnum, numregs;
-
- /* Note that the test for a valid register must include checking the
- REGISTER_NAME because NUM_REGS may be allocated for the union of
- the register sets within a family of related processors. In this
- case, some entries of REGISTER_NAME will change depending upon
- the particular processor being debugged. */
-
- numregs = NUM_REGS + NUM_PSEUDO_REGS;
-
- if (objc == 0) /* No args, just do all the regs */
- {
- result_ptr->flags |= GDBTK_MAKES_LIST;
- for (regnum = 0; regnum < numregs; regnum++)
- {
- if (REGISTER_NAME (regnum) == NULL
- || *(REGISTER_NAME (regnum)) == '\0')
- continue;
- func (regnum, argp);
- }
- return TCL_OK;
- }
-
- if (objc == 1)
- if (Tcl_ListObjGetElements (interp, *objv, &objc, &objv ) != TCL_OK)
- return TCL_ERROR;
-
- if (objc > 1)
- result_ptr->flags |= GDBTK_MAKES_LIST;
-
- /* Else, list of register #s, just do listed regs */
- for (; objc > 0; objc--, objv++)
- {
- if (Tcl_GetIntFromObj (NULL, *objv, &regnum) != TCL_OK)
- {
- result_ptr->flags |= GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
-
- if (regnum >= 0 && regnum < numregs)
- func (regnum, argp);
- else
- {
- Tcl_SetStringObj (result_ptr->obj_ptr, "bad register number", -1);
- return TCL_ERROR;
- }
- }
- return TCL_OK;
-}
-
-static void
-register_changed_p (int regnum, void *argp)
-{
- char raw_buffer[MAX_REGISTER_SIZE];
-
- if (!target_has_registers
- || !frame_register_read (get_selected_frame (NULL), regnum, raw_buffer))
- return;
-
- if (memcmp (&old_regs[regnum * MAX_REGISTER_SIZE], raw_buffer,
- register_size (current_gdbarch, regnum)) == 0)
- return;
-
- /* Found a changed register. Save new value and return its number. */
-
- memcpy (&old_regs[regnum * MAX_REGISTER_SIZE], raw_buffer,
- register_size (current_gdbarch, regnum));
-
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, Tcl_NewIntObj (regnum));
-}
-
-static void
-setup_architecture_data ()
-{
- xfree (old_regs);
- xfree (regformat);
- xfree (regtype);
-
- old_regs = xcalloc (1, (NUM_REGS + NUM_PSEUDO_REGS) * MAX_REGISTER_SIZE + 1);
- regformat = (int *)xcalloc ((NUM_REGS + NUM_PSEUDO_REGS) , sizeof(int));
- regtype = (struct type **)xcalloc ((NUM_REGS + NUM_PSEUDO_REGS), sizeof(struct type **));
-}
-
-/* gdb_regformat sets the format for a register */
-/* This is necessary to allow "gdb_reginfo value" to return a list */
-/* of registers and values. */
-/* Usage: gdb_reginfo format regno typeaddr format */
-
-static int
-gdb_regformat (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj **objv)
-{
- int fm, regno;
- struct type *type;
-
- if (objc != 3)
- {
- Tcl_WrongNumArgs (interp, 0, objv, "gdb_reginfo regno type format");
- return TCL_ERROR;
- }
-
- if (Tcl_GetIntFromObj (interp, objv[0], &regno) != TCL_OK)
- return TCL_ERROR;
-
- type = (struct type *)strtol (Tcl_GetStringFromObj (objv[1], NULL), NULL, 16);
- fm = (int)*(Tcl_GetStringFromObj (objv[2], NULL));
-
- if (regno >= NUM_REGS + NUM_PSEUDO_REGS)
- {
- gdbtk_set_result (interp, "Register number %d too large", regno);
- return TCL_ERROR;
- }
-
- regformat[regno] = fm;
- regtype[regno] = type;
-
- return TCL_OK;
-}
-
-
-/* gdb_reggrouplist returns the names of the register groups */
-/* for the current architecture. */
-/* Usage: gdb_reginfo groups */
-
-static int
-gdb_reggrouplist (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj **objv)
-{
- struct reggroup *group;
- int i = 0;
-
- if (objc != 0)
- {
- Tcl_WrongNumArgs (interp, 0, objv, "gdb_reginfo grouplist");
- return TCL_ERROR;
- }
-
- for (group = reggroup_next (current_gdbarch, NULL);
- group != NULL;
- group = reggroup_next (current_gdbarch, group))
- {
- if (reggroup_type (group) == USER_REGGROUP)
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, Tcl_NewStringObj (reggroup_name (group), -1));
- }
- return TCL_OK;
-}
-
-
-/* gdb_reggroup returns the names of the registers in a group. */
-/* Usage: gdb_reginfo group groupname */
-
-static int
-gdb_reggroup (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj **objv)
-{
- struct reggroup *group;
- char *groupname;
- int regnum;
-
- if (objc != 1)
- {
- Tcl_WrongNumArgs (interp, 0, objv, "gdb_reginfo group groupname");
- return TCL_ERROR;
- }
-
- groupname = Tcl_GetStringFromObj (objv[0], NULL);
- if (groupname == NULL)
- {
- gdbtk_set_result (interp, "could not read groupname");
- return TCL_ERROR;
- }
-
- for (group = reggroup_next (current_gdbarch, NULL);
- group != NULL;
- group = reggroup_next (current_gdbarch, group))
- {
- if (strcmp (groupname, reggroup_name (group)) == 0)
- break;
- }
-
- if (group == NULL)
- return TCL_ERROR;
-
- for (regnum = 0; regnum < NUM_REGS + NUM_PSEUDO_REGS; regnum++)
- {
- if (gdbarch_register_reggroup_p (current_gdbarch, regnum, group))
- Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, Tcl_NewIntObj (regnum));
- }
- return TCL_OK;
-}
-
diff --git a/gdb/gdbtk/generic/gdbtk-stack.c b/gdb/gdbtk/generic/gdbtk-stack.c
deleted file mode 100644
index 4bf1a0ac6d3..00000000000
--- a/gdb/gdbtk/generic/gdbtk-stack.c
+++ /dev/null
@@ -1,625 +0,0 @@
-/* Tcl/Tk command definitions for Insight - Stack.
- Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#include "defs.h"
-#include "target.h"
-#include "breakpoint.h"
-#include "linespec.h"
-#include "block.h"
-#include "dictionary.h"
-
-#include <tcl.h>
-#include "gdbtk.h"
-#include "gdbtk-cmds.h"
-#include "gdbtk-wrapper.h"
-
-static int gdb_block_vars (ClientData clientData,
- Tcl_Interp * interp, int objc,
- Tcl_Obj * CONST objv[]);
-static int gdb_get_args_command (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-static int gdb_get_blocks (ClientData clientData,
- Tcl_Interp * interp, int objc,
- Tcl_Obj * CONST objv[]);
-static int gdb_get_locals_command (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-static int gdb_get_vars_command (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST objv[]);
-static int gdb_selected_block (ClientData clientData,
- Tcl_Interp * interp, int argc,
- Tcl_Obj * CONST objv[]);
-static int gdb_selected_frame (ClientData clientData,
- Tcl_Interp * interp, int argc,
- Tcl_Obj * CONST objv[]);
-static int gdb_stack (ClientData, Tcl_Interp *, int, Tcl_Obj * CONST[]);
-static void get_frame_name (Tcl_Interp *interp, Tcl_Obj *list,
- struct frame_info *fi);
-
-int
-Gdbtk_Stack_Init (Tcl_Interp *interp)
-{
- Tcl_CreateObjCommand (interp, "gdb_block_variables", gdbtk_call_wrapper,
- gdb_block_vars, NULL);
- Tcl_CreateObjCommand (interp, "gdb_get_blocks", gdbtk_call_wrapper,
- gdb_get_blocks, NULL);
- Tcl_CreateObjCommand (interp, "gdb_get_args", gdbtk_call_wrapper,
- gdb_get_args_command, NULL);
- Tcl_CreateObjCommand (interp, "gdb_get_locals", gdbtk_call_wrapper,
- gdb_get_locals_command, NULL);
- Tcl_CreateObjCommand (interp, "gdb_selected_block", gdbtk_call_wrapper,
- gdb_selected_block, NULL);
- Tcl_CreateObjCommand (interp, "gdb_selected_frame", gdbtk_call_wrapper,
- gdb_selected_frame, NULL);
- Tcl_CreateObjCommand (interp, "gdb_stack", gdbtk_call_wrapper, gdb_stack, NULL);
-
- return TCL_OK;
-}
-
-/* This implements the tcl command gdb_block_vars.
- *
- * Returns all variables valid in the specified block.
- *
- * Arguments:
- * The start and end addresses which identify the block.
- * Tcl Result:
- * All variables defined in the given block.
- */
-static int
-gdb_block_vars (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- struct block *block;
- struct dict_iterator iter;
- struct symbol *sym;
- CORE_ADDR start, end;
-
- if (objc < 3)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "startAddr endAddr");
- return TCL_ERROR;
- }
-
- Tcl_SetListObj (result_ptr->obj_ptr, 0, NULL);
- if (!target_has_registers)
- return TCL_OK;
-
- start = string_to_core_addr (Tcl_GetStringFromObj (objv[1], NULL));
- end = string_to_core_addr (Tcl_GetStringFromObj (objv[2], NULL));
-
- block = get_frame_block (get_selected_frame (NULL), 0);
-
- while (block != 0)
- {
- if (BLOCK_START (block) == start && BLOCK_END (block) == end)
- {
- ALL_BLOCK_SYMBOLS (block, iter, sym)
- {
- switch (SYMBOL_CLASS (sym))
- {
- case LOC_ARG: /* argument */
- case LOC_REF_ARG: /* reference arg */
- case LOC_REGPARM: /* register arg */
- case LOC_REGPARM_ADDR: /* indirect register arg */
- case LOC_LOCAL_ARG: /* stack arg */
- case LOC_BASEREG_ARG: /* basereg arg */
- case LOC_LOCAL: /* stack local */
- case LOC_BASEREG: /* basereg local */
- case LOC_STATIC: /* static */
- case LOC_REGISTER: /* register */
- case LOC_COMPUTED: /* computed location */
- case LOC_COMPUTED_ARG: /* computed location arg */
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr,
- Tcl_NewStringObj (DEPRECATED_SYMBOL_NAME (sym),
- -1));
- break;
-
- default:
- break;
- }
- }
-
- return TCL_OK;
- }
- else if (BLOCK_FUNCTION (block))
- break;
- else
- block = BLOCK_SUPERBLOCK (block);
- }
-
- return TCL_OK;
-}
-
-/* This implements the tcl command gdb_get_blocks
- *
- * Returns the start and end addresses for all blocks in
- * the selected frame.
- *
- * Arguments:
- * None
- * Tcl Result:
- * A list of all valid blocks in the selected_frame.
- */
-static int
-gdb_get_blocks (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- struct block *block;
- struct dict_iterator iter;
- int junk;
- struct symbol *sym;
- CORE_ADDR pc;
-
- Tcl_SetListObj (result_ptr->obj_ptr, 0, NULL);
-
- if (target_has_registers)
- {
- struct frame_info *frame = get_selected_frame (NULL);
-
- block = get_frame_block (frame, 0);
- pc = get_frame_pc (frame);
- while (block != 0)
- {
- junk = 0;
- ALL_BLOCK_SYMBOLS (block, iter, sym)
- {
- switch (SYMBOL_CLASS (sym))
- {
- default:
- case LOC_UNDEF: /* catches errors */
- case LOC_CONST: /* constant */
- case LOC_TYPEDEF: /* local typedef */
- case LOC_LABEL: /* local label */
- case LOC_BLOCK: /* local function */
- case LOC_CONST_BYTES: /* loc. byte seq. */
- case LOC_UNRESOLVED: /* unresolved static */
- case LOC_OPTIMIZED_OUT: /* optimized out */
- junk = 1;
- break;
-
- case LOC_ARG: /* argument */
- case LOC_REF_ARG: /* reference arg */
- case LOC_REGPARM: /* register arg */
- case LOC_REGPARM_ADDR: /* indirect register arg */
- case LOC_LOCAL_ARG: /* stack arg */
- case LOC_BASEREG_ARG: /* basereg arg */
- case LOC_COMPUTED_ARG: /* computed location arg */
-
- case LOC_LOCAL: /* stack local */
- case LOC_BASEREG: /* basereg local */
- case LOC_STATIC: /* static */
- case LOC_REGISTER: /* register */
- case LOC_COMPUTED: /* computed location */
- junk = 0;
- break;
- }
- }
-
- /* If we found a block with locals in it, add it to the list.
- Note that the ranges of start and end address for blocks
- are exclusive, so double-check against the PC */
-
- if (!junk && pc < BLOCK_END (block))
- {
- char *addr;
-
- Tcl_Obj *elt = Tcl_NewListObj (0, NULL);
- xasprintf (&addr, "0x%s", paddr_nz (BLOCK_START (block)));
- Tcl_ListObjAppendElement (interp, elt,
- Tcl_NewStringObj (addr, -1));
- free(addr);
- xasprintf (&addr, "0x%s", paddr_nz (BLOCK_END (block)));
- Tcl_ListObjAppendElement (interp, elt,
- Tcl_NewStringObj (addr, -1));
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr, elt);
- free(addr);
- }
-
- if (BLOCK_FUNCTION (block))
- break;
- else
- block = BLOCK_SUPERBLOCK (block);
- }
- }
-
- return TCL_OK;
-}
-
-/* gdb_get_args -
- * This and gdb_get_locals just call gdb_get_vars_command with the right
- * value of clientData. We can't use the client data in the definition
- * of the command, because the call wrapper uses this instead...
- */
-static int
-gdb_get_args_command (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- return gdb_get_vars_command ((ClientData) 1, interp, objc, objv);
-}
-
-
-static int
-gdb_get_locals_command (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- return gdb_get_vars_command ((ClientData) 0, interp, objc, objv);
-}
-
-/* This implements the tcl commands "gdb_get_locals" and "gdb_get_args"
-
-* This function sets the Tcl interpreter's result to a list of variable names
-* depending on clientData. If clientData is one, the result is a list of
-* arguments; zero returns a list of locals -- all relative to the block
-* specified as an argument to the command. Valid commands include
-* anything decode_line_1 can handle (like "main.c:2", "*0x02020202",
-* and "main").
-*
-* Tcl Arguments:
-* linespec - the linespec defining the scope of the lookup. Empty string
-* to use the current block in the innermost frame.
-* Tcl Result:
-* A list of the locals or args
-*/
-static int
-gdb_get_vars_command (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- struct symtabs_and_lines sals;
- struct symbol *sym;
- struct block *block;
- char **canonical, *args;
- struct dict_iterator iter;
- int i, arguments;
-
- if (objc > 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv,
- "[function:line|function|line|*addr]");
- return TCL_ERROR;
- }
-
- arguments = (int) clientData;
-
- /* Initialize the result pointer to an empty list. */
-
- Tcl_SetListObj (result_ptr->obj_ptr, 0, NULL);
-
- if (objc == 2)
- {
- args = Tcl_GetStringFromObj (objv[1], NULL);
- sals = decode_line_1 (&args, 1, NULL, 0, &canonical, NULL);
- if (sals.nelts == 0)
- {
- gdbtk_set_result (interp, "error decoding line");
- return TCL_ERROR;
- }
-
- /* Resolve all line numbers to PC's */
- for (i = 0; i < sals.nelts; i++)
- resolve_sal_pc (&sals.sals[i]);
-
- block = block_for_pc (sals.sals[0].pc);
- }
- else
- {
- /* Specified currently selected frame */
- if (!target_has_registers)
- return TCL_OK;
-
- block = get_frame_block (get_selected_frame (NULL), 0);
- }
-
- while (block != 0)
- {
- ALL_BLOCK_SYMBOLS (block, iter, sym)
- {
- switch (SYMBOL_CLASS (sym))
- {
- default:
- case LOC_UNDEF: /* catches errors */
- case LOC_CONST: /* constant */
- case LOC_TYPEDEF: /* local typedef */
- case LOC_LABEL: /* local label */
- case LOC_BLOCK: /* local function */
- case LOC_CONST_BYTES: /* loc. byte seq. */
- case LOC_UNRESOLVED: /* unresolved static */
- case LOC_OPTIMIZED_OUT: /* optimized out */
- break;
- case LOC_ARG: /* argument */
- case LOC_REF_ARG: /* reference arg */
- case LOC_REGPARM: /* register arg */
- case LOC_REGPARM_ADDR: /* indirect register arg */
- case LOC_LOCAL_ARG: /* stack arg */
- case LOC_BASEREG_ARG: /* basereg arg */
- case LOC_COMPUTED_ARG: /* computed location arg */
- if (arguments)
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr,
- Tcl_NewStringObj (DEPRECATED_SYMBOL_NAME (sym), -1));
- break;
- case LOC_LOCAL: /* stack local */
- case LOC_BASEREG: /* basereg local */
- case LOC_STATIC: /* static */
- case LOC_REGISTER: /* register */
- case LOC_COMPUTED: /* computed location */
- if (!arguments)
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr,
- Tcl_NewStringObj (DEPRECATED_SYMBOL_NAME (sym), -1));
- break;
- }
- }
- if (BLOCK_FUNCTION (block))
- break;
- else
- block = BLOCK_SUPERBLOCK (block);
- }
-
- return TCL_OK;
-}
-
-/* This implements the tcl command gdb_selected_block
- *
- * Returns the start and end addresses of the innermost
- * block in the selected frame.
- *
- * Arguments:
- * None
- * Tcl Result:
- * The currently selected block's start and end addresses
- */
-static int
-gdb_selected_block (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- char *start = NULL;
- char *end = NULL;
-
- if (!target_has_registers)
- {
- xasprintf (&start, "%s", "");
- xasprintf (&end, "%s", "");
- }
- else
- {
- struct block *block;
- block = get_frame_block (get_selected_frame (NULL), 0);
- xasprintf (&start, "0x%s", paddr_nz (BLOCK_START (block)));
- xasprintf (&end, "0x%s", paddr_nz (BLOCK_END (block)));
- }
-
- Tcl_SetListObj (result_ptr->obj_ptr, 0, NULL);
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr,
- Tcl_NewStringObj (start, -1));
- Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr,
- Tcl_NewStringObj (end, -1));
-
- free(start);
- free(end);
- return TCL_OK;
-}
-
-/* This implements the tcl command gdb_selected_frame
-
-* Returns the address of the selected frame
-* frame.
-*
-* Arguments:
-* None
-* Tcl Result:
-* The currently selected frame's address
-*/
-static int
-gdb_selected_frame (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- char *frame;
-
- if (!target_has_registers)
- xasprintf (&frame, "%s","");
- else
- /* FIXME: cagney/2002-11-19: This should be using get_frame_id()
- to identify the frame and *NOT* get_frame_base(). */
- xasprintf (&frame, "0x%s",
- paddr_nz (get_frame_base (get_selected_frame (NULL))));
-
- Tcl_SetStringObj (result_ptr->obj_ptr, frame, -1);
-
- free(frame);
- return TCL_OK;
-}
-
-/* This implements the tcl command gdb_stack.
- * It builds up a list of stack frames.
- *
- * Tcl Arguments:
- * start - starting stack frame
- * count - number of frames to inspect
- * Tcl Result:
- * A list of function names
- */
-static int
-gdb_stack (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- int start, count;
-
- if (objc < 3)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "start count");
- return TCL_ERROR;
- }
-
- if (Tcl_GetIntFromObj (NULL, objv[1], &start))
- {
- result_ptr->flags |= GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
- if (Tcl_GetIntFromObj (NULL, objv[2], &count))
- {
- result_ptr->flags |= GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
-
- if (target_has_stack)
- {
- gdb_result r;
- struct frame_info *top;
- struct frame_info *fi;
-
- /* Find the outermost frame */
- r = GDB_get_current_frame (&fi);
- if (r != GDB_OK)
- return TCL_ERROR;
-
- while (fi != NULL)
- {
- top = fi;
- r = GDB_get_prev_frame (fi, &fi);
- if (r != GDB_OK)
- fi = NULL;
- }
-
- /* top now points to the top (outermost frame) of the
- stack, so point it to the requested start */
- start = -start;
- r = GDB_find_relative_frame (top, &start, &top);
-
- result_ptr->obj_ptr = Tcl_NewListObj (0, NULL);
- if (r != GDB_OK)
- return TCL_OK;
-
- /* If start != 0, then we have asked to start outputting
- frames beyond the innermost stack frame */
- if (start == 0)
- {
- fi = top;
- while (fi && count--)
- {
- get_frame_name (interp, result_ptr->obj_ptr, fi);
- r = GDB_get_next_frame (fi, &fi);
- if (r != GDB_OK)
- break;
- }
- }
- }
-
- return TCL_OK;
-}
-
-/* A helper function for get_stack which adds information about
- * the stack frame FI to the caller's LIST.
- *
- * This is stolen from print_frame_info in stack.c.
- */
-static void
-get_frame_name (Tcl_Interp *interp, Tcl_Obj *list, struct frame_info *fi)
-{
- struct symtab_and_line sal;
- struct symbol *func = NULL;
- register char *funname = 0;
- enum language funlang = language_unknown;
- Tcl_Obj *objv[1];
-
- if (get_frame_type (fi) == DUMMY_FRAME)
- {
- objv[0] = Tcl_NewStringObj ("<function called from gdb>\n", -1);
- Tcl_ListObjAppendElement (interp, list, objv[0]);
- return;
- }
- if ((get_frame_type (fi) == SIGTRAMP_FRAME))
- {
- objv[0] = Tcl_NewStringObj ("<signal handler called>\n", -1);
- Tcl_ListObjAppendElement (interp, list, objv[0]);
- return;
- }
-
- sal =
- find_pc_line (get_frame_pc (fi),
- get_next_frame (fi) != NULL
- && !(get_frame_type (fi) == SIGTRAMP_FRAME)
- && !(get_frame_type (fi) == DUMMY_FRAME));
-
- func = find_pc_function (get_frame_pc (fi));
- if (func)
- {
- struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (get_frame_pc (fi));
- if (msymbol != NULL
- && (SYMBOL_VALUE_ADDRESS (msymbol)
- > BLOCK_START (SYMBOL_BLOCK_VALUE (func))))
- {
- func = 0;
- funname = GDBTK_SYMBOL_SOURCE_NAME (msymbol);
- funlang = SYMBOL_LANGUAGE (msymbol);
- }
- else
- {
- funname = GDBTK_SYMBOL_SOURCE_NAME (func);
- funlang = SYMBOL_LANGUAGE (func);
- }
- }
- else
- {
- struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (get_frame_pc (fi));
- if (msymbol != NULL)
- {
- funname = GDBTK_SYMBOL_SOURCE_NAME (msymbol);
- funlang = SYMBOL_LANGUAGE (msymbol);
- }
- }
-
- if (sal.symtab)
- {
- objv[0] = Tcl_NewStringObj (funname, -1);
- Tcl_ListObjAppendElement (interp, list, objv[0]);
- }
- else
- {
-#if 0
- /* we have no convenient way to deal with this yet... */
- if (fi->pc != sal.pc || !sal.symtab)
- {
- deprecated_print_address_numeric (fi->pc, 1, gdb_stdout);
- printf_filtered (" in ");
- }
- printf_symbol_filtered (gdb_stdout, funname ? funname : "??", funlang,
- DMGL_ANSI);
-#endif
- objv[0] = Tcl_NewStringObj (funname != NULL ? funname : "??", -1);
-#ifdef PC_LOAD_SEGMENT
- /* If we couldn't print out function name but if can figure out what
- load segment this pc value is from, at least print out some info
- about its load segment. */
- if (!funname)
- {
- Tcl_AppendStringsToObj (objv[0], " from ", PC_LOAD_SEGMENT (fi->pc),
- (char *) NULL);
- }
-#endif
-#ifdef PC_SOLIB
- if (!funname)
- {
- char *lib = PC_SOLIB (get_frame_pc (fi));
- if (lib)
- {
- Tcl_AppendStringsToObj (objv[0], " from ", lib, (char *) NULL);
- }
- }
-#endif
- Tcl_ListObjAppendElement (interp, list, objv[0]);
- }
-}
diff --git a/gdb/gdbtk/generic/gdbtk-varobj.c b/gdb/gdbtk/generic/gdbtk-varobj.c
deleted file mode 100644
index 5215c718970..00000000000
--- a/gdb/gdbtk/generic/gdbtk-varobj.c
+++ /dev/null
@@ -1,612 +0,0 @@
-/* Variable user interface layer for GDB, the GNU debugger.
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#include "defs.h"
-#include "value.h"
-#include "gdb_string.h"
-#include "varobj.h"
-
-#include <tcl.h>
-#include "gdbtk.h"
-#include "gdbtk-cmds.h"
-
-/*
- * Public functions defined in this file
- */
-
-int gdb_variable_init (Tcl_Interp *);
-
-/*
- * Private functions defined in this file
- */
-
-/* Entries into this file */
-
-static int gdb_variable_command (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST[]);
-
-static int variable_obj_command (ClientData, Tcl_Interp *, int,
- Tcl_Obj * CONST[]);
-
-/* Variable object subcommands */
-
-static int variable_create (Tcl_Interp *, int, Tcl_Obj * CONST[]);
-
-static void variable_delete (Tcl_Interp *, struct varobj *, int);
-
-static Tcl_Obj *variable_children (Tcl_Interp *, struct varobj *);
-
-static int variable_format (Tcl_Interp *, int, Tcl_Obj * CONST[],
- struct varobj *);
-
-static int variable_type (Tcl_Interp *, int, Tcl_Obj * CONST[],
- struct varobj *);
-
-static int variable_value (Tcl_Interp *, int, Tcl_Obj * CONST[],
- struct varobj *);
-
-static Tcl_Obj *variable_update (Tcl_Interp * interp, struct varobj **var);
-
-/* Helper functions for the above subcommands. */
-
-static void install_variable (Tcl_Interp *, char *);
-
-static void uninstall_variable (Tcl_Interp *, char *);
-
-/* String representations of gdb's format codes */
-static char *format_string[] =
- {"natural", "binary", "decimal", "hexadecimal", "octal"};
-
-
-/* Initialize the variable code. This function should be called once
- to install and initialize the variable code into the interpreter. */
-int
-gdb_variable_init (Tcl_Interp *interp)
-{
- Tcl_Command result;
- static int initialized = 0;
-
- if (!initialized)
- {
- result = Tcl_CreateObjCommand (interp, "gdb_variable", gdbtk_call_wrapper,
- (ClientData) gdb_variable_command, NULL);
- if (result == NULL)
- return TCL_ERROR;
-
- initialized = 1;
- }
-
- return TCL_OK;
-}
-
-/* This function defines the "gdb_variable" command which is used to
- create variable objects. Its syntax includes:
-
- gdb_variable create
- gdb_variable create NAME
- gdb_variable create -expr EXPR
- gdb_variable create -frame FRAME
- (it will also include permutations of the above options)
-
- NAME = name of object to create. If no NAME, then automatically create
- a name
- EXPR = the gdb expression for which to create a variable. This will
- be the most common usage.
- FRAME = the frame defining the scope of the variable.
-*/
-static int
-gdb_variable_command (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- static const char *commands[] =
- {"create", "list", NULL};
- enum commands_enum
- {
- VARIABLE_CREATE, VARIABLE_LIST
- };
- int index, result;
-
- if (objc < 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "option ?arg...?");
- return TCL_ERROR;
- }
-
- if (Tcl_GetIndexFromObj (interp, objv[1], commands, "options", 0,
- &index) != TCL_OK)
- {
- return TCL_ERROR;
- }
-
- switch ((enum commands_enum) index)
- {
- case VARIABLE_CREATE:
- result = variable_create (interp, objc - 2, objv + 2);
- break;
-
- default:
- return TCL_ERROR;
- }
-
- return result;
-}
-
-/* This function implements the actual object command for each
- variable object that is created (and each of its children).
-
- Currently the following commands are implemented:
- - delete delete this object and its children
- - update update the variable and its children (root vars only)
- - numChildren how many children does this object have
- - children create the children and return a list of their objects
- - name print out the name of this variable
- - format query/set the display format of this variable
- - type get the type of this variable
- - value get/set the value of this variable
- - editable is this variable editable?
-*/
-static int
-variable_obj_command (ClientData clientData, Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- enum commands_enum
- {
- VARIABLE_DELETE,
- VARIABLE_NUM_CHILDREN,
- VARIABLE_CHILDREN,
- VARIABLE_FORMAT,
- VARIABLE_TYPE,
- VARIABLE_VALUE,
- VARIABLE_NAME,
- VARIABLE_EDITABLE,
- VARIABLE_UPDATE
- };
- static const char *commands[] =
- {
- "delete",
- "numChildren",
- "children",
- "format",
- "type",
- "value",
- "name",
- "editable",
- "update",
- NULL
- };
- struct varobj *var;
- char *varobj_name;
- int index, result;
-
- /* Get the current handle for this variable token (name). */
- varobj_name = Tcl_GetStringFromObj (objv[0], NULL);
- if (varobj_name == NULL)
- return TCL_ERROR;
- var = varobj_get_handle (varobj_name);
-
-
- if (objc < 2)
- {
- Tcl_WrongNumArgs (interp, 1, objv, "option ?arg...?");
- return TCL_ERROR;
- }
-
- if (Tcl_GetIndexFromObj (interp, objv[1], commands, "options", 0,
- &index) != TCL_OK)
- return TCL_ERROR;
-
- result = TCL_OK;
- switch ((enum commands_enum) index)
- {
- case VARIABLE_DELETE:
- if (objc > 2)
- {
- int len;
- char *s = Tcl_GetStringFromObj (objv[2], &len);
- if (*s == 'c' && strncmp (s, "children", len) == 0)
- {
- variable_delete (interp, var, 1 /* only children */ );
- break;
- }
- }
- variable_delete (interp, var, 0 /* var and children */ );
- break;
-
- case VARIABLE_NUM_CHILDREN:
- Tcl_SetObjResult (interp, Tcl_NewIntObj (varobj_get_num_children (var)));
- break;
-
- case VARIABLE_CHILDREN:
- {
- Tcl_Obj *children = variable_children (interp, var);
- Tcl_SetObjResult (interp, children);
- }
- break;
-
- case VARIABLE_FORMAT:
- result = variable_format (interp, objc, objv, var);
- break;
-
- case VARIABLE_TYPE:
- result = variable_type (interp, objc, objv, var);
- break;
-
- case VARIABLE_VALUE:
- result = variable_value (interp, objc, objv, var);
- break;
-
- case VARIABLE_NAME:
- {
- char *name = varobj_get_expression (var);
- Tcl_SetObjResult (interp, Tcl_NewStringObj (name, -1));
- xfree (name);
- }
- break;
-
- case VARIABLE_EDITABLE:
- Tcl_SetObjResult (interp,
- Tcl_NewIntObj (varobj_get_attributes (var) & 0x00000001 /* Editable? */ ));
- break;
-
- case VARIABLE_UPDATE:
- /* Only root variables can be updated */
- {
- Tcl_Obj *obj = variable_update (interp, &var);
- Tcl_SetObjResult (interp, obj);
- }
- break;
-
- default:
- return TCL_ERROR;
- }
-
- return result;
-}
-
-/*
- * Variable object construction/destruction
- */
-
-/* This function is responsible for processing the user's specifications
- and constructing a variable object. */
-static int
-variable_create (Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
-{
- enum create_opts
- {
- CREATE_EXPR, CREATE_FRAME
- };
- static const char *create_options[] =
- {"-expr", "-frame", NULL};
- struct varobj *var;
- char *name;
- char *obj_name;
- int index;
- CORE_ADDR frame = (CORE_ADDR) -1;
- int how_specified = USE_SELECTED_FRAME;
-
- /* REMINDER: This command may be invoked in the following ways:
- gdb_variable create [NAME] [-expr EXPR] [-frame FRAME]
-
- NAME = name of object to create. If no NAME, then automatically create
- a name
- EXPR = the gdb expression for which to create a variable. This will
- be the most common usage.
- FRAME = the address of the frame defining the variable's scope
- */
- name = NULL;
- if (objc)
- name = Tcl_GetStringFromObj (objv[0], NULL);
- if (name == NULL || *name == '-')
- {
- /* generate a name for this object */
- obj_name = varobj_gen_name ();
- }
- else
- {
- /* specified name for object */
- obj_name = strdup (name);
- objv++;
- objc--;
- }
-
- /* Run through all the possible options for this command */
- name = NULL;
- while (objc > 0)
- {
- if (Tcl_GetIndexFromObj (interp, objv[0], create_options, "options",
- 0, &index) != TCL_OK)
- {
- xfree (obj_name);
- result_ptr->flags |= GDBTK_IN_TCL_RESULT;
- return TCL_ERROR;
- }
-
- switch ((enum create_opts) index)
- {
- case CREATE_EXPR:
- name = Tcl_GetStringFromObj (objv[1], NULL);
- objc--;
- objv++;
- break;
-
- case CREATE_FRAME:
- {
- char *str;
- str = Tcl_GetStringFromObj (objv[1], NULL);
- frame = string_to_core_addr (str);
- how_specified = USE_SPECIFIED_FRAME;
- objc--;
- objv++;
- }
- break;
-
- default:
- break;
- }
-
- objc--;
- objv++;
- }
-
- /* Create the variable */
- var = varobj_create (obj_name, name, frame, how_specified);
-
- if (var != NULL)
- {
- /* Install a command into the interpreter that represents this
- object */
- install_variable (interp, obj_name);
- Tcl_SetObjResult (interp, Tcl_NewStringObj (obj_name, -1));
- result_ptr->flags |= GDBTK_IN_TCL_RESULT;
-
- xfree (obj_name);
- return TCL_OK;
- }
-
- xfree (obj_name);
- return TCL_ERROR;
-}
-
-/* Delete the variable object VAR and its children */
-/* If only_children_p, Delete only the children associated with the object. */
-static void
-variable_delete (Tcl_Interp *interp, struct varobj *var,
- int only_children_p)
-{
- char **dellist;
- char **vc;
-
- varobj_delete (var, &dellist, only_children_p);
-
- vc = dellist;
- while (*vc != NULL)
- {
- uninstall_variable (interp, *vc);
- xfree (*vc);
- vc++;
- }
-
- xfree (dellist);
-}
-
-/* Return a list of all the children of VAR, creating them if necessary. */
-static Tcl_Obj *
-variable_children (Tcl_Interp *interp, struct varobj *var)
-{
- Tcl_Obj *list;
- struct varobj **childlist;
- struct varobj **vc;
- char *childname;
-
- list = Tcl_NewListObj (0, NULL);
-
- varobj_list_children (var, &childlist);
-
- vc = childlist;
- while (*vc != NULL)
- {
- childname = varobj_get_objname (*vc);
- /* Add child to result list and install the Tcl command for it. */
- Tcl_ListObjAppendElement (NULL, list,
- Tcl_NewStringObj (childname, -1));
- install_variable (interp, childname);
- vc++;
- }
-
- xfree (childlist);
- return list;
-}
-
-/* Update the values for a variable and its children. */
-/* NOTE: Only root variables can be updated... */
-
-static Tcl_Obj *
-variable_update (Tcl_Interp *interp, struct varobj **var)
-{
- Tcl_Obj *changed;
- struct varobj **changelist;
- struct varobj **vc;
-
- /* varobj_update() can return -1 if the variable is no longer around,
- i.e. we stepped out of the frame in which a local existed. */
- if (varobj_update (var, &changelist) == -1)
- return Tcl_NewStringObj ("-1", -1);
-
- changed = Tcl_NewListObj (0, NULL);
- vc = changelist;
- while (*vc != NULL)
- {
- /* Add changed variable object to result list */
- Tcl_ListObjAppendElement (NULL, changed,
- Tcl_NewStringObj (varobj_get_objname (*vc), -1));
- vc++;
- }
-
- xfree (changelist);
- return changed;
-}
-
-/* This implements the format object command allowing
- the querying or setting of the object's display format. */
-static int
-variable_format (Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[], struct varobj *var)
-{
- if (objc > 2)
- {
- /* Set the format of VAR to given format */
- int len;
- char *fmt = Tcl_GetStringFromObj (objv[2], &len);
- if (strncmp (fmt, "natural", len) == 0)
- varobj_set_display_format (var, FORMAT_NATURAL);
- else if (strncmp (fmt, "binary", len) == 0)
- varobj_set_display_format (var, FORMAT_BINARY);
- else if (strncmp (fmt, "decimal", len) == 0)
- varobj_set_display_format (var, FORMAT_DECIMAL);
- else if (strncmp (fmt, "hexadecimal", len) == 0)
- varobj_set_display_format (var, FORMAT_HEXADECIMAL);
- else if (strncmp (fmt, "octal", len) == 0)
- varobj_set_display_format (var, FORMAT_OCTAL);
- else
- {
- gdbtk_set_result (interp, "unknown display format \"",
- fmt, "\": must be: \"natural\", \"binary\""
- ", \"decimal\", \"hexadecimal\", or \"octal\"");
- return TCL_ERROR;
- }
- }
- else
- {
- /* Report the current format */
- Tcl_Obj *fmt;
-
- /* FIXME: Use varobj_format_string[] instead */
- fmt = Tcl_NewStringObj (
- format_string[(int) varobj_get_display_format (var)], -1);
- Tcl_SetObjResult (interp, fmt);
- }
-
- return TCL_OK;
-}
-
-/* This function implements the type object command, which returns the type of a
- variable in the interpreter (or an error). */
-static int
-variable_type (Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[], struct varobj *var)
-{
- const char *first;
- const char *last;
- char *string;
- Tcl_RegExp regexp;
-
- /* For the "fake" variables, do not return a type.
- Their type is NULL anyway */
- /* FIXME: varobj_get_type() calls type_print(), so we may have to wrap
- its call here and return TCL_ERROR in the case it errors out */
- if ((string = varobj_get_type (var)) == NULL)
- {
- Tcl_ResetResult (interp);
- return TCL_OK;
- }
-
- first = string;
-
- /* gdb will print things out like "struct {...}" for anonymous structs.
- In gui-land, we don't want the {...}, so we strip it here. */
- regexp = Tcl_RegExpCompile (interp, "{...}");
- if (Tcl_RegExpExec (interp, regexp, string, first))
- {
- /* We have an anonymous struct/union/class/enum */
- Tcl_RegExpRange (regexp, 0, &first, &last);
- if (*(first - 1) == ' ')
- first--;
- string[first - string] = '\0';
- }
-
- Tcl_SetObjResult (interp, Tcl_NewStringObj (string, -1));
- xfree (string);
- return TCL_OK;
-}
-
-/* This function implements the value object command, which allows an object's
- value to be queried or set. */
-static int
-variable_value (Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[], struct varobj *var)
-{
- char *r;
-
- /* If we're setting the value of the variable, objv[2] will contain the
- variable's new value. */
- if (objc > 2)
- {
- /* FIXME: Do we need to test if val->error is set here?
- If so, make it an attribute. */
- if (varobj_get_attributes (var) & 0x00000001 /* Editable? */ )
- {
- char *s;
-
- s = Tcl_GetStringFromObj (objv[2], NULL);
- if (!varobj_set_value (var, s))
- {
- gdbtk_set_result (interp, "Could not assign expression to variable object");
- return TCL_ERROR;
- }
- }
-
- Tcl_ResetResult (interp);
- return TCL_OK;
- }
-
- r = varobj_get_value (var);
-
- if (r == NULL)
- {
- gdbtk_set_result (interp, "Could not read variable object value after assignment");
- return TCL_ERROR;
- }
- else
- {
- Tcl_SetObjResult (interp, Tcl_NewStringObj (r, -1));
- xfree (r);
- return TCL_OK;
- }
-}
-
-/* Helper functions for the above */
-
-/* Install the given variable VAR into the tcl interpreter with
- the object name NAME. */
-static void
-install_variable (Tcl_Interp *interp, char *name)
-{
- Tcl_CreateObjCommand (interp, name, variable_obj_command,
- NULL, NULL);
-}
-
-/* Unistall the object VAR in the tcl interpreter. */
-static void
-uninstall_variable (Tcl_Interp *interp, char *varname)
-{
- Tcl_DeleteCommand (interp, varname);
-}
-
diff --git a/gdb/gdbtk/generic/gdbtk-wrapper.c b/gdb/gdbtk/generic/gdbtk-wrapper.c
deleted file mode 100644
index 13311bfd4be..00000000000
--- a/gdb/gdbtk/generic/gdbtk-wrapper.c
+++ /dev/null
@@ -1,723 +0,0 @@
-/* longjmp-free interface between gdb and gdbtk.
- Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#include "defs.h"
-#include "frame.h"
-#include "value.h"
-#include "block.h"
-#include "exceptions.h"
-#include "gdbtk-wrapper.h"
-
-/*
- * Wrapper functions exported to the world
- */
-
-gdb_result GDB_value_fetch_lazy (value_ptr);
-
-gdb_result GDB_evaluate_expression (struct expression *, value_ptr *);
-
-gdb_result GDB_type_print (value_ptr, char *, struct ui_file *, int);
-
-gdb_result GDB_val_print (struct type *type, char *valaddr,
- CORE_ADDR address, struct ui_file *stream,
- int format, int deref_ref, int recurse,
- enum val_prettyprint pretty);
-
-gdb_result GDB_value_equal (value_ptr, value_ptr, int *);
-
-gdb_result GDB_parse_exp_1 (char **stringptr, struct block *block, int comma,
- struct expression **result);
-
-gdb_result GDB_evaluate_type (struct expression *exp, value_ptr * result);
-
-gdb_result GDB_block_for_pc (CORE_ADDR pc, struct block **result);
-
-gdb_result GDB_block_innermost_frame (struct block *block,
- struct frame_info **result);
-
-gdb_result GDB_reinit_frame_cache (void);
-
-gdb_result GDB_value_ind (value_ptr val, value_ptr * rval);
-
-gdb_result GDB_value_slice (value_ptr val, int low, int num,
- value_ptr * rval);
-
-gdb_result GDB_value_coerce_array (value_ptr val, value_ptr * rval);
-
-gdb_result GDB_value_struct_elt (value_ptr * argp, value_ptr * args,
- char *name, int *static_memfunc,
- char *err, value_ptr * rval);
-
-gdb_result GDB_value_cast (struct type *type, value_ptr val,
- value_ptr * rval);
-
-gdb_result GDB_get_frame_block (struct frame_info *fi, struct block **rval);
-
-gdb_result GDB_get_prev_frame (struct frame_info *fi,
- struct frame_info **result);
-
-gdb_result GDB_get_next_frame (struct frame_info *fi,
- struct frame_info **result);
-
-gdb_result GDB_find_relative_frame (struct frame_info *fi,
- int *start, struct frame_info **result);
-
-gdb_result GDB_get_current_frame (struct frame_info **result);
-
-/*
- * Private functions for this file
- */
-static gdb_result call_wrapped_function (catch_errors_ftype *,
- struct gdb_wrapper_arguments *);
-
-static int wrap_type_print (char *);
-
-static int wrap_evaluate_expression (char *);
-
-static int wrap_value_fetch_lazy (char *);
-
-static int wrap_val_print (char *);
-
-static int wrap_value_equal (char *);
-
-static int wrap_parse_exp_1 (char *opaque_arg);
-
-static int wrap_evaluate_type (char *opaque_arg);
-
-static int wrap_block_for_pc (char *opaque_arg);
-
-static int wrap_block_innermost_frame (char *opaque_arg);
-
-static int wrap_reinit_frame_cache (char *opaque_arg);
-
-static int wrap_value_ind (char *opaque_arg);
-
-static int wrap_value_slice (char *opaque_arg);
-
-static int wrap_value_coerce_array (char *opaque_arg);
-
-static int wrap_value_struct_elt (char *opaque_arg);
-
-static int wrap_value_cast (char *opaque_arg);
-
-static int wrap_get_frame_block (char *opaque_arg);
-
-static int wrap_get_prev_frame (char *opaque_arg);
-
-static int wrap_get_next_frame (char *opaque_arg);
-
-static int wrap_find_relative_frame (char *opaque_arg);
-
-static int wrap_get_current_frame (char *opaque_arg);
-
-static gdb_result
-call_wrapped_function (catch_errors_ftype *fn, struct gdb_wrapper_arguments *arg)
-{
- if (!catch_errors (fn, (char *) &arg, "", RETURN_MASK_ERROR))
- {
- /* An error occurred */
- return GDB_ERROR;
- }
-
- return GDB_OK;
-}
-
-gdb_result
-GDB_type_print (value_ptr val, char *varstring,
- struct ui_file *stream, int show)
-{
- struct gdb_wrapper_arguments args;
-
- args.args[0] = (char *) val;
- args.args[1] = varstring;
- args.args[2] = (char *) stream;
- args.args[3] = (char *) show;
- return call_wrapped_function ((catch_errors_ftype *) wrap_type_print, &args);
-}
-
-static int
-wrap_type_print (char *a)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) a;
- value_ptr val = (value_ptr) (*args)->args[0];
- char *varstring = (*args)->args[1];
- struct ui_file *stream = (struct ui_file *) (*args)->args[2];
- int show = (int) (*args)->args[3];
- type_print (value_type (val), varstring, stream, show);
- return 1;
-}
-
-gdb_result
-GDB_val_print (struct type *type,
- char *valaddr,
- CORE_ADDR address,
- struct ui_file *stream,
- int format,
- int deref_ref,
- int recurse,
- enum val_prettyprint pretty)
-{
- struct gdb_wrapper_arguments args;
-
- args.args[0] = (char *) type;
- args.args[1] = (char *) valaddr;
- args.args[2] = (char *) &address;
- args.args[3] = (char *) stream;
- args.args[4] = (char *) format;
- args.args[5] = (char *) deref_ref;
- args.args[6] = (char *) recurse;
- args.args[7] = (char *) pretty;
-
- return call_wrapped_function ((catch_errors_ftype *) wrap_val_print, &args);
-}
-
-static int
-wrap_val_print (char *a)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) a;
- struct type *type;
- const gdb_byte *valaddr;
- CORE_ADDR address;
- struct ui_file *stream;
- int format;
- int deref_ref;
- int recurse;
- enum val_prettyprint pretty;
-
- type = (struct type *) (*args)->args[0];
- valaddr = (gdb_byte *) (*args)->args[1];
- address = *(CORE_ADDR *) (*args)->args[2];
- stream = (struct ui_file *) (*args)->args[3];
- format = (int) (*args)->args[4];
- deref_ref = (int) (*args)->args[5];
- recurse = (int) (*args)->args[6];
- pretty = (enum val_prettyprint) (*args)->args[7];
-
- val_print (type, valaddr, 0, address, stream, format, deref_ref,
- recurse, pretty);
- return 1;
-}
-
-gdb_result
-GDB_value_fetch_lazy (value_ptr value)
-{
- struct gdb_wrapper_arguments args;
-
- args.args[0] = (char *) value;
- return call_wrapped_function ((catch_errors_ftype *) wrap_value_fetch_lazy, &args);
-}
-
-static int
-wrap_value_fetch_lazy (char *a)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) a;
-
- value_fetch_lazy ((value_ptr) (*args)->args[0]);
- return 1;
-}
-
-gdb_result
-GDB_evaluate_expression (struct expression *exp, value_ptr *value)
-{
- struct gdb_wrapper_arguments args;
- gdb_result result;
- args.args[0] = (char *) exp;
-
- result = call_wrapped_function ((catch_errors_ftype *) wrap_evaluate_expression, &args);
- if (result != GDB_OK)
- return result;
-
- *value = (value_ptr) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_evaluate_expression (char *a)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) a;
-
- (*args)->result =
- (char *) evaluate_expression ((struct expression *) (*args)->args[0]);
- return 1;
-}
-
-gdb_result
-GDB_value_equal (val1, val2, result)
- value_ptr val1;
- value_ptr val2;
- int *result;
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) val1;
- args.args[1] = (char *) val2;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_value_equal, &args);
- if (r != GDB_OK)
- return r;
-
- *result = (int) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_value_equal (char *a)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) a;
- value_ptr val1, val2;
-
- val1 = (value_ptr) (*args)->args[0];
- val2 = (value_ptr) (*args)->args[1];
-
- (*args)->result = (char *) value_equal (val1, val2);
- return 1;
-}
-
-gdb_result
-GDB_parse_exp_1 (char **stringptr, struct block *block,
- int comma, struct expression **result)
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) stringptr;
- args.args[1] = (char *) block;
- args.args[2] = (char *) comma;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_parse_exp_1, &args);
- if (r != GDB_OK)
- return r;
-
- *result = (struct expression *) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_parse_exp_1 (char *opaque_arg)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- struct block *block;
- char **stringptr;
- int comma;
-
- stringptr = (char **) (*args)->args[0];
- block = (struct block *) (*args)->args[1];
- comma = (int) (*args)->args[2];
-
- (*args)->result = (char *) parse_exp_1 (stringptr, block, comma);
- return 1;
-}
-
-gdb_result
-GDB_evaluate_type (struct expression *exp, value_ptr *result)
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) exp;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_evaluate_type, &args);
- if (r != GDB_OK)
- return r;
-
- *result = (value_ptr) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_evaluate_type (char *opaque_arg)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- struct expression *exp;
-
- exp = (struct expression *) (*args)->args[0];
- (*args)->result = (char *) evaluate_type (exp);
- return 1;
-}
-
-gdb_result
-GDB_block_for_pc (CORE_ADDR pc, struct block **result)
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) &pc;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_block_for_pc, &args);
- if (r != GDB_OK)
- return r;
-
- *result = (struct block *) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_block_for_pc (char *opaque_arg)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- CORE_ADDR pc;
-
- pc = *(CORE_ADDR *) (*args)->args[0];
- (*args)->result = (char *) block_for_pc (pc);
- return 1;
-}
-
-gdb_result
-GDB_block_innermost_frame (struct block *block, struct frame_info **result)
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) block;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_block_innermost_frame, &args);
- if (r != GDB_OK)
- return r;
-
- *result = (struct frame_info *) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_block_innermost_frame (char *opaque_arg)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- struct block *block;
-
- block = (struct block *) (*args)->args[0];
- (*args)->result = (char *) block_innermost_frame (block);
- return 1;
-}
-
-gdb_result
-GDB_reinit_frame_cache ()
-{
- gdb_result r;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_reinit_frame_cache, NULL);
- if (r != GDB_OK)
- return r;
-
- return GDB_OK;
-}
-
-static int
-wrap_reinit_frame_cache (char *opaque_arg)
-{
- reinit_frame_cache ();
- return 1;
-}
-
-gdb_result
-GDB_value_ind (value_ptr val, value_ptr *rval)
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) val;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_value_ind, &args);
- if (r != GDB_OK)
- return r;
-
- *rval = (value_ptr) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_value_ind (char *opaque_arg)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- value_ptr val;
-
- val = (value_ptr) (*args)->args[0];
- (*args)->result = (char *) value_ind (val);
- return 1;
-}
-
-gdb_result
-GDB_value_slice (value_ptr val, int low, int num, value_ptr *rval)
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) val;
- args.args[1] = (char *) &low;
- args.args[2] = (char *) &num;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_value_slice, &args);
- if (r != GDB_OK)
- return r;
-
- *rval = (value_ptr) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_value_slice (char *opaque_arg)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- value_ptr val;
- int low, num;
-
- val = (value_ptr) (*args)->args[0];
- low = *(int *) (*args)->args[1];
- num = *(int *) (*args)->args[2];
- (*args)->result = (char *) value_slice (val, low, num);
- return 1;
-}
-
-gdb_result
-GDB_value_coerce_array (val, rval)
- value_ptr val;
- value_ptr *rval;
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) val;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_value_coerce_array,
- &args);
- if (r != GDB_OK)
- return r;
-
- *rval = (value_ptr) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_value_coerce_array (char *opaque_arg)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- value_ptr val;
-
- val = (value_ptr) (*args)->args[0];
- (*args)->result = (char *) value_coerce_array (val);
- return 1;
-}
-
-gdb_result
-GDB_value_struct_elt (value_ptr *argp,
- value_ptr *args,
- char *name,
- int *static_memfunc,
- char *err,
- value_ptr *rval)
-{
- struct gdb_wrapper_arguments argss;
- gdb_result r;
-
- argss.args[0] = (char *) argp;
- argss.args[1] = (char *) args;
- argss.args[2] = name;
- argss.args[3] = (char *) static_memfunc;
- argss.args[4] = err;
- r = call_wrapped_function ((catch_errors_ftype *) wrap_value_struct_elt, &argss);
- if (r != GDB_OK)
- return r;
-
- *rval = (value_ptr) argss.result;
- return GDB_OK;
-}
-
-static int
-wrap_value_struct_elt (char *opaque_arg)
-{
- struct gdb_wrapper_arguments **argss = (struct gdb_wrapper_arguments **) opaque_arg;
- value_ptr *argp, *args;
- char *name;
- int *static_memfunc;
- char *err;
-
- argp = (value_ptr *) (*argss)->args[0];
- args = (value_ptr *) (*argss)->args[1];
- name = (*argss)->args[2];
- static_memfunc = (int *) (*argss)->args[3];
- err = (*argss)->args[4];
-
- (*argss)->result = (char *) value_struct_elt (argp, args, name, static_memfunc, err);
- return 1;
-}
-
-gdb_result
-GDB_value_cast (struct type *type, value_ptr val, value_ptr *rval)
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) type;
- args.args[1] = (char *) val;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_value_cast, &args);
- if (r != GDB_OK)
- return r;
-
- *rval = (value_ptr) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_value_cast (char *opaque_arg)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- value_ptr val;
- struct type *type;
-
- type = (struct type *) (*args)->args[0];
- val = (value_ptr) (*args)->args[1];
- (*args)->result = (char *) value_cast (type, val);
-
- return 1;
-}
-
-gdb_result
-GDB_get_frame_block (struct frame_info *fi, struct block **rval)
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) fi;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_get_frame_block, &args);
- if (r != GDB_OK)
- return r;
-
- *rval = (struct block *) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_get_frame_block (char *opaque_arg)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- struct frame_info *fi;
-
- fi = (struct frame_info *) (*args)->args[0];
- (*args)->result = (char *) get_frame_block (fi, NULL);
-
- return 1;
-}
-
-gdb_result
-GDB_get_prev_frame (struct frame_info *fi, struct frame_info **result)
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) fi;
- r = call_wrapped_function ((catch_errors_ftype *) wrap_get_prev_frame, &args);
- if (r != GDB_OK)
- return r;
-
- *result = (struct frame_info *) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_get_prev_frame (char *opaque_arg)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- struct frame_info *fi = (struct frame_info *) (*args)->args[0];
-
- (*args)->result = (char *) get_prev_frame (fi);
- return 1;
-}
-
-gdb_result
-GDB_get_next_frame (struct frame_info *fi, struct frame_info **result)
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) fi;
- r = call_wrapped_function ((catch_errors_ftype *) wrap_get_next_frame, &args);
- if (r != GDB_OK)
- return r;
-
- *result = (struct frame_info *) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_get_next_frame (char *opaque_arg)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- struct frame_info *fi = (struct frame_info *) (*args)->args[0];
-
- (*args)->result = (char *) get_next_frame (fi);
- return 1;
-}
-
-gdb_result
-GDB_find_relative_frame (struct frame_info *fi, int *start,
- struct frame_info **result)
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) fi;
- args.args[1] = (char *) start;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_find_relative_frame,
- &args);
- if (r != GDB_OK)
- return r;
-
- *result = (struct frame_info *) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_find_relative_frame (char *opaque_arg)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- struct frame_info *fi = (struct frame_info *) (*args)->args[0];
- int *start = (int *) (*args)->args[1];
-
- (*args)->result = (char *) find_relative_frame (fi, start);
- return 1;
-}
-
-gdb_result
-GDB_get_current_frame (struct frame_info **result)
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_get_current_frame,
- &args);
- if (r != GDB_OK)
- return r;
-
- *result = (struct frame_info *) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_get_current_frame (char *opaque_arg)
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
-
- (*args)->result = (char *) get_current_frame ();
- return 1;
-}
-
diff --git a/gdb/gdbtk/generic/gdbtk-wrapper.h b/gdb/gdbtk/generic/gdbtk-wrapper.h
deleted file mode 100644
index c07d8148b23..00000000000
--- a/gdb/gdbtk/generic/gdbtk-wrapper.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* longjmp-free interface between gdb and gdbtk.
- Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
-
-This file is part of GDB. It contains routines to safely call common gdb
-functions without the fear of longjmp'ing.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA. */
-
-#ifndef GDBTK_WRAPPER_H
-#define GDBTK_WRAPPER_H
-/* Use this struct used to pass arguments to wrapper routines. We assume
- (arbitrarily) that no gdb function takes more than ten arguments. */
-struct gdb_wrapper_arguments {
-
- /* Pointer to some result from the gdb function call, if any */
- char *result;
-
- /* The list of arguments. */
- char *args[10];
-};
-
-/* FIXME: cagney/2002-01-04: GDB no longer uses or supplies the
- value_ptr typedef. Provide one here to keep the Insight code
- immediatly happy. */
-typedef struct value *value_ptr;
-
-/* Whenever any gdb function wrapper is called, its return status is: */
-typedef enum gdb_wrapper_status { GDB_OK, GDB_ERROR } gdb_result;
-
-/* This list of functions which have been wrapped. Please keep this list
- in alphabetical order, using "GDB_" to prefix the actual name of the
- function. */
-extern gdb_result GDB_evaluate_expression (struct expression *expr,
- value_ptr * val);
-extern gdb_result GDB_type_print (value_ptr val, char *varstring,
- struct ui_file *stream, int show);
-extern gdb_result GDB_val_print (struct type *type, char *valaddr,
- CORE_ADDR address, struct ui_file *stream,
- int format, int deref_ref, int recurse,
- enum val_prettyprint pretty);
-extern gdb_result GDB_value_fetch_lazy (value_ptr value);
-extern gdb_result GDB_value_equal (value_ptr val1, value_ptr val2,
- int *result);
-extern gdb_result GDB_parse_exp_1 (char **stringptr, struct block *block,
- int comma, struct expression **result);
-extern gdb_result GDB_evaluate_type (struct expression *exp,
- value_ptr * result);
-extern gdb_result GDB_block_for_pc (CORE_ADDR pc, struct block **result);
-extern gdb_result GDB_block_innermost_frame (struct block *block,
- struct frame_info **result);
-extern gdb_result GDB_reinit_frame_cache (void);
-extern gdb_result GDB_value_ind (value_ptr val, value_ptr * rval);
-extern gdb_result GDB_value_slice (value_ptr val, int low, int num,
- value_ptr * rval);
-extern gdb_result GDB_value_coerce_array (value_ptr val, value_ptr * rval);
-extern gdb_result GDB_value_struct_elt (value_ptr * argp, value_ptr * args,
- char *name, int *static_memfunc,
- char *err, value_ptr * rval);
-extern gdb_result GDB_value_cast (struct type *type, value_ptr val,
- value_ptr * rval);
-gdb_result GDB_get_frame_block (struct frame_info *fi, struct block **rval);
-extern gdb_result GDB_get_prev_frame (struct frame_info *fi,
- struct frame_info **result);
-extern gdb_result GDB_get_next_frame (struct frame_info *fi,
- struct frame_info **result);
-extern gdb_result GDB_find_relative_frame (struct frame_info *fi,
- int *start,
- struct frame_info **result);
-extern gdb_result GDB_get_current_frame (struct frame_info **result);
-#endif /* GDBTK_WRAPPER_H */
-
diff --git a/gdb/gdbtk/generic/gdbtk.c b/gdb/gdbtk/generic/gdbtk.c
deleted file mode 100644
index 25cbed8e4a0..00000000000
--- a/gdb/gdbtk/generic/gdbtk.c
+++ /dev/null
@@ -1,756 +0,0 @@
-/* Startup code for Insight
- Copyright (C) 1994, 1995, 1996, 1997, 1998, 2001, 2002, 2003, 2004, 2006
- Free Software Foundation, Inc.
-
- Written by Stu Grossman <grossman@cygnus.com> of Cygnus Support.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#include "defs.h"
-#include "inferior.h"
-#include "symfile.h"
-#include "objfiles.h"
-#include "gdbcore.h"
-#include "tracepoint.h"
-#include "demangle.h"
-#include "version.h"
-#include "top.h"
-#include "annotate.h"
-#include "exceptions.h"
-
-#if defined(_WIN32) || defined(__CYGWIN__)
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#endif
-
-/* tcl header files includes varargs.h unless HAS_STDARG is defined,
- but gdb uses stdarg.h, so make sure HAS_STDARG is defined. */
-#define HAS_STDARG 1
-
-#include <itcl.h>
-#include <itk.h>
-#include "guitcl.h"
-#include "gdbtk.h"
-
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include <sys/time.h>
-#include <signal.h>
-
-#include "gdb_string.h"
-#include "dis-asm.h"
-#include "gdbcmd.h"
-
-#ifdef __CYGWIN32__
-#include <sys/cygwin.h> /* for cygwin32_attach_handle_to_fd */
-#endif
-
-extern void _initialize_gdbtk (void);
-
-/* For unix natives, we use a timer to periodically keep the gui alive.
- See comments before x_event. */
-static sigset_t nullsigmask;
-static struct sigaction act1, act2;
-static struct itimerval it_on, it_off;
-
-static void
-x_event_wrapper (int signo)
-{
- x_event (signo);
-}
-
-/*
- * This variable controls the interaction with an external editor.
- */
-
-char *external_editor_command = NULL;
-
-extern int Tktable_Init (Tcl_Interp * interp);
-
-void gdbtk_init (void);
-
-static void gdbtk_init_1 (char *argv0);
-
-void gdbtk_interactive (void);
-
-static void cleanup_init (void *ignore);
-
-static void tk_command (char *, int);
-
-static int target_should_use_timer (struct target_ops *t);
-
-int target_is_native (struct target_ops *t);
-
-int gdbtk_test (char *);
-
-static void view_command (char *, int);
-
-/* Handle for TCL interpreter */
-Tcl_Interp *gdbtk_interp = NULL;
-
-static int gdbtk_timer_going = 0;
-
-/* linked variable used to tell tcl what the current thread is */
-int gdb_context = 0;
-
-/* This variable is true when the inferior is running. See note in
- * gdbtk.h for details.
- */
-int running_now;
-
-/* This variable holds the name of a Tcl file which should be sourced by the
- interpreter when it goes idle at startup. Used with the testsuite. */
-static char *gdbtk_source_filename = NULL;
-
-int gdbtk_disable_fputs = 1;
-
-static const char *argv0;
-
-#ifndef _WIN32
-
-/* Supply malloc calls for tcl/tk. We do not want to do this on
- Windows, because Tcl_Alloc is probably in a DLL which will not call
- the mmalloc routines.
- We also don't need to do it for Tcl/Tk8.1, since we locally changed the
- allocator to use malloc & free. */
-
-#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 0
-char *
-TclpAlloc (unsigned int size)
-{
- return xmalloc (size);
-}
-
-char *
-TclpRealloc (char *ptr, unsigned int size)
-{
- return xrealloc (ptr, size);
-}
-
-void
-TclpFree (char *ptr)
-{
- free (ptr);
-}
-#endif /* TCL_VERSION == 8.0 */
-
-#endif /* ! _WIN32 */
-
-#ifdef _WIN32
-
-/* On Windows, if we hold a file open, other programs can't write to
- * it. In particular, we don't want to hold the executable open,
- * because it will mean that people have to get out of the debugging
- * session in order to remake their program. So we close it, although
- * this will cost us if and when we need to reopen it.
- */
-
-void
-close_bfds ()
-{
- struct objfile *o;
-
- ALL_OBJFILES (o)
- {
- if (o->obfd != NULL)
- bfd_cache_close (o->obfd);
- }
-
- if (exec_bfd != NULL)
- bfd_cache_close (exec_bfd);
-}
-
-#endif /* _WIN32 */
-
-
-/* TclDebug (const char *fmt, ...) works just like printf() but
- * sends the output to the GDB TK debug window.
- * Not for normal use; just a convenient tool for debugging
- */
-
-void
-TclDebug (char level, const char *fmt,...)
-{
- va_list args;
- char *buf;
- const char *v[3];
- char *merge;
- char *priority;
-
- switch (level)
- {
- case 'W':
- priority = "W";
- break;
- case 'E':
- priority = "E";
- break;
- case 'X':
- priority = "X";
- break;
- default:
- priority = "I";
- }
-
- va_start (args, fmt);
-
-
- xvasprintf (&buf, fmt, args);
- va_end (args);
-
- v[0] = "dbug";
- v[1] = priority;
- v[2] = buf;
-
- merge = Tcl_Merge (3, v);
- if (Tcl_Eval (gdbtk_interp, merge) != TCL_OK)
- Tcl_BackgroundError (gdbtk_interp);
- Tcl_Free (merge);
- free(buf);
-}
-
-
-/*
- * The rest of this file contains the start-up, and event handling code for gdbtk.
- */
-
-/*
- * This cleanup function is added to the cleanup list that surrounds the Tk
- * main in gdbtk_init. It deletes the Tcl interpreter.
- */
-
-static void
-cleanup_init (void *ignore)
-{
- if (gdbtk_interp != NULL)
- Tcl_DeleteInterp (gdbtk_interp);
- gdbtk_interp = NULL;
-}
-
-/* Come here during long calculations to check for GUI events. Usually invoked
- via the QUIT macro. */
-
-void
-gdbtk_interactive ()
-{
- /* Tk_DoOneEvent (TK_DONT_WAIT|TK_IDLE_EVENTS); */
-}
-
-/* Start a timer which will keep the GUI alive while in target_wait. */
-void
-gdbtk_start_timer ()
-{
- static int first = 1;
-
- if (first)
- {
- /* first time called, set up all the structs */
- first = 0;
- sigemptyset (&nullsigmask);
-
- act1.sa_handler = x_event_wrapper;
- act1.sa_mask = nullsigmask;
- act1.sa_flags = 0;
-
- act2.sa_handler = SIG_IGN;
- act2.sa_mask = nullsigmask;
- act2.sa_flags = 0;
-
- it_on.it_interval.tv_sec = 0;
- it_on.it_interval.tv_usec = 250000; /* .25 sec */
- it_on.it_value.tv_sec = 0;
- it_on.it_value.tv_usec = 250000;
-
- it_off.it_interval.tv_sec = 0;
- it_off.it_interval.tv_usec = 0;
- it_off.it_value.tv_sec = 0;
- it_off.it_value.tv_usec = 0;
- }
-
- if (target_should_use_timer (&current_target))
- {
- if (!gdbtk_timer_going)
- {
- sigaction (SIGALRM, &act1, NULL);
- setitimer (ITIMER_REAL, &it_on, NULL);
- gdbtk_timer_going = 1;
- }
- }
- return;
-}
-
-/* Stop the timer if it is running. */
-void
-gdbtk_stop_timer ()
-{
- if (gdbtk_timer_going)
- {
- gdbtk_timer_going = 0;
- setitimer (ITIMER_REAL, &it_off, NULL);
- sigaction (SIGALRM, &act2, NULL);
- }
- return;
-}
-
-/* Should this target use the timer? See comments before
- x_event for the logic behind all this. */
-static int
-target_should_use_timer (struct target_ops *t)
-{
- return target_is_native (t);
-}
-
-/* Is T a native target? */
-int
-target_is_native (struct target_ops *t)
-{
- char *name = t->to_shortname;
-
- if (strcmp (name, "exec") == 0 || strcmp (name, "hpux-threads") == 0
- || strcmp (name, "child") == 0 || strcmp (name, "procfs") == 0
- || strcmp (name, "solaris-threads") == 0
- || strcmp (name, "linuxthreads") == 0
- || strcmp (name, "multi-thread") == 0)
- return 1;
-
- return 0;
-}
-
-/* gdbtk_init installs this function as a final cleanup. */
-
-static void
-gdbtk_cleanup (PTR dummy)
-{
- Tcl_Eval (gdbtk_interp, "gdbtk_cleanup");
- Tcl_Finalize ();
-}
-
-
-/* Initialize gdbtk. This involves creating a Tcl interpreter,
- * defining all the Tcl commands that the GUI will use, pointing
- * all the gdb "hooks" to the correct functions,
- * and setting the Tcl auto loading environment so that we can find all
- * the Tcl based library files.
- */
-
-void
-gdbtk_init (void)
-{
- struct cleanup *old_chain;
- char *s;
- int element_count;
- const char **exec_path;
- CONST char *internal_exec_name;
-
- old_chain = make_cleanup (cleanup_init, 0);
-
- /* First init tcl and tk. */
- Tcl_FindExecutable (argv0);
- gdbtk_interp = Tcl_CreateInterp ();
-
-#ifdef TCL_MEM_DEBUG
- Tcl_InitMemory (gdbtk_interp);
-#endif
-
- if (!gdbtk_interp)
- error ("Tcl_CreateInterp failed");
-
- /* We need to check if we are being run from
- a bin directory, if not then we may have to
- set some environment variables. */
-
- internal_exec_name = Tcl_GetNameOfExecutable ();
-
- Tcl_SplitPath ((char *) internal_exec_name, &element_count, &exec_path);
-
- if (strcmp (exec_path[element_count - 2], "bin") != 0)
- {
- /* We check to see if TCL_LIBRARY, TK_LIBRARY,
- ITCL_LIBRARY, ITK_LIBRARY, TIX_LIBRARY and maybe
- a couple other environment variables have been
- set (we don't want to override the User's settings).
- If the *_LIBRARY variable is not set, point it at
- the source directory. */
-
- static char set_libs_path_script[] = "\
- set srcDir [file dirname [file dirname $env(TCL_LIBRARY)]];\n\
-\
- if {![info exists env(TK_LIBRARY)]} {\n\
- set env(TK_LIBRARY) [file join $srcDir tk library]\n\
- }\n\
-\
- if {![info exists env(ITCL_LIBRARY)]} {\n\
- set env(ITCL_LIBRARY) [file join $srcDir itcl itcl library]\n\
- }\n\
-\
- if {![info exists env(ITK_LIBRARY)]} {\n\
- set env(ITK_LIBRARY) [file join $srcDir itcl itk library]\n\
- }\n\
-\
- if {![info exists env(IWIDGETS_LIBRARY)]} {\n\
- set env(IWIDGETS_LIBRARY)\
- [file join $srcDir itcl iwidgets generic]\n\
- }\n\
-\
- if {![info exists env(GDBTK_LIBRARY)]} {\n\
- set env(GDBTK_LIBRARY) [file join $srcDir gdb gdbtk library]\n\
- }\n\
-\
- # Append the directory with the itcl pkg index\n\
- if {[info exists env(TCLLIBPATH)]} {\n\
- append env(TCLLIBPATH) :[file joing $srcDir itcl]\n\
- } else {\n\
- set env(TCLLIBPATH) [file join $srcDir itcl]\n\
- }\n\
-\
- # We also need to append the iwidgets library path.\n\
- # Unfortunately, there is no IWIDGETS_LIBRARY.\n\
- set IWIDGETS_LIBRARY [file join $srcDir itcl iwidgets generic]\n";
-
- Tcl_Obj *commandObj;
-
- /* Before we can run our script we must set TCL_LIBRARY. */
- if (Tcl_GetVar2 (gdbtk_interp, "env", "TCL_LIBRARY", TCL_GLOBAL_ONLY) == NULL)
- {
- int i, count;
- char *src_dir = SRC_DIR;
- const char **src_path;
- const char **lib_path;
- Tcl_DString lib_dstring;
-
- Tcl_DStringInit (&lib_dstring);
-
-#ifdef __CYGWIN__
- /* SRC_DIR from configure is a posix path. Tcl really needs a
- windows path. */
- src_dir = (char *) alloca (cygwin_posix_to_win32_path_list_buf_size (SRC_DIR));
- cygwin_posix_to_win32_path_list (SRC_DIR, src_dir);
-#endif
- Tcl_SplitPath (src_dir, &count, &src_path);
-
- /* Append tcl/library to src_dir (src_dir=/foo/bar/gdb) */
- lib_path = (const char **) alloca ((count + 2) * sizeof (char *));
- for (i = 0; i < count - 1; i++)
- lib_path[i] = src_path[i];
- lib_path[i++] = "tcl";
- lib_path[i++] = "library";
- Tcl_JoinPath (i, lib_path, &lib_dstring);
-
- /* Set TCL_LIBRARY */
- Tcl_SetVar2 (gdbtk_interp, "env", "TCL_LIBRARY",
- Tcl_DStringValue (&lib_dstring) , TCL_GLOBAL_ONLY);
- Tcl_DStringFree (&lib_dstring);
- Tcl_Free ((char *) src_path);
- }
-
- commandObj = Tcl_NewStringObj (set_libs_path_script, -1);
- Tcl_IncrRefCount (commandObj);
- Tcl_EvalObj (gdbtk_interp, commandObj);
- Tcl_DecrRefCount (commandObj);
- }
-
- Tcl_Free ((char *) exec_path);
-
- if (Tcl_Init (gdbtk_interp) != TCL_OK)
- error ("Tcl_Init failed: %s", gdbtk_interp->result);
-
- /* Set up some globals used by gdb to pass info to gdbtk
- for start up options and the like */
- xasprintf (&s, "%d", inhibit_gdbinit);
- Tcl_SetVar2 (gdbtk_interp, "GDBStartup", "inhibit_prefs", s, TCL_GLOBAL_ONLY);
- free(s);
-
- /* Note: Tcl_SetVar2() treats the value as read-only (making a
- copy). Unfortunately it does not mark the parameter as
- ``const''. */
- Tcl_SetVar2 (gdbtk_interp, "GDBStartup", "host_name", (char*) host_name, TCL_GLOBAL_ONLY);
- Tcl_SetVar2 (gdbtk_interp, "GDBStartup", "target_name", (char*) target_name, TCL_GLOBAL_ONLY);
-
- make_final_cleanup (gdbtk_cleanup, NULL);
-
- /* Initialize the Paths variable. */
- if (ide_initialize_paths (gdbtk_interp, "") != TCL_OK)
- error ("ide_initialize_paths failed: %s", gdbtk_interp->result);
-
- if (Tk_Init (gdbtk_interp) != TCL_OK)
- error ("Tk_Init failed: %s", gdbtk_interp->result);
-
- if (Itcl_Init (gdbtk_interp) == TCL_ERROR)
- error ("Itcl_Init failed: %s", gdbtk_interp->result);
- Tcl_StaticPackage (gdbtk_interp, "Itcl", Itcl_Init,
- (Tcl_PackageInitProc *) NULL);
-
- if (Itk_Init (gdbtk_interp) == TCL_ERROR)
- error ("Itk_Init failed: %s", gdbtk_interp->result);
- Tcl_StaticPackage (gdbtk_interp, "Itk", Itk_Init,
- (Tcl_PackageInitProc *) NULL);
-
- if (Tktable_Init (gdbtk_interp) != TCL_OK)
- error ("Tktable_Init failed: %s", gdbtk_interp->result);
-
- Tcl_StaticPackage (gdbtk_interp, "Tktable", Tktable_Init,
- (Tcl_PackageInitProc *) NULL);
- /*
- * These are the commands to do some Windows Specific stuff...
- */
-
-#ifdef __CYGWIN32__
- if (ide_create_messagebox_command (gdbtk_interp) != TCL_OK)
- error ("messagebox command initialization failed");
- /* On Windows, create a sizebox widget command */
-#if 0
- if (ide_create_sizebox_command (gdbtk_interp) != TCL_OK)
- error ("sizebox creation failed");
-#endif
- if (ide_create_winprint_command (gdbtk_interp) != TCL_OK)
- error ("windows print code initialization failed");
- if (ide_create_win_grab_command (gdbtk_interp) != TCL_OK)
- error ("grab support command initialization failed");
- /* Path conversion functions. */
- if (ide_create_cygwin_path_command (gdbtk_interp) != TCL_OK)
- error ("cygwin path command initialization failed");
- if (ide_create_shell_execute_command (gdbtk_interp) != TCL_OK)
- error ("cygwin shell execute command initialization failed");
-#endif
-
- /* Only for testing -- and only when it can't be done any
- other way. */
- if (cyg_create_warp_pointer_command (gdbtk_interp) != TCL_OK)
- error ("warp_pointer command initialization failed");
-
- /*
- * This adds all the Gdbtk commands.
- */
-
- if (Gdbtk_Init (gdbtk_interp) != TCL_OK)
- {
- error ("Gdbtk_Init failed: %s", gdbtk_interp->result);
- }
-
- Tcl_StaticPackage (gdbtk_interp, "Insight", Gdbtk_Init, NULL);
-
- /* Add a back door to Tk from the gdb console... */
-
- add_com ("tk", class_obscure, tk_command,
- "Send a command directly into tk.");
-
- add_com ("view", class_obscure, view_command,
- "View a location in the source window.");
-
- /*
- * Set the variable for external editor:
- */
-
- if (external_editor_command != NULL)
- {
- Tcl_SetVar (gdbtk_interp, "external_editor_command",
- external_editor_command, 0);
- xfree (external_editor_command);
- external_editor_command = NULL;
- }
-
-#ifdef __CYGWIN32__
- (void) FreeConsole ();
-#endif
-
- discard_cleanups (old_chain);
-}
-
-void
-gdbtk_source_start_file (void)
-{
- /* find the gdb tcl library and source main.tcl */
-#ifdef NO_TCLPRO_DEBUGGER
- static char script[] = "\
-proc gdbtk_find_main {} {\n\
- global Paths GDBTK_LIBRARY\n\
- rename gdbtk_find_main {}\n\
- tcl_findLibrary insight 1.0 {} main.tcl GDBTK_LIBRARY GDBTKLIBRARY\n\
- set Paths(appdir) $GDBTK_LIBRARY\n\
-}\n\
-gdbtk_find_main";
-#else
- static char script[] = "\
-proc gdbtk_find_main {} {\n\
- global Paths GDBTK_LIBRARY env\n\
- rename gdbtk_find_main {}\n\
- if {[info exists env(DEBUG_STUB)]} {\n\
- source $env(DEBUG_STUB)\n\
- debugger_init\n\
- set debug_startup 1\n\
- } else {\n\
- set debug_startup 0\n\
- }\n\
- tcl_findLibrary insight 1.0 {} main.tcl GDBTK_LIBRARY GDBTK_LIBRARY\n\
- set Paths(appdir) $GDBTK_LIBRARY\n\
-}\n\
-gdbtk_find_main";
-#endif /* NO_TCLPRO_DEBUGGER */
-
- /* now enable gdbtk to parse the output from gdb */
- gdbtk_disable_fputs = 0;
-
- if (Tcl_GlobalEval (gdbtk_interp, (char *) script) != TCL_OK)
- {
- const char *msg;
-
- /* Force errorInfo to be set up propertly. */
- Tcl_AddErrorInfo (gdbtk_interp, "");
- msg = Tcl_GetVar (gdbtk_interp, "errorInfo", TCL_GLOBAL_ONLY);
-
-#ifdef _WIN32
- /* On windows, display the error using a pop-up message box.
- If GDB wasn't started from the DOS prompt, the user won't
- get to see the failure reason. */
- MessageBox (NULL, msg, NULL, MB_OK | MB_ICONERROR | MB_TASKMODAL);
- {
- struct gdb_exception e;
- e.reason = RETURN_ERROR;
- e.error = GENERIC_ERROR;
- e.message = msg;
- throw_exception (e);
- }
-#else
- /* FIXME: cagney/2002-04-17: Wonder what the lifetime of
- ``msg'' is - does it need a cleanup? */
- error ("%s", msg);
-#endif
- }
-
- /* Now source in the filename provided by the --tclcommand option.
- This is mostly used for the gdbtk testsuite... */
-
- if (gdbtk_source_filename != NULL)
- {
- char *s = "after idle source ";
- char *script = concat (s, gdbtk_source_filename, (char *) NULL);
- Tcl_Eval (gdbtk_interp, script);
- free (gdbtk_source_filename);
- free (script);
- }
-}
-
-static void
-gdbtk_init_1 (char *arg0)
-{
- argv0 = arg0;
- deprecated_init_ui_hook = NULL;
-}
-
-/* gdbtk_test is used in main.c to validate the -tclcommand option to
- gdb, which sources in a file of tcl code after idle during the
- startup procedure. */
-
-int
-gdbtk_test (char *filename)
-{
- if (access (filename, R_OK) != 0)
- return 0;
- else
- gdbtk_source_filename = xstrdup (filename);
- return 1;
-}
-
-/* Come here during initialize_all_files () */
-
-void
-_initialize_gdbtk ()
-{
- /* Current_interpreter not set yet, so we must check
- if "interpreter_p" is set to "insight" to know if
- insight is GOING to run. */
- if (strcmp (interpreter_p, "insight") == 0)
- deprecated_init_ui_hook = gdbtk_init_1;
-#ifdef __CYGWIN__
- else
- {
- DWORD ft = GetFileType (GetStdHandle (STD_INPUT_HANDLE));
-
- switch (ft)
- {
- case FILE_TYPE_DISK:
- case FILE_TYPE_CHAR:
- case FILE_TYPE_PIPE:
- break;
- default:
- AllocConsole ();
- cygwin32_attach_handle_to_fd ("/dev/conin", 0,
- GetStdHandle (STD_INPUT_HANDLE),
- 1, GENERIC_READ);
- cygwin32_attach_handle_to_fd ("/dev/conout", 1,
- GetStdHandle (STD_OUTPUT_HANDLE),
- 0, GENERIC_WRITE);
- cygwin32_attach_handle_to_fd ("/dev/conout", 2,
- GetStdHandle (STD_ERROR_HANDLE),
- 0, GENERIC_WRITE);
- break;
- }
- }
-#endif
-}
-
-static void
-tk_command (char *cmd, int from_tty)
-{
- int retval;
- char *result;
- struct cleanup *old_chain;
-
- /* Catch case of no argument, since this will make the tcl interpreter
- dump core. */
- if (cmd == NULL)
- error_no_arg ("tcl command to interpret");
-
- retval = Tcl_Eval (gdbtk_interp, cmd);
-
- result = xstrdup (gdbtk_interp->result);
-
- old_chain = make_cleanup (free, result);
-
- if (retval != TCL_OK)
- error ("%s", result);
-
- printf_unfiltered ("%s\n", result);
-
- do_cleanups (old_chain);
-}
-
-static void
-view_command (char *args, int from_tty)
-{
- char *script;
- struct cleanup *old_chain;
-
- if (args != NULL)
- {
- xasprintf (&script,
- "[lindex [ManagedWin::find SrcWin] 0] location BROWSE_TAG [gdb_loc %s]",
- args);
- old_chain = make_cleanup (xfree, script);
- if (Tcl_Eval (gdbtk_interp, script) != TCL_OK)
- {
- Tcl_Obj *obj = Tcl_GetObjResult (gdbtk_interp);
- error ("%s", Tcl_GetStringFromObj (obj, NULL));
- }
-
- do_cleanups (old_chain);
- }
- else
- error ("Argument required (location to view)");
-}
diff --git a/gdb/gdbtk/generic/gdbtk.h b/gdb/gdbtk/generic/gdbtk.h
deleted file mode 100644
index 5e2fdbb3bbb..00000000000
--- a/gdb/gdbtk/generic/gdbtk.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/* Tcl/Tk interface routines header file.
- Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2003
- Free Software Foundation, Inc.
-
- Written by Stu Grossman <grossman@cygnus.com> of Cygnus Support.
-
- This file is part of GDB. It contains the public data that is shared between
- the gdbtk startup code and the gdbtk commands.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#ifndef _GDBTK_H
-#define _GDBTK_H
-
-#ifdef _WIN32
-#define GDBTK_PATH_SEP ";"
-#else
-#define GDBTK_PATH_SEP ":"
-#endif
-
-/* Some versions (1.3.79, 1.3.81) of Linux don't support SIOCSPGRP the way
- gdbtk wants to use it... */
-#ifdef __linux__
-#undef SIOCSPGRP
-#endif
-
-/*
- * These are the version numbers for GDBTK. There is a package require
- * statement in main.tcl that checks the version. If you make an incompatible
- * change to the gdb commands, or add any new commands, be sure to bump the
- * version number both here and in main.tcl. This will save us the trouble of
- * having a version of gdb find the wrong versions of the Tcl libraries.
- */
-
-#define GDBTK_MAJOR_VERSION "1"
-#define GDBTK_MINOR_VERSION "0"
-#define GDBTK_VERSION "1.0"
-
-/*
- * These are variables that are needed in gdbtk commands.
- */
-
-/* This variable determines where memory used for disassembly is read from.
- If > 0, then disassembly comes from the exec file rather than the
- target (which might be at the other end of a slow serial link). If
- == 0 then disassembly comes from target. If < 0 disassembly is
- automatically switched to the target if it's an inferior process,
- otherwise the exec file is used. It is defined in gdbtk.c */
-
-
-extern int disassemble_from_exec;
-
-/* This variable is true when the inferior is running. Although it's
- possible to disable most input from widgets and thus prevent
- attempts to do anything while the inferior is running, any commands
- that get through - even a simple memory read - are Very Bad, and
- may cause GDB to crash or behave strangely. So, this variable
- provides an extra layer of defense. It is defined in gdbtk.c */
-
-extern int running_now;
-
-/* These two control how the GUI behaves when tracing or loading
- They are defined in gdbtk-cmds.c */
-
-extern int No_Update;
-extern int load_in_progress;
-
-/* This is the main gdbtk interpreter. It is defined and initialized
- in gdbtk.c */
-
-extern Tcl_Interp *gdbtk_interp;
-
-/*
- * This structure controls how the gdb output is fed into gdbtk_call_wrapper invoked
- * commands. See the explanation of gdbtk_fputs in gdbtk_hooks.c for more details.
- */
-
-typedef struct gdbtk_result
- {
- Tcl_Obj *obj_ptr; /* This will eventually be copied over to the
- Tcl result */
- int flags; /* Flag vector to control how the result is
- used. */
- }
-gdbtk_result;
-
-struct target_ops;
-
-/* These defines give the allowed values for the gdbtk_result.flags field. */
-
-#define GDBTK_TO_RESULT 1 /* This controls whether output from
- gdbtk_fputs goes to the command result, or
- to gdbtk_tcl_fputs. */
-#define GDBTK_MAKES_LIST 2 /* whether gdbtk_fputs adds the
- element it is outputting as a string, or
- as a separate list element. */
-#define GDBTK_IN_TCL_RESULT 4 /* Indicates that the result is already in the
- Tcl result. You can use this to preserve
- error messages from functions like
- Tcl_GetIntFromObj. You can also store the
- output of a call wrapped command directly in
- the Tcl result if you want, but beware, it will
- not then be preserved across recursive
- gdbtk_call_wrapper invocations. */
-#define GDBTK_ERROR_STARTED 8 /* This one is just used in gdbtk_fputs. If we
- see some output on stderr, we need to clear
- the result we have been accumulating, or the
- error and the previous successful output
- will get mixed, which would be confusing. */
-#define GDBTK_ERROR_ONLY 16 /* Indicates that all incoming I/O is
- to be treated as if it had arrived for gdb_stderr. This is
- used to help error_begin in utils.c. */
-
-/* This is a pointer to the gdbtk_result struct that
- we are currently filling. We use the C stack to make a stack of these
- structures for nested calls to gdbtk commands that are invoked through
- the gdbtk_call_wrapper mechanism. See that function for more details. */
-
-extern gdbtk_result *result_ptr;
-
-/* If you want to restore an old value of result_ptr whenever cleanups
- are run, pass this function to make_cleanup, along with the value
- of result_ptr you'd like to reinstate. */
-extern void gdbtk_restore_result_ptr (void *);
-
-/* GDB context identifier */
-extern int gdb_context;
-
-/* Internal flag used to tell callers of deprecated_ui_loop_hook
- whether they should detach from the target. See explanations before
- x_event and gdb_stop. */
-extern int gdbtk_force_detach;
-
-/*
- * These functions are used in all the modules of Gdbtk.
- *
- */
-
-extern int Gdbtk_Init (Tcl_Interp * interp);
-extern void gdbtk_stop_timer (void);
-extern void gdbtk_start_timer (void);
-extern void gdbtk_ignorable_warning (const char *, const char *);
-extern void gdbtk_interactive (void);
-extern int x_event (int);
-extern int gdbtk_two_elem_cmd (char *, char *);
-extern int target_is_native (struct target_ops *t);
-extern void gdbtk_fputs (const char *, struct ui_file *);
-extern struct ui_file *gdbtk_fileopen (void);
-extern struct ui_file *gdbtk_fileopenin (void);
-extern int gdbtk_disable_fputs;
-
-#ifdef _WIN32
-extern void close_bfds ();
-#endif /* _WIN32 */
-
-extern void
- TclDebug (char level, const char *fmt,...);
-
-/* A convenience macro for getting the demangled source names,
- regardless of the user's mangling style. */
-#define GDBTK_SYMBOL_SOURCE_NAME(symbol) \
- (SYMBOL_DEMANGLED_NAME (symbol) != NULL \
- ? SYMBOL_DEMANGLED_NAME (symbol) \
- : DEPRECATED_SYMBOL_NAME (symbol))
-
-
-/* gdbtk_add_hooks - add all the hooks to gdb. This will get called
- by the startup code to fill in the hooks needed by core gdb. */
-extern void gdbtk_add_hooks (void);
-
-/* Initialize Insight */
-extern void gdbtk_init (void);
-
-/* Start Insight. Insight must have already been initialized with a call
- to gdbtk_init. */
-extern void gdbtk_source_start_file (void);
-#endif /* !_GDBTK_H */
diff --git a/gdb/gdbtk/library/ChangeLog-1997 b/gdb/gdbtk/library/ChangeLog-1997
deleted file mode 100644
index 0ec4a0b0d0d..00000000000
--- a/gdb/gdbtk/library/ChangeLog-1997
+++ /dev/null
@@ -1,1487 +0,0 @@
-Wed Dec 10 13:17:21 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * src.tcl (file): Insert tracepoint dots into the source window, too.
-
- * tracedlg.tcl (build_win): Add an update to workaround a Tix/Tk bug when
- mapping the dialog under X.
-
- * console.tcl (insert): Add all errors to the end of the text widget.
- (einsert): Send errors to end of text widget, not insertion pt.
- (invoke): Send errors to end of text widget, not insertion pt.
-
- * interface.tcl (gdbtk_tcl_readline_begin): Insert message into
- command window so that the user sees messages like "Enter commands, one
- per line. Enter 'end' when finished."
-
- * actiondlg.tcl (change_other): Clear the entry on <Return>.
- Add fencepost to avoid manipulating collect list twice which
- could otherwise have undesired side effects.
- Add some validation test for typed-in entries.
- (ok): Call change_other to check the "Other" entry widget when the
- dialog is dismissed.
- (change): fix typo
-
-Mon Dec 8 15:07:51 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * tracedlg.tcl (get_data): New method which gets the data associated
- with an action.
- (add_all_actions): Use the new get_data method.
-
- * actiondlg.tcl (get_selections): Add "declaration" for i so that
- its scope is not limited to for loop.
-
-Fri Dec 5 10:01:24 1997 Keith Seitz <keiths@pizza.cygnus.com>
-
- * tracedlg.tcl (build_win): Add support for ranges of lines at which
- tracepoint should be set.
- (add_action): With ranges, use actions from first in tracepoint in the
- range.
- (ok): Set tracepoints for ranges, asking if it is ok to overwrite
- any existing ones when necessary. Dismiss the dialog first -- or else
- it could hang around forever.
- (edit): With ranges, use actions of the first tracepoint.
- TraceDlg::Lines: Renamed from TraceDlg::Line.
- TraceDlg::New: New protected variable (indicates if there are any new
- tracepoints being set with this dialog).
- TraceDlg::Exists: New protected variable (indicates if there are any
- existing tracepoints that may be overwritten -- so ask the user first).
-
- * src.tcl (fill_files): Use gdb_find_file to test for the existence
- of a file, not "file exists".
- (do_popup): Filter the selection a little. If the selection is
- multi-line selection, enable the tracepoint range option. Don't
- display "add to watch" for EVERYTHING!
- (validBPLine): Valid lines can have images on them, too.
- (bp_line): Fallout of above: check if breakpoint exists before
- deciding whether to clear it or set it.
- (getVariable): Sllow LINE to be passed, so others can filter lines, too.
- (set_tracepoint): Pass TraceDlg a list of lines -- only one line in this
- case.
- (tracepoint_range): New function to set tracepoint ranges.
- (file): Use gdb_find_file to get the real filename.
-
-Wed Nov 26 15:02:43 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * balloon.tcl, gettext.tcl: Remove obsolete files.
-
- * console.tcl (invoke): Remove debug line.
-
- * src.tcl (update): Remove debug line.
-
- * prefs.tcl (pref_set_defaults): Turn debug mode off by deafult.
-
-Wed Nov 26 11:30:49 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * main.tcl: Initialize gdbtk_state(readline).
-
- * console.tcl (invoke): Check if we are in readline mode, so that
- we wait for the user's input and set a global with the result.
- (activate): Add prompt argument for readline's prompt.
- (setprompt): Add prompt argument for readline's prompt.
-
- * interface.tcl (gdbtk_tcl_readline): hack to get readline working
-
- * lots: Merge with foundry's 11/18/97 build.
-
- * console.tcl (setprompt): Get prompt from gdb.
-
- * prefs.tcl (pref_set_defaults): Add tracepoint defaults.
-
- * interface.tcl (gdbtk_tcl_tracepoint): New function which mimicks
- gdbtk_tcl_breakpoint.
-
- * src.tcl (constructor): Set default behavior of left click. Make
- a tracepoint dot, too.
- (fill_files): "New" function: ripped out of "location". It fills the
- 'files' combo box on the bottom of the source window.
- (location): Use fill_files to fill the files combo box.
- (do_bp): Add support for tracepoints.
- (bp_line): Add support for tracepoints.
- (set_tracepoint): New function to set a tracepoint on a given line.
- (config_win): Add "Set tracepoint here" to right-click menu.
-
- * actiondlg.tcl: New file to help with tracepoint data collection actions.
-
- * tracedlg.tcl: New file to help with tracepoints.
-
-Mon Nov 17 16:49:56 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (config_win): Remove stray character.
-
-Mon Nov 17 16:04:08 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * main.tcl (startup code: Use the first element from the
- vmake-exelist list.
- (exe_name): Likewise.
- (gdbtk_tcl_preloop): Quote file name passed to file.
- (download): Quote file name passed to load.
-
-Sun Nov 16 18:21:57 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * bp.tcl (build_win): Change headers to be raised.
- Change resizing so that the bp grid doesn't change
- size and is always in the upper left corner. Scrollbars
- will appear if the window is shrunk too small.
- (bp_add): Set checkbutton color differently if not
- on Windows.
-
- * manage.tcl (manage_init): About title should only
- have Foundry in it if we are running Foundry.
-
-Fri Nov 14 11:15:29 1997 Jeff Holcomb <jeffh@cygnus.com>
-
- * manage.tcl (manage_init): About window title is now "About
- Cygnus Foundry".
-
- * toolbar.tcl (create_menu_items): Changed "About Foundry
- Debugger..." menu option to "About Cygnus Foundry...".
-
-Fri Nov 14 00:00:42 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * memory.tcl (toggle_enabled): Toggle the background
- color when Auto Update is changed.
-
- * download_pref.tcl (save): New method. Save new
- defaults.
-
- * pref.tcl (build_win): Don't delete subwidget.
- (save): New method.
-
- * manage.tcl (manage_init): Change preferences title.
-
- * prefs.tcl (pref_set_defaults): Define gdb/advanced.
- Used for testing advanced features.
-
- * src.tcl (build_win): Set min size for top pane.
- (mode): Set minimum size for pane2 when needed.
-
- * toolbar.tcl (create_menu_items): Underline the
- W in "Web", not the "e".
-
-Thu Nov 13 16:07:53 1997 Jeff Holcomb <jeffh@cygnus.com>
-
- * download.tcl (done): Update window and show the window for
- at least 3 seconds.
- (constructor): Initialize start_time and last_num.
-
-Thu Nov 13 18:17:07 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * main.tcl (ide_run_server): Call run_executable.
- (run_executable): New procedure, mostly from old ide_run_server.
- If ! GDBTK_IDE, just execute a run command. In the case where
- we've already downloaded, don't bother to do the run command after
- idle. If downloading is not forced, ask whether we should do it.
- * src.tcl (config_win): Call run_executable, not gdb_cmd run.
- * srcbar.tcl (_set_run): Likewise.
- * toolbar.tcl (create_menu_items): Likewise.
-
- * main.tcl: Initialize gdb_exe_set. If IDE, arrange to receive
- process-ended events.
- (gdbtk_tcl_preloop): Don't try to read the file if it doesn't
- exist.
- (download): Don't try to download the file if it doesn't exist.
- Set gdb_download_mtime.
- (exe_name): Just call set_exe_name.
- (set_exe_name): New procedure. Like old exe_name, but call
- gdb_clear_file before running gdb file command, set gdb_exe_set,
- and run gdb_idle_hook.
- (receive_process_ended): New procedure.
-
-Thu Nov 13 13:35:32 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * prefs.tcl (pref_set_defaults): Set debug off by default.
-
- * src.tcl (config_win): Bind Ctrl+P and Ctrl+D.
- (update_title): Change window titlebar.
-
- * srcbar.tcl (_set_run): Change balloon help for
- stop and run icons.
- (create_menu_items): Add accelerator for Print Source.
-
- * toolbar.tcl (create_buttons): Change balloon help for
- project icon.
- (create_menu_items): Change access keys. Add accelerator
- for Download.
-
-Thu Nov 13 10:47:04 1997 Jeff Holcomb <jeffh@cygnus.com>
-
- * download.tcl (constructor): Fix text and button layout.
- Don't allow resizing.
-
-Wed Nov 12 16:59:17 1997 Jeff Holcomb <jeffh@cygnus.com>
-
- * download.tcl (constructor): Patch from Ian to redo the
- download window and also cancel support.
- (update): Ditto.
- (done): Ditto.
- (cancel): New method to handle canceling the download.
- (download_hash): Cancel support.
-
-Wed Nov 12 13:11:20 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * memory.tcl (build_win): Change "Address" to "Addresses"
- on menu and add separator.
-
-Tue Nov 11 11:00:25 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * download_pref.tcl (cancel): Must reset combobox
- because dialog no longer gets deleted.
-
-Tue Nov 11 15:40:36 1997 Tom Tromey <tromey@cygnus.com>
-
- * toolbar.tcl (create_menu_items): Underline "W", not "C", in
- "Cygnus on the Web".
-
-Tue Nov 11 11:00:25 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * variables.tcl (edit): Disable menus when in editing mode.
-
-Tue Nov 11 02:00:25 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * variables.tcl (selectionChanged): When selection changes,
- cancel any editing in progress.
- (build_win): Set background in text styles.
- (edit): Set background colors.
- (UnEdit): Clear selection when done.
-
-Mon Nov 10 12:22:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * variables.tcl (build_win): Set background color.
-
-Mon Nov 10 05:30:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * about.tcl (build_win): Bind button one to close
- the window.
-
- * tclIndex: Rebuilt.
-
-Mon Nov 10 03:00:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * download_pref.tcl (build_win): Fix reading of initial
- baud rate.
-
- * download.tcl (Download): Call keep_raised.
-
- * main.tcl (ide_do_run): Catch GDB commands.
- (ide_run_server): Catch GDB commands.
- (ide_do_run): Don't set gdb_download_complete to 0.
- We don't need further downloads unless executable changes
- or Download is selected from the menubar.
- (keep_raised): Keep a window on top.
-
- * src.tcl (config_win): Catch GDB commands.
-
- * toolbar.tcl (create_menu_items): Catch GDB commands.
- (create_menu_items): Remove automatic step.
-
- * srcbar.tcl (_set_run): Catch GDB commands.
-
- * stack.tcl (build_win): Change background color.
-
- * bp.tcl: Change background color.
- (destructor): Remove breakpoint change hook.
- (bp_type): Fix problem with toggling temp to normal bps.
- (build_win): Add popup menu.
-
- * interface.tcl (gdbtk_tcl_query): Change title and type.
-
-Mon Nov 10 00:26:25 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * pref.tcl (build_win): OK button wasn't working.
-
- * main.tcl: Rework all the "automatic" downloading stuff so
- it doesn't download and run when only the preferences are
- being displayed.
-
- * src.tcl (open_src): Callback from IDE that opens
- a source window when the bug is clicked on. Starts
- up automatic download if necessary.
-
- * tclIndex: Rebuilt.
-
- * images2/bp.gif, stack.gif, up,gif, down.gif, bottom.gif:
- Updated icons.
-
-Sun Nov 9 19:30:33 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * main.tcl (gdbtk_tcl_preloop): Remove uneeded if statement.
- Remove calls to manage get_state.
-
- * manage.tcl (manage_get_state): Remove.
- (manage_init): Add save state to several windows.
- (manage_create): Use ide_property instead of prefs to find window
- geometry.
- (manage_delete): Restructure to fix several bugs.
- (manage_save): Use ide_property instead of prefs. Don't
- call pref_save.
- (manage_register_defaults): Remove calls to manage_get_state.
-
- * tclIndex: Rebuilt.
-
-Sun Nov 9 16:34:44 1997 Tom Tromey <tromey@cygnus.com>
-
- * pref.tcl (build_win): Removed View page.
-
- * toolbar.tcl (create_menu_items): Debugger -> "Foundry Debugger";
- Help menu now parallels vmake.
- * manage.tcl (manage_init): GDBTK -> "Foundry Debugger".
-
-Sun Nov 9 18:24:18 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * memory.tcl (build_win): Use a single menu, remove ``Hide
- menubar'' entry, add ^U binding.
- * manage.tcl (manage_init): Change name of memory window from
- ``Memory Dump'' to ``Memory''.
-
- * srcbar.tcl (create_buttons): Remove toggle update button.
-
- * src.tcl (update_title): Don't use colon if there is no file
- name.
-
- * main.tcl: If GDBTK_IDE, initialize gdb_download_complete.
- (gdbtk_tcl_preloop): If GDBTK_IDE, call download.
- (ide_run_server): Don't run if we already have a run request. If
- download is complete, run program as an idle callback. Otherwise,
- wait until the download is complete before running the program.
- (ide_do_run): New procedure to support ide_run_server.
- (download): Don't run program. Set gdb_download_complete.
-
- * src.tcl (name): Give an error if the file does not exist.
- (location): Only add files that exist to the file name combobox.
-
-Sun Nov 9 11:09:39 1997 Tom Tromey <tromey@cygnus.com>
-
- * src.tcl (name): Use better error message.
-
- * locals.tcl (build_win): New method.
- * watch.tcl (build_win): Create menu. Watch -> "Add Watch".
- (Menu): New instance variable.
- (selectionChanged): New method.
- (postMenu): "Stop Watching" -> Remove.
- * variables.tcl (build_win): Set -ignoreinvoke on Tree widget, and
- set -command to run editEntry method. Don't install <Double-1>
- binding. Put headers on Tree widget. Run selectionChanged
- method.
- (editEntry): Renamed. Now takes entry name as argument.
- (populate): Don't set -state disabled on new items.
- (getSelection): New method.
- (selectionChanged): New method.
- (build_menu_helper): New method.
- (postMenu): View->Format.
- (build_win): Likewise.
-
- * variables.tcl (editXY): Only edit if entry is not empty.
-
- * srcbar.tcl (create_menu_items): Edit -> Open.
- (create_buttons): Likewise.
-
-Thu Nov 6 11:00:41 1997 Tom Tromey <tromey@cygnus.com>
-
- * manage.tcl (manage_delete): Special-case deletion of pref window.
- (manage_create): Don't special-case deletion of pref window.
-
-Thu Nov 6 13:57:32 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * manage.tcl (manage_get_state): Return an empty string for a
- withdrawn window and for the preferences window.
-
- * main.tcl (exe_name): Don't do anything if the executable name
- has not actually changed.
-
-Wed Nov 5 23:08:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * main.tcl (download): Always specify exact filename
- to load.
-
-Wed Nov 5 00:31:53 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * manage.tcl (manage_delete): Only delete source window if
- user answers yes to query.
-
- * bp.tcl: Rewrite to include pulldown menu and new look.
-
- * register.tcl: Rewrite to include pulldown menu and new look.
-
- * stack.tcl: Open initial size wide enough to show all text.
-
- * src.tcl: Modified popup window. Remove option to open
- multiple source windows because the IDE window code doesn't
- work with it.
-
- * srcbar.tcl (_set_run): Change balloon message for Run.
-
- * variables.tcl, watch.tcl: Use fixed font.
-
- * toolbar.tcl (create_menu_items): Handle Close Debugger correctly.
-
- * mem_pref.tcl: Put focus and grab on window.
-
- * memory.tcl: Balloon message change.
-
-Mon Nov 3 11:04:44 1997 Tom Tromey <tromey@cygnus.com>
-
- * main.tcl (gdbtk_tcl_preloop): Look at main even if IDE running.
- (ide_run_server): Open src window.
-
- * manage.tcl (manage_init): Don't recreate initial windows when
- running under IDE.
-
-Fri Oct 31 00:00:04 1997 Tom Tromey <tromey@cygnus.com>
-
- * pref.tcl (cancel): Use manage delete.
- * toolbar.tcl (create_menu_items): Don't register debugger
- preference window.
- * manage.tcl (manage_register_defaults): Use idewindow, not
- idewindow_proc.
- (manage_delete): Don't deregister preference window.
- (manage): Added find, create_closed methods.
- (manage_create): Added visibility argument; changed all callers.
- Special case destruction of pref window.
- * main.tcl: IDE window callback proc is "manage find". Register
- debugger preference window. Create closed src and pref windows
- initially.
- (gdbtk_tcl_preloop): Don't create source window in IDE mode.
-
- * src.tcl (trace_variable): New method.
- (constructor): Use variable traces to track target/exe changes.
- (destructor): Remove variable traces.
-
-Thu Oct 30 12:50:28 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * mem_pref.tcl: Change buttons to OK/Cancel/Apply.
- Minor cleanup.
-
- * memory.tcl: New look. Added menubar.
-
-Tue Oct 28 23:03:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * toolbar.tcl (create_buttons): Clean up balloon help
- for buttons.
- (create_menu_items): Move print menu items to srcbar.tcl.
- Cleanup labels.
-
- * srcbar.tcl (create_menu_items): Add print menu items.
- (create_buttons): Clean up balloon help for buttons.
-
-Tue Oct 28 17:26:15 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * toolbar.tcl (create_menu_items): Add print menu items.
- (print): New function. Calls the proper print routine.
-
- * src.tcl (print): New function. Dump the contents
- of the text widget to a printer.
-
-Tue Oct 28 01:06:15 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * toolbar.tcl (create_menu_items): Add new
- preferences menu code.
-
- * pref.tcl (build_win): Remove all old ppreferences.
- Add Connection and View preferences.
- (cancel): New function. Restore previous values and
- quit.
-
- * manage.tcl (manage_delete): Unregister preferences
- on exit.
-
- * src.tcl (constructor): Add sizebox under Windows.
-
- * download.tcl (constructor): Remove shortcuts on buttons.
- Put focus on "OK" button.
-
- * download_pref.tcl (cancel): New function. Restores
- previous values.
-
-Tue Oct 21 15:28:29 1997 Tom Tromey <tromey@cygnus.com>
-
- * main.tcl: Main window now named "Foundry Debugger".
-
-Fri Oct 24 14:03:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * manage.tcl (manage_menu): Deleted.
- (manage_delete): Notify IDE when windows are deleted.
- (manage_raise): New function.
- (manage_create): Notify IDE when a window is created.
-
- * download.tcl (constructor): Put focus on download
- window.
-
- * toolbar.tcl (create_menu_items): Make "Window" menu
- and IDE managed-menu, but don't put anything in it.
-
-Fri Oct 24 12:28:43 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * toolbar.tcl (create_menu_items): Add View menu.
-
- * src.tcl (config_win): Add accelerators for new View
- menu.
-
-Wed Oct 22 21:30:52 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * download.tcl (Download): Make window local modal.
- Raise it to top.
-
- * srcbar.tcl (create_buttons): Change border size on
- address and line labels. Change balloon help. Remove
- vertical line.
-
-Mon Oct 20 10:12:23 1997 Tom Tromey <tromey@cygnus.com>
-
- * toolbar.tcl (create_buttons): vmake window now named "Foundry
- Project".
-
-Mon Oct 13 19:02:33 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * bp.tcl (bp_modify): Change color of checkbuttons.
-
- * download.tcl (done): Write "DONE" on progress meters.
-
-Thu Oct 9 14:33:21 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * main.tcl: Call ide_window_register restorer.
-
-Thu Oct 9 12:46:25 1997 Tom Tromey <tromey@cygnus.com>
-
- * src.tcl (updateBalloon): Changed name of balloon variable.
- (showBalloon): Likewise. Use new "balloon show" command.
- (SrcBalloon): Removed.
- (TimeOut): Default is 1000 (1 second).
-
-Wed Oct 1 11:33:36 1997 Tom Tromey <tromey@cygnus.com>
-
- * main.tcl: Use "manage get_state" as window saver.
-
- * manage.tcl (manage): Added "restore", "get_state" options.
- (manage_restore): New proc.
- (manage_get_state): Likewise.
- (manage_register_defaults): Use "manage get_state" as window
- saver.
-
-Sun Sep 28 04:20:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * bp.tcl: Clean up the spacing to make the widget look better.
-
- * download_pref.tcl: Show the initial baud rate correctly.
-
- * download.tcl: Cleanup correctly when deleted.
-
- * main.tcl (gdb_tcl_preloop): Set baud rate.
- (ide_run_server): Delay download 1 second.
- (demo_it): Do gdb "next" commands every 2 seconds.
-
- * manage.tcl (manage_create): Withdraw window immediately then
- deiconify it when done.
-
- * prefs.tcl (pref_set_defaults): Don't define stack bg color.
-
- * register.tcl: Withdraw window immediately so we don't have
- to watch it slowly draw. Make it look more like memory window.
-
- * src.tcl: Fix major bug where source window got lost when
- the source file was not found. Reconfigures more smoothly.
-
- * srcbar.tcl (create_menu_items): Comment out "Close Debugger"
- menu item because it was broken.
-
- * stack.tcl: Use the same background color as the other windows.
-
- * toolbar.tcl: Add "Automatic Step" menu item.
-
-Fri Sep 26 21:10:11 1997 Keith Seitz <keiths@pizza.cygnus.com>
-
- * download.tcl (done): display bytes loaded as an integer.
-
-Fri Sep 26 13:09:47 1997 Tom Tromey <tromey@cygnus.com>
-
- * images2/edit.gif: Replaced.
-
-Fri Sep 26 00:42:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * main.tcl (ide_run_server): Just call download.
- (download): First set baud rate then target. Then, depending
- on preferences set a breakpoint at 'main' and 'exit' and run.
- (set_baud): New function.
-
- * download_pref.tcl (build_win) Add checkbuttons for "Run until
- 'main'" and "Set breakpoint at 'exit'.
- (change_baud): Set preference when baud changes.
-
- * pref.tcl (reconfig): Correct problem with download options.
-
- * prefs.tcl (pref_set_defaults): Define gdb/load/main,
- gdb/load/exit, and gdb/load/baud.
-
- * src.tcl (location): Fix a problem where the browse tag was
- sometimes not deleted.
-
- * manage.tcl: Add a window title for Download Options.
-
-Thu Sep 25 15:39:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * download_pref.tcl: New file. Creates a download options dialog.
-
- * manage.tcl: Add download prefs window to list.
-
- * toolbar.tcl: Add Download preferences to menu.
-
- * pref.tcl: Add Download to tab notebook preferences.
-
- * src.tcl: Set activebackground on popup to indicate color
- of the breakpoint dot that will be set.
-
-Thu Sep 25 12:36:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * download.tcl (done): Make sure all indicators show download
- completed, even if we weren't properly notified.
-
- * manage.tcl: Better support for windows that want to set
- their own titles.
-
- * src.tcl (update_title): New function. Sets titlebar
- to indicate current filename, and under IDE, executable and
- target.
-
- * images2/reg.gif: Updated image.
-
-Thu Sep 25 08:58:44 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * src.tcl (config_win): don't focus src window on Enter events
-
-Thu Sep 25 03:11:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * main.tcl (ide_run_server): Set target and download automatically.
- (download): Open a download window.
-
- * download.tcl: New file. Implements a download window.
-
- * manage.tcl (manage_init): Add download window.
- (manage_create): If there is no title, don't try to set one and
- don't try to set geometry.
-
- * registers.tcl: Make it look more like memory window.
-
- * toolbar.tcl, floatbar.tcl, srcbar.tcl: Update look of menus and toolbars
- to be closer to prototype.
-
- * Makefile: Add download.tcl.
-
- * tclIndex: Rebuilt.
-
- * images/memory.gif: Update.
-
- * images/bp.gif: New file. Breakpoint icon.
-
-Wed Sep 24 07:43:47 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * variables.tcl (VariableWin::build_win): add double-click binding to edit
- (editXY): new method to support above
-
- * prefs.tcl (pref_set_defaults): add register window pref for highlight color
-
- * register.tcl (RegWin::constructor): set highlight and normal fg
- (build_win): build window using grid geometry manager, not grid widget
- (dimensions): new method
- (fixLength): new method
- (but3): use "Menu" (protected data)
- (edit): use entry to edit values
- (acceptEdit): new method
- (unedit): new method
- (update): change to use new grid layout and change highlighting
- (reconfig): destroy scrolled window, too
- ScrolledWin: new protected data
- Menu: new protected data
- Editing: new protected data
-
-Tue Sep 23 15:15:22 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * main.tcl: If GDBTK_IDE, withdraw . before making any calls
- across the IDE backplane.
- * manage.tcl (manage_init): If using a floating toolbar, and
- GDBTK_IDE, deiconify . to undo the withdrawal.
-
-Tue Sep 23 01:31:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * main.tcl: Reorder calls to pref init and standard_look_and_feel.
-
- * global_pref.tcl: Change font requester to modify both src-font
- and global.fixed. Change to be compatible with latest libide font code.
-
- * prefs.tcl: Changes to get working with latest libide font code.
-
-Mon Sep 22 15:16:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * memory.tcl: Add editing. Remove debugging lines.
- Fix problems with resizing.
-
- * mem_pref.tcl: Remove debugging line.
-
-Fri Sep 19 08:22:25 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * variables.tcl (build_win): use preferences
- (getAllClassMembers): new method
- (getPath): update to support C++
-
- * watch.tcl (build_win): augment parent class' build_win instead of replacing it
-
- * stack.tcl (build_win): use preferences
- (update): catch gdb_loc in case source window is not open yet
-
- * prefs.tcl (pref_set_defaults): add new defaults for all previously
- hard-coded fonts and colors
-
- * global_pref.tcl (build_win): use preferences
-
- * console.tcl (Console::constructor): use preferences
-
- * bp.tcl (bp_add): use preferences
- (bp_modify): use preferences
-
-
- * src.tcl (SrcWin::constructor): use preferences
- (build_win): use preferences
- (config_win): use preferences, bind <Enter> to focus source window textbox
- so that our keypresses always work
- (SrcBalloon): new protected variable
- (TimeOut): new common variable
-
-Wed Sep 17 13:54:29 1997 Tom Tromey <tromey@cygnus.com>
-
- * toolbar.tcl (build_win): Use standard_toolbar.
-
-Wed Sep 17 13:52:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (config_win): Set bg color back to default.
-
-Tue Sep 16 23:10:00 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * images2/*: Delete unused icons.
-
-Tue Sep 16 21:30:40 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * bp.tcl (bp_add): Add some padding to space things
- out more. Anchor labels to the right side.
-
- * src.tcl: Fix problem where breakpoints were disappearing
- when files changed.
-
-Tue Sep 16 17:45:05 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * manage.tcl: Change manage_create and manage_open to accept
- a variable number of args. Add mem and mempref window types.
- Fix pref save call.
-
- * memory.tcl: New file. Implements a memory dump window.
- Currently read-only.
-
- * mem_pref.tcl: New file. Implements options dialog for
- memory dump window.
-
- * pref.tcl, toolbar_pref.tcl, register.tcl, src_pref.tcl,
- global_pref.tcl, about.tcl: Make "attach" a public config
- variable.
-
- * main.tcl: Use standard_look_and_feel.
-
- * Makefile, tclIndex: Rebuilt.
-
- * images/check.gif: A check mark image.
-
- * images/stop.gif: Fix transparency.
-
-Tue Sep 16 08:13:03 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * src.tcl (getVariable): fix off by one error when a breakpoint
- is set at a line
- (hasBreakpoint): new method
- (SrcWin): add idle hook for source balloons
- (updateBalloon): new method
- (showBalloon): use register_balloon
- (register_balloon): new method
-
-Tue Sep 16 05:55:31 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * watch.tcl (add): use a little more robust (if more obscure) method
- of determining validity of a variable name
- (label): translate % to $ in names
-
- * variables.tcl (Variable::setType): allow for convenience variables
- (Variable::isConvenience): new method
- (Variable::displayHex): allow for convenience variables
- (VariableWin::edit): do not eval $data when editing (for conv. vars)
- (VariableWin::postMenu): use virtual method label to title popup
-
-Fri Sep 12 12:17:13 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * variables.tcl (Variable::value): when no display style specified,
- choose some reasonable default for the given type
-
- * src.tcl (config_win): ad bindings to support variable balloons in source mode
- (getVariable): new method
- (cancelMotion): new method
- (motion): new method
- (showBalloon): new method
- timeoutID: new protected variable
- TimeOut: new protected variable
-
-Fri Sep 12 05:47:56 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * variables.tcl (getLocals): return empty list when no locals present.
-
-Thu Sep 11 14:13:19 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * variables.tcl (VariableWin::build_win): change popup construction
- (VariableWin::postMenu): redo menu layout to use dynamic idices of
- panes
- (VariableWin::edit): new method
- (VariableWin::UnEdit): new method
- (VariableWin::changeValue): new method
- (VariableWin::getPath): handle unamed unions/structs and arrays more
- intelligently
- VariableWin::Editing: new protected variable
- VariableWin::EditEntry: new protected variable
- (Variable::isOpenable): make sure we can open unions
- (Variable::isUnamed): new method
- (Variable::isUnion): new method
- (Variable::setType): handle unions and unamed structs/unions better
- (Variable::displayHex): unions, structs only display in hex
- (Variable::isArray): new method
- (Variable::isEnum): new method
- (Variable::isEditable): new method
- (Variable::value): enums now show symbol values, too. Analogous to char
- and char*.
-
- * watch.tcl (WatchWin::build_win): change popup construction
- (WatchWin::postMenu): redo menu layout to use dynamic indices of panes
-
-
-Wed Sep 10 20:44:12 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * manage.tcl (manage_register_defaults): Rename from
- manage_register_default. Take a list of windows.
- (manage_menu): Invoke manage_register_defaults once as an idle
- callback, rather than invoking manage_register_default in many
- different idle callbacks.
-
-Wed Sep 10 00:49:23 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (edit): Don't start editor if we're not
- debugging anything.
-
- * main.tcl: Keep correct colorscheme for windows.
-
-Mon Sep 8 12:10:26 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * manage.tcl (manage_restart): Only restart toolbar once.
-
- * global_pref.tcl: Minor fix.
-
- * images2/vmake.gif: Fix transparency.
-
-Mon Sep 8 13:05:11 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * interface.tcl (gdbtk_tcl_query): Use tk_messageBox rather than
- tk_dialog.
-
- * main.tcl: Register check and exit handlers using new commands
- provided by gdbtk.
-
-Mon Sep 8 03:01:25 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * global_pref.tcl (build_win): Some font fixes.
-
-Mon Sep 8 02:25:17 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl: Make disabled breakpoints black.
- Make comboboxes only use scrollbars when needed.
-
- * interface.tcl (gdbtk_tcl_breakpoint): Change to support
- changes in gdbtk.c. Supply breakpoint number to hooks.
-
- * manage.tcl: Add breakpoint window. Add support for
- dynamically attaching/detaching toolbars.
-
- * bp.tcl: New file. Breakpoint window.
-
- * main.tcl: Change palette for debugging.
-
- * pref.tcl: New file. Preferences dialog.
-
- * floatbar.tcl: Add target and download buttons.
- Add spacing.
-
- * srcbar.tcl, toolbar.tcl: Change to use flat icons. Work with
- floating toolbar if requested.
-
- * prefs.tcl: Define new preferences to force toolbar
- to float or be attached to the source windows.
-
- * global_pref.tcl: Remove icon requester.
-
- * toolbar_pref.tcl: Add icon combobox. Add checkbuttons
- for forcing toolbar to either float or be attached to src window.
-
- * Makefile: Add bp.tcl
-
- * images/*: Fix transparency and add new icons.
-
- * images2/*: Add flat icons.
-
-Fri Sep 5 20:24:07 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * main.tcl: Register an exit handler when using the IDE.
-
-Thu Sep 4 11:47:38 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * ALL: Change preferences to use new preferences.
- Change "dbug" calls to "debug".
-
- * pref.tcl: New file. Local preferences read/write.
-
- * gettext.tcl, debug.tcl, balloon.tcl: Delete. Use
- versions from libide instead.
-
-Wed Sep 3 09:20:13 1997 Tom Tromey <tromey@cygnus.com>
-
- * main.tcl (add): Pass idewindow_no_state to idewindow_proc.
- * manage.tcl (manage_register_default): Pass idewindow_no_state to
- idewindow_proc.
-
-Mon Aug 25 05:59:01 1997 Martin M. Hunt <hunt@pern.cygnus.com>
-
- * images2/{finished.gif, finishedu.gif, nextd.gif nextu.gif,
- stepd.gif, stepu.gif}: Use icons with straight brackets
- instead of slanted.
-
- * prefs.tcl (pref_set_defaults): Set default debugMode to 0.
-
- * register.tcl (build_win): Change font to fixed and bg to white.
-
- * src.tcl: Change all references to fonts to "src-font".
-
- * global_pref.tcl: Change font requester to do src-font.
-
- * srcbar.tcl: Change address and line labels to use
- src-font and be sunken.
-
- * stack.tcl: Chnage bg to white and fonr to src-font.
-
-Mon Aug 25 03:06:35 1997 Keith Seitz <keiths@pizza.cygnus.com>
-
- * src.tcl: (set_status) check if inferior is running first, and reset
- message for status window if it is not.
-
-
-Mon Aug 25 00:28:39 1997 Martin M. Hunt <hunt@pern.cygnus.com>
-
- * srcbar.tcl: Change stack images to be consistent with others.
-
- * images2/{upu.gif,upd.gif,bottomd.gif,bottomu.gif,downu.gif,
- downd.gif}: New stack images.
-
- * images2/edit[ud].gif: Correct quantization and transparency.
-
- * manage.tcl (manage_delete): Kill gdb when all source windows
- are deleted.
- (manage_create): Only add IDE entries on the first source window.
-
- * src.tcl (do_popup): Don't map window if already mapped. Fixes
- problem with tk_popup. Change menu items.
-
-Mon Aug 25 00:24:43 1997 Keith Seitz <keiths@pizza.cygnus.com>
-
- * src.tcl: (set_status) change to using gdb_target_has_execution to
- determine if the target is running
-
-Sun Aug 24 23:02:19 1997 Tom Tromey <tromey@cygnus.com>
-
- * toolbar.tcl (build_win): Make sure object is deleted when window
- is destroyed.
- (destructor): Don't destroy containing widget; just us.
-
- * srcbar.tcl (create_menu_items): Added Exit item to menu.
-
- * src.tcl (build_win): Use grid, not packer, to lay out main
- window.
- (mode): Pack new text widget into pane; don't repack the pane
- itself.
-
-Sun Aug 24 22:06:30 1997 Keith Seitz <keiths@pizza.cygnus.com>
-
- * varialbes.tcl: (build_win) set hlist font to 'tix option get
- fixed_font', change selectBackground to Hlist background, select-
- BorderWidth to 0, selectForeground to black. Use tk_popup instead of
- tixPopup widget.
- (postMenu) make necessary tk_popup changes, make sure functions are
- only allowed to be displayed in hex.
- (isFunction) new method
- (displayHex) functions only displayable as hex
- (value) extract the address of functions for value
- * watch.tcl: (constructor) remove popup menu customization
- (build_win) change from tixPopup to tk_popup, hack the
- hlist options to use the correct font, etc as in variables.tcl,
- (validateEntry) always erase the contents of the entry
- (postMenu) make all changes to use tk_popup and move the "Stop
- watching" menu addition here
- (label) make sure that we use "foo.bar" and "foo->bar" correctly
- (add) fix typo preventing recognition of variables already being
- watched
-
-Sun Aug 24 18:49:16 1997 Martin M. Hunt <hunt@pern.cygnus.com>
-
- * console.tcl (invoke): Don't display error messages in console window.
- (constructor): Enable cut-and-paste. Fix intermittant bug.
-
- * main.tcl (gdbtk_tcl_preloop): Don't automatically do anything
- but issue the file command.
- (download): Issue load command. Called when icon is selected.
- (set_target): Issue target command. Called when target
- icon is selected.
-
- * srcbar.tcl: Add target and download buttons to toolbar.
-
-Sun Aug 24 20:30:41 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * main.tcl (gdbtk_tcl_preloop): If GDBTK_IDE, then automatically
- set file and target based on properties. If using the simulator,
- load the executable. Catch and ignore errors from setting the
- source window to show main.
-
-Sun Aug 24 14:39:23 1997 Tom Tromey <tromey@cygnus.com>
-
- * src.tcl (constructor): Don't set `editor'.
- (location): Never update external editor.
- (edit): Don't set `editor'.
- (editor): Removed instance variable.
-
- * images2/stepiu.gif, images2/stepid.gif, images2/nextiu.gif,
- images2/nextid.gif: Installed new versions.
-
- * srcbar.tcl (_toggle_updates): Pass $updatevalue to
- updatecommand.
- (destructor): Implemented.
- (_set_stepi): New method.
- (displaymode): Run _set_stepi when changed.
- (updatevalue): Global state stored in global array.
- (create_buttons): Create stepi, nexti buttons. Run _set_stepi.
- (_load_src_images): Create stepi, nexti icons.
-
- * images2/stepiu.gif, images2/stepid.gif, images2/nextiu.gif,
- images2/nextid.gif: New images.
- (create_buttons): Likewise.
-
- * src.tcl (toggle_updates): Use $value, not $a.
-
- * src.tcl (mode): Don't change commands on (nonexistent) step/next
- buttons.
-
- * toolbar.tcl (create_buttons): Added watch button.
- (_load_images): Create watch images.
- * images2/watchd.gif, images2/watchu.gif: New files.
- * images2/varsd.gif, images2/varsu.gif: Changed.
-
- * images2/*: Removed old images, added many new images.
-
- * prefs.tcl (pref_set_defaults): Default images are in images2
- directory.
- * src.tcl (build_win): Make a GDBSrcBar.
- (location): address and line information now in toolbar.
- (mode): Set -displaymode on toolbar.
- (update): Set -running on toolbar.
- (busy): Likewise.
- (edit): Now a method, not a proc.
- (toggle_updates): Added "value" argument.
- * Makefile (TCL): Added srcbar.tcl, floatbar.tcl.
- * toolbar.tcl (create_buttons): New method.
- (create_menu_items): Likewise.
- (build_win): Run create_menu_items and create_buttons. Move most
- of body into these methods. Removed Exit command from File menu.
- (_loaded_images): New common variable.
- (_load_images): New method.
- (create_buttons): Run it.
- (create_menu_items): Removed Tools menu.
- (configure): Renamed from config.
- * srcbar.tcl: New file. Implements toolbar attached to source
- window.
- * floatbar.tcl: New file. Implements floating toolbar.
- * manage.tcl (manage_init): toolbar-type is GDBFloatBar.
- (manage_init): Don't create toolbar if running under IDE.
-
-Sun Aug 24 13:05:22 1997 Martin M. Hunt <hunt@pern.cygnus.com>
-
- * manage.tcl (manage_init): Remove idemenuname from
- the _manage_objects array; it was redundant.
- (manage_create): Stop notifying IDE about new transient
- windows.
-
-Sun Aug 24 01:07:29 1997 Tom Tromey <tromey@cygnus.com>
-
- * about.tcl, console.tcl, global_pref.tcl, prefs.tcl,
- register.tcl, src.tcl, src_pref.tcl, stack.tcl, toolbar.tcl,
- toolbar_pref.tcl: Added Copyright statement.
-
- * Makefile (tags, TAGS): New targets.
-
- * toolbar.tcl (build_win): Quit->Exit. Only display this item if
- not using the IDE.
-
-Sat Aug 23 21:55:54 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * src.tcl (SrcWin update): Set command for stop icon.
- (SrcWin busy): Likewise.
-
- * manage.tcl: Move comments out of array initialization.
-
-Sat Aug 23 17:36:06 1997 Martin M. Hunt <hunt@pern.cygnus.com>
-
- * src.tcl (name): Handle case where files are part of the
- sources, but are unreadable.
- (build_win): Set filename combobox size to default.
-
- * manage.tcl: Remove breakpoint window from window list.
-
-Sat Aug 23 16:49:53 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * src.tcl: remove old breakdot stuff
- (reconfig) make sure we redraw the breakdots when font changes
- (file) check for duplicate break-able lines
- * variables.tcl: remove debug output
- * watch.tcl: add entry field to enter watch expressions
-
-Sat Aug 23 17:44:45 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * manage.tcl (manage_create): Register the window if it is not
- already registered, rather than if it is already registered.
-
- * src.tcl (SrcWin config_win): Add special double and triple click
- bindings to override standard text bindings in break dot area.
-
- * prefs.tcl (pref_set_defaults): Set the global font to the Tix
- default font. Set the src font to the Tix default fixed font.
- * src.tcl (SrcWin config_win): Configure the text font.
- * console.tcl (Console constructor): Set the cont to the Tix
- fixed font.
-
-Fri Aug 22 20:42:51 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * src.tcl: add breakpoint image that is text-size insensitive
- change layout of source, assembly, and mixed windows to use
- tabs, if possible, allowing more clickable area for toggling
- breakpoints, etc.
- * variables.tcl: (VariableWin::isFloat) new method
- (VariableWin::value) make sure floats are output as floats
- when user specifies "decimal" output
-
-Fri Aug 22 16:23:32 1997 Martin M. Hunt <hunt@pern.cygnus.com>
-
- * src.tcl (goto_func): Catch errors.
-
-Fri Aug 22 16:35:39 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * main.tcl: Use underscores rather than dashes in variable names.
- (ide_run_server): Make gdb_target_name global. Call file before
- calling target. Call load before calling run.
-
-Fri Aug 22 12:15:06 1997 Martin M. Hunt <hunt@pern.cygnus.com>
-
- * debug.tcl (dbug): Make debug window scrolled. Make it
- work with standalone gdb.
-
- * prefs.tcl (pref_save): Fix puts that were incorrectly
- changed to dbug.
-
-Thu Aug 21 17:57:59 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * ALL: Change all "puts" to "dbug".
-
- * debug.tcl: New file. Opens a window for debugging messages.
-
-Thu Aug 21 14:30:53 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * watch.tcl: (add) strip commas, too
-
-Thu Aug 21 14:26:36 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * variables.tcl: (buid_win) use listbox's font for font measuring
-
-Thu Aug 21 02:52:35 1997 Martin M. Hunt <hunt@pern.cygnus.com>
-
- * src.tcl (name): Check source filenames and handle errors
- if not found.
-
- * variables.tcl (destructor): Display styles are not
- objects so must be destroyed instead of deleted.
- (name): comment out debugging line.
-
- * main.tcl: Add stuff from standard_look_and_feel.
-
- * prefs.tcl, manage.tcl: Minor cleanup.
-
-Thu Aug 21 00:39:35 1997 Martin M. Hunt <hunt@pern.cygnus.com>
-
- * main.tcl (ide_run_server) New function. Starts GDB when
- asked politely.
- (target_name): New function. Watches for changes in the target
- name.
- (exe_name): New function. Watches for changes in the
- executable name.
-
- * console.tcl (insert, einsert): Scroll so the insertion
- point can be seen.
-
- * manage.tcl: SPecial hacks to create a global "console".
- Needed because we can't have puts searching for a console
- window everytime a puts arrives.
-
- * interface.tcl (gdbtk_tcl_fputs, gdbtk_tcl_fputs_error):
- Write to the console if one exists, and do an update.
-
- * tclIndex: Rebuilt.
-
-Wed Aug 20 17:23:07 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * variables.tcl: (Variable::setType VariableWin::getPath) handle types
- with multiple names (unsigned char, long long unsigned int) properly
- * locals.tcl: (update) comment out debug info
-
-Wed Aug 20 16:36:49 1997 Keith Seitz <keiths@pizza.cygnus.com>
-
- * watch.tcl: (add) try to handle errors more gracefully
- * variables.tcl: (value) make sure we handle bad pointer
- dereferences nicely
- (lots of places) switch to using 'ouput' instead of 'print'
-
-Wed Aug 20 11:43:35 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (file): Handle case where source files do
- not have any lines which generate code.
- (set_status): Keep status to one line.
-
-Wed Aug 20 00:00:52 1997 Tom Tromey <tromey@sanguine.cygnus.com>
-
- * images2/build.gif, images2/file.gif, images2/reg.gif,
- images2/stop.gif, images2/continue.gif, images2/finish.gif,
- images2/next.gif, images2/step.gif, images2/run.gif: New files.
-
-Tue Aug 19 14:52:59 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * tclIndex: rebuilt
- * Makefile: add variables.tcl, watch.tcl, and locals.tcl
- * manage.tcl: (manage_init): add locals window
- * src.tcl: (do_popup): add binding for watch window
- (addToWatch): new method
- * locals.tcl: new file
- * variables.tcl: new file
- * watch.tcl: new file
-
-
-Mon Aug 18 01:28:19 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * manage.tcl: Change window names to have only first
- char of each word capitalized.
-
- * global_pref.tcl (get_file): Handle bad pathnames.
-
-Sun Aug 17 01:59:02 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * register.tcl (destructor): Call manage delete.
- * global_pref.tcl (destructor): Call manage delete.
- * prefs.tcl (destructor): Call manage delete.
- * src_pref.tcl (destructor): Call manage delete.
- * toolbar_pref.tcl (destructor): Call manage delete.
-
- * manage.tcl: (manage_delete): Remove windows that
- have been quit, rather than killed by window manager.
-
- * src.tcl (location): Don't call gdb_listfuncs on
- NULL filenames.
-
-Sun Aug 17 00:18:02 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl: Major changes to support file browsing.
- Also bug fixes for assembly mode, new comboboxes
- for filename and function selection.
-
- * src_pref.tcl: New file. Allows selection of
- colors used in source display.
-
- * prefs.tcl: Add new window type for src prefs.
- Set default colors for source window.
-
- * manage.tcl (manage_init): Add srcpref window type.
- (manage_restart): Preserve window geometries on restarts.
-
- * Makefile: Add src_pref.tcl.
-
- * tclIndex: Rebuilt.
-
- * toolbar.tcl: Add call to source prefs.
-
- * main.tcl: Change initial "src file" call to
- "src location".
-
-Thu Aug 14 15:49:02 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * manage.tcl (manage_create): Some fixes for IDE windows.
-
-Thu Aug 14 03:18:10 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * register.tcl, stack.tcl (destructor): Remove hook.
-
- * manage.tcl: Mostly rewritten from scratch to be
- more efficient and handle multiple windows of the same type.
- (manage_open): New function opens or creates a window
- as necessary.
- (manage_create): Now always creates a new window.
-
- * global_pref.tcl (build_win): Only put up font message
- box on Unix systems.
-
- * main.tcl: Change "manage create" calls to "manage open"
-
- * src (destructor): Remove hooks.
- (do_popup): Add a menu item to open another source window.
-
- * toolbar.tcl (build_win): Change "manage create" calls to
- "manage open". Bind button 3 on iconbar to "manage create".
-
- * prefs.tcl: Changes required for new features in manage.tcl.
-
- * tclIndex: Rebuilt.
-
- * hooks.tcl (remove_hook): Fix.
- (lremove): New function.
-
-Tue Aug 12 16:06:04 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * main.tcl: If running in the IDE, register the source window as
- the generic gdb window.
-
-Tue Aug 12 01:42:10 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * global_pref.tcl (build_win): Add a font size control
- widget, and a font preview window. Implement scanning
- for fixed-width fonts and a font cache.
- (font_changed): Save all font attributes in new-style
- font description.
-
- * balloon.tcl: Merge in latest changes from libide.
-
- * prefs.tcl (pref): Rename variables to make function
- clearer.
- (pref_init): After reading in prefs file, create
- all named fonts.
- (pref_set_defaults): Set default font to {courier 12 roman}.
-
-Mon Aug 11 13:47:49 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * tclIndex: New file.
-
- * Makefile: New file. Generates tclIndex when needed.
-
- * manage.tcl (manage_init): Add an icon for GDB.
- (manage_create): Bind Map and Unmap for toolbar toplevel.
- Tell window manager to display icon if one exists.
- (manage_iconify): Iconify or deiconify all windows.
- (make_icon_window): Build a window with an icon in it.
- (bind_for_toplevel_only): Local copy, because if you build
- GDB without IDE you won't get the one in libide.
-
- * main.tcl: Remove all the source commands.
-
- * toolbar.tcl: Use "-menu" configuration option for toplevel.
-
- * images/cygnus_icon.gif: A cygnus logo with GDB on it.
- For Unix window managers.
-
-Fri Aug 8 16:01:20 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * manage.tcl (manage): Add menu subcommand.
- (manage_init): Add -menu, -menuname, and -idemenuname options for
- all the windows.
- (manage_create): Register transient windows.
- (manage_menu, manage_register_default): New procedures.
- * toolbar.tcl (build_win): Call manage_menu to set up the window
- menu.
-
-Thu Aug 7 16:51:43 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * stack.tcl: Bind button 1 to select current
- frame. Add balloonhelp.
-
-Thu Aug 7 14:00:18 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * main.tcl, manage.tcl, toolbar.tcl: Add support
- for stack window.
-
- * stack.tcl, images/stack.gif: New files.
-
- * ALL: Change "::" to "@@" for itcl1.5/tcl8.0. You
- muct now use tcl8 for gdbtk to work.
-
-Tue Aug 5 12:10:43 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * register.tcl, global_pref.tcl: Change color "darkred"
- to red so it will work on windows.
-
-Tue Aug 5 12:01:26 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * manage.tcl (manage_init): Unset prefs are now ""
- instead of 0.
-
-Tue Aug 5 02:21:47 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * images*/run.gif: Change to green again.
-
-Tue Aug 5 01:42:56 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * main.tcl: Source register.tcl
-
- * register.tcl: New file. Editable register window
- and register preferences.
-
- * toolbar.tcl: Add hooks for register prefs.
-
- * manage.tcl: Add register window to list of windows.
- Deiconify windows when requested.
-
- * src.tcl: Minor changes.
-
- * global_pref.tcl: Bind return key to image dir entry
- widget.
-
- * prefs.tcl: Add register prefs to notebook widget.
- Change default for pref get to {} instead of 0.
-
-Fri Aug 1 14:21:25 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * images/*: Smaller toolbar icons. Fix some gifs
- to be transparent.
-
-Thu Jul 31 01:20:51 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (mode): Don't try to display EDIT button
- in any mode.
-
-Thu Jul 31 00:56:26 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * global_pref.tcl (build_win): Add ComboBox for simple font selection.
-
- * prefs.tcl (pref_init): Allow "option" commands in init file.
-
- * src.tcl: Remove EDIT button. Change fonts to use global font if
- no src font is specified.
-
- * toolbar.tcl: Enable Tools/Edit pulldown menu.
-
-Wed Jul 30 14:43:49 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * about.tcl (build_win): Set bg to white for Cygnus gif.
-
-Wed Jul 30 14:39:49 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * manage.tcl (manage_create): Fix window raising.
-
-Wed Jul 30 13:40:11 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * initial checkin.
-
diff --git a/gdb/gdbtk/library/ChangeLog-1998 b/gdb/gdbtk/library/ChangeLog-1998
deleted file mode 100644
index e44f3fc7a2a..00000000000
--- a/gdb/gdbtk/library/ChangeLog-1998
+++ /dev/null
@@ -1,3486 +0,0 @@
-Mon Dec 21 14:12:14 1998 Keith Seitz <keiths@cygnus.com>
-
- * manage.tcl (manage_create): Set window geometry after window is
- created.
-
- * prefs.tcl (pref_save): Save out preferences for memory window, too.
-
-Thu Dec 17 08:54:37 1998 Keith Seitz <keiths@cygnus.com>
-
- * browser.tcl (fill_source): Strip off any function args
- which could arise from C++ function names.
- (search): Be careful of C++ functions with spaces in the name
- returned from gdb_search.
-
-Tue Dec 15 13:24:42 1998 Keith Seitz <keiths@cygnus.com>
-
- * prefs.tcl (escape_value, unescape_value): New procs to
- escape equal signs in preference values.
- (pref_read): Use unescape_value whenever prefs are read.
- (pref_save): Use escape_value whenever prefs are saved..
-
-Tue Dec 15 11:07:01 1998 Keith Seitz <keiths@cygnus.com>
-
- * process.tcl (build_win): Do not export the listbox's selection
- as the X selection so that multiple listboxes can have selections
- highlighted at the same time.
-
- * stack.tcl (build_win): Ditto.
-
-Mon Dec 14 15:53:38 1998 Keith Seitz <keiths@cygnus.com>
-
- * watch.tcl (update): Catch errors to getLocals, which could error
- if no symbol table is loaded.
-
- * locals.tcl (update): Ditto.
-
-1998-11-17 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * kod.tcl: fix <Double-1> command spec for listbox.
-
-1998-11-13 Martin M. Hunt <hunt@cygnus.com>
-
- * srctextwin.tcl (bp): Pass "asm" argument to do_bp.
- (do_bp): Use asm argument to determine whether to
- check for multiple bps on the same src line. Remove
- redundant "if" statement.
-
-1998-11-12 Martin M. Hunt <hunt@cygnus.com>
-
- * srctextwin.tcl (do_bp): Fix multiple assembly
- breakpoints mapping to the same line number.
-
-Thu Nov 12 15:20:15 1998 Jim Ingham <jingham@cygnus.com>
-
- * console.tcl (complete): I added the ability to pass from_tty
- from gdb_cmd to the underlying commands. Pass 1 when the
- command is invoked from the console.
-
- * interface.tcl (gdbtk_tcl_tstart, gdbtk_tcl_tstop): Run the
- src window's do_tstop method rather than manipulating the
- widgets by hand.
-
- * src.tcl (build_win): Redo the packing so that the function
- combobox doesn't push all the other combo-boxes off the screen
- if it has a very long function name in it.
-
- * srcbar.tcl (do_tstop): Added a mode that just changes the
- GUI, which can be called from console hooks.
-
- * srctextwin.tcl: Fixed some bugs I introduced in setting
- breakpoints in the assembly & mixed mode windows. Dropped
- the notion of joint breakpoint images for lines that have
- breakpoints of two separate types. Too fragile.
- Also added the "dont_change_appearance" flag, used in the
- continue_to_here method to tell the GUI not to reflect the
- temporary disabling of all the breakpoints.
-
- * toolbar.tcl (insert_buttons): Added a little more error-checking.
-
-Wed Nov 11 08:40:04 1998 Fernando Nasser <fnasser@cygnus.com>
-
- * kod.c: adjusted sizes and packing options of widgets
-
-1998-11-10 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * main.tcl: small fix to the kod code as requested by the maintainers
- * kod.tcl: use show kod and info <kod cmd> as per spec
-
-Mon Nov 9 17:00:45 1998 Fernando Nasser <fnasser@cygnus.com>
-
- * kod.tcl: New file that implements the Kernel Object Display window
- * Makefile: added kod.tcl
- * main.tcl: test for kod support
- * manage.tcl (manage_init): support for kod
- * prefs.tcl (pref_save, pref_set_defaults): ibid
- * scrtextwin.tcl (config_win, do_key): ibid
- * toolbar.tcl (_load_images, create_window_buttons,
- create_view_menu): ibid
- * tclIndex: regen
-
-Mon Nov 9 12:09:48 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * actiondlg.tcl: Customize the stack collect string to collect
- the FP reg plus 64 words of stack mem. This will work for many
- targets. As noted in earlier comment, we need a way to configure
- this to the specific target.
-
-Wed Nov 4 12:41:42 1998 Jim Ingham <jingham@cygnus.com>
-
- * actiondlg.tcl: Get the stack collect string from an instance
- variable. Need to implement some way to get this from the
- target settings...
- * global_pref.tcl (toggle_tracing_mode): Add & remove hooks
- when you go in and out of tracing mode. Also reset the B1
- behavior when you leave tracing mode
- * interface.tcl (gdbtk_tcl_trace_find_hook): Added the trace
- find hook, so you can switch the GUI state when the tfind
- command is used to enter & leave browse mode.
- * srcbar.tcl (constructor, destructor trace_find_hook): Added
- the trace_find_hook to the source toolbar, and added the
- necessary hooks to handle it.
- * srctextwin.tcl (trace_find_hook): Added a trace find hook to
- the sourcebar as well.
- * stack.tcl (update): protect against errors in gdb_stack.
- Just return "NO STACK" if we couldn't get it.
- * src_pref.tcl (constructor, cancel): Put all the saved prefs
- in an array, on cancel, see if any have changed and only
- rebuild the window if there have been changes.
-
-1998-11-03 Keith Seitz <keiths@cygnus.com>
-
- * target.tcl: Add ice target.
- (GdbLoadPref): Add "after_attaching" preference.
- (set_saved): Add "after_attaching" preference.
- (write_saved): Add "after_attaching" preference.
- (change_target): Add "after_attaching" preference.
- (build_win): Add "after_attaching" entry to options
- frame.
-
- * main.tcl (set_target_name): Add ice target.
- (set_target): If an "after_attaching" preference exists,
- run it.
-
-Mon Nov 2 13:24:10 1998 Jim Ingham <jingham@cygnus.com>
-
- * bp.tcl (update): The hook function was passing more
- arguments than this function expected.
-
-Mon Nov 2 11:16:10 1998 Jim Ingham <jingham@cygnus.com>
-
- * toolbar.tcl: Added Tdump image.
-
-Fri Oct 30 17:36:05 1998 Jim Ingham <jingham@cygnus.com>
-
- * src.tcl (set_execution_status): Changed status messages,
- tracing is not the same as async debugging...
-
-Fri Oct 30 17:06:31 1998 Jim Ingham <jingham@cygnus.com>
-
- * bp.tcl (bp_all): Only remove tracepoints in the tracepoint
- window, and breakpoints in the breakpoint window.
-
-Fri Oct 30 11:22:23 1998 Jim Ingham <jingham@cygnus.com>
-
- * actiondlg.tcl: Added special tag "Collect Stack". This
- still needs to get hooked into the target database to deal
- with targets that need to do something special to collect the
- stack. Also moved some repeated code into loops.
- * main.tcl (source_file): Source in a file of gdb commands.
- * srcbar.tcl (constructor): Added source file menu entry, and
- made stack buttons belong to both the Trace & Control classes.
- * srctextwin.tcl (constructor): One too many separators in the
- trace trace popup menu.
- * tclIndex: regenerated.
- * tfind_args.tcl: Added "tfind frame"
- * toolbar.tcl (create_button): Allow a button to belong to
- more than one class.
- * toolbar.tcl (enable_ui): Eliminate redundant code, and allow
- a button to belong to more than one class.
- * toolbar.tcl (create_trace_menu): Added save tracepoints &
- Tfind frame menu items.
- * tracedlg.tcl: Added deletion of actions, and fixed a
- the whiile-stepping combobox callback for the new combobox.
- * util.tcl (save_trace_commands): new proc.
-
-1998-10-29 Michael Snyder <msnyder@demo-laptop2.cygnus.com>
-
- * target.tcl: add /dev/cua0 for Linux.
-
-Tue Oct 27 13:46:03 1998 Jim Ingham <jingham@cygnus.com>
-
- * Many little bug fixes all over in order to get tracing to work
- along with normal program control.
- * toolbar.tcl: Rewrote much of the code here to put commonly
- used code into functions, and clean up adding menus and
- buttons. Added the ability to disable particular menu items,
- not just whole menus. Added the ability to delete and insert
- buttons on the fly.
- * srcbar.tcl: Pushed the changes to toolbar.tcl into this file.
- * srctextwin.tcl: Changed the code dealing with breakpoints
- and tracepoints to use the text tags more consistently. Use
- only one set of menus for the whole widget, rather than having
- a separate set for the SRC+ASM case. Rewrote a lot of the
- code to separate out the tracing & program control functions.
- * interface.tcl (gdbtk_tcl_breakpoint): pass more information
- to the scrtextwin when a breakpoint changes state, so it can
- do the right thing without having to guess...
- * tracedlg.tcl (build_win): get the packing right so the
- window expands correctly.
- * main.tcl: do_tstop -> tstop, do_tstart -> tstart to avoid
- confusion with the methods in ScrBar.tcl.
- * prefs.tcl: Added two new preferences B1_Behavior to control
- whether B1 sets breakpoints or tracepoints.
- * src_prefs.tcl: Put in support for the B1_Behavior.
- * global_prefs.tcl: Put back tracing checkbox.
- * tdump.tcl: Fixed an incorrect (1 rather than 1.0) text
- widget line specification.
- * tfind_args.tcl (build_win): Bind return in the entry to the
- OK button. Clear the entry field if the Type has changed.
- * utils.tcl: Added comments for the debug commands.
- * watch.tcl (build_win): Flash the OK button before invoking it.
-
-Wed Oct 28 16:19:57 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * srctextwin.tcl: Changed the _map cache to use
- the variable Cname instead of the kludgy upvar alias.
-
-Mon Oct 26 21:08:54 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * srctextwin.tcl (motion): Show breakpoint balloons
- even when not running.
- (showBPBalloon): Check for null before displaying.
-
-Wed Oct 21 10:05:17 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * images/kod.gif: Added temporary kernel object display icon.
-
-Wed Oct 14 17:30:07 PDT 1998 Jim Ingham <jingham@cygnus.com>
-
- * main.tcl (gdbtk_tcl_preloop): Fixed the code to set gdb_exe_name.
- I seem to have dropped a variable...
- * main.tcl (_open_file): Make the open file dialog truely
- modal on windows.
-
-Wed Oct 14 14:29:17 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * target.tcl: Change default runlist for remote
- targets to download.
- (build_win): Add user-defined list of functions for
- initial breakpoints.
-
- * main.tcl (run_executable): Set user-defined initial
- breakpoints.
-
- * prefs.tcl (pref_set_defaults): Define new prefs
- gdb/load/bp_at_func and gdb/load/bp_func. These are
- user-defined initial breakpoints.
-
-Sat Oct 10 00:21:44 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * help/source.html: Add new images, add description of changes
- to breakpoints and threads support. Fix typos.
-
- * help/memory.html: Cleanup and add new information.
-
- * help/breakpoint.html: Reformat.
-
- * help/images: Add a bunch of new GIFs.
-
-1998-10-08 Keith Seitz <keiths@cygnus.com>
-
- * main.tcl (run_executable): Do not call set_exe here, either.
- (_open_file): Add some comments about using set_exe
- here instead of in download_it and run_executable. Do not look
- for main, either, since the file hooks will take care of that.
-
- * interface.tcl (gdbtk_tcl_pre_add_symbol): Do not reset the
- source windows here -- only show the user what is going on.
- (gdbtk_tcl_post_add_symbol): Force the source windows' file
- comboboxes to refill, since adding a symbol file may actually
- expand the debugger's view of the world.
- (gdbtk_tcl_file_changed): New hook proc. Called by file_changed_hook
- in symfile.c, this hook will cause the source window to point
- to main/entry. gdbtk_tcl_exec_file_display actually sets up
- gdbtk for this.
- (gdbtk_tcl_exec_file_display): Renamed from
- gdbtk_tcl_exec_file_changed for clarity. This hook is called
- from exec_file_display_hook in exec_file_command. This function
- sets up gdbtk to use a new executable, including resetting the
- debugger's state and source window(s). See comments in this file
- for more information.
-
- * download.tcl (download_it): Don't call set_exe here and
- do not touch state variables gdb_target_changed -- run_executable
- will do it. (In short, make download_it one step closer to only
- doing the download!)
-
-1998-10-08 Keith Seitz <keiths@cygnus.com>
-
- * variables.tcl (UnEdit): Fix quoting problems so that arrays may be
- inspected/edited.
- (edit): Ditto.
-
-Wed Oct 7 16:03:00 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * srctextwin.tcl (reconfig): Fix bindings.
-
-Wed Oct 7 13:07:00 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * manage.tcl (manage_create): Bind ALL source windows
- Map and Unmap events.
- (manage_delete): Small optimization.
- (manage_iconify): When the last source window is iconified,
- iconify all the support windows too. When any source
- window is deiconified, deiconify everything.
-
- * src.tcl (destructor): Destroy SrcTextWin too.
-
-Tue Oct 6 23:00:08 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (set_status): Display only the first line of
- the message.
- (build_win): Configure status window to a height of 1.
-
- * srcbar.tcl (create_menu_items): Change "Open..."
- menu item to call _open_file proc. Remove old
- _open_file method.
-
- * main.tcl (run_executable): If the run command fails
- with a result of "No executable" then call _open_file.
- (_open_file): New proc. Opens a file requester and
- sets the executable name to the selected file.
-
- * toolbar.tcl (create_menu_items): Add "..." to Source
- and Global prefs menu item.
-
-Mon Oct 5 21:10:30 1998 Jim Ingham <jingham@cygnus.com>
-
- * srctextwin.tcl (set_tracepoint): The filename variable
- changed to current(filename) but this use was not updated.
-
- * global_prefs: Added a global preference to turn on the
- tracing. It only sets the tracing preference, and does
- not cause gdb to relayout the toolbar yet...
-
- * util.tcl: Fixed the comments for the little debug
- thingie.
-
- * util.tcl (auto_step): Added a way to cancel the
- auto_stepping. This is not currently used, but with this
- it could be...
-
-Mon Oct 5 00:43:11 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * srctextwin.tcl (SrcTextWin): Create a threaded image
- with a color of [pref get gdb/src/thread_fg].
- (bind_src_tags): Bind bp_tag <Motion> and <Leave> for
- balloon help on breakpoints.
- (config_win): A bunch of binding changes to support
- balloon help breakpoints and setting multiple BPs
- on a line. Add menu item for thread specific BPs.
- (reconfig): Similar changes as above.
- (register_balloon): Remove.
- (updateBalloon): Cleanup and don't call register_balloon.
- (do_bp): When a BP is deleted, call gdb_find_bp_at_line()
- to see if there are any more BPs at the same line number.
- Add "thread" BP type.
- (bp_line): Accept an optional list of thread numbers to
- set BPs on. Loop through the list setting BPs on each thread.
- (motion): Accept a window and type argument. Call
- showBPBalloon in type is not "var".
- (showBPBalloon): New method.Opens a balloon with breakpoint
- info in it.
- (showballoon): Accept window parameter.
- (ask_thread_bp): New. A thread selector dialog. Opens
- a scrolled listbox with a list of threads and allows
- the user to multiselect threads to set BPs on.
- (do_thread_bp): New callback from ask_thread_bp()
- listbox.
-
- * src_pref.tcl: Replace disabled color selector with thread
- fg selector. Disabled color should probably always be
- black anyways.
-
- * util.tcl (CygScrolledListbox): Temporary simple scrolled
- listbox. Replace with a better one soon.
-
- * prefs.tcl (pref_set_defaults): Set default for thread fg.
-
- * bp.tcl (bp_add): For thread BPs, set the button color
- correctly.
-
- * tclIndex: Rebuilt.
-
-Fri Oct 2 17:07:32 1998 Jim Ingham <jingham@cygnus.com>
-
- * util.tcl (debug namespace): Added helper functions
- "trace_var", "remove_trace" & "remove_all_traces" which
- watch a variable, and dump the stack, and its value when
- it is touched... They are in the "debug" namespace.
- *tclIndex: regenerate index.
-
-Fri Oct 2 14:02:25 1998 Jim Ingham <jingham@cygnus.com>
-
- * main.tcl (gdbtk_tcl_preloop): Catch the error when no file
- is given on the command line.
-
-1998-10-02 Keith Seitz <keiths@cygnus.com>
-
- * srcbar.tcl (_open_file): Call SrcWin::point_to_main.
- (_set_runstop): Catch the stop in case the user
- aborts a session.
-
- * srctextwin.tcl (destructor): New. Remove all previously added
- hooks.
-
- * src.tcl (point_to_main): New function. I got tired of typing
- the same five lines over and over again.
-
- * main.tcl (set_baud): Target baud preferences are stored as
- [target name]-baud, not [target name]/baud.
- (run_executable): Call SrcWin::point_to_main.
- (gdbtk_tcl_preloop): Call SrcWin::point_to_main.
-
- * interface.tcl (gdbtk_tcl_pre_add_symbol): Use "update idletasks", not
- just "update".
- (gdbtk_tcl_post_add_symbol): Rewrite to have better behavior
- for symbol files which have been loaded. Use a small hack to work
- with gdbtk_tcl_exec_file_changed so that we look for main only
- when a new executable is loaded.
- (gdbtk_tcl_exec_file_changed): New proc to do some necessary
- setup when an exec file changes.
-
- * tclIndex: Regenerate.
-
-Fri Oct 2 11:40:05 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * Makefile (TCL): Add modal.tcl.
-
- * tclIndex: Rebuilt.
-
-1998-10-02 Keith Seitz <keiths@cygnus.com>
-
- * srcbar.tcl (_set_runstop): Catch the stop in case the user
- aborts a session.
-
-Thu Oct 1 18:58:11 1998 Jim Ingham <jingham@cygnus.com>
-
- * main.tcl (gdbtk_tcl_preloop): We were using lindex on the
- return value from info files, but if the directory had a space
- in it, then the result was not a proper Tcl list, and so the
- command would fail. Use regexp instead...
-
-Thu Oct 1 17:21:26 1998 Jim Ingham <jingham@cygnus.com>
-
- * download.tcl (download_it): One more place where we used
- "Foundry_Debugger" unconditionally... Stamped out.
-
- * main.tcl (set_target): Don't put the "Trying to
- communicate..." message in the window title, put it in the
- status area, and remember to remove it when you are done.
-
-Wed Sep 30 21:32:39 1998 Jim Ingham <jingham@cygnus.com>
-
- * srctextwin.tcl (insertBreakTag): There was a bug in the
- method of inserting break tags. If a tag of the intended
- type did not already exist, insertBreakTag would not set it.
- This method is a little less flexible, but actually works
- for all our uses.
-
-Wed Sep 30 19:42:43 1998 Jim Ingham <jingham@cygnus.com>
-
- * src.tcl (set_execution_status): When the program has
- terminated, most stubs detach. Then we need to set
- gdb_target_changed here so gdb will know to reattack when
- you press the Run button.
-
- * memory.tcl (update_address): We caught the gdb_eval when you
- give an address expression, but then only trapped the case
- where you gave an invalid address or non-existant symbol.
- Trap all the other errors as well...
-
-Wed Sep 30 16:55:53 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * bp.tcl: Add optional "thread" column and menu items
- to turn it on and off.
-
- * prefs.tcl (pref_set_defaults): Add gdb/bp/show_threads
- preference used for toggling the display of the thread
- column in the BP window. Default is 0 (off).
-
-1998-09-28 Keith Seitz <keiths@cygnus.com>
-
- * download.tcl (download_it): Don't download if there is no executable...
-
-Mon Sep 28 14:23:39 1998 Jim Ingham <jingham@cygnus.com>
-
- * modal.tcl: NEW FILE. Had to fix a bug in the dialogs
- so I made a sub-class: ModalDialog. The bug was that
- manage.tcl sets the WM_DELETE_WINDOW handler to be
- "manage delete" of the window, which is wrong for these
- windows, they need to unpost themselves first. Override
- this in the post method.
- * mem_pref.tcl: Subclass & remove the code that went into
- the ModalDialog class.
- * target.tcl: ditto.
- * tclIndex: regenerate for the new class.
-
-Fri Sep 25 19:01:32 1998 Jim Ingham <jingham@cygnus.com>
-
- * utils.tcl (freeze): Hacked the freeze method so that it comes closer
- to working on Windows, but it still flashes. Use a post
- method, like that im mem_prefs.tcl or target.tcl instead.
- * mem_pref.tcl (post): Added post method, so you can use the
- Windows EnableWindow call without sending your app into the
- background when the dialog is dismissed.
- * target.tcl (post): Added the same method to this class.
- Really should subclass these. Will do this when we rework the
- class hierarchy for Itcl3.0.
- * memory.tcl (create_prefs): Use the new post method.
- * main.tcl (set_target_name): Use the post method rather than
- freeze.
-
-1998-09-25 Keith Seitz <keiths@cygnus.com>
- * main.tcl (set_baud): Baud rates are saved in gdb/load/target-baud,
- not gdb/load/target/baud.
- (set_target): Attempt to silently detach before attaching.
-
- * target.tcl: Add gdb_target entries for Angel and ARM Remote
- protocols.
-
-1998-09-18 Keith Seitz <keiths@cygnus.com>
-
- * interface.tcl (gdbtk_tcl_post_add_symbol): Force the source window
- to 'main'; if that fails, let gdb guess based on stop_pc.
-
-1998-09-04 Keith Seitz <keiths@cygnus.com>
-
- * srctextwin.tcl (SrcTextWin::destructor): Define and remove
- previously installed hooks.
-
- * browser.tcl (get_selection): Listbox indices start at zero!
- Clear the selection if the user clicks below the last visible
- item in the listbox.
-
-Thu Sep 3 16:43:43 1998 Jim Ingham <jingham@leda.cygnus.com>
-
- * mem_prefs.tcl: Fixed the size & format radiogroups in
- the memory preferences so that they match the format
- options being sent to it by the memory window. Also
- greyed out the format box when float or double is selected.
- Also made sure we didn't re-enable any disabled widgets in
- the idle function.
-
-Sun Aug 30 00:40:28 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * process.tcl: New file. Implement a process/thread selection
- and display window.
-
- * srctextwin.tcl (do_key): Add entry for thread/process
- window.
- (config_win): Bind "Thread List" to Control-H.
- (FillSource): Fix bug when source is not found.
-
- * toolbar.tcl (create_menu_items): Add Thread List to menu
-
- * manage.tcl (manage_init): Add process window to
- managed array.
-
- * prefs.tcl (pref_save): Add "process" to window types to save.
-
- * Makefile: Add process.tcl
-
- * tclIndex: Rebuilt
-
-1998-08-28 Keith Seitz <keiths@cygnus.com>
-
- * variables.tcl (edit): Format data so that C arrays are not
- mistaken for tcl commands.
- (UnEdit): Ditto.
-
-Thu Aug 27 14:13:09 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * main.tcl (run_executable): If the target is "sim"
- then the pref "sim-opts" should be treated as target
- options instead of command line arguments.
-
-Wed Aug 26 00:06:11 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (mode): Set the mode widget using entryset.
- (build_win): Use default combobox selectbackground.
-
- * srctextwin.tcl (FillMixed): Better error handling.
- (LoadFIle): Stop harrassing users with worthless dialog boxes.
-
- * main.tcl (run_executable): Set args when arguments are
- given in the target dialog.
-
- * helpViewer.tcl (insertHtml): Window may have been
- closed while waiting for HTMLparse, so catch next commands
- to prevent error message.
-
- * images/stack.gif: Use the image from images2 because
- it looks better.
-
-Tue Aug 25 16:09:02 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (build_win): Change fonts on comboboxes to src-font.
-
- * global_pref.tcl: Change to new combobox.
-
-Tue Aug 25 11:41:43 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * srctextwin.tcl (insertBreakTag): Take an index
- instead of a linenumber. Check for bp_tag and break_tag.
- (display_breaks): Reset all lines back to break_tag
- after deleting bp image. Fixes caching bug.
- (do_bp): Fix up calls to insertBreakTag.
-
-Fri Aug 21 12:44:25 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * target.tcl (build_win): Remove tix stuff. Set maxheight
- of comboboxes to 10. Remove all code to count elements
- in comboboxes because the new one does it for us.
- (fill_rates): Remove combobox height configure code.
- (fill_targets): Same.
-
- * src.tcl (build_win): Change combobox -height to
- -maxheight for combobox 1.05.
- (name, goto_func): Use combobox entryset instead of SetSilent.
- (SetSilent): Deleted.
-
- * srctextwin.tcl (FillSource): Fix change mode call when
- no source is found.
-
-1998-08-20 Keith Seitz <keiths@cygnus.com>
-
- * srctextwin.tcl (print): New method. Moved from src.tcl.
-
- * srcbar.tcl (create_menu_items): Add page setup for non-ide again..
-
- * src.tcl (build_win): Fix balloon help for new comboboxes.
- (print): Move guts to srctextwin and invoke that method.
-
- * target.tcl: Remove protected variable tcpmode.
- Add "options" member for sim and exec targets. For sim, this is
- options to pass to the simulator; for exec, command line arguments.
- (build_win): Replace tix comboboxes with one from libgui.
- (set_saved): Add target-options when appropriate.
- (write_saved): Add target-options when appropriate.
- (fill_rates): Modify to work with new combobox.
- (fill_targets): Modify to work with new combobox.
- (config_dialog): New method which maps/unmaps/relabels comboboxes
- and entries for each target.
- (change_target): Remove all code pertaining to mapping/unmapping/relabeling
- comboboxes and entries and call config_dialog instead.
- (change_baud): Remove all code pertaining to mapping/unmapping/relabeling
- comboboxes and entries and call config_dialog instead.
-
- * console.tcl (Console): Add key binding for TAB completion.
- (find_lcp): New helper method for find_completion.
- (find_completion): New helper method for complete.
- (complete): New method (bound to tab key) which computes the completion
- of the current command line.
- (reset_tab): New method to reset the tab completion whenever a key
- is pressed (forces complete to recompute the completions instead of
- printing out the last list of completions).
-
-1998-08-18 Keith Seitz <keiths@cygnus.com>
-
- * stack.tcl (update): Use new built-in command gdb_stack for
- backtraces.
- Use the global gdb_selected_frame_level to figure out which
- line in the listbox should be highlighted.
- ALWAYS highlight the selected frame.
- Put a fencepost arount update so that we can prevent it from
- being called twice when change_frame is used.
- (change_frame): Protect call to gdbtk_update so that this object is
- not updated twice.
-
- * srctextwin.tcl (config_win): Copy the properties of the selection tag
- into a new "search" tag that will be used by the search widget.
- (search): Use the defined "search" tag to highlight found text.
- Remove all search-tagged text from the window when an empty expression
- is entered.
-
-Mon Aug 17 14:27:54 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * main.tcl (do_tstop): Require combobox package.
-
- * src.tcl (build_win): Use new combobox.
- (name): Changes for new combobox.
- (goto_func): Changes for new combobox.
- (FillNameCB): Changes for new combobox.
- (FillFuncCB): Changes for new combobox.
- (SetSilent): New method, like tixSetSilent.
- (mode): Changes for new combobox.
- (set_name): Changes for new combobox.
- (reset): Changes for new combobox.
-
- * srctextwin.tcl (FillSource): Call parent's mode method when
- mode is changed to assembly.
- (location): Call display_breaks only if flag is set.
- (LoadFIle, FillAssembly, FillMixed): Set display_breaks flag.
- (display_breaks): Set all breakpoints in a single pass.
- (insertBreakTag): Check $stop before trying to remove tag.
-
-Mon Jul 27 12:35:31 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * interface.tcl (gdbtk_tcl_tracepoint): Make function match C
- implementation by adding pass_count.
-
-Sat Jul 25 22:40:49 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * manage.tcl (manage_init): Change "loadpref" to "targetsel"
- and change class name to TargetSelection. This avoids confusion
- with the IDE GdbLoadPref class.
- * target.tcl (TargetSelection): Change class name.
- * main.tcl (set_target_name): Change "loadpref" to" targetsel"
-
-Fri Jul 24 14:37:49 1998 Keith Seitz <keiths@cygnus.com>
-
- * util.tcl (bp_exists): New procedure.
- * srctextwin.tcl (SrcTextWin::constructor): Add public vars
- "parent" and "ignore_var_balloons" and initialize accordingly.
- (config_win): Add binding for browser.
- Add binding for up/down arrows to scroll more naturally.
- (do_key): Add browser entry.
- * browser.tcl: Add srctextwin into browser.
- * prefs.tcl (pref_set_defaults): Add new preferences for the func
- browser.
- * tclIndex: Regenerate.
-
-Fri Jul 24 00:53:28 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * srctextwin.tcl (SrcTextWin): Initialize LineNums.
- (setTabs): Set tabs correctly when in assembly mode
- or when there are no linenumbers.
- (bind_src_tags): Remove lineNum_tag bindings.
- (config_win): Remove lineNum_tag and line_tag. Set
- linenumbers to break_tag and bp_tag instead.
- (FillAssembly): Don't use lineNum_tag.
- (FillMixed): Don't use line_tag.
- (LoadFile): Use new protected variable LineNums.
- (insertBreakTag): Instead of trying to calculate the
- correct location of the new tag, simply ask the widget
- where the old one was.
- (do_bp): Call insertBreakTag when bps are deleted.
-
- * src.tcl (FillNameCB): Call gdb_listfiles with [pwd].
-
-Sat Jul 18 13:27:20 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (location): Change BROWSE_TAG to STACK_TAG.
-
- * interface.tcl (gdbtk_quit): New function. Called by
- cleanup code in GDB.
-
-Fri Jul 17 00:03:43 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * memory.tcl (build_win): Change address controlbox to
- call update_address_cb.
- (update_address_cb): New method. Handle address
- controlbox callbacks. Set flag and call update_address.
- (update_address): Call BadExpr on bad expressions.
- Use local variable "ae" to set public variable addr_exp.
- This fixes bug where widget forgets its address when
- reconfigured. Set table background white when expression
- is OK.
- (BadExpr): When a bad expression is entered, create a
- messagebox and set the table bg to gray.
-
- * mem_pref.tcl (apply): Remove mystery debug line.
-
-Thu Jul 16 16:56:12 1998 Jim Ingham <jingham@cygnus.com>
-
- * download.tcl, ide.tcl, interface.tcl, main.tcl, manage.tcl
- srcbar.tcl, toolbar.tcl: Merged the IDE changes back into devo.
-
-Mon Jul 13 14:34:45 1998 Jim Ingham <jingham@cygnus.com>
-
- * mem_pref.tcl (destructor): Remember to delete the variable
- trace that implements the entry widget checking.
-
-Fri Jul 10 19:17:53 1998 Jim Ingham <jingham@cygnus.com>
-
- * mem_pref.tcl: Changed the number of bytes entry widget so
- that it only accepts +'ve integers, and protect against the
- case where the user deletes the contents of this entry, then
- closes the window. Also made the entry disabled when the
- other radio button is selected.
-
-Wed Jul 8 23:20:33 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * srctextwin.tcl (FillSource): Fix code that
- detects when no line numbers are available and we must use
- assembly mode.
-
-Mon Jul 6 17:53:50 1998 Jim Ingham <jingham@cygnus.com>
-
- * download.tcl, helpViewer.tcl, html_library.tcl, memory.tcl,
- register.tcl, src.tcl, srctextwin.tcl, target.tcl,
- tracedlg.tcl, util.tcl, variables.tcl, warning.tcl, watch.tcl:
- With the Tcl 8.0 compiler, expr commands are more efficient if
- you use:
- expr {$foo + $bar}
- instead of:
- expr $foo + $bar
- So I changed all the uses of expr to this form.
-
-
-Mon Jul 6 15:19:59 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * srctextwin.tcl (FillSource): Call Parent's mode method
- to combobox will be updated.
- * src.tcl (mode): Pass along second argument to mode_set.
-
-Wed Jul 1 15:09:47 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * srctextwin.tcl (location): Add missing parameter
- to FillSource call in SRC+ASM.
-
-Wed Jul 1 11:07:21 1998 Jim Ingham <jingham@cygnus.com>
-
- * main.tcl (gdbtk_preloop): Call gdbtk_idle on spec. If there was an
- error in loading an executible specified on the command line,
- then the pre_add_symbol hook would have called gdbtk_busy but
- the corresponding call to gdbtk_idle would not have occured.
-
- Also changed some catch calls so they didn't use
- "catch {set foo [real_command]}"
- but rather the more efficient:
- "catch {real_command} foo"
-
- * register.tcl: more catch cleanups
- * src.tcl: more catch cleanups
- * stack.tcl: more catch cleanups
- * target.tcl: more catch cleanups
- * tdump.tcl: more catch cleanups
- * variables.tcl: more catch cleanups
- * watch.tcl: more catch cleanups
-
-Wed Jul 1 12:21:55 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (build_win): Remove incorrect runstop
- argument for srcbar.
-
-Wed Jul 1 11:25:48 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * floatbar.tcl: Deleted.
- * Makefile: Removed floatbar.tcl
- * tclIndex: Rebuilt.
-
-Wed Jul 1 11:19:05 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * toolbar.tcl (enable_ui): Now takes an argument and
- handles disable_ui and no_inferior functions.
- (disable_ui): Deleted.
- (no_inferior): Deleted.
- (constructor): Set idle, busy, and no_inferior hooks
- to enable_ui.
-
- * srcbar.tcl (_open_file): Fix for multiple source windows.
-
-Wed Jul 1 01:40:52 1998 Martin M. Hunt <hunt@cygnus.com>
- * Makefile: Added srctextwin.tcl.
- * tclIndex: Rebuilt.
- * src.tcl: Major rewrite to move the source text window
- into another object implemented in srctextwin.tcl. Every function
- changed and many moved to srctextwin.tcl.
- * srctextwin.tcl: New file.
- * bp.tcl (goto_bp): Fix call to source widget.
-
- * src_pref.tcl (build_win): Add line number
- checkbutton. Layout needs changed.
- * prefs.tcl (pref_set_defaults): Add linenum pref.
-
-Thu Jun 25 17:31:30 1998 Keith Seitz <keiths@cygnus.com>
-
- * toolbar.tcl (create_menu_items): Add Function Browser menu item.
-
- * tclIndex: Regenerate.
-
- * Makefile: Add browser.tcl.
-
- * util.tcl (do_test): New procedure for invoking a test in the
- testsuite from the command line.
- (gdbtk_read_defs): New procedure for reading in the testsuite definitions
- file
-
- * src.tcl (build_win): Create new entry for searching the source window.
- This "feature" shares the screen with the download indicator.
- (download_progress): If starting a download, unmap the search widget
- and map the download progress indicator in its place. When downloading
- is done, do the opposite.
- (config_win): Bind the down and up arrow keys to directly scroll the
- window.
- (search): New method which searches for strings in the source window
- and jumps to a particular line.
- (set_state): Do not reset current_file to empty when an exe has been
- downloaded.
- (bp): Do not special case tracepoint debugging.
-
- * manage.tcl (manage_init): Add elements for function browser.
- (manage_create): If GDBTK_TEST_RUNNING is set in the environment,
- place all windows on the screen at +0+0.
-
- * prefs.tcl (pref_save): Add new preference category "search".
- (pref_set_defaults): Add search preferences.
-
- * tracedlg.tcl (TraceDlg::destructor): Destroy the actions dialog is
- it exists.
- (add_action): Save the object returned from the window manager when
- the actions dialog is opened so that we can later destroy it if
- necessary.
- (done): Clear ActionsDlg when the actions dialog is destroyed.
-
- * main.tcl (do_tstart): Do not disable the "Begin collection" menu
- item when we issue a tstart.
-
- * console.tcl (paste): New method which handles all Paste events for
- this window.
- (Console): Bind the middle mouse button on unix to generate a paste
- event.
- Override default binding for button-2 motion to allow easier pasting
- into the window.
- Bind the paste event to the method paste.
-
-Wed Jun 17 13:50:48 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (reconfig): Recognize tab size changes.
-
- * src_pref.tcl (build_win): Add tab control. Remove extra frame.
- Justify variable ballons text. Set activebackgrounds on
- color buttons.
-
-Tue Jun 9 13:57:24 1998 Keith Seitz <keiths@cygnus.com>
-
- * helpViewer.tcl (HtmlViewer): Display appropriate help based on the
- preference gdb/mode.
-
- * help/trace: Add help files for tracing.
-
- * main.tcl (gdbtk_tcl_preloop): Call gdbtk_update so that the
- source window fills files into the combobox.
-
- * srcbar.tcl (_open_file): "cd" to directory, don't add it to the
- search list. This never gets reset anywhere, so if multiple file
- commands are added, we could get the wrong path. Call gdb_clear_file,
- too.
-
- * interface.tcl (gdbtk_tcl_pre_add_symbol): Call the reset method
- of the source window, too.
-
- * src.tcl (reset): New method used to clear the source window
- whenever multiple file commands are used.
-
- * tdump.tcl (update): Erase the contents of the tdump window
- when displaying a new dump.
-
- * stack.tcl (update): Errors from the backtrace can contain
- backtrace info, too, so make sure we print as much of that as
- possible.
-
- * register.tcl (build_win): Do not allow editing in tracing
- mode.
- (reg_select): Do not allow editing in tracing mode.
-
- * memory.tcl (update_address): Check that gdb's handling of chars and
- char*s doesn't abort the update.
-
- * variables.tcl (build_win): Disable editing in tracing mode.
- (build_menu_helper): Disable editing in tracing mode.
- (getLocals): Use the builtin functions gdb_get_locals and
- gdb_get_args to get all local variables. Concat lists together.
- (Variable::value): Set a default value for "radix" in case
- the regsub fails.
-
-Tue Jun 9 00:00:18 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * interface.tcl (gdbtk_quit): No longer use quit_hook.
- Just call "manage save".
- * manage.tcl (manage): Remove manage quit.
- (manage_quit): Deleted.
- (manage_init): Remove quit_hook.
- (manage_save): Use "Pref setd" instead of "pref set".
- * prefs.tcl (pref_set_defaults): Remove quit_hook.
- (pref_quit): Deleted.
-
-Mon Jun 8 16:15:33 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * target.tcl (set_check_button): Check for existence of
- button before trying to set its state.
-
-Mon Jun 8 13:31:08 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * memory.tcl (build_win): Always Bind configure event to
- newsize method. Change table widget to use incr_addr for
- both incr and decr. Enable autorepeat.
- (create_prefs): Set rheight (row height).
- (newsize): Set rheight if necessary. Return if numbytes
- is not zero.
- (update_address): Move gdbtk_idle and gdbtk_busy calls to
- update_addr.
- (update_addr): Surround with gdbtk_idle and gdbtk_busy.
- (incr_addr): Take an argument to indicate how much
- to increment or decrement by.
- (decr_addr): Deleted.
-
-Fri Jun 5 00:13:49 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * Change all references to GDBTK_IDE to IDE_ENABLED.
-
-Thu Jun 4 18:34:11 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * memory.tcl: Complete rewrite. Added many new features
- and made it much faster.
-
- * mem_pref.tcl (build_win): Set listbox width.
-
- * images/check.gif: New image. Used in version of
- memory window without a menubar.
-
-Thu Jun 4 10:53:33 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * tclIndex: regenerated.
-
- Merged (most recent first):
-
- - Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * tracedlg.tcl (ok): if the tracepoint does not exist (this can happen
- if user is editing a tp and decides to remove it from tp window)
- do not core dump, give an error message instead, and return.
-
- * bp.tcl (get_actions): invoke trace dialog from tracepoint window,
- passing filename and line as arguments, rather than address.
-
- - Jeff Holcomb <jeffh@cygnus.com>
-
- * main.tcl (set_baud): Change gdb/load/$gdb_target_name/baud
- to gdb/load/${gdb_target_name}-baud.
-
- - Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * tdump.tcl (update): call tdump only if the current trace frame
- number is not -1.
-
- * interface.tcl (gdbtk_tcl_tstart): update menus entries only, do
- not do actual command.
- (gdbtk_tcl_tstopt): update menus entries only, do not do actual
- command.
- (gdbtk_tcl_warning): remove tdump warning message from list of not
- displayed messages.
-
- * main.tcl (do_tstart): catch error output from tstart and display
- error dialog.
- (do_tstop): catch error output from tstop and display error dialog.
-
- * bp.tcl (bp_add): align properly the bpnum and passcount fields,
- for the tracepoint window.
-
- * main.tcl (set_exe): set file_done (new global state variable)
- depending whether new file was read in or not.
- (set_target_name): return 0 if user chose cancel from target setting
- window displayed by 'connect'.
- (set_target): if no target_cmd is specified call set_target_name and
- ask user for it.
- (async_connect): handle possible outcomes of set_target command,
- issue appropriate messages to user.
- Initialize file_done to 0.
-
- * target.tcl (cancel): set gdb_target_name to CANCEL for use by
- set_target_name.
- Added public data 'exportcancel'.
-
- * toolbar.tcl (do_async_connect): change menu items state only
- if connect was successful.
-
- * src.tcl (bp): modify condition for SOURCE case to display tp dot
- after connecting to target.
-
- * actiondlg.tcl (constructor): make dialog non modal.
- (destructor): release grab not any longer necessary.
- (change): make lsearch use exact pattern matching for entries
- added to the collect list using the 'other' field. The new syntax
- allows array elements to be specified and this messes up the
- default glob style pattern matching.
- (change_other): reject memranges (obsolete). Delegate validation
- of user input to the lower levels, in gdb. I.e. keep everything
- until the whole tracepoint is installed.
-
- * tracedlg.tcl (gdb_add_tracepoint): call to gdb_actions is now
- catching the errors (in case of incorrect syntax) and displaying
- them to the user.
-
- * main.tcl (set_target): Changed text of error message to mention
- the Target Settings dialog.
-
- * prefs.tcl: Set default preference for gdb/load/check to 0.
-
- * target.tcl (build_win): disable comparison with executable for
- 'exec' targets.
- (set_check_button): new method. Enable/disable the check button
- for comparing executable.
- (change_target): call set_chack_button when target changes.
- Set default preference gdb/load/check to 0.
-
- * stack.tcl: set initial window width value to 40, so that window
- looks better if opened before a stack exists.
-
- - David Taylor <taylor@texas.cygnus.com>
-
- * main.tcl (async_connect): remote-compare is now compare-sections.
-
- - Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * warning.tcl (constructor): call destructor if dialog doesn't
- need to be displayed.
-
- * console.tcl (invoke): make function get input and return if in
- readline state, independently from the value of Running.
-
- * src.tcl (set_state): set state of pop up menus only for synch
- mode.
-
- * tdump.tcl (build_win): simplify the window, eliminating pane.
- This fixes resize problems.
- (update): add call to see to display last thing outputted to the
- window.
-
- * tfind_args.tcl (do_it): call the tfind_cmd procedure.
-
- * toolbar.tcl (create_menu_items): changed calls to tstart and tstop
- to use do_tstart and do_tstop.
-
- * srcbar.tcl (runstop): do not call _set_trace in asynch case,
- just use _set_runstop always.
- (_set_runstop): added handling for asynch mode cases.
- (_set_trace): removed.
-
- * main.tcl (do_tstart): new procedure to execute tstart command
- update tstart/tstop button, and menu entries accordingly.
- (do_tstop): new procedure for tstop, as above.
- (run_executable): calls do_tstart in the asynch case.
-
- * interface.tcl (gdbtk_tcl_tstart): new procedure to invoke
- the tstart command
- (gdbtk_tcl_tstop): new procedure to invoke the tstop command
-
- * interface.tcl: (gdbtk_tcl_warning) do not display warning
- about no current trace frame upon opening of tdump window.
-
- * main.tcl: (run_executable) in asynch mode just call tstart,
- connect is now done independently.
- (async_connect) new procedure to connect and do comarison with
- remote executable, in asynch mode. Sets up gui state globals.
- (async_disconnect) new procedure to disconnect from target in
- asynch mode. Sets up gui state globals.
-
- * prefs.tcl: added new preference gdb/load/check
-
- * srcbar.tcl: (create_buttons) tfind commands now use tfind_cmd
- function
-
- * target.tcl: added new preference gdb/load/check to execute an
- automatic remote-compare command on connection to target in asynch
- mode
- (set_saved) set saved value for new preference
- (write saved) write saved value for new preference
- (build_win) set state of 'run to main', 'break at exit', 'display
- dowload' to disabled for asynch mode target dialog.
- Added new checkbutton for automatic comparison of remote exec.
- Saved_check: new protected member
-
- * tdump.tcl: (update) changed check for no frame, since 0 is legal
- trace frame number.
-
- * toolbar.tcl: (create_menu_items): added menus items 'connect to
- target' and 'disconnect', in async mode. Changed to call tfind_cmd
- to execute tfind commands
- (do_async_connect): new method to connect to target in async mode.
- (do_asynch_disconnect): new method to disconnect from target in
- async mode.
-
- * util.tcl: (tfind_cmd): new proc to execute a tfind command on
- the target
-
-Thu May 28 12:49:29 1998 Keith Seitz <keiths@cygnus.com>
-
- * target.tcl: Add sparclite target.
- (fill_targets): Add sparclite target.
-
- * main.tcl (set_target_name): Rearrange so that the default behavior
- is to assume a remote-like target.
-
- * src.tcl (browse_to): Helper function for BpWin::goto_bp which causes
- the source window to show the specified location.
-
- * bp.tcl (bp_add): Clean up repetitive code.
- Add double-click binding which shows the breakpoint
- in the source window.
- (bp_select): Clean up repetitive code.
- (goto_bp): New function.
-
-Sun May 24 14:05:27 1998 Keith Seitz <keiths@cygnus.com>
-
- * src.tcl (reconfig): Remove the variable balloon selection in the text
- widget, too, when we are disabling varialbe balloons.
-
- * target.tcl: Add a "runlist" parameter to all gdb_target entries. This list
- controls the default behavior of the run button.
- (GdbLoadPref): Define the run preferences based on this target.
- (build_win): Add a "more options" dropdown pane to allow users to modify the
- behavior of the run button.
- (set_saved): Add run button preferences.
- (write_saved): Add run button preferences.
- (fill_targets): Add the "pretty name" to the combo box, not gdb's internal
- target name.
- (change_target): Use get_target to translate the "pretty-name" to the
- real target name.
- (save): Write out saved values, too.
- (get_target): New method to translate the "pretty-name" of a target into gdb's
- internal name/
- (toggle_more_options): New method to handle mapping and unmapping of the
- "more options" pane.
- (set_run): New method. Moved from src_pref.tcl.
- (valid_target): Moved here from main.tcl.
- (native_debugging): Moved here from main.tcl.
- (change_target): Don't write_saved here -- wait until dialog is closed.
-
- * src_pref.tcl (build_win): Use libgui's Labelledframe class instead of the
- Tix labeled frame.
- Remove the run button frame -- this has moved into the target selection dialog.
- (set_run): Moved to targets.tcl.
-
- * prefs.tcl (pref_set_defaults): Change default preferences for the run
- button to only do a run. Target selection will reset these as appropriate.
-
- * main.tcl (set_baud): Baud preferences are in TARGET-baud, not
- TARGET/baud.
- (run_executable): Remove special cases for exec targets.
- (native_debugging,valid_target): Move to target.tcl.
-
- * images/more.gif, images/less.gif: New images for drop frames.
-
- * tclIndex: Regenerate.
-
-Wed May 20 13:43:00 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * toolbar.tcl (create_menu_items): Remove register prefs.
-
- * images/stop.gif: Set transparent bit.
-
-Tue May 19 12:34:11 1998 Keith Seitz <keiths@cygnus.com>
-
- * bp.tcl (bp_add): Use source window's colors. Use "file tail" not
- "lindex [file split ] end".
- (bp_modify): Use source window's colors. Use "file tail" not
- "lindex [file split ] end".
- (bp_remove): Call bp_select before we delete the breakpoint.
-
- * main.tcl (run_executable): Encapsulate all calls to debugger
- based on new run preferences.
-
- * manage.tcl (manage_init): Change loadpref titles to "Target Selection"
-
- * pref.tcl (build_win): Disable Help button until it works.
-
- * prefs.tcl (pref_set_defaults): Define new run button preferences.
- Lose stack and bp window color preferences -- use the source window
- ones instead. Lose left_click, too.
-
- * src.tcl: Remove all references to _Source_Left_Click and replace with new
- protected variable Tracing. Define new protected variable UseVariableBalloons
- so that we don't follow the preferences blindly. Replace all preference calls
- for these two globals.
- (reconfig): Allow reconfiguration of variable balloons and popup menu colors.
- (config_win): Add binding for File Menu->Open.
- (do_key): Add open key.
-
- * src_pref.tcl (SrcPref): Save all newly added preferences.
- (build_win): Add new preferences for mode, variable balloons,
- lots of color choices.
- (cancel): Reset all new preferences.
- (pick): Allow passing of button in to make things a little easier.
- (reconfig): Keep empty -- no need for this to reconfigure itself.
- (set_run): New method to make sure someone does not try to run _and_
- continue a target with the run button.
-
- * stack.tcl (build_win): Use the source window's preferences to set colors.
-
- * target.tcl (build_win): Disable Help button until it works.
-
-Mon May 18 15:25:00 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * html_library.tcl (HMstack): Remove stray 'g' that was
- preventing autoloading.
-
-Mon May 18 13:17:30 1998 Keith Seitz <keiths@cygnus.com>
-
- * helpViewer.tcl (HtmlViewer): Initialize glossary.
- (glossaryPost): Fill in skeleton supplied by jingham.
- (glossaryUnpost): Ditto.
- (lookup): New method to lookup glossary definitions.
- (HMset_image): Add special image names.
-
-Fri May 15 00:30:06 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * memory.tcl (update_address): Source window was never being
- updated due to a faulty fencepost. I removed it. Was it
- useful?
-
-Tue May 12 11:47:11 PDT 1998 James Ingham <jingham@leda.cygnus.com>
-
- * helpViewer.tcl: Made the fonts for the viewer track the global
- font preferences
- *html_library.tcl: Use Tcl Font objects for the fonts rather than
- building up X Font Specs.
-
-
-Thu May 7 16:03:32 1998 Keith Seitz <keiths@cygnus.com>
-
- * toolbar.tcl (create_menu_items): Remove automatic stepping.
- (create_menu_items): "Cygnus on the Web..." should point to GNUPro page...
-
-Wed May 6 20:18:34 1998 Keith Seitz <keiths@cygnus.com>
-
- * main.tcl (set_target_name): Recognize d10v and m32r targets.
- (valid_target): Change test to recognize all tcp targets.
-
- * target.tcl: Add m32r and d10v tcp targets.
-
-Wed May 6 12:52:12 1998 Keith Seitz <keiths@cygnus.com>
-
- * srcbar.tcl (create_menu_items): Install a page setup menu item for
- non-ide debuggers.
-
- * src.tcl (print): Don't call idewindow_freeze and idewindow_thaw
- the ide is not running
-
-Wed May 6 10:41:30 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * bp.tcl (get_actions): set bpnum to be the real tracepoint number,
- not the selected row number.
-
-Tue May 5 04:07:12 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * target.tcl: Add D10V and M32R target.
-
- * prefs.tcl (pref_set_defaults): Set debugging off
- by default.
-
-Fri May 1 15:23:57 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * main.tcl (valid_target) make 'remotetcp' a valid
- target.
-
-Fri May 1 11:50:40 1998 Jim Ingham <jingham@leda.cygnus.com>
-
- * helpViewer.tcl: Added the skeleton for the Glossary entries.
- Fixed the zoom to top of page when rendering is complete nit.
- Added a reconfig method to refresh the current page.
- Compulsive reordering of methods.
-
-Thu Apr 30 00:04:52 1998 Martin M. Hunt <hunt@cygnus.com
-
- * global_pref.tcl (change_icons): Remove debug line.
-
- * toolbar.tcl: Change image names to end with _img
- so they don't conflist with command names.
- * srcbar.tcl: Same.
-
-Tue Apr 28 16:51:09 1998 Jim Ingham <jingham@leda.cygnus.com>
-
- * html_library.tcl: The redefinition of tkFocusOK in this file
- can cause an infinite recursion loop in autoloading tkFocusOK.
- Change proc -> ::proc to hide the definition from itcl_mkindex
- * tclIndex: remade without the reference to tkFocusOK.
-
-Tue Apr 28 16:51:09 1998 Jim Ingham <jingham@leda.cygnus.com>
-
- * helpViewer.tcl: The index page now shows up properly in the
- history list. Also added images for the fore, back and home
- buttons, and removed the close button.
-
- * manage.tcl: Moved the wm withdraw of a new toplevel before the
- constructor is run in manage_create. This avoids flashing.
-
- * main.tcl: Changed the tk application name of gdbtk from tk
- to gdbtk.
-
-Mon Apr 27 14:18:01 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * helpViewer.tcl: (constructor) Change 'Foreward' to 'Forward' and
- calls to 'foreward' method to calls to 'foreward' method.
- (forward) changed method name from 'foreward'.
-
-Thu Apr 23 19:02:25 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * toolbar.tcl (create_menu_items): Use the new help viewer when not
- using the IDE.
-
- * helpViewer.tcl (HtmlViewer::constructor): Set default values for
- previously passed-in variables.
- (HtmlViewer::destructor): Destroy the toplevel, too.
- (HMset_image): prepend the dir name "images" to the image path.
-
-Thu Apr 23 13:31:07 1998 Jim Ingham <jingham@leda.cygnus.com>
-
- * html_library.tcl: First checkin
- * helpViewer.tcl: First checkin
- * manage.tcl (manage): Added the help veiwer to the windows
- list. Aslo compulsively alphabetized the list...
- * tclIndex Rebuilt for the new procs.
-
-Mon Apr 20 11:14:17 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * global_pref.tcl (build_win): Add font selector for the status font.
-
- * main.tcl (run_executable): Exec targets are always "loaded".
-
-Sat Apr 18 02:11:04 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * prefs.tcl (pref_read): Remove debug line.
-
- * util.tcl (toggle_debug_mode): When enabling or
- disabling debugging, also enable or disable error
- reporting and stack traces.
-
-Sat Apr 18 01:13:03 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * srcbar.tcl (_toggle_updates): Cleanup.
-
- * src.tcl (do_popup): Fix problems with selections. While
- I'm messing with this code anyway, change how it works
- so that the popup will contain the word that is under the cursor
- if nothing is selected.
-
- * toolbar.tcl (create_buttons): Bind button 3 to create
- new windows when possible.
-
- * stack.tcl (StackWin): Fix broken deiconify call.
-
- * images/[console.gif, reg.gif]: Update.
-
-Fri Apr 17 10:34:23 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (location): Don't look up the full pathname
- of each file added to the combobox.
-
-Fri Apr 17 09:58:59 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * target.tcl (default_port): New proc. Returns a default port
- based on host os.
- (startup code): Use default port to determine the default port
- to use for all hosts.
- (build_win): Only set the target if it is valid.
- For unix, use port names that correspond to the OS running.
- Change gdb/load/$target-portnum to gdb/load/$target-port (typo?)
- (get_target_list): Do not allow "exec" for cross debugging.
- (save): Do not do dismiss dialog if the target is not valid.
- (cancel): If exportcancel is set, set gdb_target_cmd to "CANCEL". This
- will allow run_executable to cancel a run if the user cancels target
- selection.
- (exportcancel): New public data.
-
- * main.tcl (set_target_name): Return status to caller so that the user
- can cancel a run request when the target selection dialog is opened.
- Do not modify gdb_exe_changed -- it has already been set proprely.
- (set_target): If gdb_target_cmd is empty, call set_target_name to
- set it.
- Allow all set_target_name commands to cancel target selection.
- (run_executable): Allow all set_target_name commands to cancel
- target selection.
- Always clear bp's at main and exit, since this proc will set them
- for all targets now.
- Save the bp number for the breakpoint installed at main and exit so
- that we can reliably delete them if the user cancels any subsequent
- target selection.
- Whenever the run is canceled, delete the breakpoints at main and exit.
- Move setting of breakpoints at main and exit from download_it here.
- (valid_target): New proc. Returns true if the given target is a valid,
- runnable target.
- (native_debugging): New proc. Returns true if this gdb is not a cross
- gdb.
- (startup code): Do not call set_target_name here -- let run_executable
- do it.
-
- * interface.tcl (gdbtk_tcl_query): Update the display when this dialog
- is dismissed.
- (gdbtk_tcl_warning): Always show warnings in the debug window.
-
- * download.tcl (download_it): Move setting breaks at main,exit to
- run_executable in main.tcl.
-
-Thu Apr 16 11:28:01 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * main.tcl (set_target_name): Add "prompt" parameter
- which allows this function to be called without it always
- prompting for the target name. This allows it to quietly
- initialize variables from preferences.
- (set_target): Remove HACK_FIRST_HACK.
- (run_executable): Check the result of [set_target].
- If it fails, prompt for a new target and repeat.
- (startup code): Remove HACK_FIRST_HACK.
- Call set_target_name to initialize gdb_target_cmd from
- preferences.
-
- * toolbar.tcl (create_menu_items): Call set_target_name
- for the target menu item. This will open the dialog and
- then set the target command correctly.
-
- * target.tcl (save): Set default target preference.
-
-Wed Apr 15 11:29:47 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (reconfig): Tell toolbar to reconfig.
-
- * global_pref.tcl (build_win): Add support for changing
- icons. Put fonts in a labelled frame.
- (update_file): Removed.
- (change_icons): Callback for icon combobox.
-
- * srcbar.tcl (_load_src_images): Remove old target and
- load images. Add reconfig parameter which reloads images.
- Use global gdb_ImageDir.
- (reconfig): New method.
-
- * floatbar.tcl (create_buttons): Remove target image.
- Use global gdb_ImageDir.
-
- * toolbar.tcl (_load_images): Use global gdb_ImageDir.
- Add reconfig parameter which reloads images.
- (reconfig): Don't rebuild everything, just reload images.
- (create_menu_items): Change "Fonts" preferences menu
- item to "Global".
-
- * prefs.tcl (pref_set_defaults): Save only basename in
- gdb/ImageDir preference. Initialize global gdb_ImageDir.
- (pref_read): Set gdb_ImageDir.
-
- * memory.tcl (build_win): Use global gdb_ImageDir.
-
- * manage.tcl (make_icon_window): Use global gdb_ImageDir.
-
- * about.tcl (build_win): Use global gdb_ImageDir.
-
- * images/icons.txt: New file; icon descriptions.
- * images/vmake.gif: New file.
- * images/vars.gif: New file.
- * images/watch.gif: New file.
- * images/bp.gif: New file.
- * images/memory.gif: New file.
-
- * images2/icons.txt: New file; icon descriptions.
-
- * toolbar_pref.tcl: Removed.
-
- * main.tcl (run_executable): If target is "exec" don't
- show target dialog unless the run command fails.
-
-Wed Apr 15 13:15:22 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * interface.tcl: (gdbtk_tcl_warning) changed to selectively
- display warnings in the GUI.
- (show_warning) new procedure. Displays warning dialogs.
-
-Wed Apr 15 07:13:04 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * src.tcl (do_popup): Fix merge casualty -- revert to pre-3/22 version.
- Don't allow tracepoint ranges to be set unless in asynch mode.
-
-Mon Apr 13 16:00:06 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * warning.tcl: new file. Implements WarningDlg class, for warning
- dialogs.
-
- * tclIndex: regenerated
-
- * Makefile: added new file warning.tcl
-
- * manage.tcl: added new window warningdlg, for ignorable warnings.
-
- * interface.tcl: (gdbtk_tcl_warning) new procedure. Creates a warning
- dialog.
- (gdbtk_tcl_ignorable_warning) new procedure. Creates a warning dialog.
- The user can choose to not have this dialog pop up again during the
- same debugging session.
-
-Mon Apr 13 13:04:20 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * stack.tcl (StackWin::constructor): Withdraw toplevel before calling
- all busy hooks; then build the window, go idle and pop the window onto
- the screen.
-
- * main.tcl (set_target_name): Use a regexp to match target names.
- Add "sds" as a target.
- (run_executable): Use gdb_immediate to run executable.
-
-Fri Apr 10 10:27:42 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * bp.tcl: changed default value of public var tracepoints to be 0.
-
-Thu Apr 9 15:21:49 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * global_pref.tcl (destructor): Delete test fonts here instead of
- in ok and cancel. This fixes bug when dialog was closed by
- clicking on close gadget.
-
- * src_pref.tcl (pick): When colors are changed, immediately
- update the dialog.
-
-Thu Apr 9 04:03:27 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * target.tcl (build_win): Bind <Return> for cancel and help buttons.
-
-Wed Apr 8 10:57:14 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * tdump.tcl: (update): show stuff on window only if current
- trace frame is not null.
-
- * variables.tcl: (build_win): get the current output-radix
- (getVariables): decide the format to display a var based on Radix
- VariableWin class: added protected member Radix
- (value): decide display based on output-radix
-
-Wed Apr 8 06:17:42 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * bp.tcl (get_actions): Open the trace dialog based on a tracepoint's
- number.
-
- * tracedlg.tcl (title): New method to title window based on mode.
- (TraceDlg::constructor): After the interp is idle, title this window.
- (build_win): Add support to simply pass a tracepoint number for editing.
-
-Tue Apr 7 12:49:45 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * variables.tcl (VariableWin): We should deiconify after withdrawing...
-
- * tracedlg.tcl (gdb_edit_tracepoint): Make necessary gdb_cmd changes
- to support new API.
- (gdb_add_tracepoint): Make necessary gdb_cmd changes to support new
- API.
-
- * tdump.tcl (update): Make necessary gdb_cmd changes to support new
- API.
- (TdumpWin::constructor): We should deiconify after we withdraw...
- Change idle callback to an update callback.
- (TdumpWin::destructor): Change idle callback to update callback.
-
- * srcbar.tcl (_open_file): Make necessary gdb_cmd changes to support new
- API.
- (create_buttons): Change all tracing commands to use gdb_immediate.
-
- * main.tcl (set_target_name): Add simulator target.
-
- * src.tcl (mode): When changing modes, clear the line to pc mappings.
- (location): Do not set current_addr if we are not running and gdb_loc
- thinks we're at 0x0.
- Clear the text-window-line to pc mapping when appropriate.
- Revert display_breaks change for SRC+ASM mode.
- (bp): Make sure mapping of PC to src window line exists before
- attempting to set breakpoints/tracepoints.
-
-Fri Apr 3 13:57:42 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * src.tcl: (do_key): added actions for key bindings in trace mode.
- (config_win): added key bindings for trace mode.
-
- * srcbar.tcl: (_set_trace) changed balloon contents for tstart/
- tstop button.
-
- * toolbar.tcl: (create_menu_items): changed names of menu items
- tstart and tstop to 'Begin Collection' and 'End Collection'.
- Changed name of Preference menu item from 'GDB' to 'Fonts'.
- Changed name of File menu item from 'Debugger Preferences' to
- 'Target Settings'.
- Commented out Preference menu item 'Download'.
- (create_buttons): tdump button, inserted text 'Td' in place of missing
- icon.
-
-
-Tue Mar 31 17:20:59 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile (TCL): Add ide.tcl.
- * tclIndex: Rebuild.
-
-Sun Mar 29 18:50:46 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * tracedlg.tcl (build_win): Enable tracepoints at assembly addresses.
- (add_action): Enable tracepoints at assembly addresses.
- (ok): Enable tracepoints at assembly addresses.
- (edit): Enable tracepoints at assembly addresses.
- (gdb_add_tracepoint): Enable tracepoints at assembly addresses.
-
- * srcbar.tcl (_open_file): If main () exists, show it.
-
- * src.tcl (display_breaks): If we are displaying breaks in assembly,
- clear the line and file specs.
- (location): Use display_breaks to insert breaks and traces.
- (bp): Rewrite. Actions are based on mode of the source window.
- (bp_line): When setting a tracepoint in assembly, pass address
- to set_tracepoint.
- (set_tracepoint): Open trace dialog specifying either line or
- address at which to set trace.
- (tracepoint_range): Rewrite. Actions are based on the mode of the
- source window. Now able to insert ranges of traces in any mode.
-
- * actiondlg.tcl (ActionDlg::constructor): Enable widget via address
- specification.
- (ActionDlg::Line): Default to empty list.
- (ActionDlg::Address): Add new memeber to enable assembly operation.
-
-Sun Mar 29 21:21:37 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * bp.tcl: add tracepoint number to tracepoint window.
- (build_win)(bp_add)(bp_select)(bp_modify)(bp_delete)
-
- * manage.tcl: (manage_init) do not open windows not related to
- current mode
-
- * tdump.tcl: (reconfig) remove it
- (config) add toplevel window, show window after it has been built.
- (update) add calls to busy and idle hooks, add third argument to
- gdb_cmd call
-
-Sun Mar 29 15:01:03 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * srcbar.tcl (_set_trace): Use gdb_immediate to execute the "tstop".
- Call run_executable when requesting a tstart.
- (_open_file): Convert all paths under cygwin32 to a posix-compliant
- pathname. Add this path to the source search list.
-
- * src.tcl (set_execution_status): Change stop messages to support
- tracing.
- (tracepoint_range): Clear the selection when we set a range of
- tracepoints.
-
- * main.tcl (set_target): Use gdb_immediate so that the console gets
- output of target command.
- (run_executable): Use gdb_immediate for run command.
- Include trace support.
-
-Sat Mar 28 15:50:01 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * srcbar.tcl (create_menu_items): Put menu items in proper order.
- (_open_file): Add exe file's directory to the default source
- search path.
-
-Sat Mar 28 14:29:08 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * srcbar.tcl (GDBSrcBar: runstop trace): If running async'ly, set
- the run/stop button by calling _set_trace. Otherwise use _set_runstop.
- (create_menu_items): Add file command to open a new exe.
- (_open_file): New method to handle requests to open a new exe.
-
- * main.tcl (set_target): If this is the first time running,
- then show the download prefs dialog.
-
-Sat Mar 28 16:30:55 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * tracedlg.tcl: (build_win) reinserted 'update idletasks' to
- display Actions frame properly.
-
- * actiondlg.tcl: (sort) moved "All Registers", "All Locals",
- "All Arguments" to beginning of list.
-
- * src.tcl: (line_is_executable) new method. Used in
- tracepoint_range.
-
-Sat Mar 28 10:58:04 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * tracedlg.tcl (gdb_edit_tracepoint): Don't let gdb_cmd call busy and
- idle hooks.
- (gdb_add_tracepoint): Ditto.
-
- * src.tcl (config_win): Change exit key binding from 'q' to 'x.'
- (goto_func): That's "file tail", not "file split."
-
- * srcbar.tcl (_set_stepi): Don't do anything if we're debugging
- asynchronously.
-
-Sat Mar 28 10:09:21 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * toolbar.tcl (create_menu_items): Change "Close Debugger"
- menu item to "Exit".
-
-Sat Mar 28 02:38:51 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * src_pref.tcl (build_win): Fix Save and Apply buttons.
- Change "Save" to "OK". Use standard_button_box.
- (save): New method, save and exit.
- (apply): New method; save and don't exit.
- (cancel): New method; cancel all changes.
-
- * src.tcl (reconfig): Reconfigure colors, too.
-
- * global_pref.tcl (Globalpref): Fix deiconify call.
- (build_win): Use standard_button_box. Set default to OK.
- Remove unused stuff. Cleanup display.
-
- * Makefile: Removed toolbar_pref.tcl.
-
- * tclIndex: Rebuilt.
-
- * srcbar.tcl (create_buttons): Make toolbar always attached
- to source window.
-
- * toolbar.tcl (build_win): Always display toolbar and
- menubar attached to source window.
-
- * prefs.tcl (pref_set_defaults): Removed toolbar prefs.
-
- * manage.tcl (manage_init): Remove hack to change preferences
- names.
- (manage_init): Remove toolbar and toolbar prefs code.
- (manage_create): Remove toolbar code.
- (manage_open): Remove toolbar code.
- (manage_find): Remove toolbar code.
- (manage_delete): Remove toolbar code.
- (manage_restart): Remove toolbar code.
-
-Fri Mar 27 19:52:53 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * toolbar.tcl (create_menu_items): Do not disable preferences.
-
- * src.tcl (reconfig): Rewrite to not destroy window.
- Symbolic fonts are a blessing!
- Pass the image handles for our breakdots to makeBreakDots.
- (file): Move breakpoint/tracepoint insertion to a separate function...
- (display_breaks): .... this one.
- (location): Move the block which fills combo boxes to top in
- case an error causes us to exit early.
- (makeBreakDot): Accept an optional image handler so that it can be
- configured instead of created.
-
- * global_pref.tcl (build_win): Carry around a list of all changable
- fonts in case more granularity is needed. (Windows cannot change
- menu font...) Disable menu font for windows.
- (ok): Check the list of changable fonts.
- (cancel): Check the list of changable fonts.
- (apply): Check the list of changable fonts.
-
- * console.tcl (reconfig): New (empty) method to handle preference
- changes.
-
-Fri Mar 27 16:08:57 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * global_pref.tcl (ok): Must use preferences for comparison. Don't
- "manage restart" unless needed.
- (cancel): Don't configure the font -- changing the preference will do
- it automagically.
-
-Fri Mar 27 14:21:02 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * toolbar.tcl (create_menu_items): Use gdbtk_quit to initiate a quit.
-
- * src.tcl (do_key): Use gdbtk_quit to initiate a quit.
-
- * prefs.tcl (pref_save): Set a default value for WIN.
- Don't "manage restart".
- (pref_set_defaults): Register a quit hook to save preferences.
- (pref_quit): Call pref_save to save all preferences when we quit.
-
- * manage.tcl (manage): Add "quit".
- (manage_init): Register a gdb_quit_hook.
- (manage_delete): Instead of guessing when and what to ask to confirm
- a quit, call gdbtk_quit.
- (manage_quit): New procedure. This is called from the gdb_quit_hook to save
- window active'ness and geometries by calling manage_save.
-
- * interface.tcl: Define "gdb_quit_hook".
- (gdbtk_quit): New procedure to call whenever a quit is requested.
-
- * global_pref.tcl (ok): Do not save preferences here.
-
-Fri Mar 27 12:21:07 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * tracedlg.tcl (TraceDlg): Wait until idle to deiconify ourselves.
-
- * global_pref.tcl (Globalpref): Withdraw window before creating and
- deiconify it when idle.
- (cancel): Let the window manager destroy us.
- (ok): Let the window manager destroy us.
-
- * target.tcl (GdbLoadPref::constructor): Withdraw window before creating
- and deiconfiy it when idle.
-
- * memory.tcl (MemWin::constructor): Withdraw window before going
- busy.
-
- * register.tcl (RegWin::constructor): Withdraw window before going
- busy.
-
- * src.tcl (SrcWin::constructor): Withdraw window before creating and
- deiconify it when idle.
-
-Fri Mar 27 10:52:30 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * target.tcl: Fix entry for temotetcp.
-
- * main.tcl (set_target_name): Build correct gdb_target_cmd.
-
-Fri Mar 27 11:23:18 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * target.tcl: (build_win) added call to change_target to
- get the correct entry widgets when the dialog is opened.
-
-Fri Mar 27 01:43:41 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * target.tcl: Add simulator and remotetcp targets to
- target database. Change all the gdb/load/$target/foo
- preferences to gdb/load/$target-foo because the prefs
- code expects gdb/section/varname. The extra slash confuses
- it.
- (set_saved): Add saved_portname and saved_hostname for TCP.
- (write_saved): Add saved_portname and saved_hostname for TCP.
- (fill_rates): change states of hostname and portnum entry widgets.
- (fill_targets): Add fake remotetcp entry in target list.
- (change_baud): When switching between tcp and serial targets
- pack or forget the appropriate widgets.
- (build_win): Create hostname and port number entry widgets.
- (change_target): Update hostname and portnum widgets.
-
- * prefs.tcl (pref_save): Add 'load' as a section to be saved.
- Set gdb/load/target to 'exec'.
-
- * manage.tcl (_manage_null_handler): Deleted.
-
- * download.tcl (download_it): Don't call IDE functions
- unless GDTK_IDE is set.
-
- * main.tcl (gdbtk_tcl_preloop): Get name of executable
- if one was supplied on command line.
- (set_target_name): Save target name as preference.
- (run_executable): Call set_target.
-
-Fri Mar 27 00:23:46 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * src.tcl (location): Catch error of getting location of main.
-
- * prefs.tcl (pref_set_defaults): Add gdb/toolbar/active.
- Add trace for global/fixed font to update src-font.
- (pref_read): Add code to deal with global preferences.
- (pref_save): Add code to deal with global preferences.
- (pref_src-font_trace): Trace function which set src-font to global/fixed.
-
- * global_pref.tcl (build_win): Relayout font selectors and add a selections
- for menu and default fonts.
- Rename Save to OK and Quit to Cancel, renaming methods, too.
- (font_changed): Add arguments to facilitate multiple fonts.
- (reconfig): Define as empty.
- (ok): Rewrite to facilitate multiple fonts.
- (cancel): Rewrite to facilitate multiple fonts.
- (apply): Rewrite to facilitate multiple fonts.
-
- * manage.tcl (manage_restart): Call gdbtk_idle to reset the toolbar after
- it is recreated.
-
-Thu Mar 26 23:49:26 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * tdump.tcl, tfind_args.tcl: New files.
-
-Thu Mar 26 22:29:28 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * tracedlg.tcl: (config) commented out grab. Made window non-modal.
- (destructor) do not release grab.
- (done) do not reinstall grab.
-
- * toolbar.tcl: (create_buttons) changed buttons for the tracepoint
- case to open tdump window, and tracepoint window.
- (create_menu_items) change Run menu to do tstart, tstop for tracepoint
- case. Changed View menu to show tracepoint window for tracepoint case.
- Changed 'Control' menu to 'Trace' menu for tracepoint case, with
- tfind commands.
-
- * srcbar.tcl: (create_buttons) changed the buttons for the
- tracepoint case to do tfind commands.
- (_set_trace) new method. Toggles tstart/tstop button.
-
- * src.tcl: (config) decide defatul action for left click on
- source based on 'mode' preference.
- (bp_line) ditto.
- (config_win) modify pop upmenu on source window to display only
- 'set tracepoint'.
-
- * prefs.tcl: (pref_set_defaults) added preference gdb/mode for
- tracepoints or breakpoint display.
-
- * manage.tcl: (manage_init) added tracepoint window, args windows
- for tfind, tdump window.
- (manage_open) use eval in call to manage_create.
-
- * bp.tcl: (build_win) added PassCount to the display and modified
- the menus for the tracepoint case to display actions.
- (bp_add) display pass_count too in the tracepoint list.
- (bp_select) changed indexes of menu entries to be entries names.
- added field passcount to selection for tracepoints.
- (bp_modify) added passcount for tracepoints.
- (bp_delete) added passcount for tracepoints.
- (get_actions) new method
- Added new public member "tracepoints" to decide which kind of window
- needs to be displayed.
-
- * Makefile: added new files tfind_args.tcl and tdump.tcl.
-
- * tclIndex: regenerated
-
-Thu Mar 26 14:23:00 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * main.tcl (set_target_name): Make target dialog always
- on top.
-
- * target.tcl (build_win): Bind Return to save.
- (GdbLoadPref): Denter dialog on screen.
-
-Thu Mar 26 14:16:36 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * memory.tcl (update_address): Catch errors to update_addr so that
- we do not error and leave the GUI busy.
-
-Thu Mar 26 13:51:58 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * toolbar.tcl (create_menu_items): Remove "Cygnus
- Foundry Tour" and "Submit a PR" from the menu.
-
- * src.tcl (file): Set title to GDB.
-
- * manage.tcl (manage_init): Set About name.
-
- * main.tcl (set_target): Set title to GDB.
-
- * interface.tcl (gdbtk_tcl_query): Set title correctly.
-
- * Makefile: Remove download_pref.tcl.
-
-Thu Mar 26 11:33:02 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * Makefile: Add target.tcl to list of sources.
-
- * tclIndex: Rebuilt.
-
- * target.tcl (GdbLoadPref): Trace changes to gdb_loaded.
- (target_trace): New procedure. This is invoked by a write trace
- to gdb_loaded.
-
- * interface.tcl (gdbtk_busy): New procedure to run all busy hooks
- (gdbtk_update): New procedure to run all update hooks
- (gdbtk_idle): New procedure to run all idle hooks. Also runs the
- no inferior hooks if no inferior has been created.
- Rename old gdb_idle_hook to gdb_update_hook for clarity.
- Change all references of run_hooks to use gdbtk_busy, gdbtk_idle, and
- gdtk_update.
-
- * download.tcl: Make busy/update/idle hook changes.
-
- * main.tcl: Make busy/update/idle hook changes.
- (set_exe): Clear gdb_loaded whenever a new exec file is selected.
-
- * manage.tcl: Make busy/update/idle hook changes.
-
- * mem_pref.tcl: Make busy/update/idle hook changes.
-
- * memory.tcl: Make busy/update/idle hook changes.
-
- * register.tcl: Make busy/update/idle hook changes.
-
- * src.tcl: Make busy/update/idle hook changes.
-
- * stack.tcl: Make busy/update/idle hook changes.
-
- * variables.tcl: Make busy/update/idle hook changes.
-
- Merged with Foundry 1.0:
- Wed Mar 25 14:22:28 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * register.tcl (reconfig): Call busy and idle hooks.
-
- * memory.tcl (update_address): Call busy and idle hooks.
-
- Wed Mar 25 11:38:49 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (location): Fix typo.
-
- Tue Mar 24 21:03:01 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (location): If gdb_listfuncs returns an error, display
- an error message that says the file was either not found or contained
- no debugging information.
- (location): When disassembling, put busy and idle calls before
- and after. Set "NoRun" to indicate the busy hook should not
- display the stop sign because the target isn't running, GDB may
- just take a few seconds to do the disassembly.
- (busy): Hack to support NoRun mode.
-
- * srcbar.tcl (_set_runstop): Add another case to disable the
- Run icon instead of changing it to a stop sign.
-
- * main.tcl (set_exe): If the file has no debugging information,
- display an error message and exit. This should only happen with
- intentionally stripped files.
-
- Tue Mar 24 17:04:36 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * mem_pref.tcl (build_win): Keep track of all widgets that should be
- disabled when busy.
- (busy): New method which disables anything that could cause trouble.
- (idle): New method which re-enables anything that "busy" disables.
- (apply): Call busy and the busy hooks before doing update of memory
- window. Then call idle and the idle callbacks when we are done.
-
- Tue Mar 24 12:07:52 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (location): Filter out .s and .S files because
- Foundry does not yet support assembly source debugging.
-
- Tue Mar 24 08:50:46 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * register.tcl (but3): Don't pop up the right-click menu if we are
- running.
-
- * download.tcl (download_it): Force an update so that all windows
- are created and get their busy hooks called.
-
- * console.tcl (invoke): Make sure we are not running.
- (busy): New method.
- (idle): New method.
-
- Mon Mar 23 15:00:57 1998 Drew Moseley <dmoseley@cygnus.com>
-
- * src.tcl: (location): Assume we are locating main() if the target is
- not running and we can't figure out which function we are in.
-
- * main.tcl (run_executable): Change to assembly mode when we try to
- load a blank file. This usually means that source level debugging
- was not enabled when this file was compiled.
-
- Reverse the parameters to src method::location() method invocation so
- they are in the correct order
-
- Mon Mar 23 12:04:23 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (update): Comment out debug lines.
-
- * main.tcl (set_target_name): If the target name changes,
- force a new "file" command to be issued by setting
- gdb_exe_changed.
-
- Sat Mar 21 00:09:37 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * download.tcl (download_it): Remove call to run_idle_hooks.
-
- * src.tcl (no_inferior): Call set_execution_status.
-
- * bp.tcl (bp_modify, bp_delete): Change to take an entry
- number.
- (update): Sometimes "create" calls are for existing
- breakpoints and should be "modified" calls. Detect this
- and pass the entry number to bp_delete or bp_modify.
-
- Fri Mar 20 22:50:55 1998 Tom Tromey <tromey@cygnus.com>
-
- * console.tcl (insert): Remove all \r characters from string to be
- inserted.
-
- Fri Mar 20 01:55:14 1998 Keith Seitz <keiths@cygnus.com>
-
- * watch.tcl (validateEntry): Fencepost for running.
-
- * variables.tcl (VariableWin): Use "add_hook_before".
- (idle_done): New gdb_idle_done_hook for this object.
- (update): Don't call enable_ui here.
- (enable_ui): Change cursor for this object.
- (disable_ui): Ditto.
- (no_inferior): Ditto.
-
- * toolbar.tcl (GDBToolBar): Use "add_hook_before".
-
- * stack.tcl (StackWin): Use "add_hook_before".
- (StackWin): Encapsulate creation of this object with
- busy and idle hooks so that the user gets some feedback and to
- prevent other widgets from attempting to update.
- (update): Add some sanity checking so that we do not update with
- garbage in the window.
- (idle_done): New gdb_idle_done_hook for this object.
- (change_frame): Fencepost for running.
- (busy): New gdb_busy_hook for this object.
- (no_inferior): New gdb_no_inferior_hook for this object.
- (cursor): New helper method to set the cursor of all subwindows.
-
- * src.tcl (SrcWin): Use "add_hook_before".
- (toggle_updates): Use "add_hook_before".
- (stack): Encapsulate creation of the stack object with
- busy and idle hooks so that the user gets some feedback and to
- prevent other widgets from attempting to update.
- (idle_done): New gdb_idle_done_hook for this object.
- (set_execution_status): When Program is Terminated..., reset
- gdb_running.
- (config_win): Pull mouse pointer cursor assignments in text widget
- out into a separate function.
- (bind_src_tags): New method to set the cursor for the window's text
- widget tags.
- (disable_ui): Call bind_src_tags to change cursor to "watch".
- (enable_ui): Ditto.
- (no_inferior): Ditto.
- (cursor): New helper method to set the cursor of all subwindows.
-
- * register.tcl (RegWin): Encapsulate creation of this object with
- busy and idle hooks so that the user gets some feedback and to
- prevent other widgets from attempting to update.
- Use "add_hook_before".
- (reg_select_up): Fencepost for running.
- (reg_select_down): Fencepost for running.
- (reg_select_right): Fencepost for running.
- (reg_select_left): Fencepost for running.
- (reg_select): Fencepost for running.
- (edit): Fencepost for running.
- (idle_done): New gdb_idle_done_hook for this object.
- (busy): New gdb_busy_hook for this object.
-
- * memory.tcl (MemWin): Encapsulate creation of this object with
- busy and idle hooks so that the user gets some feedback and to
- prevent other widgets from attempting to update.
- Use "add_hook_before".
- (create_prefs): Fencepost for running.
- (idle_done): New gdb_idle_done_hook for this object.
- (edit): Fencepost for running.
- (newsize): Fencepost for running.
- (busy): New method to block UI while running inferior.
- (do_popup): Fencepost for running.
- (cursor): New method to change the cursor definition for this
- object.
-
- * manage.tcl (manage_init): Use "add_hook_before".
-
- * main.tcl (run_executable): Use "run_idle_hooks".
-
- * ide.tcl (gdbtk_ide_init): Don't create the source window here.
-
- * interface.tcl: Define new hook "gdb_idle_done_hook" -- to be called
- when the debugger does completely idle to allow input to objects
- again.
- (run_idle_hooks): New procedure to wrap the idle hooks.
- (gdbtk_tcl_idle): Split the idle callbacks into two parts: one that
- only updates widgets and one that tells widgets to accept input
- again.
-
- * download.tcl (Download): Use add_hook_before instead of add_hook.
- (download_it): Use run_idle_hooks instead running the idle hooks
- directly.
-
- * bp.tcl (BpWin): Use add_hook_before instead of add_hook.
-
- Wed Mar 18 18:59:00 1998 Sean Mahan <smahan@cygnus.com>
-
- * download.tcl (download_hash): Added an 'update' so the
- status bar would work on an MBX board.
-
- Wed Mar 18 01:50:19 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * prefs.tcl (pref_set_defaults): Define gdb/src/tab_size
- to default to a tab size of 4.
-
- * src.tcl (setTabs): Set up tabs correctly.
-
- * download.tcl (download_it): Set correct state after
- user cancels download.
-
- Tue Mar 17 12:30:23 1998 Tom Tromey <tromey@cygnus.com>
-
- * console.tcl (throttle): New public variable.
- (insert): Delete initial text when past the throttle limit.
-
- Tue Mar 17 13:31:38 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * ide.tcl (gdb_exit_check): Do not let gdb confirm the quit if we
- are downloading.
-
- Tue Mar 17 13:25:22 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * console.tcl (insert): Force update of screen.
-
- Mon Mar 16 10:22:00 1998 Sean Mahan <smahan@cygnus.com>
-
- * toolbar.tcl (create_menu_items): Added 'Submit PR' to the
- help menu. For PR15334
-
- Sun Mar 15 15:01:27 1998 Tom Tromey <tromey@cygnus.com>
-
- * interface.tcl (gdbtk_tcl_fputs): Don't call update.
-
- * src.tcl (build_win): Changed capitalization on balloon help.
-
- Fri Mar 13 10:01:48 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * src.tcl (mode): Add a horizontal scrollbar to the assembly pane
- of SRC+ASM mode when necessary.
-
- Fri Mar 13 00:47:59 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * main.tcl (run_executable): Don't force downloads for sim.
-
- * download.tcl (download_it): Don't bother calling calling set_baud
- for sim.
-
- * manage.tcl (manage_delete): Deregister the window before deleting
- it to prevent those annoying bgerror messages.
-
- Thu Mar 12 15:28:22 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * download.tcl (Download): Define a list of all sections.
- (update_download): Loop through the list of sections, updating the
- current section's progress and marking any previously loaded sections
- as done, if needed.
- (do_download_hooks): New procedure.
- (download_hash): Use a timer to force update of GUI at regular
- intervals -- GUI should not update 10,000 times a second.
-
- Tue Mar 10 06:32:24 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * interface.tcl (gdbtk_tcl_query): Allow caller to specify the default
- button. If none is specified, it is set to 'yes'.
-
- * manage.tcl (manage_delete): While inferior is running, gdb_cmd returns
- immediately, so we need to manually ask the user if he wants to quit.
-
- Tue Mar 10 10:52:09 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * download.tcl (download_it): Change where old breakpoints
- are cleared.
- (done): Set focus on "OK" or delete.
-
- Tue Mar 10 05:23:42 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * src.tcl (do_key): New method to wrap all keypresses.
- (mode): Use do_key method.
- (config_win): Use do_key method.
-
- Mon Mar 9 23:06:21 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * src.tcl (download_progress): Add an optional message
- parameter to the function for use with error messages.
- Don't set_status twice on cancel. Call update if
- load fails.
-
- * download.tcl (done): If 'msg' is set, it should be
- displayed and download has failed. Update all source
- windows.
- (cancel): Don't delete window here. Let it get deleted
- after call to method 'done'.
- (download_it): If download failed, call done method
- with error message. Force reissue of target command.
- Handle set_target failures.
-
- * main.tcl (set_target): Check result of target command
- to see if the user cancelled the command.
- (run_executable): Use gdb_program_has_run instead of
- gdb_app_running, which was removed everywhere. Force
- download when gdb_program_has_run. If user cancels download
- before the download starts, preserve previous state.
-
- Mon Mar 9 15:06:21 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * console.tcl (invoke): After gdb_immediate() finishes
- check to see if the window is still there.
-
- * main.tcl: Initialize gdbtk_state(console).
-
- * interface.tcl: Remove some unused globals. Replace gdb_console
- with gdbtk_state(console).
- (gdbtk_tcl_readline_*): Don't set gdbtk_state(console) every
- time. Let manage.tcl do it.
-
- * manage.tcl (manage_create): Replace gdb_console with
- gdbtk_state(console). Check for windows that were deleted,
- but not actually gone yet.
- (manage_delete): Replace gdb_console with gdbtk_state(console).
-
- Mon Mar 9 09:08:11 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * watch.tcl (build_win): Tweak layout of the entry and button,
- switching to grid geometry manager.
-
-Thu Mar 26 01:22:23 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * target.tcl: New file. Implements target dialog.
-
- * srcbar.tcl (_set_run): Remove because it was no longer used.
-
- * util.tcl (freeze): Only call idewindow_freeze when
- using the IDE.
-
- * prefs.tcl (pref_set_defaults): Set default tab size to 4.
-
- * src.tcl (location): If gdb_listfuncs cannot find
- functions, display error message.
- (setTabs): Set real tabs according to gdb/src/tab_size.
-
- * main.tcl (set_exe): Check to see if file was stripped.
- Cannot debug without some symbols.
- (set_target_name): If target changes, set gdb_exe_changed
- so new "file" command will be sent. When not using IDE,
- display target requester.
-
- * manage.tcl: Set loadpref to GdbLoadPref.
-
-Wed Mar 25 14:13:52 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * manage.tcl (manage_init) added tracedlg and actiondlg windows.
-
-Wed Mar 25 14:08:51 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * interface.tcl (gdbtk_tcl_pre_add_symbol): New procedure.
- (gdbtk_tcl_post_add_symbol): New procedure.
-
- * src.tcl (set_execution_status): Use "set_status" to write to the
- status bar, not "set Status".
-
-Mon Mar 23 13:41:39 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * memory.tcl: Changes to support new faster gdb_get_mem().
- (do_popup): Add "Go To" and Open New Window" to the popup
- menu.
-
-Sat Mar 21 21:18:06 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- Merged changes from Foundry (list follows in reverse chronological
- order)
-
- Sean Mahan <smahan@cygnus.com>
- * download_pref.tcl (help): Added method to display context
- sensitive help.
-
- Keith Seitz <keiths@onions.cygnus.com>
- * src.tcl (bp_line): Don't insert breakpoints if we're running.
- (disable_ui): Disable selections. Workaround for TkTextDisplay bug.
- (enable_ui): Enable selections.
- (no_inferior): Enable selections.
-
- Tom Tromey <tromey@cygnus.com>
- * toolbar.tcl (create_menu_items): Use gdb_immediate, not gdb_cmd,
- so that output appears in console window.
- * src.tcl (bp_line): Use gdb_immediate when running "continue".
- (mode): Use gdb_immediate, not gdb_cmd, so that output appears in
- console window.
- (config_win): Likewise.
- * srcbar.tcl (create_buttons): Use gdb_immediate, not gdb_cmd, so
- that output appears in console window.
- * console.tcl (lvarpush): Removed.
- (_insertion): New method.
- (_saved_insertion): New private variable.
- (constructor): Don't let user use mouse to put cursor outside
- command line.
- * src.tcl (build_win): Use global/status font on status bar.
- * interface.tcl (gdbtk_tcl_query): Moved vwait out of `if'
- statement -- must vwait in all cases, not just in case when
- question is actually asked.
-
- Keith Seitz <keiths@onions.cygnus.com>
- * variables.tcl (deleteTree): Reset Locals and ChangeList, too.
-
- Martin M. Hunt <hunt@cygnus.com>
- * toolbar.tcl (enable_ui): Don't always set stepi and nexti
- buttons on.
-
- Keith Seitz <keiths@onions.cygnus.com>
- * toolbar.tcl (no_inferior): Instead of enabling/disabling the
- individual menus on Windows, disable each menu's entries.
- (disable_ui): Ditto.
- (enable_ui): Ditto.
-
- Keith Seitz <keiths@onions.cygnus.com>
- * manage.tcl (manage_delete): Catch destruction of the src window when
- downloading and ask user if this is what he intends.
- (manage_init): Don't install idle, busy, and no_inferior hooks. Allow gdb
- to exit whenever the user wants to.
- * srcbar.tcl (cancel_download): download_cancel_ok is a global.
-
- Martin M. Hunt <hunt@cygnus.com>
- * ide.tcl (receive_file_changed): Minor fix when a new
- executable is built when GDB is running.
-
- Martin M. Hunt <hunt@cygnus.com>
- * bp.tcl (bp_delete): If a selected breakpoint is deleted,
- set "selected" to 0.
-
- Keith Seitz <keiths@onions.cygnus.com>
- * srcbar.tcl (cancel_download): New method to cancel downloads. Needed
- to cancel download dialog-enabled downloads.
- (_set_runstop): Call cancel_download.
- * download.tcl (Download::constructor): Make sure to set the toolbar
- properly so that the Stop/Cancel button cancels a download.
- (download_it): Force the CANCEL to all download_progress_hook's.
- * src.tcl (download_progress): Add special section identifier for
- canceled downloads.
- (SrcWin::destructor): Pass the state_hook's command to remove_hook.
-
- Sean Mahan <smahan@cygnus.com>
- * toolbar.tcl (create_menu_items): Help menu follows "Help Topics"
- standard (PR 15082).
-
- Tom Tromey <tromey@cygnus.com>
- * interface.tcl (gdbtk_tcl_query): Consolidate Windows case; must
- `vwait' even when question is already being asked.
-
- Martin M. Hunt <hunt@cygnus.com>
- * interface.tcl (gdbtk_tcl_query): Only use ide_messageBox
- on Windows.
-
- Martin M. Hunt <hunt@cygnus.com>
- * register.tcl: Catch several gdb_register commands
- so errors don't bother us.
- * variables.tcl (destructor): Remove all hooks.
-
- Martin M. Hunt <hunt@cygnus.com>
- * download.tcl (done): Don't let seconds be zero.
- * manage.tcl (manage_disable_all): Don't ever disable "."
-
- Martin M. Hunt <hunt@cygnus.com>
- * main.tcl (run_executable): Removed delete_breakpoints
- stuff.
- * download.tcl (download_it): Removed delete_breakpoints
- stuff. Clear any breakpoints at exit and main before
- restarting. They get set again automatically if the
- preferences say they should.
- (Download): Don't call freeze on download window, because
- it stops updating when we do.
- (update): Renamed to update_download to avoid confusion.
- * src.tcl (mode): When changing from SRC+ASM to another
- mode, unset "awin".
- (bp_line): On a "Continue to Here" don't try to
- restore breakpoints that didn't exist before.
-
- Tom Tromey <tromey@cygnus.com>
- * interface.tcl (gdbtk_tcl_query): Set -parent on dialog.
-
- Martin M. Hunt <hunt@cygnus.com>
- * src.tcl (build_win): Set mode combobox width to 10.
- (goto_func): If a function name is an unmangled one,
- it is a C++ method so don't prepend filename when
- setting location. This is a kludge, but we are limited
- by the symtax the GDB command line parser will accept.
- (location): When loading function combobox,
- remember which names are unmangled. Change width of
- function combobox dynamically to better accomodate
- those long C++ names.
-
- Martin M. Hunt <hunt@cygnus.com>
- * src.tcl (bp_line): When doing a "continue to here",
- first save states of all breakpoints then restore
- when finished.
- (config_win): Uncomment "Continue to Here" menu item.
-
- Martin M. Hunt <hunt@cygnus.com>
- * src.tcl (location): Use ide_cygwin_path on Windows
- to change project root to the right format.
-
- Drew Moseley <dmoseley@cygnus.com>
- * main.tcl: (run_executable): Modified to call download_it
- with the parameter indicating whether to delete breakpoints.
- If GDB is loaded ($gdb_loaded == 1) and the app is running
- ($gdb_app_running == 1) then we don't delete the breakpoints.
- All other situations will require deleting the breakpoints.
- This allows us to redownload and run the same executable w/o
- losing the breakpoint information.
- * download.tcl: (download_it): Modified this routine to
- take a boolean parameter indicating whether to delete
- the breakpoints before downloading.
-
- Sean Mahan <smahan@cygnus.com>
- * toolbar.tcl (create_menu_items): Couldn't use 'helpdir'
- variable so used Paths(prefix) and added help.
-
- Martin M. Hunt <hunt@cygnus.com>
- * src.tcl (set_state): Turn off debugging.
- (location): Map windows pathnames into form GDB uses
- internally.
- (bp_line): Use gdb_set_bp to set breakpoints on
- a specific line in a file.
-
- Martin M. Hunt <hunt@cygnus.com>
- * stack.tcl (update): Skip over any empty elements
- in parsing the stack line to get the correct PC.
-
- Keith Seitz <keiths@onions.cygnus.com>
- * download.tcl (download_it): Run gdb_busy_hook's.
- If anything fails, make sure that the no_inferior_hook's are run.
- Note errors that occur during downloading, ignoring the
- "cancelled download" message. If an error occurs, set the
- global gdb_download_error to the error message so that it can
- be shown to the user later. Don't run the idle hooks if nothing
- * src.tcl (download_progress): Do not rely on the value of
- "download_cancel_ok" -- it is cleared in download_it.
- Reorder code to take advantage of gdb_loaded and gdb_download_error
- to determine if a download was canceled, successful, or failed due
- to an error. Truncate the "DOWNLOAD FINISHED:" message so that it
- will fit into the status bar given the recent font changes.
- (busy): If gdb_loaded, set the status bar to read "Program is running."
- Otherwise, don't touch it.
- (config_win): Comment out "Continue to here" right-click menu item
- until it can properly preserve breakpoint state.
- (no_inferior): Configure the toolbar to -runstop 0. All of these
- toolbar references should be done via the busy hook by the SrcBar
- class itself someday...
-
- Sean Mahan <smahan@cygnus.com>
- * toolbar.tcl (create_menu_items): Added ability to launch
- the tour help file from the help menu.
-
- Martin M. Hunt <hunt@cygnus.com>
- * manage.tcl, ide.tcl: Disable some debugging messages.
-
- Martin M. Hunt <hunt@cygnus.com>
- * src.tcl (set_state): When loaded state changes, invalidate
- current file.
-
- Martin M. Hunt <hunt@cygnus.com>
- * src.tcl (SrcWin): Change default title to "Foundry Debugger".
- (build_win): Change name and function combobox heights to 0.
- Set status bar font to src-font.
- (name): Rewrite to use _files array. This array allows us
- to map full pathnames with short names that are easily displayed.
- (file): Call set_name to update name combobox.
- (location): Call set_name to update name combobox. When setting
- the function combobox, adjust height to a maximum of 10. CLear
- filename combobox if there is no valid filename. When setting the
- filename combobox, adjust height to a maximum of 10. Create
- _files array mapping full pathnames to short names. For IDE, use
- vmake/source-files and project-root to build full pathnames.
- When changing mode, save current line. Don't mark current line
- with PC_TAG if gdb_running is 0.
- (set_name): New function. Update the name combobox, using
- the short name from _files if available.
- * bp.tcl (bp_modify, bp_add): Use short file name from
- _files global array.
-
- Keith Seitz <keiths@onions.cygnus.com>
- * variables.tcl (VariableWin): Add idle, busy, and no inferior hooks.
- (selectionChanged): Use Running fencepost.
- (updateNow): Use Running fencepost.
- (editEntry): Use Running fencepost.
- (postMenu): Use Running fencepost.
- (setDisplay): Use Running fencepost.
- (open): Use Running fencepost.
- (close): Use Running fencepost.
- (enable_ui): Define new procedure to install fencepost.
- (disable_ui): Define new procedure to remove fencepost.
- (no_inferior): Define new procedure to remove fencepost and clear tree.
- (Running): New protected data. This is used as a fencepost in this object.
- * main.tcl: Run gdb_no_inferior_hook's when done initializing.
- * src.tcl (disable_ui): Disable the combo boxes, too.
- (enable_ui): Enable the combo boxes, too.
- * download.tcl (download_it): Run gdb_no_inferior_hooks, too.
-
- Martin M. Hunt <hunt@cygnus.com>
- * main.tcl: Move IDE help initialization to ide.tcl.
- * ide.tcl (gdbtk_ide_init): Move help system
- initialization here.
-
- Sean Mahan <smahan@cygnus.com>
- * main.tcl: Initialized help sub-system for the ide.
-
- Tomy Hudson <thudson@thudson5.cygnus.com>
- * prefs.tcl: Changed COM1 back to com1 per Martins request.
-
- Martin M. Hunt <hunt@cygnus.com>
- * src.tcl (file): Call gdb_loadfile to do most of the
- work.
-
- Tomy Hudson <thudson@thudson5.cygnus.com>
- * prefs.tcl: Changed "com1" to "COM1"
-
- <dmoseley@cygnus.com>
- * main.tcl: (run_executable): Added code to test for app_running.
- If the app has been started and the user requests a "run", then
- we must redownload to ensure that the global initialized data is
- handled properly.
- * download.tcl: (download_it): See above note.
-
- Sean Mahan <smahan@cygnus.com>
- * toolbar.tcl (create_menu_items): changed "Tutorial" to "Cygnus
- Foundry Tour" in the Help menu.
-
- Tom Tromey <tromey@cygnus.com>
- * memory.tcl (mem_del): "destroy forget" is invalid; use "destroy"
- instead.
- * interface.tcl (gdbtk_tcl_query): Only ask each question once.
-
- Martin M. Hunt <hunt@cygnus.com>
- * manage.tcl (manage_init): Initialize new global
- _manage_enabled_flag to 1.
- (manage_disable_all): Only disable if
- _manage_enabled_flag is 1.
- (manage_enable_all): Only enable if _manage_enabled_flag
- is not 1.
-
- Martin M. Hunt <hunt@cygnus.com>
- * manage.tcl (manage_iconify): Check for toplevel
- of "." before doing anything.
- * main.tcl (set_target_name): Use "pref getd" in
- case port is undefined.
-
- Keith Seitz <keiths@onions.cygnus.com>
- * toolbar.tcl (GDBToolBar::constructor): Add appropriate idle, busy, and
- no-inferior hooks for this class.
- (create_buttons): Add all buttons to two lists so we can disable or enable
- them according to the inferior's run state.
- (create_menu_items): Same with the menus.
- * srcbar.tcl (create_buttons): Add all buttons to two lists so we can disable
- or enable them according to the inferior's run state.
- (create_menu_items): Same with the menus.
- (_set_run): Don't do anything to disable UI elements: the idle, busy, and
- no_inferior hooks will take care of it.
- (_set_runstop): Don't do anything to disable UI elements: the idle, busy, and
- no_inferior hooks will take care of it.
- * manage.tcl (manage): Add two new manage protocols: enable_all and
- disable_all.
- (manage_disable_all): New procedure to disable window manager functions
- such as window deletions.
- (manage_enable_all): New procedure to undo any changes made by
- manage_disable_all.
- (_manage_set_property): New helper procedure for above.
- (manage_init): Install this module's idle, busy, and no_inferior hooks.
- * src.tcl (SrcWin::constructor): Add new no_inferior hook.
- (disable_ui): New procedure to disable ui elements.
- (enable_ui): New procedure to enable_ui elements.
- (no_inferior): New procedure to reset GUI.
- (SrcWin::Running): New protected variable. A fencepost for the above
- hooks.
- (do_popup): Use above fencepost.
- (showBalloon): Use above fencepost.
- * main.tcl: Define new hook " gdb_no_inferior_hook".
-
- Martin M. Hunt <hunt@cygnus.com>
- * src.tcl (SrcWin): Immediately set title name
- to "Debugger".
-
- Martin M. Hunt <hunt@cygnus.com>
- * download_pref.tcl (LoadPref): Make window transient.
-
- Martin M. Hunt <hunt@cygnus.com>
- * register.tcl (build_win): Set scrollbars to auto
- on Unix.
- * stack.tcl (build_win): Set scrollbars to auto
- on Unix.
- * memory.tcl (build_win): Restore proper resize
- functioning on Unix.
- * bp.tcl (build_win): Fix problem with merging Tom's
- sizebox change. Fix Tom's change so scrollbars aren't
- always on on Unix, at least.
- * interface.tcl (gdbtk_pc_changed): Called from GDB when
- the PC is changed with a "set $pc" command.
- (gdb_show_command, gdb_args, gdb_stack_trace,
- gdb_docstring,gdb_stack_depth, gdb_stack_frame): Removed.
-
- Martin M. Hunt <hunt@cygnus.com>
- * memory.tcl (destructor): Destroy memory prefs window
- if one exists.
- (create_prefs): Make prefs window transient.
- * util.tcl (freeze): Make keep_raised an option.
-
- Martin M. Hunt <hunt@cygnus.com>
- * ide.tcl (receive_file_changed): Ignore object file
- changes. On source file changes, put up a messagebox
- warning the user. Change both messageboxes to be system
- modal, which seems to just mean they will be on top.
-
- Martin M. Hunt <hunt@cygnus.com>
- * download.tcl (download_it): Reset download_cancel flag.
- * src.tcl: Create "tagtype" as a protected variable
- containing the current tag mode; PC, BROWSE, or STACK.
- Change all functions to use it.
- (mode): Fix problem with changing modes
- while browsing stack functions.
- (name): Add good filenames to the combobox history.
- (SrcWin): Turn off automatic history in name combobox.
- (file): If filename is not found, but is part of sources,
- put it in combobox followed by "(not found)"
- (location): Reorder and restructure this function to
- be more robust when files cannot be found or mode changes
- are required. When stack browsing, highlight PC if it is
- in the displayed area, and fix the off-by-1 problem
- with PCs saved on the stack.
- (update): Use lassign and new tagtype variable.
- (set_execution_status): Change message formats for MIXED
- and SRC+ASM modes.
- (mode): Update toolbar and mode display before calling
- location. Use tagtype so tag mode is preserved.
- * bp.tcl (bp_type): Deselect line before changing its
- type.
-
- Tom Tromey <tromey@cygnus.com>
- * bp.tcl (build_win): Use built-in sizebox of tixScrolledWindow.
- * watch.tcl (console): Set Sizebox to 0.
- * memory.tcl (build_win): Use built-in sizebox of
- tixScrolledWindow.
- * stack.tcl (build_win): Use built-in sizebox of
- tixScrolledWindow.
- * locals.tcl (build_win): Don't create sizebox.
- * variables.tcl (build_win): Use built-in sizebox of
- tixScrolledWindow.
- (Sizebox): New instance variable.
- * console.tcl (console): Use built-in sizebox of
- tixScrolledWindow.
- * register.tcl (build_win): Use built-in sizebox of
- tixScrolledWindow.
-
- Martin M. Hunt <hunt@cygnus.com>
- * main.tcl (set_target_name): Set port based on target
- name.
- (set_baud): Set baud rate based on target name.
- * srcbar.tcl: Change shortcuts to use () instead of <>.
- * download.tcl (download_it): Set download_verbose
- based on target name.
- * src.tcl (build_win): Set height to 0 for name and
- function comboboxes.
- (location): In IDE, use vmake/source-files property
- to fill name combobox.
-
- Keith Seitz <keiths@onions.cygnus.com>
- * variables.tcl (build_win): Set the variable window's
- default size to 40 chars.
-
- Martin M. Hunt <hunt@cygnus.com>
- * src.tcl (set_state): When loaded state changes,
- set program_has_run state to 0.
-
- Martin M. Hunt <hunt@cygnus.com>
- * src.tcl (set_status): Rewrite to handle temporary
- status messages.
- (set_execution_status): New function. Put a message
- about the current program status in the status bar.
- (trace_help): New function. Trace on changing ballon
- help messages. Write them in the status bar.
- * main.tcl (set_target): Comment out changing cursor.
-
- Martin M. Hunt <hunt@cygnus.com>
- * variables.tcl (changeValue): Trim string before
- comparing with "".
-
- Keith Seitz <keiths@onions.cygnus.com>
- * console.tcl (constructor): Set no wrap mode.
- * src.tcl (SrcWin::name): Make sure we ask gdb where the source file
- is before asking the source window to open it.
- (SrcWin::file): Do not ask gdb where the file is -- someone else
- already has. Set the file selector to the filename only once and
- only if successful finding the file.
- (SrcWin::location): Add flag idicating that a file load has failed.
- Resolves recursive loop with SrcWin::mode and SrcWin::location.
- Make sure the file and function selectors are filled only once.
- (SrcWin::mode): Add error flag to indicate that a file load failed.
- Resolves recursive loop with SrcWin::location.
- Make sure we exit with the proper mode set on the source window.
- (SrcWin::current_addr): Define a default value of 0x0.
- * console.tcl (invoke): Use new gdb_immediate command instead of
- gdb_cmd.
- (insert): Add all errors to the end of the text widget.
- Send errors to end of text widget, not insertion pt.
- (einsert): Send errors to end of text widget, not insertion pt.
- * interface.tcl (gdbtk_tcl_readline_begin): Insert message into
- command window so that the user sees messages like "Enter commands,
- one per line. Enter 'end' when finished."
- * main.tcl: Initialize gdbtk_state(readline).
-
- Tom Tromey <tromey@cygnus.com>
- * manage.tcl (manage_open): Force focus onto toplevel.
- * mem_pref.tcl (build_win): Don't put <Return> binding on
- toplevel; instead put focus on OK button.
-
- Martin M. Hunt <hunt@cygnus.com>
- * main.tcl (set_target_name): Replace "com1" with
- the port name we really want to use.
- * bp.tcl (build_win): Use place manager for sizebox
- so it doesn't go away when window is resized.
- * stack.tcl (build_win): Fix stack window.
- * memory.tcl: Back out previous changes.
- * locals.tcl (build_win): Use place manager for sizebox
- so it doesn't go away when window is resized.
-
- Tom Tromey <tromey@cygnus.com>
- * mem_pref.tcl (build_win): Make OK button default.
- * ide.tcl (gdbtk_ide_init): Set gdb_pretty_name. Track changes to
- target-pretty-name property.
- * src.tcl (update_title): Display pretty name for target.
- * main.tcl (set_target): Display pretty name for target.
- (gdb_pretty_name): New global.
- * ide.tcl (target_pretty_name_changed): New proc.
- (receive_file_changed): Display pretty name for target.
- * download.tcl (download_it): Display pretty name for target.
- (console): Likewise.
-
- Thomas Hudson <thudson@cygnus.com>
- * bp.tcl (build_win): Added frame and sizebox to bottom.
- Returned geometry management to previous packing style
- and window layout.
- * stack.tcl (build_win): ditto
- * memory.tcl (build_win): ditto
- * watch.tcl (build_win): ditto
- * locals.tcl (build_win): ditto
-
- Martin M. Hunt <hunt@cygnus.com>
- * manage.tcl (manage_iconify): Catch iconify command.
- * download.tcl (download_it): If set_target fails,
- set gdb_downloading to 0 and return.
- * main.tcl (set_target): Handle target command timeouts.
- Pop up messagebox. Set cursor to "watch". Set title
- on source window. Return 0 on error.
-
- Martin M. Hunt <hunt@cygnus.com>
- * manage.tcl (manage_find): Fix to return a list of windows.
- * console.tcl (Console): Fix sizebox so it doesn't create
- a whole blank line and it doesn't mess up Unix.
- * register.tcl (build_win): Change "Show" to "Display".
-
- Tomy Hudson <thudson@cygnus.com>
- * console.tcl (build_win) Added frame and ide_sizebox to
- bottom of window.
- * stack.tcl (build_win) Added frame and ide_sizebox to
- bottom of window.
- * watch.tcl (build_win) Added frame and ide_sizebox to
- bottom of window.
- * locals.tcl (build_win) Added frame and ide_sizebox to
- bottom of window.
-
- Tom Tromey <tromey@cygnus.com>
- * memory.tcl (build_win): Updated -underline values.
-
- Martin M. Hunt <hunt@cygnus.com>
- * memory.tcl (init_addr_exp): New function. Set the
- initial address expression to the location of .data
- if it is defined. Otherwise use $pc.
-
- Tom Tromey <tromey@cygnus.com>
- * bp.tcl (build_win): Changed packing so content fills window.
- Removed `g' and `a' frames. Changed gridding on labels.
- (bp_add): Changed gridding on new entries.
- * memory.tcl (build_win): Put spaces in front of all menu labels.
-
- Martin M. Hunt <hunt@cygnus.com>
- * download.tcl (download_it): Change error to messagebox.
-
- Tom Tromey <tromey@cygnus.com>
- * register.tcl (reg_display_list): Initialize to empty list.
- (init_reg_display_vars): Don't unset reg_display_list; set it to
- empty list.
- (delete_from_display_list): Likewise.
-
- Martin M. Hunt <hunt@cygnus.com>
- * ide.tcl (ide_run_server, ide_do_run_server): Take
- an optional argument to indicate if program should be
- run or simply downloaded.
- * console.tcl (Console): Enable scrollbars in both
- directions.
- * main.tcl: Moved keep_raised, sleep, and toggle_debug_mode
- to util.tcl.
- (set_exe): If exe changed, set gdb_target_changed
- to force new target command to be sent.
- (set_target_name): Check to see if gdb_target_changed.
- (run_executable): If exe or target changed, set gdb_loaded to
- 0, forcing a new download. If download only, try to
- display function main in source window.
- * util.tcl: New file.
- * hooks.tcl: Removed. Use version in libide.
- * Makefile: Add util.tcl.
- * download.tcl (Download): Call freeze to make modal window.
- (_map): Deleted.
- (download_it): Call set_baud, then set_exe then set_target.
- * mem_pref.tcl (build_win): Set default number of bytes
- to 128.
- * memory.tcl (build_win): Enable horizontal scrollbar
- when in resize mode. Anchor to top-left. Use "nb" to
- count actual number of bytes displayed, instead of "numbytes"
- which will be 0 when in resize mode.
- (delete_prefs): Deleted.
- * src.tcl (mode): Update mode combobox with new mode name.
- (location): In SRC+ASM mode if we step into a function without
- source code, unhighlight everything in the source pane and let
- the assembly pane show our current location.
- (build_win): Enable scrollbars in both directions.
- (set_state): Call update_title.
- (update_title): Don't set title if the target or exe has changed.
- (trace_variable): Couldn't figure out what this did that
- could be useful so delete it and everything that references it.
- * watch.tcl: Add description and copyright.
- * variables.tcl, interface.tcl, locals.tcl: Add copyright.
- * prefs.tcl, register.tcl: Add copyright.
-
- Tomy Hudson <thudson@cygnus.com>
- * register.tcl (reg_select_): Modified reg_select_* movement
- methods to use the register display list instead of
- a straight index.
-
- Tomy Hudson <thudson@cygnus.com>
- * register.tcl (unedit): Changed input focus to $ScrolledWin.$Editing
- in unedit. This allows arrow and tab key bindings to work
- after an edit.
-
- Tomy Hudson <thudson@cygnus.com>
- * register.tcl (build_win): Added key bindings and support
- for tab and arrow keys, including four new methods;
- reg_select_up,reg_select_down, reg_select_left, reg_select_right
- * register.tcl (build_win): Added spacing frame and ide_sizebox
- to window. Changed geometry manager to grid.
-
- Martin M. Hunt <hunt@cygnus.com>
- * stack.tcl (update): Only insert entries that have
- length. Break when matching entry in listbox is found.
- * src.tcl (config_win): Fix control-v binding so
- it doesn't paste on Windows. Cancel <Delete>
- binding.
-
- Martin M. Hunt <hunt@cygnus.com>
- * src.tcl (build_win): Force focus from toplevel
- down to text window.
- (mode): Restructure code to be clearer. Set focus
- when done.
-
- Tomy Hudson <thudson@cygnus.com>
- * src.tcl (mode): Modified key bindings for MIXED mode
- to be the same as ASSEMBLY mode
-
- Martin M. Hunt <hunt@cygnus.com>
- * manage.tcl (manage_init): set bp-save to 1.
- * variables.tcl (changeValue): If new value is null,
- cancel edit.
-
- Tomy Hudson <thudson@cygnus.com>
- * memory.tcl (do_popup): Added method do_popup. Changed binding of
- button-3 to invoke popup menu.
-
- Tomy Hudson <thudson@cygnus.com>
- * src.tcl (do_popup): Removed check for space in variable name
- that disabled popup menu items. Only check now is for "".
-
- Tomy Hudson <thudson@cygnus.com>
- * src.tcl (do_popup): Removed variable name from
- popup menu items. Added check for sane variable in selection
- to disable menu items when appropriate.
-
- Martin M. Hunt <hunt@cygnus.com>
- * bp.tcl (bp_delete): Destroy widgets in deleted
- line.
- * srcbar.tcl (_set_run): Enable View menu items
- when download is finished.
- * download_pref.tcl (LoadPref): Call loadprefs
- with gdbrunning set to 1.
-
- Tom Tromey <tromey@cygnus.com>
- * ide.tcl (gdbtk_ide_init): Use property vmake/exelist, not
- vmake-exelist.
-
- Martin M. Hunt <hunt@cygnus.com>
- * variables.tcl (build_menu_helper): Comment-out
- Update menu.
- (getVariables): Change variable name so it doesn't
- get confused with window variables.
- (postMenu): Comment-out Update entries.
- (UnEdit): Unbind keys when unediting.
- * memory.tcl (create_prefs): When prefs are already
- open, raise and focus the window.
- * bp.tcl (bp_type): Deselect current line when type changes.
-
- Martin M. Hunt <hunt@cygnus.com>
- * toolbar.tcl (create_menu_items): Call open_url for
- web connections.
- * src.tcl (name): When new file load fails, remove it
- from combobox. When load succeeds, clear status message.
- (location): Change how files are loaded into combobox.
- Call new gdb_listfiles function.
-
- Martin M. Hunt <hunt@cygnus.com>
- * manage.tcl (manage_create): Give newly created windows
- the focus on all platforms.
- * mem_pref.tcl (destructor): Notify parent when exiting.
- * srcbar.tcl (_set_run): Better state handling on
- pulldowns and icons.
- * src.tcl (build_win): Start with toolbar in right state.
- * memory.tcl (MemWin): Withdraw window until finished.
- (delete_prefs): New function.
-
- Martin M. Hunt <hunt@cygnus.com>
- * manage.tcl: For IDE, iconify all windows when source
- window is iconified.
- * mem_pref.tcl: Take out all the modal stuff.
- Leave this window non-modal.
- * download.tcl: Fix references to source window.
- (Download): Make window modal and always on top.
- * memory.tcl (destructor): Kill mem prefs window too.
- * variables.tcl (changeValue): Clean up.
- * register.tcl (acceptEdit): Change error messagebox.
-
- Martin M. Hunt <hunt@cygnus.com>
- * src.tcl (set_state): Disable items in breakpoint
- popups.
- (config_win): Change capitalization in popups.
-
- Martin M. Hunt <hunt@cygnus.com>
- * main.tcl: Major rewrite. Simplify. Move IDE
- functions to new file. Add state variables and
- hooks. Add copyright.
- * ide.tcl: New file. IDE functions.
- * download.tcl (download_it): Use new state variables.
- * src.tcl: Use new state variables.
- (constructor): Add state hook.
- (set_state): Hook to enable/disable menus and icons.
- * srcbar.tcl (runstop): Renamed from "running"
- (running): Public variable to control icons.
- (_set_runstop): Change Running man to stop sign.
- (_set_run): Enable/disable icons depending on debugger
- state.
- * manage.tcl (create_closed): Deleted function.
- (manage_create): Remove visibility argumnet.
- (manage_delete): Remove special case for debugger prefs.
- * prefs.tcl (pref_set_defaults): Remove gdb/advanced.
- * hooks.tcl: Add copyright.
- * Makefile: Add ide.tcl.
-
- Tom Tromey <tromey@cygnus.com>
- * download_pref.tcl (LoadPref): Inherit from GdbLoadPref.
- (constructor): Rewritten.
- (build_win): Removed.
- (change_baud): Removed.
- (save): Removed.
- (cancel): Removed.
- (config): Removed.
- (reconfig): Removed.
-
- Martin M. Hunt <hunt@cygnus.com>
- * main.tcl (target_name_changed): Append correct
- port name to target name.
- (gdbtk_ide_init): Don't initialize IDE preferences.
- Append port name to target name.
- * toolbar.tcl (create_menu_items): Add Debugger Preferences
- to File menu.
- * pref.tcl: Remove all ide preferences functions.
- * prefs.tcl (pref_set_defaults): Define gdb/load/port.
- * download_pref.tcl: Added serial port selection.
-
- Martin M. Hunt <hunt@cygnus.com>
- * register.tcl (acceptEdit): Remove leading spaces from
- values.
- * src.tcl (config_win): New tag bp_tag. Like break_tag
- except used when a bp is set on that line. Bind new menu
- to bp_tag.
- (insertBreakTag): Accept tag type. Remove old tag.
- (do_bp): When a breakpoint is set, use bp_tag.
-
- Tom Tromey <tromey@cygnus.com>
- * pref.tcl (pref_ide_proc): Withdraw the toplevel, not the
- window.
-
- Tom Tromey <tromey@cygnus.com>
- * tclIndex: Rebuilt.
- * mem_pref.tcl (build_win): Use standard_button_box.
- (_map): New method.
- (constructor): Run _map on <Map> event.
- * pref.tcl (pref_ide_proc): Use idewindow_check_freeze.
- (pref_modal_dialog): Use idewindow_freeze and idewindow_thaw.
- * hooks.tcl: Removed.
- * Makefile (TCL): Removed hooks.tcl.
-
- Tom Tromey <tromey@cygnus.com>
- * main.tcl (ide_run_server): Quote call to ide_do_run_server.
-
- Tom Tromey <tromey@cygnus.com>
- * download_pref.tcl (build_win): Make OK button default. Invoke
- when Return pressed.
- * download_pref.tcl (build_win): Don't allow pref window to
- resize. Use standard_button_box to lay out buttons.
- * pref.tcl (pref_ide_proc): Handle window freezing.
- (pref_modal_dialog): Freeze and thaw window around the grab.
- (build_win): Use standard_button_box to lay out buttons. Don't
- allow pref window to resize.
-
- Ian Lance Taylor <ian@cygnus.com>
- * src.tcl (src_ide_proc): Download the file in an idle callback.
- Execute the idewindow command even if the download was cancelled.
- * library/main.tcl (ide_run_server): Do everything in an idle
- callback.
- (ide_do_run_server): New procedure.
-
- Martin M. Hunt <hunt@cygnus.com>
- * src.tcl (bp_line): Use hasBP instead of validBPLine.
- Allow type TC even if BP set.
- (validBPLine): Renamed to hasBP.
-
- Tom Tromey <tromey@cygnus.com>
- * manage.tcl (manage_open): Special case "about" window when
- running under IDE.
-
- Martin M. Hunt <hunt@cygnus.com>
- * main.tcl (set_target): Set the target again if the
- executable has changed and executed a "file" command.
- * memory.tcl (update_address): Accept numerical entries
- and catch errors.
- * download.tcl (Download): Cancel button should call
- cancel method.
- * main.tcl (run_executable): Fixed messageBox.
-
- Tom Tromey <tromey@cygnus.com>
- * floatbar.tcl (constructor): Added.
- * srcbar.tcl (constructor): Added.
- * toolbar.tcl (_ide_title): New instance variable.
- (create_menu_items): Pass _ide_title to idewindmenu.
-
- Martin M. Hunt <hunt@cygnus.com>
- * main.tcl (toggle_debug_mode): Fix typo and print
- debug message before disabling it.
-
- Martin M. Hunt <hunt@cygnus.com>
- * manage.tcl (manage_delete): Don't remove a window
- from the active list until after it has already deleted
- itself.
- * toolbar.tcl (create_menu_items): Change Console shortcut
- to Ctrl+N.
- * src.tcl (config_win): Change Console shortcut to Ctrl+N.
-
- Martin M. Hunt <hunt@cygnus.com>
- * src.tcl: (do_bp): Catch errors.
- (validBPLine): Valid lines have a "-" or an image.
-
- Martin M. Hunt <hunt@cygnus.com>
- * main.tcl (ide_run_server): Don't run executable if
- download was cancelled. Reset cancelled flag.
- (run_executable): Call download_it.
- (download): Renamed download_it and moved to download.tcl.
- (set_target): Don't set target if the name hasn't changed
- from the last time.
- * register.tcl (reg_select): Catch errors.
- (delete_from_display_list): Enable menu item.
- * src.tcl (build_win): Add progress bar for downloads.
- (download_progress): New function. Callback to update
- progress meter.
- (src_ide_proc): Don't open src window if download
- cancelled.
- * toolbar.tcl (create_menu_items): Call download_it.
- * srcbar.tcl (_set_run): New mode. Sets run button to stop
- sign during downloads.
- * prefs.tcl (pref_set_defaults): Define gdb/load/verbose.
- * interface.tcl: Define new hook download_progress_hook.
- * floatbar.tcl (create_buttons): Call download_it.
- * download_pref.tcl: Add download dialog prefs.
- * download.tcl (Download): Change back to old dialog
- with each section listed seperately.
- (download_hash): Use a hook.
- (download_it): New function. Replaces old "download"
- from main.tcl. Now deletes all breakpoints before
- downloading and handles cancels correctly.
-
- Martin M. Hunt <hunt@cygnus.com>
- * main.tcl (download): Don't quote the executable name
- with single quotes.
-
- Tom Tromey <tromey@cygnus.com>
- * src.tcl (src_ide_proc): Exit gdb when destroy request seen.
-
- Ian Lance Taylor <ian@cygnus.com>
- * main.tcl (gdbtk_ide_init): Use src_ide_proc for the source
- window, rather than idewindow_proc. Remove extraneous line.
- * src.tcl (src_ide_proc): New procedure, replacing open_src. Only
- download if we are opening the source window.
- (src_no_save): New procedure.
- * main.tcl (gdbtk_ide_init): Initialize gdb_checking_for_exit.
- Register gdb_exit_check as the exit check procedure.
- (gdb_exit_check): New procedure.
- * interface.tcl (gdbtk_tcl_query): If gdb_checking_for_exit, use a
- system modal message box.
- * src.tcl (build_win): Create a FocusIn binding to push focus down
- from the top level.
- * console.tcl: Change all control, alt, and unadorned character
- bindings to use bind_plain_key.
- * memory.tcl: Likewise.
- * src.tcl: Likewise.
- * variables.tcl: Likewise.
- * src.tcl: Use bind_plain_key rather than explicitly ignoring Alt
- bindings.
- * src.tcl (print): Call idewindow_freeze and idewindow_thaw around
- call to print menu.
- * srcbar.tcl (create_menu_items): Likewise, around call to page
- setup menu.
- * main.tcl (gdbtk_ide_init): Use an underscore in generic window
- name, to set the accelerator key.
- (ide_run_server): Likewise.
- * toolbar.tcl (create_buttons): Likewise.
-
- Martin M. Hunt <hunt@cygnus.com>
- * register.tcl (acceptEdit): If no value is entered,
- set the cell to 0.
-
- Ian Lance Taylor <ian@cygnus.com>
- * src.tcl (config_win): Add ignored Alt bindings for all the
- unmodified key bindings.
- * download.tcl (constructor): Withdraw the window before doing
- anything. Set the width of the label. Don't try to center the
- window. Pass toplevels to wm transient. Run keep_raised after
- 500. Don't call update.
- (done): Use after rather than a busy loop.
- (destructor): Cancel the after if it is defined.
- (after_id): New protected variable.
- * main.tcl (download): If download is already running, don't do
- anything. If .load0.load exists, delete it before calling manage
- create.
- * main.tcl (gdbtk_ide_init): Use pref_ide_proc rather than
- idewindow_proc when registering the preference window.
- * download_pref.tcl (save, cancel): Call pref_ide_finished.
- * pref.tcl (save, cancel): Likewise.
- (pref_ide_proc): New procedure.
- (pref_no_save): New procedure.
- (pref_modal_dialog): New procedure.
- (pref_ide_finished): New procedure.
- * tclIndex: Rebuild.
- * main.tcl (gdbtk_ide_init): Initialize gdb_download_cancelled.
- (run_executable): Put a trace on gdb_download_cancelled. Change
- the dialog box message. If the user cancels the download, clear
- gdb_run_pending and just return without running.
- (ide_do_run): Remove the traces on gdb_download_cancelled. If the
- user cancelled the download, just clear gdb_run_pending.
- (target_name_changed): Clear gdb_download_cancelled. Call
- set_exe_name.
- (download): If the executable is not up to date, ask whether the
- user is really really sure. If the user cancels the download
- using the dialog button, set gdb_download_cancelled, and don't set
- the breakpoints or gdb_download_complete.
- (set_exe_name): Clear gdb_download_cancelled.
- (receive_file_changed): Ask whether we should download the new
- executable.
- * src.tcl (open_src): Don't download the file if
- gdb_download_cancelled is set.
- * interface.tcl (gdbtk_tcl_query): Pass -modal task to
- tk_messageBox.
- * main.tcl (set_exe_name): Tell the src window to go back to
- looking at main if the file changes.
- * src.tcl (update): Catch errors when calling gdb_loc.
- * main.tcl (gdbtk_ide_init): Handle file-created, file-changed,
- file-removed, and file-deleted events rather than process-ended
- events.
- (set_exe_name): Call gdb_clear_file even if the file does not
- exist. Likewise for setting gdb_download_complete to zero.
- (receive_file_changed): Rename from receive_process_ended. Only
- check the executable mtime if the tail of the file name matches
- the executable name.
-
- Ian Lance Taylor <ian@cygnus.com>
- * srcbar.tcl (create_menu_items): Change ``Print Setup...'' to
- ``Page Setup...''. Pass -parent to ide_winprint page_setup.
- * src.tcl (print): Pass -parent to send_printer.
-
- Ian Lance Taylor <ian@cygnus.com>
- * main.tcl: Move initialization code to end of file, after all
- procedures have been defined.
- (gdbtk_ide_init): New procedure to handle IDE initialization.
- (gdbtk_tcl_preloop): Don't do anything if using the IDE.
- (ide_run_server): Error if file does not exist. Use
- idewindow_activate_by_name, rather than manage open. Do
- everything after idle.
- (run_executable): Clean up a bit. Consistently use ide_do_run.
- (target_name_changed): Rename from target_name. Rename parameter
- num to propset.
- (download): Error if the file does not exist. Call set_exe_name.
- Don't set gdb_download_mtime. Don't check whether gdb_run_pending
- is 2.
- (exe_name_changed): Rename from exe_name.
- (set_exe_name): Set gdb_exe_mtime. Quote filename passed to
- gdb_cmd.
- (receive_process_ended): Don't check the data argument. Check
- gdb_exe_set rather than gdb_download_complete. Check
- gdb_exe_mtime rather than gdb_download_mtime.
- * src.tcl (open_src): Set the location to main as well as
- downloading the file. Don't set gdb_run_pending to 2.
-
-
-Tue Feb 10 17:50:37 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * bp.tcl (build_win): Do not set the disabled foreground for menus. Insert
- all tracepoints, too.
- (bp_add): Handle tracepoints.
- (bp_type): Handle tracepoints.
- (update): Handle tracepoints.
- (bp_all): Do tracepoints, too.
- (Index_to_bptype): New protected variable to index type of break (breakpoint
- or tracepoint) against index in window.
- (bp_select): Disable/Enable menu items based on type.
- (bp_able): Handle tracepoints.
-
- * src.tcl (do_bp): Handle disabled tracepoints.
-
- * actiondlg.tcl (change_other): Handle memranges and use info address to
- validate entries.
-
- * tracedlg.tcl (edit): Handle memranges when formatting data for
- action dialog.
-
-Mon Jan 26 11:44:39 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * src.tcl (fill_files): Don't check for file's existance -- let
- SrcWin::name do that.
-
- * actiondlg.tcl (change): Add everything that is specified, not
- just the things about which we know.
-
-Sun Jan 25 01:01:32 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * stack.tcl (update): Only insert entries that have
- length. Break when matching entry in listbox is found.
-
- * src.tcl (fill_files): Don't call lsort. New listfiles
- command sorts for us.
-
- * variables.tcl (changeValue): If new value is null,
- cancel edit.
- (build_menu_helper): Comment-out Update menu.
- (getVariables): Change variable name so it doesn't
- get confused with window variables.
- (postMenu): Comment-out Update entries.
- (UnEdit): Unbind keys when unediting.
-
-Thu Jan 22 10:38:19 1998 Keith Seitz <keiths@cygnus.com>
-
- * toolbar.tcl (create_menu_items): Disable preferences.
-
- * prefs.tcl (pref_set_defaults): Attach the toolbar to the source window
- by deafult.
- * src.tcl (SrcWin::build_win): Turn off history for the file selector.
- (SrcWin::name): Use SOURCEWIN_set_status to upate status.
- Make sure we ask gdb where the source file is before asking
- the source window to open it.
- (SrcWin::file): Do not ask gdb where the file is -- someone else already has.
- Set the file selector to the filename only once and only if
- successful finding the file.
- (SrcWin::fill_files): Sort the files before inserting into file selector.
- (SrcWin::location): Add flag idicating that a file load has failed. Resolves
- recursive loop with SrcWin::mode and SrcWin::location.
- Make sure the file and function selectors are filled only once.
- Use SOURCEWIN_set_status and SOURCEWIN_reset_status as appropriate.
- (SrcWin::set_status): Add verbatim flag to allow a generic message to be
- displayed.
- (SrcWin::mode): Add error flag to indicate that a file load failed. Resolves
- recursive loop with SrcWin::location.
- Make sure we exit with the proper mode set on the source window.
- (SrcWin::reset_status): New procedure.
- (SrcWin::current_addr): Define a default value of 0x0.
- (SrcWin::Status): New protected variable.
- (SrcWin::bp_line): Check if breakpoint set in assembly-mode, too.
- (SOURCEWIN_set_status): New procedure to temporarily set the status bar.
- (SOURCEWIN_reset_status): New procedure which is called after the status bar
- should be reset.
- (SOURCEWIN_reinit): New procedure to reinitialize the source window. (To be
- called when new symbol files are added and like).
-
- * interface.tcl (gdbtk_tcl_query): Properly set the name of the
- query dialog.
- (gdbtk_tcl_pre_add_symbol): Hook called from gdbtk.c to inform user that
- we are reading symbols.
- (gdbtk_tcl_post_add_symbol): Hook called from gdbtk.c to inform user that
- are finished reading symbols.
-
- * src.tcl (SOURCEWIN_reinit): New procedure which updates the source window with
- a default file, fills the file selectors, etc.
- (SOURCEWIN_set_status): New procedure which can be used to set the status bar
- on the source window.
- (set_status): Add flag for setting the status as-is.
-
- * main.tcl: Call SOURCEWIN_reinit to setup the source window on startup.
-
-
-Fri Jan 16 09:11:30 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * src.tcl (SOURCEWIN_set_status): New procedure to allow anyone to set the
- status bar text at the bottom of the source window.
- (fill_files): Use a little more full-proof method (if slower) for eliminating
- duplicates int the files combobox.
-
- * interface.tcl (gdbtk_tcl_pre_add_symbol): New procedure called prior to
- a symbol file is loaded.
- (gdbtk_tcl_post_add_symbol): New procedure called after a symbol file is
- loaded.
-
-Thu Jan 15 12:41:27 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * console.tcl (invoke): Use new gdb_immediate command instead of gdb_cmd.
-
-Wed Dec 31 16:50:26 1998 Keith Seitz (keiths@onions.cygnus.com)
-
- * actiondlg.tcl (change): handle '$' in register names.
-
diff --git a/gdb/gdbtk/library/ChangeLog-1999 b/gdb/gdbtk/library/ChangeLog-1999
deleted file mode 100644
index 1494f6a54b5..00000000000
--- a/gdb/gdbtk/library/ChangeLog-1999
+++ /dev/null
@@ -1,1083 +0,0 @@
-1999-12-15 Fernando Nasser <fnasser@rtl.cygnus.com>
-
- * variables.tcl: UnEdit any fields open to edit before colapsing
- a tree branch (it was generating a Tcl exception and stack dump).
-
-1999-09-29 James Ingham <jingham@leda.cygnus.com>
-
- * prefs.tcl (pref_read): Convert env(HOME) to a win32 path BEFORE
- handing it to file join, so we won't look for a network drive.
-
-1999-09-23 James Ingham <jingham@leda.cygnus.com>
-
- * toolbar.tcl (GDBToolBar): Typo.
- (new_menu): Changed this to allow menus to be altered as well as
- added.
- (menu_exists): New method.
- (clear_menu): New method.
- (_load_src_images): Moved here from srcbar.tcl. Added Attach &
- Detach classes. This is all still kind of ill-factored.
- (In instance data): Made menu data arrays rather than dynamically
- constructed variables.
-
- * srcwin.itb (SrcWin::set_execution_status): Let gdb print the PC,
- since Tcl's conversion may not be wide enough.
-
- * srctextwin.ith: initialize the Cname variable.
-
- * srctextwin.itb (SrcTextWin::location):
- (SrcTextWin::location): Change address compare to a string
- compare. These are always both hex in the same format, but on a
- 64 bit host the conversion would fail.
- (SrcTextWin::showBalloon): Catch all errors in the balloon help
- but also report them to the debug window.
- (SrcTextWin::LoadFromCache): Erase and reload dirty cached windows.
-
- * srcbar.tcl (create_run_menu): Add "Attach", "Detach" and "Kill"
- for native targets.
- (do_attach): Attach to a native target.
- (do_detach): Detach from a native target.
- (do_kill): Kill a native target.
-
- * memwin.itb (MemWin::toggle_enabled): Toggle the state of the
- widget, as well as the color, so people can't edit when the window
- doesn't contain valid memory.
- (MemWin::update_address): Set the state to normal if we have
- loaded valid memory.
- (MemWin::BadExpr): Set the state to disabled on error.
- (MemWin::incr_addr): Set the state to normal if a step succeeds.
-
- * managedwin.itb (ManagedWin::open_dlg): New function. Preferred
- function when you know you are opening a dialog.
- (ManagedWin::_open): new function, contains the common bits of
- opening windows & dialogs.
- (ManagedWin::open): Use the _open function.
- (ManagedWin::_create): Don't use Icon windows with modal dialogs.
-
- * interface.tcl (gdbtk_cleanup): Set a shutting_down flag.
- (gdbtk_tcl_fputs): Restore the fputs hook. This is trivial to do,
- and ensures that no one will delete the hook behind our backs.
- (gdbtk_tcl_fputs_error): ditto.
- (_open_file): Make file parameter optional, and don't query if it
- is provided.
- (gdbtk_attached): New function. Called from attach hook.
- (gdbtk_detached): New function. Called from detach hook.
-
- * helpviewer.ith (HtmlViewer): Add the attach dialog to the list
- of topics.
-
- * srcbar.tcl (do_kill): Added the Kill menu item for killing the
- inferior on native targets.
-
-1999-09-16 James Ingham <jingham@leda.cygnus.com>
-
- * prefs.tcl (pref_set_defaults): define the wrap preference for
- the console window.
-
- * console.itb (Console::_paste): Add the "delete selection"
- semantics so we can use this for all the Paste events.
- (Console::_delete): New method, centralize delete handling so we
- can protect against things like delete deleting a selection up in
- the history region of the window.
- (Console::_build_win): Change bindings to use _paste & _delete.
- (Console::_build_win): wrap if told to by the wrap parameter.
-
- * console.ith: Declare _delete.
-
-1999-09-16 Stan Shebs <shebs@andros.cygnus.com>
-
- * targetselection.itb (TargetSelection::init_target_db): Remove
- references to D10V target, use only standard remote for D10V.
-
-1999-09-15 James Ingham <jingham@leda.cygnus.com>
-
- * console.itb (Console::_paste): Fix another "set foo [catch ...]"
- idiom.
- (Console::_build_win): Remove the extraneous posting of the
- <<Paste>> event in handling B2-Release. Just call _paste.
-
-1999-09-10 James Ingham <jingham@leda.cygnus.com>
- From Mumit Khan <khan@xraylith.wisc.edu>
-
- * prefs.tcl (pref_set_defaults): Add main_names preference.
- * interface.tcl (gdbtk_locate_main): New proc.
- (run_executable): Use.
- * srcwin.itb (SrcWin::_build_win): Use.
- (SrcWin::location): Likewise.
- (SrcWin::point_to_main): Likewise.
-
-1999-08-27 James Ingham <jingham@leda.cygnus.com>
-
- * srctextwin.itb (SrcTextWin::FillAssembly): Use the new
- gdb_load_disassembly.
- (SrcTextWin::FillMixed): Use the new gdb_load_disassembly.
-
- * interface.tcl (gdbtk_idle): Call gdbtk_restore_fputs at idle
- time. This puts the gdbtk_fputs hook back in place, just in case
- an error left it pointing to null.
-
-1999-08-11 Tom Tromey <tromey@cygnus.com>
-
- * kod.itb (KodWin::build_win): Don't use Tix.
- (Various): Changed as a result of build_win change.
- (KodWin::destructor): Unset new globals. Also unset
- kodActivePane.
-
- * kod.ith (labh): Removed variable.
-
- * kod.ith (set_os): Declare.
- * kod.itb (KodWin::build_win): Don't use Tix labelled frame
- widget or Tix paned widget. Removed size boxes from Windows
- code.
- (KodWin::constructor): Add `$this set' to gdb_set_hook.
- (KodWin::destructor): Remove from hook.
- (KodWin::set_os): New method.
-
- * toolbar.tcl (GDBToolBar::destructor): Remove from gdb_set_hook.
- (GDBToolBar::constructor): Add to gdb_set_hook.
- (set_hook): New method.
- (create_view_menu): Don't put kod onto menu.
-
- * kod.itb (KodWin::display_object): Don't put `Details' message in
- label; this messes up resize and doesn't really add anything.
-
- * images/kod.gif, images2/kod.gif: Removed.
- * toolbar.tcl (create_window_buttons): Removed kod button.
- (add_menu_command): Don't load kod image.
-
- * kod.itb: Renamed from kod.tcl. Restructured to follow new itcl
- conventions.
- * kod.ith: New file.
-
- * toolbar.tcl (create_window_buttons): Use gdb_kod_cmd, not
- gdb_kod_name.
- (create_view_menu): Likewise.
- * interface.tcl (initialize_gdbtk): Don't mention gdb_kod_name.
-
- * targetselection.itb (TargetSelection::init_target_db): Added
- Cisco targets. From Martin Hunt.
-
- * kod.tcl (build_win): Use correct capitalization for buttons.
-
-1999-08-10 James Ingham <jingham@leda.cygnus.com>
-
- * srctextwin.itb (SrcTextWin::constructor): Add the disassembly
- flavor hook.
- (SrcTextWin::disassembly_changed): New method, fix up all the
- windows when the disassembly flavor changes.
- (SrcTextWin::_mtime_changed): We were setting the filename:dirty
- to 1 regardless of the result of the mtime check... Doh!
- (SrcTextWin::reconfig): The setTabs call was assuming ALL windows
- were source windows.
- (SrcTextWin::do_tag_popup): Remove the balloon when the breakpoint
- popups are posted as well.
- (SrcTextWin::do_source_popup): Also handle the case where there is
- a selection, but the point is not over it.
-
- * srctextwin.itb (SrcTextWin::destructor): Remove it when the
- object goes away.
-
- * regwin.itb (RegWin::constructor): Add the disassembly_flavor_hook.
- (RegWin::destructor): Remove it when the widget is destroyed.
- (RegWin::disassembly_changed): New method, tell the widget it
- needs to redisplay itself with the new register names.
- (RegWin::reconfig): Actually do the reconstruction if the register
- set names have changed.
- * regwin.ith: Add declarations for the new methods.
-
- * interface.tcl (gdbtk_tcl_disassembly_hook): New hook to support
- changing the disassembly flavor.
-
- * srctextwin.itb (SrcTextWin::getVariable): Use a selection in
- preference to the word around the hit point, if there is one.
- (SrcTextWin::do_source_popup): Really dismiss the balloon when you
- popup a menu...
-
-1999-08-05 James Ingham <jingham@leda.cygnus.com>
-
- * srctextwin.itb (SrcTextWin::showBalloon): Fix ShowBalloon. We
- can't use "info line" to tell us whether we should post a balloon
- over the current line, since gdb only considers the first line of
- a statement executible, not the continuation lines. Instead, show
- any line in the currently selected function. Sigh...
-
-1999-08-06 Tom Tromey <tromey@cygnus.com>
-
- * interface.tcl (gdb_set_hook): New hook.
-
-1999-08-02 Tom Tromey <tromey@cygnus.com>
-
- * managedwin.ith (window_name): Removed extraneous comma.
-
-1999-07-27 Keith Seitz <keiths@cygnus.com>
-
- * variables.tcl: Rewrite to use new variable rewrite.
- * locals.tcl: Ditto.
- * watch.tcl: Ditto.
- * srctextwin.itb (updateBalloon): Use new variable rewrite.
- * blockframe.ith, blockframe.itb: New block and frame classes.
- * data.ith, data,itb: New stack and queue classes (data structures).
- * tclIndex: Rebuilt.
-
-1999-07-20 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * prefs.tcl (pref_set_defaults): Set tab_size to the univeral
- standard of 8, not 4.
-
-1999-07-16 Stan Shebs <shebs@andros.cygnus.com>
-
- * All files (*.tcl, *.itb, *.ith): Add GPL notices, regularize
- copyright and header comments.
-
-1999-06-29 James Ingham <jingham@leda.cygnus.com>
-
- * bpwin.itb (BpWin::bp_store): New proc, store away the current
- breakpoint list into a gdb command file.
- (BpWin::bp_restore): restore a breakpoint list from a command file.
- (BpWin::build_win): Add menu items for store & restore breakpoints.
-
-1999-06-24 Keith Seitz <keiths@cygnus.com>
-
- * srcwin.itb (SrcWin::destructor): Its "gdb_clear_file_hook",
- not "gdb_clear_file".
-
-1999-06-23 James Ingham <jingham@leda.cygnus.com>
-
- * srctextwin.itb (SrcTextWin::_mtime_changed): Catch the call to
- mtime. This will fail when you are in assembly mode, and the file
- is actually a function address.
- (SrcTextWin::motion): Catch the call to showBalloon. There are
- various things that can go wrong here, and we certainly don't want
- the user to hear about them.
-
-1999-06-15 Keith Seitz <keiths@cygnus.com>
-
- * interface.tcl (gdbtk_stop_idle_callback): Catch calls to
- remove hook, since it could already be gone if we got a signal.
-
- * srcwin.itb (busy): If there is no target and the
- debugger is native, we should also let the user know
- that his program is running.
-
-1999-06-11 James Ingham <jingham@leda.cygnus.com>
-
- * interface.tcl (gdbtk_tcl_exec_file_display): Only call clear
- file if there is a file loaded in the source window. This avoids
- some flashing at startup.
-
-1999-06-10 Keith Seitz <keiths@cygnus.com>
-
- * srctextwin.itb (do_source_popup): Clear the varBalloon tag
- before mapping a popup onto the screen.
- (showBalloon): The "-pc" option was removed from gdb_variable.
- Provide equivalent functionality, and display popups again.
-
- * interface.tcl (set_target): Don't call the target dialog
- if there gdb_target_cmd is empty and we are a native debugger.
- Don't set a default target -- force the gui to ask the first
- time!
- (run_executable): Set options after we have a target, not before.
-
- * watch.tcl (destructor): Don't call no_inferior -- the window's
- already been destroyed. Instead, run through our list of variables
- and delete them.
-
-1999-06-10 James Ingham <jingham@leda.cygnus.com>
-
- * srctextwin.itb (SrcTextWin::clear_file): Don't try to set the
- text view back to the gdbtk_scratch_widget, this is very fragile.
- (SrcTextWin::LoadFromCache): initialize the mtime correctly when
- you add a window to the cache.
- (SrcTextWin::LoadFromCache): don't add the ,asm,lib to the scratch
- widget pane name.
-
- * interface.tcl (gdbtk_tcl_exec_file_display): Only run
- gdbtk_clear_file if the filename is not null. This avoids source
- window flashing.
-
- * srctextwin.itb (SrcTextWin::_mtime_changed): Set a dirty flag
- when the mtime has changed so that you can know to reload the
- source.
- (SrcTextWin::LoadFromCache): Look at the dirty flag, and reload
- from disk if it is set.
-
-1999-06-10 Keith Seitz <keiths@cygnus.com>
-
- * watch.tcl (clear_file): New method.
- * variables.tcl (constructor): Register gdb_clear_file hook.
- (destructor): Unregister gdb_clear_file hook.
- (clear_file): New method.
- * targetselection.itb (init_target_db): Add Picobug monitor.
- (fill_targets): Don't explicitly list every TCP target: deduce
- it from the target database.
- (native_debugging): Compare host and target triples.
- * srcwin.ith (clear_file): Add declaration.
- * srcwin.itb (constructor): Register gdb_clear_file hook.
- (destructor): Unregister gdb_clear_file hook.
- (clear_file): New method.
- * srctextwin.ith (LoadFile): Add arg "mtime_changed".
- (clear_file): Add declaration.
- (_mtime_changed): Add declaration.
- (_initialize_srctextwin): Add declaration.
- (_clear_cache): Add declaration.
- * srctextwin.itb (constructor): Move all initialization
- to _intialize_srctextwin so that we can easily re-initialize.
- (Stwc): Change layout to explicitly list panes
- and mtimes.
- (ClearTags): Catch calls removing tags. Needed when
- loading new executables.
- (_mtime_changed): New method.
- (FillSource): Immitate command line gdb, checking
- if a file has changed since it was last used. If it has, load
- it into the cache.
- (LoadFile): Add parameter to inform whether a file's
- mtime has changed. Reload the cache if it has.
- (clear_file): New method.
- (_initialize_srctextwin): New method.
- (_clear_cache): New method. Stubbed.
- * main.tcl: Move initialization of state to initialize_gdbtk in
- interface.tcl
- * interface.tcl (gdbtk_tcl_exec_file_display): Don't reset source
- windows or globals here -- the clear file hook will do that.
- (set_exe_name): Always say the exe has changed, in case
- the user reloads the same exe (which he's recompiled).
- (set_exe): Don't call gdb_clear_file.
- (set_target): Return string result codes.
- (clear_file_hook): New hook.
- (gdbtk_clear_file): New proc.
- (initialize_gdbtk): New proc. Moved initialization of
- globals (yich) here from main.tcl
- * download.itb (download_it): When running set_target,
- use new string return codes.
-
- * interface.tcl (gdbtk_attach_target): New proc. Moved
- contents of run_executable dealing with attaching to
- a target here.
- (run_executable): Use gdbtk_attach_target.
- (connect): Remove and merge with gdbtk_attach_target.
- * srcbar.tcl (do_connect): Use gdbtk_attach_target to
- attach to the target.
-
- * tclIndex: Regenerate.
-
-1999-06-07 James Ingham <jingham@leda.cygnus.com>
-
- * memwin.ith (numbytes): Change the default to 0, which means
- "depends on window size". This is really the useful value.
-
- * memwin.itb (MemWin::newsize): Move getting the rheight to AFTER
- the update idletasks. Otherwise the bbox call will return "" when
- the window is being constructed.
- (MemWin::reconfig): Set rheight back to "" to force it to be
- recomputed. Both font changes and switch to "depends on window
- size" could invalidate this.
-
-1999-06-08 Keith Seitz <keiths@cygnus.com>
-
- * srcwin.itb (set_execution_status): Do not try to second
- guess gdb_target_has_execution with gdb_running. Make
- gdb_running follow it. We'll have to fix those targets
- that do not set inferior_pid as they crawl out of the woodwork.
-
-1999-06-07 James Ingham <jingham@leda.cygnus.com>
-
- * prefs.tcl (pref_set_defaults): Set the initial height and with
- of the browser to 0 so the packer & gridder can get this right on
- systems with different fonts. Fixes CR 100619.
-
- * browserwin.itb (BrowserWin::_build_win): Don't set the height
- and width of the file_box and func_box. This keeps them from
- floating correctly when there is not stored default.
-
-1999-06-04 James Ingham <jingham@leda.cygnus.com>
-
- * regwin.itb (RegWin::acceptEdit): Call gdbtk_update after
- changing the register value so that the locals and watch window
- will get updated if any of these variables are in registers. Fixes
- CR 100670.
-
-1999-05-25 Keith Seitz <keiths@cygnus.com>
-
- * variables.tcl (getLocals): Don't pass any args to
- gdb_get_{locals, args} so that the currently selected frame is used.
- (context_switch): New method.
- * locals.tcl (getVariablesBlankPath): Don't catch call to getLocals.
- getLocals will do it and return {} if an error occurs.
- Always pass the frame of the variable to the variable backend,
- assuming that the selected frame is the proper frame to use.
- (update): Recognize context switches a little better.
-
- * variables.tcl (cursor): New method.
- (enable_ui): Use "cursor".
- (disable_ui): Ditto.
- (no_inferior): Ditto.
- (open): Change toplevel's cursor when opening variables.
-
-1999-05-03 Martin Hunt <hunt@cygnus.com>
-
- * toolbar.tcl (create_help_menu): Open About window as transient.
-
- * main.tcl: Open About window as transient.
-
- * about.tcl (About): Set window title.
-
-1999-04-27 James Ingham <jingham@cygnus.com>
-
- * srcpref.itb (build_win): Pack the frame containing the
- disassembly flavor chooser. Redid some of the other packing to
- look a bit nicer too.
-
- * srcpref.itb (save): Call apply and then close rather than
- duplicating the apply code.
-
-1999-04-26 James Ingham <jingham@cygnus.com>
-
- * modal.tcl (ModalDialog): Add the "expire" variable, and cancel
- the dialog after the given time if set.
-
- * managedwin.ith (destructor): Use the new quit_if_last method to
- decide whether to quit the app or not. This way you can manage
- create a splash screen and not quit the app when you take it down.
- (quit_if_last): Add default implementation - returns 1.
-
- * about.tcl (quit_if_last): Add the quit_if_last to the About box,
- returning 0.
-
- * main.tcl: Added a line to open a splash screen, but commented it
- out for devo.
-
-1999-04-22 Keith Seitz <keiths@cygnus.com>
-
- * targetselection.itb (port_list): ManagedWin has a proc named
- "open". We really want the tcl command "::open" to open a port.
-
-1999-04-15 Martin Hunt <hunt@cygnus.com>
-
- * prefs.tcl (pref_set_defaults): New pref, gdb/use_icons.
- This is set if Unix should use gdbtk_icon.gif as an icon. Some
- window managers, such as olvwm, have problems with it.
- * managedwin.itb (ManagedWin::_create): Don't create icon
- for Unix, unless gdb/use_icons is set.
- * globalpref.itb (GlobalPref::build_win): Add a checkbutton to set
- pref gdb/use_icons.
-
- * managedwin.itb (ManagedWin::window_name): If iconname is
- not specified, use window name.
- (ManagedWin::_create): For Unix, call make_icon_window.
- (ManagedWin::make_icon_window): New function. Makes a unix
- icon.
-
- * main.tcl: Set initial target to "exec" if running in
- test mode.
-
- * bpwin.itb (BpWin::constructor): Set icon name to "BPs".
- * regwin.itb (BpWin::build_win): Set icon name to "Regs".
- * srcwin.itb (SrcWin::_update_title): Set icon name to basename
- of filename.
- * variables.tcl (VariableWin::build_win): Set icon name to "Locals".
-
-1999-04-12 Keith Seitz <keiths@cygnus.com>
-
- * variables.tcl (populate): Update the value of the parent variable's
- children before stuffing them into the window. This makes sure
- that the value of the variable is always current.
-
-1999-04-09 James Ingham <jingham@cygnus.com>
-
- * memwin.itb (MemWin::incr_addr): Fix the increment-decrement
- control. It would allow you to scroll into negative addresses,
- which causes some simulators to crash. It would also increment
- improperly in cases where the address value in hex corresponded to
- a negative signed int.
-
-1999-04-07 Martin Hunt <hunt@cygnus.com>
-
- * interface.tcl (gdbtk_signal): Don't set gdb_running to 0.
-
-1999-04-06 Martin Hunt <hunt@cygnus.com>
-
- * targetselection.itb (TargetSelection::getname): Call init_target_db.
- (TargetSelection::init_target_db): Add target mon2000. Set
- most remote targets to default to downloading. Add new
- baudrates for remote target. Other misc target fixes.
- (save) Use "pref setd" in case pref is not created yet.
- (TargetSelection::config_dialog): Gray out port number when
- in exec mode.
-
- * targetselection.ith: Add public proc init_target_db.
-
- * srcwin.itb (SrcWin::set_execution_status): Don't print anything
- if gdb_running is 0.
-
- * srctextwin.itb (SrcTextWin::motion): Show variable values
- even when not debugging. Needed so users can examine values after
- a segfault.
-
- * interface.tcl (set_target): If the target name is "",
- use the default target name.
- (run_executable): Set gdb_running correctly. Don't
- allow downloading to "exec".
- (gdbtk_signal): New function called from gdbtk_annotate_signal.
- Sets gdb_running to 0 and pops up a dialog with the
- signal name and description.
-
- * main.tcl: Set initial target name to "". Set gdb_target_changed
- so a dialog will always be forced the first time.
-
- * download.itb (Download::download_it): Set gdb_loaded before
- notifying src windows the download is done. Catch the notifications
- in case the dialog has been closed.
-
- * console.itb (Console::destructor): Set gdbtk_state(console)
- to "" instead of unsetting it.
-
-1999-04-02 James Ingham <jingham@cygnus.com>
-
- * memwin.itb (MemWin::build_win): Remove the -validate option from
- the memory spinner. It was not appropriate, since you can type
- expressions into the window.
-
-1999-04-02 Keith Seitz <keiths@cygnus.com>
-
- * tclIndex: Rebuilt.
- * toolbar.tcl (create_control_buttons): Use SrcWin's
- inferior method to centralize control of inferior state.
- (create_control_buttons): Ditto.
- (source): Move SrcBar's public variable "source" here,
- so that the toolbar can use that info, too.
- * srcwin.itb (SrcWin::inferior): New public method
- to consildate inferior control and dispatch to proper
- handlers.
- * srcwin.ith (SrcWin::inferior): Add declaration.
- * srctextwin.itb (SrcTextWin::do_key): Use parent SrcWin's inferior
- method to handle inferior state changes (run, step, next, etc).
- * interface.tcl: Add procs to centralize inferior control:
- gdbtk_step, gdbtk_next, gdbtk_stepi, gdbtk_nexti, gdbtk_run,
- gdbtk_continue, gdbtk_finish, gdbtk_stop.
- New stop button code (see comments before gdbtk_stop):
- (gdbtk_stop_idle_callback): Idle callback for stop button.
- (gdbtk_detach): New proc to forcibly detach from target.
- * main.tcl: Initialize data used by stop button.
- * srcbar.tcl (create_run_menu): Call SrcWin's inferior
- method with button commands.
- (source): Move "source" to Toolbar class.
-
-1999-03-29 Keith Seitz <keiths@cygnus.com>
-
- * browserwin.itb (BrowserWin::do_all_bp): Fix quoting of break
- command.
- (BrowserWin::_toggle_bp): Ditto.
-
-1999-03-19 Keith Seitz <keiths@cygnus.com>
-
- * download.itb (Download::download_it): Configure SrcWin's toolbar,
- too, to a downloading state.
- * srcbar.tcl (runstop): Change states from numbers to
- strings to avoid confusion.
- (_set_runstop): Change states from numbers to strings to
- avoid confusion.
- * srcwin.ith (toolbar): New public method.
- * srcwin.itb: Change all references of runstop to use new strings
- introduced into GDBSrcBar::_set_runstop.
- (SrcWin::toolbar): New public method to configure the state of the toolbar.
- * tclIndex: Regenerate.
-
-1999-03-18 Martin Hunt <hunt@cygnus.com>
-
- * interface.tcl (set_target_name): Remove first argument.
- If prompt is not set, still update gdb_target_cmd.
- (set_target): Call set_target_name with prompt argument
- set correctly.
- (run_executable): Check for no exe name. Catch problems
- with bad target names and prompt for new one.
-
- * main.tcl: Set target name from prefs. If it is "",
- the set "gdb_target_changed" to force it to be changed
- later.
-
- * prefs.tcl (pref_set_defaults): Don't set target default
- to "exec". Leave the default unset.
-
- * srcbar.tcl (create_menu_items): Update args to
- set_target_name.
-
-1999-03-18 Keith Seitz <keiths@cygnus.com>
-
- * prefs.tcl (pref_read): Change unix preference filename
- to ".gdbtkinit". This bogosity has been around long enough.
-
-1999-03-16 Martin Hunt <hunt@cygnus.com>
-
- * managedwin.itb (ManagedWin::_create): When running under
- testsuite, don't resize.
-
-1999-03-13 James Ingham <jingham@cygnus.com>
-
- * browserwin.itb (BrowserWin::search): If all the files are
- selected in the file box, then don't pass the files argument.
- This makes the function browser a little quicker. The main
- slowdown, however, is sorting the resultant list. Maybe do this
- in C to get this quicker?
-
- * memwin.itb (MemWin::edit): Comment out the line that reads back
- in the newly set memory value. Because of the chain of calls,
- on Windows this causes some evil race that results in GDBTk
- filling all the visible cells with the new value. I don't
- understand it yet, so this is just a temporary fix.
-
-1999-03-12 James Ingham <jingham@cygnus.com>
-
- * memwin.ith (MemWin): Add saved_addr to the class. This is where
- we store the old address before we change addresses, so that we
- can get back to a good state in case of errors.
-
- * memwin.itb (MemWin::update_addr): gdb_get_mem does not always
- return an error code when it hits an error. Catch that here.
- (MemWin::update_address): Store away the old address, so we can
- restore it if there is an error.
- (MemWin::BadExpr): Restore the saved address in case of errors.
-
-
-1999-03-09 James Ingham <jingham@cygnus.com>
-
- * Rebuilt tclIndex.
-
-1999-03-08 James Ingham <jingham@cygnus.com>
-
- * srctextwin.itb (SrcTextWin::constructor): pc(funcname) was
- changed to pc(func), but the initialization was not changed...
-
- * download.ith (dont_remember_size): Download window should not
- remember its size.
-
- * interface.tcl (connect): Handle the case where set_target
- returns 3...
-
- * debugwin.itb (DebugWinDOpts::build_win): Replace $this delete
- with delete object $this.
- * tfind_args.tcl (build_win): Ditto...
- * helpviewer.itb (HtmlViewer::_buildwin): Ditto...
-
- * srcbar.tcl (GDBSrcBar): Reorder the Source & the page setup &
- print menus...
-
-1999-03-04 Martin Hunt <hunt@cygnus.com>
-
- * download.ith: New file.
- * download.itb: New file. Implements itcl3 class and replaces
- download.tcl.
-
- * srcbar.tcl (create_menu_items): Call create_run_menu
- without arguments.
- (create_run_menu): Add Disconnect and Connect to Run menu
- instead of file menu. Change download_it to Download::download_it.
-
- * srctextwin.itb (do_key): Change binding to call
- Download::download_it.
-
- * debugwin.itb (DebugWinDOpts::build_win): Add ProcessWIn to list
- of classes for filter.
-
- * interface.tcl (set_target): No need to set window title.
- (run_executable): Change download_it to Download::download_it
-
-1999-03-04 James Ingham <jingham@cygnus.com>
-
- * modal.tcl (ModalDialog): Handle WM_DELETE_WINDOW by calling the
- cancel method. Also set unpost_notification to different values
- in unpost & the destructor, so if the object dies irregularly, you
- know not to try to double destruct it.
-
-1999-03-03 James Ingham <jingham@cygnus.com>
-
- * warning.tcl (WarningDlg::constructor):Destroy with unpost.
-
- * util.tcl (get_disassembly_flavor, set_disassembly_flavor,
- init_disassembly_flavor): Added these functions for the Intel P2
- disassembly flavors.
- (list_element_strcmp): New function for lsort -command on lists.
-
- * tracedlg.tcl (TraceDlg): Change combobox callback to reflect new
- after behavior.
-
- * targetselction.itb (TargetSelection::save): If the target
- is not valid, tell the user rather than simple refusing to go
- away.
- Also move stuff around to isolate the instance dependant stuff as
- much as possible
- Also replace delete with unpost.
-
- * targetselection.ith (TargetSelection): Make as much of the
- initialization stuff Class functions as possible. Then only
- initialize it once.
-
- * srcwin.ith (_update_title): initialize need_files.
-
- * srcwin.itb (SrcWin::_build_win): I changed the combobox so it
- ran its code in an idle handler, so we can take out all the after
- idle... cruft here.
-
- * srctextwin.ith (SrcTextWin): Added textheight variable so you
- can adjust the height of the text display.
-
- * srctextwin.itb (SrcTextWin::build_win): Don't hardcode the size
- of the text window, set it with the textheight option instead.
- Also replace childsite with "component text" wherever required.
-
- * srcpref.itb (SrcPref::build_win, set_flavor): Added the Intel
- disassembly flavor combobox. Added set_flavor method to support
- this.
- * srcpref.ith: Added declaration for set_flavor, and
- disassembly_flavor instance variable.
-
- * modal.tcl (ModalDialog::post, unpost): Added unpost method to
- provide a more regular way to dismiss the dialogs. Just
- destroying them was leading to funny destruction order bugs.
- Added cancel method, which is what client code should call to
- "force close" the dialog, so child classes can override, and do
- some cleanup.
-
- * memwin.itb (MemWin::destructor): Call the cancel method of the
- Preferences dialog (if it is posted) rather than just destroying
- it.
-
- * mempref.itb (MemPref::ok): call unpost, since this is a modal
- dialog.
-
- * managedwin.itb (ManagedWin::reveal): Used to be called raise.
- Don't reuse Tcl or Tk commands unless there is a really good
- reason to...
- (ManagedWin::destroy_toplevel): renamed from delete, which
- conflicts both with the Itcl1.5 delete method, and the Itcl3.0
- delete command... Also, don't use this as the way to destroy
- ManagedWins, rather destroy the object and let the object take
- care of removing its toplevel.
- (ManagedWin::_create): Group all the windows with
- . for WindowManagers that properly handle this.
- (ManagedWin::_create): Use dont_remember_size
- rather than the instance variable. Also, windows which don't
- remember size are not necessarily transient.
- (ManagedWin::_create): Only call post if the
- ManagedWin also isa ModalDialog. It is clearer what is going on.
- * managedwin.ith: Carry through the name changes.
-
- * main.tcl: call init_disassembly_flavor for Intel assembly
- flavors.
-
- *main.tcl: Group . with . This is half of the work required to
- play nice with WindowMaker. The other half waits till we can get
- gdb to pass the command-line arguments to Tcl.
-
- * interface.tcl: Add file_changed_hook to the hooks. The browser
- window watches this and refreshes the file box if it changes.
-
- * globalpref.ith (GlobalPref): This should be a modal dialog.
- * globalpref.itb (GlobalPref::build_win): call update idletasks,
- not update. Since we are calling update, there is no reason to
- delay calling resize_font_item_height.
- * globalpref.itb: Replace destroy toplevel with unpost.
-
- * debugwin.itb (DebugWin::build_win): Replace childsite with
- "component text"
-
- * console.itb (Console::_build_win): Replace childsite with
- "component text"
-
- * browserwin.itb: Rewritten pretty completely.
- * prefs.tcl (pref_set_defaults): add the browser preferences.
-
- * prefs.tcl (pref_set_defaults): add the intel disassembly flavor
- preference.
-
- * about.tcl (About): This should be a modal dialog.
-
-1999-03-02 James Ingham <jingham@cygnus.com>
-
- * globalpref.itb (GlobalPref::make_font_item): Don't do the
- resize_font_item_height here, since an update can cause the resize
- before all the windows are built. Delay to the end of build_win
- instead.
-
-1999-02-24 James Ingham <jingham@cygnus.com>
-
- * toolbar.tcl (remove_button): Specify the row in the toolbar from
- which you are removing the item. On Windows, there are two rows
- in the standard toolbar...
-
-1999-02-22 Martin Hunt <hunt@cygnus.com>
-
- * warning.tcl (WarningDlg::constructor): Remove extra quote
- that was causing loading of this module to fail.
-
- * managedwin.itb (ManagedWin::_create): If the pack fails
- (for example because the warning dialog reliazed it should
- ignore the warning) print a warning debug message and return.
- Also, while testing, tell the window manager to position
- the window without asking the user for the position.
-
-1999-02-18 Martin Hunt <hunt@cygnus.com>
-
- * srctextwin.itb (SrcTextWin::FillAssembly): As a last resort,
- if the disassembly fails for some reason, switch to the scratch
- pane and write in a message about not being able to disassemble.
-
-1999-02-18 Martin Hunt <hunt@cygnus.com>
-
- * helpviewer.ith (HtmlViewer): Add thread and function
- browser windows to help index.
-
- * help/index.toc: Removed.
-
-1999-02-18 Martin Hunt <hunt@cygnus.com>
-
- * help/thread.html: New file. Thread window online help.
- * help/index.html: Add thread.html, and alphabetize list.
- * help/source.html: Add index for thread_bp.
-
-1999-02-17 Martin Hunt <hunt@cygnus.com>
-
- * globalpref.itb (GlobalPref::build_win): Add a checkbutton to
- allow use of an internet browser to read help files.
-
- * prefs.tcl (pref_set_defaults): Add preference gdb/help/browser.
- Default is to use builtin html help.
-
- * helpviewer.itb (HtmlViewer::open_help): New public proc.
- Depending on preferences, opens help in external browser or
- internal htmlviewer.
-
- * toolbar.tcl (create_help_menu): Use HtmlViewer::open_help.
-
-1999-02-17 Martin Hunt <hunt@cygnus.com>
-
- * managedwin.itb (ManagedWin::_create): Restore some lines that
- were accidently checked in commented out.
-
-1999-02-17 Keith Seitz <keiths@cygnus.com>
-
- * help/index.html: Add function browser.
- * help/browser.html: New help file.
-
-1999-02-12 Martin Hunt <hunt@cygnus.com>
-
- * managedwin.itb (ManagedWin::_create): If a window class defines a
- public variable "nosize" the size will not be set, only the position.
- * browserwin.ith (toggle_all_bp): Add public variable "nosize".
-
-1999-02-12 Martin Hunt <hunt@cygnus.com>
-
- * process.ith: New file.
- * process.itb: New file. Converted process.tcl to new itcl class.
- * process.tcl: Deleted.
-
- * warning.tcl (WarningDlg::constructor): Set the window name.
-
-1999-02-11 Martin Hunt <hunt@cygnus.com>
-
- * variables.tcl (editEntry): Check that $variable is not empty.
-
- * warning.tcl (WarningDlg::constructor): Put focus on the
- "OK" button and bind it to <Return>.
-
- * watch.tcl (add): If the user attempts to add a non-existent
- variable to the watch-window, display an ignorable warning.
-
- * interface.tcl (gdbtk_tcl_ignorable_warning): -transient
- should not take an argument.
- (set_target_name): Ditto.
- * srcbar.tcl (create_menu_items): Ditto.
- * memwin.itb (MemWin::create_prefs): Ditto.
- * managedwin.itb (ManagedWin::_create): Ditto.
-
-1999-02-11 James Ingham <jingham@cygnus.com>
-
- Move the Intel disassembly mode changes into devo.
-
- * main.tcl: Init the disassembly flavor bits.
- * prefs.tcl: Define disassembly-flavor
- * srcpref.ith: Add current_disassembly_flavor instance variable
- and set_flavor method.
- * srcpref.itb (build_win): Add the disassembly_flavor combobox.
- (apply): set the flavor, if applicable.
- (set_flavor): New method.
- * util.tcl: Add 3 new functions - get_disassembly_flavor,
- list_disassembly_flavor and init_disassembly_flavor.
-
-1999-02-10 Martin Hunt <hunt@cygnus.com>
-
- * srcwin.itb, download.tcl, main.tcl, srcbar.tcl: Removed old
- IDE stuff.
-
- * toolbar.tcl (create_help_menu): Updated Cygnus URL and
- removed old IDE stuff.
- (create_ide_buttons): Removed.
-
-1999-02-10 Martin Hunt <hunt@cygnus.com>
-
- * managedwin.itb (ManagedWin::_create): Bind Alt-F4 to
- always close the window.
-
-1999-02-10 Martin Hunt <hunt@cygnus.com>
-
- * main.tcl: Removed old debugging preferences.
- * prefs.tcl (pref_set_defaults): Ditto.
-
-1999-02-09 Martin Hunt <hunt@cygnus.com>
-
- * managedwin.itb (ManagedWin::_create): Simplify raise
- and post now that all windows use new manager.
-
- * warning.tcl (WarningDlg): Rewrite of entire class to use
- new itcl 3.0 class. Also now uses a "class name" to keep
- track of which messages should be ignored. Uses tk_messageBox
- of the message doesn't have -ignorable set.
-
- * interface.tcl: Removed IDE stuff.
- (gdbtk_tcl_ignorable_warning): Accept "class" argument and
- use it when creating a WarningDlg. Use new ManagedWin::open.
-
- * srctextwin.itb (SrcTextWin::set_tp_at_line): Fix TraceDlg
- open command to use ManagedWin::open.
-
- * srcpref.itb (SrcPref::build_win): Comment out line number
- option. It wasn't very useful and did not become effective
- until GDBtk was restarted.
-
-1999-02-09 James Ingham <jingham@cygnus.com>
-
- * srctextwin.itb (build_win): Set the paned window background to
- white so it looks better when you switch windows.
-
- * mempref.itb (build_win): Use the libgui combobox for the bytes per
- line field.
-
- * mempref.itb: remove some global declarations that I missed when
- I converted all the variables to instance data.
-
- * variables.tcl (change_value): Catch one more place where $this
- was being passed as a window name.
-
- * TODO: Added some more items, and removed some that had been fixed.
-
-Mon Feb 8 12:27:16 1999 Keith Seitz <keiths@cygnus.com>
-
- * interface.tcl (set_target_name): Fix switch syntax
- error and getd the options preference in case it's not set.
-
-
-Thu Feb 4 11:55:43 1999 Keith Seitz <keiths@cygnus.com>
-
- * targetselection.itb (_init_db): Add MIPS target.
- (fill_targets): Ditto.
-
-Thu Feb 4 07:56:12 1999 Keith Seitz <keiths@cygnus.com>
-
- * targetselection.itb: Set "TargetSelection::target_trace"
- as the correct trace for gdb_loaded.
- * targetselection.ith: Make "target_trace" a public proc.
-
-1999-02-03 Martin Hunt <hunt@cygnus.com>
-
- * help/console.html: Cleaned up and added history and editing
- commands.
-
- * stackwin.itb (StackWin::build_win): Remove balloon help.
-
- * console.itb (Console::_search_history): New function.
- Does a pattern match on history buffer.
- (Console::_rsearch_history): New function. Does a pattern
- match on history buffer in the reverse direction.
- (Console::_build_win): Bind Control-Up, Control-Down,
- Shift-Up, and Shift-Down to search history instead of mess
- up the console window. Bind Control-o to break to disable it.
-
- * help/stack.html: Cleanup.
-
- * help/source.html: Add a bunch of missing quotation marks.
-
-1999-02-03 Martin Hunt <hunt@cygnus.com>
-
- * memwin.itb: Change from tixControl widget to iwidgets::spinint.
- Fix problems with error dialogs.
-
-1999-02-02 Martin Hunt <hunt@cygnus.com>
-
- * srctextwin.itb (SrcTextWin::do_source_popup): Even after fixing the
- obvious syntax errors in this function, it didn't work. So I
- simplified the logic. Now it will attempt to use whatever is selected.
- If multiple lines are selected and tracing is enabled, it will set
- tracepoints, otherwise it will try to extract a variable name from single
- lines only.
-
- * main.tcl: Only open debugwin if GDBTK_DEBUG > 1.
-
- * toolbar.tcl (create_view_menu): Only add "Debug WIndow" menu
- item if GDBTK_DEBUG is set.
-
-1999-02-02 Martin Hunt <hunt@cygnus.com>
-
- * browserwin.itb (BrowserWin::_fill_source): Add lib argument
- from gdb_loc to the call to $Source location.
- (BrowserWin::_goto_func): Ditto.
-
-1999-02-01 James Ingham <jingham@cygnus.com>
-
- * browserwin.itb (BrowserWin::_fill_source): Add a null lib
- argument to the call to $Source location.
-
-1999-02-01 Martin Hunt <hunt@cygnus.com>
-
- * prefs.tcl (pref_save): Change the list of sections back into
- a list.
-
-1999-02-01 Martin Hunt <hunt@cygnus.com>
-
- * srctextwin.itb (SrcTextWin::FillMixed): Simplify line formatting.
- (SrcTextWin::continue_to_here): Call gdb_set_bp with new type arg.
- (SrcTextWin::set_bp_at_line): Call gdb_set_bp with new type arg.
- Use "catch" command and display error if there is one.
-
-1999-02-01 Martin Hunt <hunt@cygnus.com>
-
- * srcwin.itb (SrcWin::goto_func): Dont attach filename if
- there isn't a valid one.
-
-Fri Jan 29 20:01:30 1999 Fernando Nasser <fnasser@rtl.cygnus.com>
-
- * main.tcl: Restored kod code lost with merge
- * prefs.tcl: Ditto.
- * srctextwin.tcl: Ditto.
- * toolbar.tcl: Ditto
- * kod.tcl: Adapted to the new branch.
-
-1999-01-28 Martin Hunt <hunt@cygnus.com>
-
- * srcwin.itb (SrcWin::_build_win): Only call gdb_loc once.
- (SrcWin::location): Update linespec for gdb_loc to include
- the "lib" arg.
-
- * srctextwin.itb (SrcTextWin::LoadFromCache): Add "lib"
- argument. This is used to create a unique cache key so
- we don't confuse the disassembly of a function in a shared
- lib with the disassembly of its trampoline. Also updated
- UnLoadFromCache, LoadFIle, FillSource, FillMixed, and FillAssembly
- to pass this argument around.
-
- * helpviewer.ith (HtmlViewer::constructor): Declare we have a
- constructor.
- (PageStack::constructor): Delete this declaration.
-
- * helpviewer.itb (HtmlViewer::constructor): initialize args before
- calling _buildwin
-
- * main.tcl: Only open initial debug window if GDBTK_DEBUG
- is set.
-
- * help/debug.html: Add help for GDBTK_DEBUG
-
-Wed Jan 27 07:18:05 1999 Keith Seitz <keiths@cygnus.com>
-
- * interface.tcl (gdbtk_pc_changed): Removed.
- (gdbtk_register_changed): New procedure.
- (gdbtk_memory_changed): New procedure.
-
diff --git a/gdb/gdbtk/library/ChangeLog-2000 b/gdb/gdbtk/library/ChangeLog-2000
deleted file mode 100644
index 5d16d82673d..00000000000
--- a/gdb/gdbtk/library/ChangeLog-2000
+++ /dev/null
@@ -1,409 +0,0 @@
-2000-12-13 Fernando Nasser <fnasser@redhat.com>
-
- * variables.tcl (constructor): Use the file_changed_hook to remove
- all variables if the exec file changes. This prevents the Watch
- Window to dump core because the "types" are not valid anymore.
-
-2000-12-13 Fernando Nasser <fnasser@redhat.com>
-
- * session.tcl (session_save): Save target name.
- (session_load): Restore target name.
-
-2000-12-08 Tom Tromey <tromey@redhat.com>
-
- * managedwin.itb (ManagedWin::startup): Only open source window
- if it doesn't already exist.
-
- * toolbar.tcl (create_help_menu): Remove `Cygnus' item.
-
- * console.itb (Console::invoke): Trim trailing newlines from
- text.
-
-2000-12-07 Tom Tromey <tromey@redhat.com>
-
- * managedwin.itb (ManagedWin::reveal): Don't set focus.
-
- * tclIndex: Rebuilt.
- * interface.tcl (set_exe_name): Save session.
- (gdbtk_quit_check): Save session.
- * session.tcl: New file.
- * srcbar.tcl (create_menu_items): Add menu items to recall old
- sessions.
-
- * bpwin.itb (BpWin::goto_bp): Handle multiple source windows.
- * srctextwin.itb (SrcTextWin::get_file): New method.
- (SrcTextWin::set_tag_to_stack): New method.
- * srctextwin.ith (get_file): Declare.
- * srcwin.ith (update_hook_init, window_list, pc_window): New
- common variables.
- (_choose_window, choose_and_update, is_fixed, get_file): Declare.
- * srcwin.itb (SrcWin::_choose_window): New method.
- (SrcWin::choose_and_update): Likewise.
- (SrcWin::_update): Renamed from update. Now private. Added `loc'
- argument.
- (SrcWin::get_file): New method.
- (SrcWin::is_fixed): Likewise.
- (SrcWin::constructor): Only add update hook once. Append this
- object to window list.
- (SrcWin::destructor): Don't add update hook. Remove this object
- from window list. Clear pc_window if necessary.
- (SrcWin::get_top): New method.
- (SrcWin::_set_tag_to_stack): New method.
- (SrcWin::choose_and_display): New method.
-
- * srctextwin.itb (SrcTextWin::do_source_popup): Added "Set
- Breakpoint" to popup menu.
-
- * srcwin.itb (SrcWin::edit): Use uplevel, not eval, to evaluate
- external editor expression.
-
-2000-12-06 Tom Tromey <tromey@redhat.com>
-
- * targetselection.itb (TargetSelection::build_win): Add option to
- start xterm.
- * interface.tcl (run_executable): Call tty::create if requested.
- * tty.tcl: New file.
-
-2000-12-02 Tom Tromey <tromey@redhat.com>
-
- * console.ith (_set_wrap): Declare.
- (_update_option): Likewise.
- * console.itb (Console::constructor): Install preference hooks
- (commented out pending a bug fix).
- (Console::destructor): Remove preference hooks.
- (Console::_set_wrap): New method.
- (Console::_update_option): New method.
- (Console::_build_win): Use _set_wrap.
-
-2000-12-01 Larry Smith <lsmith@redhat.com>
-
- * console.itb (invoke): Added logic to allow user to build
- up multiline "tk" commands based on results from checking
- command with [info complete $cmd]s.
-
-2000-11-30 Tom Tromey <tromey@cygnus.com>
-
- * srctextwin.ith (enable_disable_at_line): Declare.
- * srctextwin.itb (SrcTextWin::build_popups): Create popup for
- disabled breakpoint. Add "disable" to breakpoint menu.
- (enable_disable_at_line): New method.
- (SrcTextWin::do_bp): Don't remove the tag we are adding -- remove
- the "opposite" tag.
-
-2000-11-30 Tom Tromey <tromey@cygnus.com>
-
- * prefs.tcl (pref_save): Put version number into file. Added
- `session' to list of top-level keys. Allow keys with many `/'s.
- (pref_read): Recognize version number.
- (escape_value): Generate URL-style encoding.
- (unescape_value): Added `version' argument. Handle URL decoding.
-
-2000-11-29 Larry Smith <lsmith@redhat.com>
-
- * regwin.itb (build_win,but3): Added "Double" menu entry to
- permit selection of "f" format for register display.
-
-2000-11-06 Fernando Nasser <fnasser@cygnus.com>
-
- * interface.tcl (show_warning): Add missing argument to ide_messageBox
- and add comments explaining why we use it for windows.
-
-2000-11-01 Larry Smith <lsmith@redhat.com>
-
- * console.itb (_build_win): Added code to remove horizontal
- scrollbar by setting -hscrollmode none, which enables the
- console widget to wrap text properly.
- * globalpref.itb (build_win): added checkbutton to enable
- wrapping text in the console window.
-
-2000-10-31 Larry Smith <lsmith@redhat.com>
-
- * targetselection.ith (run_method): Add variable for
- "Run Program" and "Continue..." buttons
- * targetselection.itb (build_win): put "Run Program" and
- "Continue From..." buttons into a frame and save them in new
- run_method variable.
- * change targetselection.itb (change_target) disables "Run
- Program" and "Continue..." buttons when the target is "exec",
- enables them for all others.
-
-2000-10-26 Larry Smith <lsmith@redhat.com>
-
- * targetselection.itb: Run Program and Continue From Last Stop
- are now radio buttons rather than checkbuttons
-
-2000-10-26 Mo DeJong <mdejong@redhat.com>
-
- * attachdlg.itb (list_pids): Use "ps axw" to get pid list
- when running under Linux. Use string match instead of
- regexp match is ps filter entry.
- * attachdlg.ith (list_pids): Change default argument to "*".
-
-2000-10-23 Fernando Nasser <fnasser@cygnus.com>
-
- * util.tcl (find_iwidgets_library): Use the directories that were
- actually searched in the error message.
-
-2000-10-13 Fernando Nasser <fnasser@cygnus.com>
-
- With Steven Johnson <sbjohnson@ozemail.com.au>
- This change fixes part of the possible scenarios where a race condition
- would cause core dumps if there were commands changing registers or
- other target resources in a startup script.
- The remaining scenarios are fixed by a patch to generic/gdbtk-hooks.c
- * interface.tcl (gdbtk_update_safe): New function. Like gdbtk_update
- but does nothing if target is running.
- (gdbtk_register_changed): Call the above safe version.
- (gdbtk_memory_changed): Likewise.
-
-2000-10-11 Fernando Nasser <fnasser@cygnus.com>
-
- * srctextwin.itb (build_popups): Fix typos that caused duplicate
- "Jump to Here" menu entries in the breakpoint-set right-click pop-up
- menu.
-
-2000-10-04 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * download.itb (download_it): Fix previous changes for non-windows
- hosts.
- * srctextwin.itb (LoadFromCache): Ditto.
-
-2000-10-04 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * download.itb (download_it): Convert filename to native before
- passing it to a Tcl command.
- * srctextwin.itb (_mtime_changed): Ditto.
- (LoadFromCache): Ditto.
-
-2000-09-18 Fernando Nasser <fnasser@cygnus.com>
-
- * watch.tcl (build_win): Use code when setting callback.
-
-2000-08-10 Fernando Nasser <fnasser@cygnus.com>
-
- * targetselection.itb (change_baud): Fix typo (ETH, not ETX).
-
-2000-08-10 Fernando Nasser <fnasser@cygnus.com>
-
- * targetselection.itb (init_target_db): Add 115200 baud option to
- target remote.
-
-2000-08-10 Fernando Nasser <fnasser@cygnus.com>
-
- * targetselection.itb (change_baud): Don't set baud for ETX.
-
-2000-08-10 Fernando Nasser <fnasser@cygnus.com>
-
- * srctextwin.itb (jump_to_here): New method. Implements the
- "Jump to Here" popup menu option.
- (build_popups): Add the "Jump to Here" option to the popup menu.
- * srctextwin.ith: Add declaration of jump_to_here().
-
-2000-08-09 Fernando Nasser <fnasser@cygnus.com>
-
- * srctextwin.itb (FillSource): Add comments.
- * srcwin.itb (set_execution_status): Fix typo in SRC+ASM message.
- It is gdb_cmd, not gb_cmd.
-
-2000-08-08 Fernando Nasser <fnasser@cygnus.com>
-
- * srctextwin.itb (LoadFromCache): Do not cache if cannot stat the file.
- This lead to problems trying to access a incomplete cache entry later.
-
-2000-06-06 Fernando Nasser <fnasser@cygnus.com>
-
- * util.tcl (find_iwidgets_library): Add missing global declaration
- which caused a stack trace instead of the proper error message.
-
-2000-05-04 Fernando Nasser <fnasser@cygnus.com>
-
- * regwin.itb (build_win, update): Safer test for editable.
-
-2000-05-01 Fernando Nasser <fnasser@cygnus.com>
-
- * variables.tcl (edit): Make changes to a variable which is a register
- to be reflected on the register window by running the update hook.
-
-2000-05-01 Fernando Nasser <fnasser@cygnus.com>
-
- * regwin.itb (build_win): Adjust size of columns independently, force
- typed registers to raw mode and check if values can be edited.
- Also, add "Add to Watch" option to the menu.
- (update): Similar changes to similar code.
- (init_reg_display_vars): Initialize new variables used above.
- (reg_select): Deactivate menu options when action is not possible.
- (but3): Ditto.
- (edit): Do not edit if it is not editable.
- (acceptEdit): Fix bug is error message box display.
- (addToWatch): New mwthod. Add a register to the Watch window.
- * regwin.ith: Add addToWatch to the class.
- * tclIndex: Regenerate.
-
-2000-04-27 James Ingham <jingham@leda.cygnus.com>
-
- These changes allow Insight to handle the case where there are
- symbols for the source files, but the source files are not in the
- location pointed to by the symbol.
-
- * srctextwin.itb (SrcTextWin::setTabs): Make the "asm" type for
- the source display "S" not "", which is not very clear.
- (SrcTextWin::configWin): ditto.
- (SrcTextWin::FillAssembly): Handle all return values from
- LoadFromCache.
- * (SrcTextWin::LoadFile): Handle "couldn't find file" return from
- LoadFromCache.
- * (SrcTextWin::LoadFromCache): If the source file could not be
- found, return -1 rather than choking.
- Also change "asm" type for source from "" to "S".
- * srctextwin.ith: Change the defaults for the "asm" type from ""
- to "S" for Source display. This is just cosmetic, but clearer.
-
-2000-04-13 Tom Tromey <tromey@cygnus.com>
-
- * console.itb (Console::_complete): Dequoted first argument to
- switch. Window name is `$_twin', not `_twin'.
-
-2000-04-10 Tom Tromey <tromey@cygnus.com>
-
- * srctextwin.itb (SrcTextWin::build_popups): Don't set actibe
- background on popup menu item.
-
-2000-04-08 Tom Tromey <tromey@cygnus.com>
-
- * console.itb (Console::_build_win): Make Control-a, Control-u,
- and Control-w bindings show the insertion point.
-
-2000-04-05 James Ingham <jingham@leda.cygnus.com>
-
- * regwin.itb (RegWin::build_win): Enable the "Display all
- registers" menu at startup if any registers have been removed.
- (RegWin::save_reg_display_vars): Handle cases where the register
- set is not contiguous.
- (RegWin::destructor): Actually save away the removed registers.
- The latter two are Steve Johnson's change.
-
- * regwin.ith (RegWin): Added "all_regs_shown" and
- "disp_all_menu_item" to handle tracking whether any registers have
- been removed from the display.
-
-
-2000-04-03 Steve Johnson <sbjohnson@ozemail.com.au>
-
- * regwin.itb (dimensions): Use rows from preference file rather
- than hard-coding a preference.
- * prefs.tcl (pref_set_defaults): Add gdb/reg/rows preference.
-
-2000-04-03 James Ingham <jingham@leda.cygnus.com>
-
- * util.tcl (find_iwidgets_library): Follow links in determining
- the location of the executable.
-
-2000-03-30 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * variables.tcl (edit): Remove call to close, which caused editing
- of variables to fail.
- Note: I don't know why we would need to do this here as it seems
- that the "delete entry" operation will do that.
- Perhaps this was to account to some old widget bug.
- But we cannot call close here because it calls UnEdit,
- which unsets some of the edit state.
- (open): Make sure to abort any ongoing edit. This was causing problems
- when someone tried to expand an structure while editing its pointer.
-
-2000-03-28 James Ingham <jingham@leda.cygnus.com>
-
- * managedwin.itb (ManagedWin::startup): Open the SrcWin, this does
- two things, 1) Makes sure that there IS a SrcWin, and 2) brings
- the first such window to the foreground...
-
-2000-03-28 Jim Blandy <jimb@redhat.com>
-
- Handle the fact that there are holes in the register numbering.
- * regwin.itb (RegWin::init_reg_display_vars): Ask gdb_regnames to
- provide the register numbers, too; don't just assume that the Nth
- element is register N.
-
-2000-03-27 James Ingham <jingham@leda.cygnus.com>
-
- * interface.tcl (gdbtk_quit): Let the window manager store away
- the list of active windows before quitting.
- (gdbtk_tcl_preloop): Open all the windows that were active in the
- former session.
- * prefs.tcl (pref_set_defaults): Set the default value of the
- "gdb/window/active" pref. Stores the list of active windows.
- * managedwin.itb (ManagedWin::pickle): New method - store away
- instructions to recreate this window.
- (ManagedWin::shutdown): New Method - run through the active windows
- pickling them all.
- (ManagedWin::startup): Restore all the saved active windows.
- * managedwin.ith: Declare pickle, shutdown & startup.
- * tclIndex: regenerate.
-
-2000-03-10 James Ingham <jingham@leda.cygnus.com>
-
- * targetselection.ith (get_target_list): Should be a proc, since
- it does nothing instance-specific.
-
- * util.tcl (keep_raised): For some reason raising a window, then
- deiconifying it is MUCH faster on "e" & WindowMaker under XFree.
- Go figure. Other WM's don't seem to care, so do it this way...
- * managedwin.itb (ManagedWin::reveal): Ditto...
-
-2000-03-10 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * srcbar.tcl (do_attach): Just call gdbtk_attach_native.
- (do_connect): Replace gdbtk_attach_target call with
- gdbtk_attach_remote call.
-
- * interface.tcl (gdbtk_attach_native): Renamed from do_attach method
- and moved from srcbar.tcl.
- (gdbtk_attach_remote): New proc. Renamed from gdb_attach_target,
- to better distinguish from the native version.
- (run_executable): Change gdbtk_attach_target call into
- gdbtk_attach_remote.
-
- * srctextwin.itb: Add keyboard accelerator for Attach command.
-
- * tclIndex: Rebuild.
-
-2000-03-09 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- From: James Ingham <jingham@leda.cygnus.com>:
- * attachdlg.itb (build_win): Pack the dialog better, so that when
- window is resized components are not hidden.
-
-2000-03-02 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * attachdlg.itb: Give a name to the window.
-
-2000-03-01 James Ingham <jingham@leda.cygnus.com>
-
- * interface.tcl (_open_file): The window which had the focus could
- get deleted by the vwait implicit in the tk_getOpenFile call. So
- check and make sure it is still around before raising it...
-
-2000-02-23 Keith R Seitz <kseitz@nwlink.com>
-
- * srctextwin.ith (_highlightAsmLine): Define new method.
- * srctextwin.itb (_highlightAsmLine): New method.
- (FillAssembly, FillMixed): Use _highlightAsmLine to highlight
- the current assembly line.
-
-Fri Feb 4 23:19:03 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdb/gdbtcl2: Directory renamed to gdb/gdbtk/library.
-
-2000-01-12 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * targetselection.itb (init_target_db): Add the word "serial" to
- the Angel target to make the distinction clear from the UDP connection.
-
-2000-01-05 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- From Dave Vogel (dave@lightsurf.com):
- * targetselection.itb (init_target_db, config_dialog): Add support
- for selecting a target running the Angel monitor (RDI protocol)
- over an UDP connection.
- * interface.tcl (set_target_name): Set hostname when target is RDI
- over UDP (see previous entry).
-
diff --git a/gdb/gdbtk/library/Makefile b/gdb/gdbtk/library/Makefile
deleted file mode 100644
index c1e653b7944..00000000000
--- a/gdb/gdbtk/library/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-
-TCL := $(wildcard *.tcl *.itcl *.ith *.itb)
-
-TCLSH = tclsh
-
-tclIndex: $(TCL) Makefile
- echo "package require Itcl; auto_mkindex `pwd` $(TCL)" | $(TCLSH)
-
-tags: TAGS
-TAGS: $(TCL)
- etags --lang=none --regex='/[ \t]*\(proc\|method\|itcl_class\)[ \t]+\([^ \t]+\)/\1/' $(TCL)
diff --git a/gdb/gdbtk/library/about.tcl b/gdb/gdbtk/library/about.tcl
deleted file mode 100644
index 937b48051c8..00000000000
--- a/gdb/gdbtk/library/about.tcl
+++ /dev/null
@@ -1,43 +0,0 @@
-# About window for GDBtk.
-# Copyright (C) 1997, 1998, 1999, 2000, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ----------------------------------------------------------------------
-# Implements About window
-# ----------------------------------------------------------------------
-
-itcl::class About {
- inherit ManagedWin ModalDialog
- constructor {args} {
- global gdb_ImageDir
- set f [frame $itk_interior.f]
- label $f.image1 -bg #ee0000 -image \
- [image create photo -file [file join $gdb_ImageDir insight.gif]]
- message $f.m -bg #ee0000 -fg white -text [gdb_cmd {show version}] \
- -aspect 500 -relief flat
- pack $f.image1 $f.m $itk_interior.f -fill both -expand yes
- pack $itk_interior
- bind $f.image1 <1> [code $this unpost]
- bind $f.m <1> [code $this unpost]
- window_name "About Red Hat Insight"
- }
-
- # Don't quit if this is the last window. The only way that this can
- # happen is if we are the splash screen.
-
- method quit_if_last {} {
- return 0
- }
-
-}
-
diff --git a/gdb/gdbtk/library/actiondlg.tcl b/gdb/gdbtk/library/actiondlg.tcl
deleted file mode 100644
index 20314bfabf9..00000000000
--- a/gdb/gdbtk/library/actiondlg.tcl
+++ /dev/null
@@ -1,810 +0,0 @@
-# Tracepoint actions dialog for Insight.
-# Copyright (C) 1997, 1998, 1999, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class ActionDlg {
- inherit ManagedWin
-
- # ------------------------------------------------------------------
- # CONSTRUCTOR
- # ------------------------------------------------------------------
- constructor {args} {
- global _TStepCount _TOtherVariable
-
- eval itk_initialize $args
-
- set Registers [gdb_reginfo name]
- if {$Line != ""} {
- set Locals [gdb_get_locals "$File:$Line"]
- set Args [gdb_get_args "$File:$Line"]
- } else {
- set Locals [gdb_get_locals "*$Address"]
- set Args [gdb_get_args "*$Address"]
- }
- set Variables [concat $Locals $Args]
- foreach a $Registers {
- lappend Variables "\$$a"
- }
-
- if {[llength $Args] > 0} {
- lappend Variables "All Arguments"
- }
- if {[llength $Locals] > 0} {
- lappend Variables "All Locals"
- }
- lappend Variables "All Registers"
- lappend Variables "Collect Stack"
-
- build_win
-
- # Set a default return status, in case we are destroyed
- set _TOtherVariable {}
-
- # Fill the listboxes with any default data
- if {"$Data" != {}} {
- change 1 $Data
- }
- }
-
- # ------------------------------------------------------------------
- # DESTRUCTOR - destroy window containing widget
- # ------------------------------------------------------------------
- destructor {
-
- # Remove this window and all hooks
- # grab release $this
-
- # Note that this is okay: the callback (TraceDlg::done, usually) will
- # ignore stray "cancel" callbacks
- eval $Callback cancel
- }
-
- # ------------------------------------------------------------------
- # METHOD: build_win - build the Trace dialog box (cache this?)
- # ------------------------------------------------------------------
- method build_win {} {
- global _TStepCount _TOtherVariable
-
- set f $itk_interior
-
- # The two frames of this dialog
- set bbox [frame $f.bbox]; # for holding OK,CANCEL buttons
- set data [frame $f.data]; # for everything else
-
- # Setup the button box
- button $bbox.ok -text OK -command "$this ok"
- button $bbox.cancel -text CANCEL -command "$this cancel"
- pack $bbox.ok $bbox.cancel -side left -padx 10 -expand yes
-
- # The "Data Collection" Frame
- set top [frame $data.top]
- set bot [frame $data.bot]
-
- set boxes [frame $top.boxes]
- set cFrame [frame $boxes.cFrame]
- set vFrame [frame $boxes.vFrame]
- set bFrame [frame $boxes.bframe]
- set oFrame [frame $top.uFrame]
- pack $cFrame $bFrame $vFrame -side left -expand yes -padx 5
-
- # While stepping
- if {$WhileStepping} {
- set step_frame [frame $top.stepf]
- label $step_frame.whilelbl -text {While Stepping, Steps:}
- set WhileSteppingEntry [entry $step_frame.steps \
- -textvariable _TStepCount \
- -width 5]
- pack $step_frame.whilelbl $WhileSteppingEntry -side left
- }
-
- # The Collect listbox
- label $cFrame.lbl -text {Collect:}
- set CollectLB [iwidgets::scrolledlistbox $cFrame.lb -hscrollmode dynamic \
- -vscrollmode dynamic \
- -selectioncommand [code $this toggle_button_state 0] \
- -dblclickcommand [code $this change 0] \
- -selectmode extended \
- -exportselection false]
- [$CollectLB component listbox] configure -background gray92
- pack $cFrame.lbl $cFrame.lb -side top -expand yes -pady 2
-
- # The Variables listbox
- label $vFrame.lbl -text {Variables:}
- set VariablesLB [iwidgets::scrolledlistbox $vFrame.lb -hscrollmode dynamic \
- -vscrollmode dynamic \
- -selectioncommand [code $this toggle_button_state 1] \
- -dblclickcommand [code $this change 1] \
- -selectmode extended \
- -exportselection false]
- [$VariablesLB component listbox] configure -background gray92
- pack $vFrame.lbl $vFrame.lb -side top -expand yes -pady 2
-
- # The button frame
- set AddButton [button $bFrame.add -text {<<< Collect} \
- -command "$this change 1" -state disabled]
- set RemoveButton [button $bFrame.del -text {Ignore >>>} \
- -command "$this change 0" -state disabled]
- pack $bFrame.add $bFrame.del -side top -expand yes -pady 5
-
- # The other frame (type-in)
- label $oFrame.lbl -text {Other:}
- set OtherEntry [entry $oFrame.ent -textvariable _TOtherVariable]
- pack $oFrame.lbl $OtherEntry -side left
- bind $OtherEntry <Return> "$this change_other"
-
- # Pack these frames
- if {$WhileStepping} {
- pack $step_frame -side top
- }
-
- pack $boxes $oFrame -side top -padx 5 -pady 5
- pack $top $bot -side top
-
- # Fill the list boxes
- fill_listboxes
-
- # Pack the main frames
- # after idle
- pack $f.data $bbox -side top -padx 4 -pady 2 \
- -expand yes -fill x
-
- # !!???
- if {$WhileStepping} {
- $WhileSteppingEntry delete 0 end
- $WhileSteppingEntry insert 0 $Steps
- }
- }
-
- method toggle_button_state {add} {
-
- # This is invoked whenever a <1> event is generated in
- # the listbox...
- if {$add} {
- set a [$VariablesLB getcurselection]
- if {"$a" != ""} {
- $AddButton configure -state normal
- $RemoveButton configure -state disabled
- }
- } else {
- set a [$CollectLB getcurselection]
- if {"$a" != ""} {
- $AddButton configure -state disabled
- $RemoveButton configure -state normal
- }
- }
- }
-
-
- # ------------------------------------------------------------------
- # METHOD: fill_listboxes - fills the two listboxes
- # ------------------------------------------------------------------
- method fill_listboxes {{last {}}} {
-
- # Fill the Collect listbox with the variables being collected
- if {[info exists Collect]} {
- fill_collect $last
- }
-
- fill_variables $last
- }
-
- # ------------------------------------------------------------------
- # METHOD: change - change a selected variable
- # ------------------------------------------------------------------
- method change {add {select {}}} {
- if {"$select" == {}} {
- set selections [get_selections $add]
- set lb [lindex $selections 0]
- set last [lindex $selections 1]
- set selection [lindex $selections 2]
- set noname 1
- } else {
- # This usually (only) occurs when we open this dialog for editing
- # some existing action.
- set lb {}
- set last {}
- set noname 0
- set selection $select
- }
-
- $RemoveButton configure -state disabled
- $AddButton configure -state disabled
-
- # Remove all the selections from one list
- # and add them to the other list
- if {$add} {
- set list1 $Variables
- set list2 $Collect
- } else {
- set list1 $Collect
- set list2 $Variables
- }
-
- foreach a $selection {
- if {$noname} {
- set name [$lb get $a]
- } else {
- set name $a
- }
-
- if {"$name" == "All Locals" || "$name" == {$loc}} {
- set name "All Locals"
- set lists [all_locals $add]
- set list1 [lindex $lists 0]
- set list2 [lindex $lists 1]
- } elseif {"$name" == "All Registers" || "$name" == {$reg}} {
- set name "All Registers"
- set lists [all_regs $add]
- set list1 [lindex $lists 0]
- set list2 [lindex $lists 1]
- } elseif {"$name" == "All Arguments" || "$name" == {$arg}} {
- set name "All Arguments"
- set lists [all_args $add]
- set list1 [lindex $lists 0]
- set list2 [lindex $lists 1]
- } else {
- set i [lsearch -exact $list1 $name]
- set list1 [lreplace $list1 $i $i]
-
- # Check if this is something we want to keep on a list
- if {[lsearch $Args $name] != -1 || [lsearch $Registers [string trim $name \$]] != -1 || [lsearch $Locals $name] != -1 || $add} {
- lappend list2 $name
- }
- }
-
- if {$add} {
- set Collect $list2
- set Variables $list1
- } else {
- set Collect $list1
- set Variables $list2
- }
- }
-
- # Update boxes (!! SLOW !!)
- fill_collect $last
- fill_variables $last
- }
-
- # ------------------------------------------------------------------
- # METHOD: fill_collect - fill the collect box
- # ------------------------------------------------------------------
- method fill_collect {{last {}}} {
-
- $CollectLB delete 0 end
- set Collect [sort $Collect]
- foreach a $Collect {
- $CollectLB insert end $a
- }
- if {"$last" != ""} {
- $CollectLB see $last
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: fill_variables - fill the variables box
- # ------------------------------------------------------------------
- method fill_variables {{last {}}} {
-
- $VariablesLB delete 0 end
- set Variables [sort $Variables]
- foreach a $Variables {
- $VariablesLB insert end $a
- }
-
- if {"$last" != ""} {
- $VariablesLB see $last
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: sort - sort a list of variables, placing regs and
- # special identifiers (like "All Locals") at end
- # ------------------------------------------------------------------
- method sort {list} {
-
- set special_names {
- "All Arguments" args \
- "All Locals" locs \
- "All Registers" regs \
- "Collect Stack" stack
- }
-
- foreach {name var} $special_names {
- set i [lsearch $list $name]
- if {$i != -1} {
- set $var 1
- set list [lreplace $list $i $i]
- } else {
- set $var 0
- }
- }
-
- # Extract all the locals, regs, args, globals
- set types_list {Args Locals Registers }
- foreach type $types_list {
- set used_$type {}
-
- foreach a [set $type] {
- set i [lsearch $list $a]
- if {$i != -1} {
- lappend used_$type $a
- set list [lreplace $list $i $i]
- }
- }
- set used_$type [lsort [set used_$type]]
- }
-
- set globals [lsort $list]
-
- # Sort the remaining list in order: args, locals, globals, regs
- set list [concat $used_Args $used_Locals $globals $used_Registers]
-
- set list2 {}
-
- foreach {name var} $special_names {
- if {[set $var]} {
- lappend list2 $name
- }
- }
-
- set list [concat $list2 $list]
- return $list
- }
-
- # ------------------------------------------------------------------
- # METHOD: all_args - add/remove all args
- # ------------------------------------------------------------------
- method all_args {add} {
-
- if {$add} {
- set list1 $Variables
- set list2 $Collect
- } else {
- set list1 $Collect
- set list2 $Variables
- }
-
-# foreach var $Args {
-# set i [lsearch $list1 $var]
-# if {$i != -1} {
-# set list1 [lreplace $list1 $i $i]
-# lappend list2 $var
-# }
-# }
-
- lappend list2 "All Arguments"
- set i [lsearch $list1 "All Arguments"]
- if {$i != -1} {
- set list1 [lreplace $list1 $i $i]
- }
-
- return [list $list1 $list2]
- }
-
- # ------------------------------------------------------------------
- # METHOD: all_locals - add/remove all locals
- # ------------------------------------------------------------------
- method all_locals {add} {
-
- if {$add} {
- set list1 $Variables
- set list2 $Collect
- } else {
- set list1 $Collect
- set list2 $Variables
- }
-
-# foreach var $Locals {
-# set i [lsearch $list1 $var]
-# if {$i != -1} {
-# set list1 [lreplace $list1 $i $i]
-# lappend list2 $var
-# }
-# }
-
- lappend list2 "All Locals"
- set i [lsearch $list1 "All Locals"]
- if {$i != -1} {
- set list1 [lreplace $list1 $i $i]
- }
-
- return [list $list1 $list2]
- }
-
- # ------------------------------------------------------------------
- # METHOD: all_regs - add/remove all registers
- # ------------------------------------------------------------------
- method all_regs {add} {
-
- if {$add} {
- set list1 $Variables
- set list2 $Collect
- } else {
- set list1 $Collect
- set list2 $Variables
- }
-
-# foreach var $Registers {
-# set i [lsearch $list1 "\$$var"]
-# if {$i != -1} {
-# set list1 [lreplace $list1 $i $i]
-# lappend list2 "\$$var"
-# }
-# }
-
- lappend list2 "All Registers"
- set i [lsearch $list1 "All Registers"]
- if {$i != -1} {
- set list1 [lreplace $list1 $i $i]
- }
-
- return [list $list1 $list2]
- }
-
- # ------------------------------------------------------------------
- # METHOD: change_other - add/remove a user defined type
- # ------------------------------------------------------------------
- method change_other {} {
- set other [$OtherEntry get]
-
- if {"$other" != ""} {
- set added 0
-
- # Check if this is a local/register/arg
- set i [lsearch $Locals "$other"]
- if {$i != -1} {
- set i [lsearch $Collect "$other"]
- set added 1
- if {$i != -1} {
- # It's a local on the collection list
- debug "local on collection list"
- set add 0
- set list1 [lreplace $Collect $i $i]
- set list2 [concat $Variables "$other"]
- } else {
- # It's a local on the variables list
- debug "local on variable list"
- set add 1
- set i [lsearch $Variables "$other"]
- set list1 [lreplace $Variables $i $i]
- set list2 [concat $Collect "$other"]
- }
- }
-
- set i [lsearch $Registers [string trim "$other" \$]]
- if {$i != -1} {
- set i [lsearch $Collect "$other"]
- set added 1
- if {$i != -1} {
- # It's a register on the collection list
- debug "register on collection list"
- set add 0
- set list1 [lreplace $Collect $i $i]
- set list2 [concat $Variables "$other"]
- } else {
- # It's a register on the variables list
- debug "register on variable list"
- set add 1
- set i [lsearch $Variables "$other"]
- set list1 [lreplace $Variables $i $i]
- set list2 [concat $Collect "$other"]
- }
- }
-
- set i [lsearch $Args $other]
- if {$i != -1} {
- set i [lsearch $Collect "$other"]
- set added 1
- if {$i != -1} {
- # It's an arg on the collection list
- debug "arg on collection list"
- set add 0
- set list1 [lreplace $Collect $i $i]
- set list2 [concat $Variables "$other"]
- } else {
- # It's an arg on the variables list
- debug "arg on variable list"
- set add 1
- set i [lsearch $Variables "$other"]
- set list1 [lreplace $Variables $i $i]
- set list2 [concat $Collect "$other"]
- }
- }
-
- # Check for special tags
- if {!$added} {
- if {"[string tolower $other]" == "all locals"} {
- set i [lsearch $Variables "All Locals"]
- if {$i != -1} {
- # It's "All Locals" on the variables list
- set add 1
- set lists [all_locals 1]
- set list1 [lindex $lists 0]
- set list2 [lindex $lists 1]
- } else {
- # It's "All Locals" on the Collect list
- set add 0
- set lists [all_locals 0]
- set list1 [lindex $lists 0]
- set list2 [lindex $lists 1]
- }
- } elseif {"[string tolower $other]" == "all registers"} {
- set i [lsearch $Variables "All Registers"]
- if {$i != -1} {
- # It's "All Registers" on the Variables list
- set add 1
- set lists [all_regs 1]
- set list1 [lindex $lists 0]
- set list2 [lindex $lists 1]
- } else {
- set add 0
- set lists [all_regs 0]
- set list1 [lindex $lists 0]
- set list2 [lindex $lists 1]
- }
- } elseif {"[string tolower $other]" == "all arguments"} {
- set i [lsearch $Variables "All Arguments"]
- if {$i != -1} {
- # It's "All Arguments" on the Variables list
- set add 1
- set lists [all_args 1]
- set list1 [lindex $lists 0]
- set list2 [lindex $lists 1]
- } else {
- set add 0
- set lists [all_args 0]
- set list1 [lindex $lists 0]
- set list2 [lindex $lists 1]
- }
- } elseif {"[string tolower $other]" == "collect stack"} {
- set i [lsearch $Variables "Collect Stack"]
- if {$i != -1} {
- # It's "All Arguments" on the Variables list
- set add 1
- set lists [all_args 1]
- set list1 [lindex $lists 0]
- set list2 [lindex $lists 1]
- } else {
- set add 0
- set lists [all_args 0]
- set list1 [lindex $lists 0]
- set list2 [lindex $lists 1]
- }
- } else {
- # Check if this entry is on the Collect list
- set i [lsearch $Collect $other]
- if {$i != -1} {
- # It's on the list -- remove it
- set add 0
- set list1 [lreplace $Collect $i $i]
- set list2 $Variables
- } else {
- # It's not on the list -- add it
-
- set other [string trim $other \ \r\t\n]
-
- # accept everything, send to gdb to validate
- set ok 1
-
- # memranges will be rejected right here
-
- if {[string range $other 0 1] == "\$("} {
- tk_messageBox -type ok -icon error \
- -message "Expression syntax not supported"
- set ok 0
- }
-
- # do all syntax checking later
- if {$ok} {
- #debug "Keeping \"$other\""
- # We MUST string out all spaces...
- if {[regsub -all { } $other {} expression]} {
- set other $expression
- }
- set add 1
- set list1 $Variables
- set list2 [concat $Collect "$other"]
- } else {
- #debug "Discarding \"$other\""
- }
- }
- }
- }
-
- # Clear the entry
- $OtherEntry delete 0 end
-
- if {$add} {
- set Variables $list1
- set Collect $list2
- } else {
- set Variables $list2
- set Collect $list1
- }
- fill_listboxes
- }
- }
-
-
- # ------------------------------------------------------------------
- # METHOD: get_selections - get all the selected variables
- # pass 0 to get the selections from the collect box
- # Returns a list of: listbox in which the selections were
- # obtained, last element selected on the list, and all the
- # selected elements
- # ------------------------------------------------------------------
- method get_selections {vars} {
-
- if {$vars} {
- set widget $VariablesLB
- } else {
- set widget $CollectLB
- }
-
- set elements [$widget curselection]
- set list {}
- set i 0
- foreach i $elements {
- lappend list [$widget get $i]
- }
-
- return [list $widget $i $elements]
- }
-
- # ------------------------------------------------------------------
- # METHOD: cancel - cancel the dialog and do not set the trace
- # ------------------------------------------------------------------
- method cancel {} {
- ::delete object $this
- }
-
- method remove_special {list items} {
-
- foreach item $items {
- set i [lsearch $list $item]
- if {$i != -1} {
- set list [lreplace $list $i $i]
- } else {
- set i [lsearch $list \$$item]
- if {$i != -1} {
- set list [lreplace $list $i $i]
- }
- }
- }
-
- return $list
- }
-
- # ------------------------------------------------------------------
- # METHOD: ok - validate the tracepoint and install it
- # ------------------------------------------------------------------
- method ok {} {
- global _TStepCount
-
- # Add anything in the OtherEntry
- change_other
-
- # Check that we are collecting data
- if {[llength $Collect] == 0} {
- # No data!
- set msg "No data specified for the given action."
- set answer [tk_messageBox -type ok -title "Tracepoint Error" \
- -icon error \
- -message $msg]
- case $answer {
- cancel {
- cancel
- }
- ok {
- return
- }
- }
- }
-
- set i [lsearch $Collect "All Locals"]
- if {$i != -1} {
- set data [lreplace $Collect $i $i]
- set data [concat $data {$loc}]
-
- # Remove all the locals from the list
- set data [remove_special $data $Locals]
- } else {
- set data $Collect
- }
-
- set i [lsearch $data "All Registers"]
- if {$i != -1} {
- set data [lreplace $data $i $i]
- set data [concat $data {$reg}]
-
- # Remove all the locals from the list
- set data [remove_special $data $Registers]
- }
-
- set i [lsearch $data "All Arguments"]
- if {$i != -1} {
- set data [lreplace $data $i $i]
- set data [concat $data {$arg}]
-
- # Remove all the locals from the list
- set data [remove_special $data $Args]
- }
-
- set i [lsearch $data "Collect Stack"]
- if {$i != -1} {
- set data [lreplace $data $i $i]
- set data [concat $data [collect_stack]]
-
- }
-
- # Remove repeats
- set d {}
- foreach i $data {
- if {![info exists check($i)]} {
- set check($i) 1
- lappend d $i
- }
- }
-
- if {$WhileStepping} {
- set steps $_TStepCount
- } else {
- set steps 0
- }
-
- if {"$Data" != {}} {
- set command "modify"
- } else {
- set command "add"
- }
-
- debug "DATA = $data"
- eval $Callback $command $steps [list $data]
- ::delete object $this
- }
-
-
- method collect_stack {} {
- return $StackCollect
- }
-
- method cmd {line} {
- $line
- }
-
- # PUBLIC DATA
- public variable File
- public variable Line {}
- public variable WhileStepping 0
- public variable Number
- public variable Callback
- public variable Data {}
- public variable Steps {}
- public variable Address {}
-
- # PROTECTED DATA
- protected variable WhileSteppingEntry
- protected variable CollectLB
- protected variable VariablesLB
- protected variable Variables {}
- protected variable Collect {}
- protected variable Locals
- protected variable Args
- protected variable Registers
- protected variable Others {}
- protected variable AddButton
- protected variable RemoveButton
- protected variable OtherEntry
- protected variable StackCollect {*(char*)$sp@64}
-}
diff --git a/gdb/gdbtk/library/attachdlg.itb b/gdb/gdbtk/library/attachdlg.itb
deleted file mode 100644
index 405a6aafcb5..00000000000
--- a/gdb/gdbtk/library/attachdlg.itb
+++ /dev/null
@@ -1,232 +0,0 @@
-# Attach Dialog for Insight.
-# Copyright (C) 1999, 2002, 2003 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::body AttachDlg::constructor {args} {
- eval itk_initialize $args
- window_name "Attach To Process"
- build_win
-}
-
-itcl::body AttachDlg::build_win {} {
- # Frame
- itk_component add pid {
- iwidgets::labeledframe $itk_interior.f -labeltext "Choose Process" \
- -relief groove -borderwidth 2 -ipadx 6 -ipady 4
- }
-
- # Listbox of processes
- itk_component add choose_pid {
- iwidgets::scrolledlistbox [$itk_component(pid) childsite].pid \
- -visibleitems 30x15 -hscrollmode dynamic -vscrollmode dynamic\
- -exportselection 0 -selectioncommand [code $this select_pid] \
- -foreground $::Colors(textfg) -textbackground $::Colors(textbg) \
- -dblclickcommand [code $this doit]
- }
-
- # Filter entryfield
- itk_component add pid_filter {
- iwidgets::entryfield [$itk_component(pid) childsite].filt \
- -labeltext "Filter:" \
- -foreground $::Colors(textfg) -textbackground $::Colors(textbg) \
- -focuscommand [code $this clear_pid_selection] \
- -command [code $this filter_pid_selection]
- }
- $itk_component(pid_filter) insert 0 *
-
- # seperator
- itk_component add pid_sep {
- frame [$itk_component(pid) childsite].sep \
- -height 2 -borderwidth 1 -relief sunken
- }
-
- # PID_ENTRY: this is the PID entry box. You can enter the pid
- # by hand here, or click on the listbox to have it entered for you.
- itk_component add pid_entry {
- iwidgets::entryfield [$itk_component(pid) childsite].lab \
- -labeltext "PID:" -validate numeric \
- -foreground $::Colors(textfg) -textbackground $::Colors(textbg) \
- -focuscommand [code $this clear_pid_selection]
- }
- pack $itk_component(choose_pid) -fill x -side top -pady 4
- pack $itk_component(pid_filter) -fill x -side top -pady 4
- pack $itk_component(pid_sep) -fill x -side top -pady 8
- pack $itk_component(pid_entry) -fill x -side bottom -pady 4
-
- itk_component add symbol_label {
- iwidgets::labeledframe $itk_interior.sym -labeltext "Choose Exec file" \
- -labelpos nw -relief groove -borderwidth 2 \
- -ipadx 8 -ipady 6
- }
-
- itk_component add symbol_file {
- iwidgets::entryfield [$itk_interior.sym childsite].f -labeltext "File:" \
- -foreground $::Colors(textfg) -textbackground $::Colors(textbg)
- }
- pack $itk_component(symbol_file) -pady 4 -padx 4 -fill x
-
- # can't use the -state in the entryfield, 'cause that affects the
- # label as well...
- #$itk_component(symbol_file) component entry configure -state disabled
- $itk_component(symbol_file) configure -state normal
- $itk_component(symbol_file) insert 0 $::gdb_exe_name
- #$itk_component(symbol_file) configure -state disabled
-
- itk_component add symbol_browse {
- button [$itk_component(symbol_file) childsite].br -text "Choose..." \
- -command [code $this choose_symbol_file]
- }
- pack $itk_component(symbol_browse) -pady 4 -padx 4 -ipadx 4
-
- itk_component add button_box {
- frame $itk_interior.b
- }
-
- itk_component add cancel {
- button $itk_component(button_box).cancel -text "Cancel" \
- -command [code $this cancel]
- }
-
- itk_component add ok {
- button $itk_component(button_box).ok -text "OK" -command [code $this doit]
- }
-
-# if {$::gdb_exe_name == ""} {
-# $itk_component(ok) configure -state disabled
-# }
-
- ::standard_button_box $itk_component(button_box)
-
- pack $itk_component(button_box) -side bottom -fill x -pady 4 -padx 4
- pack $itk_component(symbol_label) -side bottom -fill x -pady 4 -padx 4
- pack $itk_component(pid) -fill both -expand 1 -pady 4 -padx 4
-
- after idle [list update idletasks; $this list_pids]
-}
-
-# ------------------------------------------------------------------
-# METHOD: doit - This accepts the attach command.
-# ------------------------------------------------------------------
-
-itcl::body AttachDlg::doit {} {
- set AttachDlg::last_button 1
- set AttachDlg::last_pid [$itk_component(pid_entry) get]
- set AttachDlg::symbol_file [$itk_component(symbol_file) get]
- unpost
-}
-
-# ------------------------------------------------------------------
-# METHOD: cancel - unpost the dialog box without attaching.
-# ------------------------------------------------------------------
-
-itcl::body AttachDlg::cancel {} {
- set AttachDlg::last_button 0
- set AttachDlg::last_pid {}
- unpost
-}
-
-# ------------------------------------------------------------------
-# METHOD: choose_symbol_file - Query for a new symbol file.
-# ------------------------------------------------------------------
-
-itcl::body AttachDlg::choose_symbol_file {} {
- set file [tk_getOpenFile -parent . -title "Load New Executable"]
- if {$file != ""} {
- $itk_component(symbol_file) configure -state normal
- $itk_component(symbol_file) clear
- $itk_component(symbol_file) insert 0 $file
-# $itk_component(symbol_file) configure -state disabled
- $itk_component(ok) configure -state active
- }
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: list_pids - List the available processes. Right now,
-# this just spawns ps, which means we have to deal with
-# all the different ps flags & output formats. At some
-# point we should steal some C code to do it by hand.
-# ------------------------------------------------------------------
-
-itcl::body AttachDlg::list_pids {{pattern *}} {
- global tcl_platform
-
- switch $tcl_platform(os) {
- Linux {
- set ps_cmd "ps axw"
- }
- default {
- set ps_cmd "ps w"
- }
- }
- if {[catch {::open "|$ps_cmd" r} psH]} {
- set errTxt "Could not exec ps: $psH
-You will have to enter the PID by hand."
- ManagedWin::open WarningDlg -message [list $errTxt]
- return
- }
- gets $psH header
-
- set nfields [llength $header]
- set nfields_m_1 [expr {$nfields - 1}]
- set regexp {^ *([^ ]*) +}
- for {set i 1} {$i < $nfields_m_1} {incr i} {
- append regexp {[^ ]* +}
- }
- append regexp {(.*)$}
-
- $itk_component(choose_pid) clear
- set pid_list {}
-
- while {[gets $psH line] >= 0} {
- regexp $regexp $line dummy PID COMMAND
- if {[string match $pattern $COMMAND]} {
- lappend pid_list [list $PID $COMMAND]
- $itk_component(choose_pid) insert end $COMMAND
- }
- }
-
- close $psH
- $itk_component(choose_pid) selection set 0
- select_pid
-}
-
-# ------------------------------------------------------------------
-# METHOD: select_pid - Grab the selected element from the PID listbox
-# and insert the associated PID into the entry form.
-# ------------------------------------------------------------------
-
-itcl::body AttachDlg::select_pid {} {
- set hit [$itk_component(choose_pid) curselection]
- if {$hit != ""} {
- $itk_component(pid_entry) clear
- $itk_component(pid_entry) insert 0 [lindex [lindex $pid_list $hit] 0]
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: clear_pid_selection - Clear the current PID selection.
-# ------------------------------------------------------------------
-
-itcl::body AttachDlg::clear_pid_selection {} {
- $itk_component(choose_pid) selection clear 0 end
- $itk_component(pid_entry) selection range 0 end
-}
-
-# ------------------------------------------------------------------
-# METHOD: filter_pid_selection - Filters the pid box.
-# ------------------------------------------------------------------
-
-itcl::body AttachDlg::filter_pid_selection {} {
- list_pids [$itk_component(pid_filter) get]
-}
diff --git a/gdb/gdbtk/library/attachdlg.ith b/gdb/gdbtk/library/attachdlg.ith
deleted file mode 100644
index 71ee4876eb0..00000000000
--- a/gdb/gdbtk/library/attachdlg.ith
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# attachdlg.ith - itcl declarations for class AttachDlg
-# ----------------------------------------------------------------------
-# Implements Attach to process window
-#
-# ----------------------------------------------------------------------
-# Copyright (C) 1999 Cygnus Solutions
-#
-itcl::class AttachDlg {
- inherit ModalDialog ManagedWin
-
- public {
- method constructor {args}
- proc last_button {} {return $last_button}
- proc pid {} {return $last_pid}
- proc symbol_file {} {return $symbol_file}
- }
-
- protected {
- method build_win {args}
- method cancel {}
- method choose_symbol_file {}
- method doit {}
- method list_pids {{pattern *}}
- method select_pid {}
- method clear_pid_selection {}
- method filter_pid_selection {}
-
- variable pid_list
-
- common last_button 0
- common last_pid {}
- common symbol_file
- }
-}
diff --git a/gdb/gdbtk/library/blockframe.itb b/gdb/gdbtk/library/blockframe.itb
deleted file mode 100644
index 6819c1f3847..00000000000
--- a/gdb/gdbtk/library/blockframe.itb
+++ /dev/null
@@ -1,227 +0,0 @@
-# Block and frame class implementations for GDBtk.
-# Copyright (C) 1997, 1998, 1999 Cygnus Solutions
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# ------------------------------------------------------------------
-# Block
-# ------------------------------------------------------------------
-itcl::body Block::constructor {start end args} {
-
- # Record runtime info about this block
- set _start $start
- set _end $end
- set _variables [_findVariables]
- eval configure $args
-}
-
-# Destroy ourself.
-itcl::body Block::destructor {} {
-
- # Each block is responsible for destroying its
- # variables and removing them from the list of
- # of all variables for this frame
- foreach var $_variables {
- $var delete
- }
-}
-
-# Return a list of variables defined in this block
-# This list is determined when we are created.
-itcl::body Block::variables {} {
- return $_variables
-}
-
-# Find the new variables for this block.
-itcl::body Block::_findVariables {} {
-
- # Find the new variables for this block.
- set variables [gdb_block_variables $_start $_end]
-
- # Create variables.
- set vars {}
- foreach variable $variables {
- # Be paranoid: catch errors constructing variable.
- set err [catch {gdb_variable create -expr $variable} obj]
- if {!$err} {
- lappend vars $obj
- }
- }
-
- return $vars
-}
-
-itcl::body Block::update {} {
-
- set changed {}
- foreach var $_variables {
- set changed [concat $changed [$var update]]
- }
-
- return $changed
-}
-
-itcl::body Block::info {} {
-
- return [list $_start $_end]
-}
-
-# ------------------------------------------------------------------
-# Frame
-# ------------------------------------------------------------------
-itcl::body Frame::constructor {addr} {
-
- set _addr $addr
-
- # Create all blocks in the selected frame
- set _blocks {}
- _createBlocks [gdb_get_blocks]
-
-}
-
-itcl::body Frame::destructor {} {
- # destroy our own blocks
- foreach block $_blocks {
- _removeBlock $block
- }
-}
-
-itcl::body Frame::_removeBlock {blockObj} {
-
- set i [lsearch $_blocks $blockObj]
- if {$i != -1} {
- set _blocks [lreplace $_blocks $i $i]
- delete object $blockObj
- }
-}
-
-itcl::body Frame::_addBlock {block} {
-
- set start [lindex $block 0]
- set end [lindex $block 1]
- set b [Block \#auto $start $end]
- lappend _blocks $b
-
- return $b
-}
-
-itcl::body Frame::_createBlocks {blocks} {
-
- foreach block $blocks {
- set b [_addBlock $block]
- }
-}
-
-itcl::body Frame::update {} {
-
- set vars {}
- foreach block $_blocks {
- set vars [concat $vars [$block update]]
- }
-
- return $vars
-}
-
-itcl::body Frame::variables {} {
-
- set vars {}
- foreach block $_blocks {
- set vars [concat $vars [$block variables]]
- }
-
- return $vars
-}
-
-itcl::body Frame::new {} {
- # find any new variables. So get a list of all blocks,
- # eliminate duplicates, and get those variables.
-
- set blocks [gdb_get_blocks]
- set new {}
-
- foreach block $blocks {
- set b [_findBlock $block]
- if {$b == ""} {
- # Found a new block. Create it get its variables
- set b [_addBlock $block]
- set new [concat $new [$b variables]]
- }
- }
-
- return $new
-}
-
-itcl::body Frame::deleteOld {} {
-
- foreach block [_oldBlocks] {
- _removeBlock $block
- }
-}
-
-itcl::body Frame::_oldBlocks {} {
-
- set blocks [gdb_get_blocks]
- set oldObjs $_blocks
-
- foreach block $blocks {
- set obj [_findBlock $block]
- if {$obj != ""} {
- # Found it.. Remove it from old
- set i [lsearch $oldObjs $obj]
- set oldObjs [lreplace $oldObjs $i $i]
- }
- }
-
- return $oldObjs
-}
-
-itcl::body Frame::old {} {
-
- # All the variables in the blocks in old are now gone...
- # We don't remove blocks here, since the frontend viewer
- # might want to keep these variables around for a little while
- # longer.
- set vars {}
- set old [_oldBlocks]
- foreach block $old {
- set vars [concat $vars [$block variables]]
- }
-
- return $vars
-}
-
-itcl::body Frame::_findBlock {block} {
-
- foreach b $_blocks {
- set info [$b info]
- if {$info == $block} {
- return $b
- }
- }
-
- return ""
-}
-
-itcl::body Frame::_findBlockIndex {block} {
-
- set i 0
- foreach b $_blocks {
- set info [$b info]
- if {$info == $block} {
- return $i
- }
- incr i
- }
-
- return -1
-}
-
-
diff --git a/gdb/gdbtk/library/blockframe.ith b/gdb/gdbtk/library/blockframe.ith
deleted file mode 100644
index 2a2457820d9..00000000000
--- a/gdb/gdbtk/library/blockframe.ith
+++ /dev/null
@@ -1,63 +0,0 @@
-# Class definitions for blocks and frames for GDBtk.
-# Copyright (C) 1997, 1998, 1999 Cygnus Solutions
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-itcl::class Block {
-
- public {
- method constructor {start end args}
- method destructor {}
- method variables {}
- method update {}
- method info {}
- }
-
- private {
- # Start and end address for this block
- variable _start
- variable _end
-
- # List of variables (new) variables defined in this block
- variable _variables
-
- method _findVariables {}
- }
-}
-
-itcl::class Frame {
-
- public {
- method constructor {addr}
- method destructor {}
- method variables {}
- method update {}
- method new {}
- method old {}
- method deleteOld {}
- method address {} { return $_addr }
- }
-
- private {
- method _createBlocks {blocks}
- method _addBlock {block}
- method _findBlock {block}
- method _findBlockIndex {block}
- method _removeBlock {blockObj}
- method _oldBlocks {}
-
- # Our address
- variable _addr
-
- # A list of all blocks
- variable _blocks
- }
-}
diff --git a/gdb/gdbtk/library/bpwin.itb b/gdb/gdbtk/library/bpwin.itb
deleted file mode 100644
index 6df38b01f25..00000000000
--- a/gdb/gdbtk/library/bpwin.itb
+++ /dev/null
@@ -1,728 +0,0 @@
-# Breakpoint window for Insight.
-# Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ------------------------------------------------------------------
-# CONSTRUCTOR: create the main breakpoint window
-# ------------------------------------------------------------------
-itcl::body BpWin::constructor {args} {
- window_name "Breakpoints" "BPs"
-
- if {[pref getd gdb/bp/menu] != ""} {
- set mbar 0
- }
- set show_threads [pref get gdb/bp/show_threads]
- debug "Ready to build"
- build_win
- eval itk_initialize $args
-
- # The scrolledframe uses a canvas, which doesn't properly
- # calculate an initial size, so we must set a default
- # window size here. ManagedWin could override this still
- # if there is a user preference for the geometry.
- wm geometry $_top 350x165
- debug "done building"
-}
-
-# ------------------------------------------------------------------
-# DESTRUCTOR: destroy the breakpoint window
-# ------------------------------------------------------------------
-itcl::body BpWin::destructor {} {}
-
-
-# ------------------------------------------------------------------
-# METHOD: build_win - build the main breakpoint window
-# ------------------------------------------------------------------
-itcl::body BpWin::build_win {} {
- global _bp_en _bp_disp tcl_platform
- set bg1 $::Colors(bg)
-
- set hsmode dynamic
- set vsmode dynamic
-
- # FIXME: The iwidgets scrolled frame is pretty useless.
- # When we get BLT, use its hiertable to do this.
- itk_component add sframe {
- iwidgets::scrolledframe $itk_interior.sf \
- -hscrollmode $hsmode -vscrollmode $vsmode
- }
-
- set twin [$itk_component(sframe) childsite]
-
- # write header
- if {$tracepoints} {
- label $twin.num0 -text "Num" -relief raised -bd 2 -anchor center \
- -font global/fixed
- }
- label $twin.thread0 -text "Thread" -relief raised -bd 2 -anchor center \
- -font global/fixed
- label $twin.addr0 -text "Address" -relief raised -bd 2 -anchor center \
- -font global/fixed
- label $twin.file0 -text "File" -relief raised -bd 2 -anchor center \
- -font global/fixed
- label $twin.line0 -text "Line" -relief raised -bd 2 -anchor center \
- -font global/fixed
- label $twin.func0 -text "Function" -relief raised -bd 2 -anchor center \
- -font global/fixed
-
- if {$tracepoints} {
- label $twin.pass0 -text "PassCount" -relief raised -borderwidth 2 \
- -anchor center -font global/fixed
- grid x $twin.num0 $twin.addr0 $twin.file0 $twin.line0 $twin.func0 $twin.pass0 \
- -sticky new
- } else {
- if {$show_threads} {
- grid x $twin.thread0 $twin.addr0 $twin.file0 $twin.line0 $twin.func0 -sticky new
- # Let the File and Function columns expand; no others.
- grid columnconfigure $twin 3 -weight 1
- grid columnconfigure $twin 5 -weight 1
- } else {
- grid x $twin.addr0 $twin.file0 $twin.line0 $twin.func0 -sticky new
- # Let the File and Function columns expand; no others.
- grid columnconfigure $twin 2 -weight 1
- grid columnconfigure $twin 4 -weight 1
- }
- }
-
-
- # The last row must always suck up all the leftover vertical
- # space.
- set next_row 1
- grid rowconfigure $twin $next_row -weight 1
-
- if { $mbar } {
- menu $itk_interior.m -tearoff 0
- [winfo toplevel $itk_interior] configure -menu $itk_interior.m
- if { $tracepoints == 0 } {
- $itk_interior.m add cascade -menu $itk_interior.m.bp -label "Breakpoint" -underline 0
- } else {
- $itk_interior.m add cascade -menu $itk_interior.m.bp -label "Tracepoint" -underline 0
- }
- set m [menu $itk_interior.m.bp]
- if { $tracepoints == 0 } {
- $m add radio -label "Normal" -variable _bp_disp($selected) \
- -value donttouch -underline 0 -state disabled
- $m add radio -label "Temporary" -variable _bp_disp($selected) \
- -value delete -underline 0 -state disabled
- } else {
- $m add command -label "Actions" -underline 0 -state disabled
- }
-
- $m add separator
- $m add radio -label "Enabled" -variable _bp_en($selected) -value 1 \
- -underline 0 -state disabled
- $m add radio -label "Disabled" -variable _bp_en($selected) -value 0 \
- -underline 0 -state disabled
- $m add separator
- $m add command -label "Remove" -underline 0 -state disabled
- $itk_interior.m add cascade -menu $itk_interior.m.all -label "Global" \
- -underline 0
- set m [menu $itk_interior.m.all]
- $m add check -label " Show Threads" \
- -variable [pref varname gdb/bp/show_threads] \
- -underline 1 -command "$this toggle_threads"
- $m add separator
- $m add command -label "Disable All" -underline 0 \
- -command "$this bp_all disable"
- $m add command -label "Enable All" -underline 0 \
- -command "$this bp_all enable"
- $m add separator
- $m add command -label "Remove All" -underline 0 \
- -command "$this bp_all delete"
- $m add separator
- $m add command -label "Store Breakpoints..." -underline 0 \
- -command [code $this bp_store]
- $m add command -label "Restore Breakpoints..." -underline 3 \
- -command [code $this bp_restore]
- }
-
- set Menu [menu $itk_interior.pop -tearoff 0]
-
- if { $tracepoints == 0 } {
- $Menu add radio -label "Normal" -variable _bp_disp($selected) \
- -value donttouch -underline 0
- $Menu add radio -label "Temporary" -variable _bp_disp($selected) \
- -value delete -underline 0
- } else {
- $Menu add command -label "Actions" -underline 0
- }
- $Menu add separator
- $Menu add radio -label "Enabled" -variable _bp_en($selected) -value 1 -underline 0
- $Menu add radio -label "Disabled" -variable _bp_en($selected) -value 0 -underline 0
- $Menu add separator
- $Menu add command -label "Remove" -underline 0
- $Menu add cascade -menu $Menu.all -label "Global" -underline 0
- set m [menu $Menu.all]
- $m add check -label " Show Threads" -variable [pref varname gdb/bp/show_threads] \
- -underline 1 -command "$this toggle_threads"
- $m add separator
- $m add command -label "Disable All" -underline 0 -command "$this bp_all disable"
- $m add command -label "Enable All" -underline 0 -command "$this bp_all enable"
- $m add separator
- $m add command -label "Remove All" -underline 0 -command "$this bp_all delete"
-
- if { $tracepoints == 0 } {
- # insert all breakpoints
- foreach i [gdb_get_breakpoint_list] {
- set e [BreakpointEvent \#auto -action create -number $i]
- bp_add $e
- delete object $e
- }
- } else {
- # insert all tracepoints
- foreach i [gdb_get_tracepoint_list] {
- set e [TracepointEvent \#auto -action create -number $i]
- bp_add $e 1
- delete object $e
- }
- }
-
- pack $itk_component(sframe) -side left -expand true -fill both
-}
-
-# ------------------------------------------------------------------
-# METHOD: bp_add - add a breakpoint entry
-# ------------------------------------------------------------------
-itcl::body BpWin::bp_add {bp_event {tracepoint 0}} {
- global _bp_en _bp_disp tcl_platform _files
-
- set number [$bp_event get number]
- set thread [$bp_event get thread]
- set disposition [$bp_event get disposition]
- set file [$bp_event get file]
-
- if {$tracepoint} {
- set diposition tracepoint
- set bptype tracepoint
- } else {
- set bptype breakpoint
- }
-
- debug "bp_add bpnum=$number thread=$thread show=$show_threads"
- set i $next_row
- set _bp_en($i) [$bp_event get enabled]
- set _bp_disp($i) $disposition
- set temp($i) ""
- switch $disposition {
- donttouch { set color [pref get gdb/src/bp_fg] }
- delete {
- set color [pref get gdb/src/temp_bp_fg]
- set temp($i) delete
- }
- tracepoint {
- set color [pref get gdb/src/trace_fg]
- }
- default { set color yellow }
- }
-
- if {$thread != "-1"} {set color [pref get gdb/src/thread_fg]}
-
- if {$tcl_platform(platform) == "windows"} {
- checkbutton $twin.en$i -relief flat -variable _bp_en($i) \
- -activebackground $bg1 -command "$this bp_able $i" -fg $color
- } else {
- checkbutton $twin.en$i -relief flat -variable _bp_en($i) \
- -command "$this bp_able $i" -activebackground $bg1 \
- -selectcolor $color -highlightbackground $bg1
- }
-
- if {$tracepoints} {
- label $twin.num$i -text "$number " -relief flat -anchor w -font global/fixed
- }
- label $twin.addr$i -text "[gdb_CA_to_TAS [$bp_event get address]] " -relief flat -anchor w -font global/fixed -bg $bg1
- if {[info exists _files(short,$file)]} {
- set file $_files(short,$file)
- } else {
- # FIXME. Really need to do better than this.
- set file [::file tail $file]
- }
- if {$show_threads} {
- if {$thread == "-1"} {set thread "ALL"}
- label $twin.thread$i -text "$thread " -relief flat -anchor w -font global/fixed
- }
- label $twin.file$i -text "$file " -relief flat -anchor w -font global/fixed
- label $twin.line$i -text "[$bp_event get line] " -relief flat -anchor w -font global/fixed
- label $twin.func$i -text "[$bp_event get function] " -relief flat -anchor w -font global/fixed
- if {$tracepoints} {
- label $twin.pass$i -text "[$bp_event get pass_count] " -relief flat -anchor w -font global/fixed
- }
-
- if {$mbar} {
- set zz [list addr file func line]
- if {$tracepoints} {lappend zz num pass}
- if {$show_threads} {lappend zz thread}
- foreach thing $zz {
- bind $twin.${thing}${i} <1> "$this bp_select $i"
- bind $twin.${thing}${i} <Double-1> "$this goto_bp $i"
- bind $twin.${thing}${i} <3> [code $this _select_and_popup $i %X %Y]
- }
- }
-
- if {$tracepoints} {
- grid $twin.en$i $twin.num$i $twin.addr$i $twin.file$i $twin.line$i \
- $twin.func$i $twin.pass$i -sticky new -ipadx 4 -ipady 2
- } else {
- if {$show_threads} {
- grid $twin.en$i $twin.thread$i $twin.addr$i $twin.file$i $twin.line$i \
- $twin.func$i -sticky new -ipadx 4 -ipady 2
- } else {
- grid $twin.en$i $twin.addr$i $twin.file$i $twin.line$i \
- $twin.func$i -sticky new -ipadx 4 -ipady 2
- }
- }
-
- # This used to be the last row. Fix it vertically again.
- grid rowconfigure $twin $i -weight 0
-
- set index_to_bpnum($i) $number
- set Index_to_bptype($i) $bptype
- incr i
- set next_row $i
- grid rowconfigure $twin $i -weight 1
-}
-
-# ------------------------------------------------------------------
-# METHOD: bp_store - stores away the breakpoints in a file of gdb
-# commands
-# ------------------------------------------------------------------
-itcl::body BpWin::bp_store {} {
- set out_file [tk_getSaveFile]
- if {$out_file == ""} {
- return
- }
- if {[catch {::open $out_file w} outH]} {
- tk_messageBox -message "Could not open $out_file: $outH"
- return
- }
- foreach breakpoint [gdb_get_breakpoint_list] {
- # This is an lassign
- foreach {file function line_no address type \
- enable_p disp ignore cmds cond thread hit_count user_spec} \
- [gdb_get_breakpoint_info $breakpoint] {
- break
- }
-
- if {$user_spec != ""} {
- set bp_specifier $user_spec
- } elseif {$file != ""} {
- set filename [file tail $file]
- set bp_specifier $filename:$line_no
- } else {
- set bp_specifier *$address
- }
-
- # FIXME: doesn't handle watchpoints.
- if {[string compare $disp "delete"] == 0} {
- puts $outH "tbreak $bp_specifier"
- } else {
- puts $outH "break $bp_specifier"
- }
-
- if {!$enable_p} {
- puts $outH "disable \$bpnum"
- }
- if {$ignore > 0} {
- puts $outH "ignore \$bpnum $ignore"
- }
- }
- close $outH
-}
-
-# ------------------------------------------------------------------
-# METHOD: bp_restore - restore the breakpoints from a file of gdb
-# commands
-# ------------------------------------------------------------------
-itcl::body BpWin::bp_restore {} {
- set inH [tk_getOpenFile]
- if {$inH == ""} {
- return
- }
- bp_all delete
- if {[catch {gdb_cmd "source $inH"} err]} {
- tk_messageBox -message "Error sourcing in BP file $inH: \"$err\""
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: bp_select - select a row in the grid
-# ------------------------------------------------------------------
-itcl::body BpWin::bp_select { r } {
- global _bp_en _bp_disp
-
- set zz [list addr file func line]
- if {$tracepoints} {lappend zz num pass}
- if {$show_threads} {lappend zz thread}
-
- if {$selected} {
- set i $selected
-
- foreach thing $zz {
- $twin.${thing}${i} configure -fg $::Colors(fg) -bg $bg1
- }
- }
-
- # if we click on the same line, unselect it and return
- if {$selected == $r} {
- set selected 0
-
- if {$tracepoints == 0} {
- $itk_interior.m.bp entryconfigure "Normal" -state disabled
- $itk_interior.m.bp entryconfigure "Temporary" -state disabled
- } else {
- $itk_interior.m.bp entryconfigure "Actions" -state disabled
- }
- $itk_interior.m.bp entryconfigure "Enabled" -state disabled
- $itk_interior.m.bp entryconfigure "Disabled" -state disabled
- $itk_interior.m.bp entryconfigure "Remove" -state disabled
-
- return
- }
-
- foreach thing $zz {
- $twin.${thing}${r} configure -fg $::Colors(sfg) -bg $::Colors(sbg)
- }
-
- if {$tracepoints == 0} {
- $itk_interior.m.bp entryconfigure "Normal" -variable _bp_disp($r) \
- -command "$this bp_type $r" -state normal
- $itk_interior.m.bp entryconfigure "Temporary" -variable _bp_disp($r) \
- -command "$this bp_type $r" -state normal
- $Menu entryconfigure "Normal" -variable _bp_disp($r) \
- -command "$this bp_type $r" -state normal
- $Menu entryconfigure "Temporary" -variable _bp_disp($r) \
- -command "$this bp_type $r" -state normal
- } else {
- $itk_interior.m.bp entryconfigure "Actions" -command "$this get_actions $r" -state normal
- $Menu entryconfigure "Actions" -command "$this get_actions $r" -state normal
- }
- $itk_interior.m.bp entryconfigure "Enabled" -variable _bp_en($r) \
- -command "$this bp_able $r" -state normal
- $itk_interior.m.bp entryconfigure "Disabled" -variable _bp_en($r) \
- -command "$this bp_able $r" -state normal
- $itk_interior.m.bp entryconfigure "Remove" -command "$this bp_remove $r" -state normal
- $Menu entryconfigure "Enabled" -variable _bp_en($r) \
- -command "$this bp_able $r" -state normal
- $Menu entryconfigure "Disabled" -variable _bp_en($r) \
- -command "$this bp_able $r" -state normal
- $Menu entryconfigure "Remove" -command "$this bp_remove $r" -state normal
-
- set selected $r
-}
-
-# ------------------------------------------------------------------
-# NAME: private method BpWin::_select_and_popup
-# DESCRIPTION: Select the given breakpoint and popup the options
-# menu at the given location.
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-itcl::body BpWin::_select_and_popup {bp X Y} {
- if {$selected != $bp} {
- bp_select $bp
- }
- tk_popup $Menu $X $Y
-}
-
-# ------------------------------------------------------------------
-# METHOD: bp_modify - modify a breakpoint entry
-# ------------------------------------------------------------------
-itcl::body BpWin::bp_modify {bp_event {tracepoint 0}} {
- global _bp_en _bp_disp tcl_platform _files
-
- set number [$bp_event get number]
- set thread [$bp_event get thread]
- set disposition [$bp_event get disposition]
- set file [$bp_event get file]
-
- if {$tracepoint} {
- set disposition tracepoint
- set bptype tracepoint
- } else {
- set bptype breakpoint
- }
-
- set found 0
- for {set i 1} {$i < $next_row} {incr i} {
- if { $number == $index_to_bpnum($i)
- && "$Index_to_bptype($i)" == "$bptype"} {
- incr found
- break
- }
- }
-
- if {!$found} {
- debug "ERROR: breakpoint number $number not found!"
- return
- }
-
- if {$_bp_en($i) != [$bp_event get enabled]} {
- set _bp_en($i) [$bp_event get enabled]
- }
-
- if {$_bp_disp($i) != $disposition} {
- set _bp_disp($i) $disposition
- }
-
- switch $disposition {
- donttouch { set color [pref get gdb/src/bp_fg] }
- delete {
- set color [pref get gdb/src/temp_bp_fg]
- }
- tracepoint { set color [pref get gdb/src/trace_fg] }
- default { set color yellow}
- }
-
- if {$thread != "-1"} {set color [pref get gdb/src/thread_fg]}
-
- if {$tcl_platform(platform) == "windows"} then {
- $twin.en$i configure -fg $color
- } else {
- $twin.en$i configure -selectcolor $color
- }
- if {$tracepoints} {
- $twin.num$i configure -text "$number "
- }
- $twin.addr$i configure -text "[gdb_CA_to_TAS [$bp_event get address]] "
- if {[info exists _files(short,$file)]} {
- set file $_files(short,$file)
- } else {
- # FIXME. Really need to do better than this.
- set file [::file tail $file]
- }
- if {$show_threads} {
- if {$thread == "-1"} {set thread "ALL"}
- $twin.thread$i configure -text "$thread "
- }
- $twin.file$i configure -text "$file "
- $twin.line$i configure -text "[$bp_event get line] "
- $twin.func$i configure -text "[$bp_event get function] "
- if {$tracepoints} {
- $twin.pass$i configure -text "[$bp_event get pass_count] "
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: bp_able - enable/disable a breakpoint
-# ------------------------------------------------------------------
-itcl::body BpWin::bp_able { i } {
- global _bp_en
-
- bp_select $i
-
- switch $Index_to_bptype($i) {
- breakpoint {set type {}}
- tracepoint {set type "tracepoint"}
- }
-
- if {$_bp_en($i) == "1"} {
- set command "enable $type $temp($i) "
- } else {
- set command "disable $type "
- }
-
- append command "$index_to_bpnum($i)"
- gdb_cmd "$command"
-}
-
-# ------------------------------------------------------------------
-# METHOD: bp_remove - remove a breakpoint
-# ------------------------------------------------------------------
-itcl::body BpWin::bp_remove { i } {
-
- bp_select $i
-
- switch $Index_to_bptype($i) {
- breakpoint { set type {} }
- tracepoint { set type "tracepoint" }
- }
-
- gdb_cmd "delete $type $index_to_bpnum($i)"
-}
-
-# ------------------------------------------------------------------
-# METHOD: bp_type - change the breakpoint type (disposition)
-# ------------------------------------------------------------------
-itcl::body BpWin::bp_type { i } {
-
- if {$Index_to_bptype($i) != "breakpoint"} {
- return
- }
-
- set bpnum $index_to_bpnum($i)
- #debug "bp_type $i $bpnum"
- set bpinfo [gdb_get_breakpoint_info $bpnum]
- lassign $bpinfo file func line pc type enabled disposition \
- ignore_count commands cond thread hit_count user_spec
- bp_select $i
- switch $disposition {
- delete {
- gdb_cmd "delete $bpnum"
- gdb_cmd "break *$pc"
- }
- donttouch {
- gdb_cmd "delete $bpnum"
- gdb_cmd "tbreak *$pc"
- }
- default { debug "Unknown breakpoint disposition: $disposition" }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: bp_delete - delete a breakpoint
-# ------------------------------------------------------------------
-itcl::body BpWin::bp_delete {bp_event} {
- set number [$bp_event get number]
- for {set i 1} {$i < $next_row} {incr i} {
- if { $number == $index_to_bpnum($i) } {
- if {$tracepoints} {
- grid forget $twin.en$i $twin.num$i $twin.addr$i $twin.file$i \
- $twin.line$i $twin.func$i $twin.pass$i
- destroy $twin.en$i $twin.num$i $twin.addr$i $twin.file$i \
- $twin.line$i $twin.func$i $twin.pass$i
- } else {
- if {$show_threads} {
- grid forget $twin.thread$i
- destroy $twin.thread$i
- }
- grid forget $twin.en$i $twin.addr$i $twin.file$i $twin.line$i $twin.func$i
- destroy $twin.en$i $twin.addr$i $twin.file$i $twin.line$i $twin.func$i
- }
- if {$selected == $i} {
- set selected 0
- }
- return
- }
- }
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: breakpoint - Update widget when a breakpoint
-# event is received from the backend.
-# ------------------------------------------------------------------
-itcl::body BpWin::breakpoint {bp_event} {
-
- set action [$bp_event get action]
- #debug "bp update $action [$bp_event get number] [$bp_event get type]"
-
- switch $action {
- modify { bp_modify $bp_event 0 }
- create { bp_add $bp_event 0 }
- delete { bp_delete $bp_event }
- default { dbug E "Unknown breakpoint action: $action" }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: tracepoint - Update widget when a tracepoint event
-# is received from the backend.
-# ------------------------------------------------------------------
-itcl::body BpWin::tracepoint {tp_event} {
-
- set action [$tp_event get action]
- #debug "tp update $action [$tp_event get number]"
-
- switch $action {
- modify { bp_modify $tp_event 1 }
- create { bp_add $tp_event 1 }
- delete { bp_delete $tp_event }
- default { dbug E "Unknown tracepoint action: $action" }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: bp_all - perform a command on all breakpoints
-# ------------------------------------------------------------------
-itcl::body BpWin::bp_all { command } {
-
- if {!$tracepoints} {
- # Do all breakpoints
- foreach bpnum [gdb_get_breakpoint_list] {
- if { $command == "enable"} {
- for {set i 1} {$i < $next_row} {incr i} {
- if { $bpnum == $index_to_bpnum($i)
- && "$Index_to_bptype($i)" == "breakpoint"} {
- gdb_cmd "enable $temp($i) $bpnum"
- break
- }
- }
- } else {
- gdb_cmd "$command $bpnum"
- }
- }
- } else {
- # Do all tracepoints
- foreach bpnum [gdb_get_tracepoint_list] {
- if { $command == "enable"} {
- for {set i 1} {$i < $next_row} {incr i} {
- if { $bpnum == $index_to_bpnum($i)
- && "$Index_to_bptype($i)" == "tracepoint"} {
- gdb_cmd "enable tracepoint $bpnum"
- break
- }
- }
- } else {
- gdb_cmd "$command tracepoint $bpnum"
- }
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: get_actions - pops up the add trace dialog on a selected
-# tracepoint
-# ------------------------------------------------------------------
-itcl::body BpWin::get_actions {bpnum} {
- set bpnum $index_to_bpnum($bpnum)
- set bpinfo [gdb_get_tracepoint_info $bpnum]
- lassign $bpinfo file func line pc enabled pass_count \
- step_count thread hit_count actions
-
- set filename [::file tail $file]
- ManagedWin::open TraceDlg -File $filename -Lines $line
-}
-
-# ------------------------------------------------------------------
-# METHOD: toggle_threads - callback when show_threads is toggled
-# ------------------------------------------------------------------
-itcl::body BpWin::toggle_threads {} {
- set show_threads [pref get gdb/bp/show_threads]
- reconfig
-}
-
-# ------------------------------------------------------------------
-# METHOD: reconfig - used when preferences change
-# ------------------------------------------------------------------
-itcl::body BpWin::reconfig {} {
- if {[winfo exists $itk_interior.f]} { destroy $itk_interior.f }
- if {[winfo exists $itk_interior.m]} { destroy $itk_interior.m }
- if {[winfo exists $itk_interior.sbox]} { destroy $itk_interior.sbox }
- if {[winfo exists $itk_interior.sf]} { destroy $itk_interior.sf }
- if {[winfo exists $itk_interior.pop]} { destroy $itk_interior.pop }
- build_win
-}
-
-# ------------------------------------------------------------------
-# METHOD: goto_bp - show bp in source window
-# ------------------------------------------------------------------
-itcl::body BpWin::goto_bp {r} {
- set bpnum $index_to_bpnum($r)
- if {$tracepoints} {
- set bpinfo [gdb_get_tracepoint_info $bpnum]
- } else {
- set bpinfo [gdb_get_breakpoint_info $bpnum]
- }
- set pc [lindex $bpinfo 3]
-
- SrcWin::choose_and_display BROWSE_TAG [gdb_loc *$pc]
-}
diff --git a/gdb/gdbtk/library/bpwin.ith b/gdb/gdbtk/library/bpwin.ith
deleted file mode 100644
index fa005a65c62..00000000000
--- a/gdb/gdbtk/library/bpwin.ith
+++ /dev/null
@@ -1,59 +0,0 @@
-# Breakpoint window class definition for Insight
-# Copyright (C) 1997, 1998, 1999, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class BpWin {
- inherit EmbeddedWin GDBWin
-
- public {
- variable tracepoints 0
-
- method constructor {args}
- method destructor {}
- method bp_select {r}
- method bp_able { i }
- method bp_remove { i }
- method bp_restore {}
- method bp_store {}
- method bp_type { i }
- method bp_all { command }
- method get_actions {bpnum}
- method toggle_threads {}
- method reconfig {}
- method goto_bp {r}
-
- # GDB Events
- method breakpoint {event}
- method tracepoint {event}
- }
-
- private {
- variable twin
- variable next_row 0
- variable index_to_bpnum
- variable Index_to_bptype
- variable temp
- variable mbar 1
- variable selected 0
- variable bg1
- variable Menu
- variable show_threads ;#cached copy of [pref get gdb/bp/show_threads]
-
- method build_win {}
- method bp_add {bp_event {tracepoint 0}}
- method bp_modify {bp_event {tracepoint 0}}
- method bp_delete {bp_event}
- method _select_and_popup {bp X Y}
- }
-
-}
diff --git a/gdb/gdbtk/library/browserwin.itb b/gdb/gdbtk/library/browserwin.itb
deleted file mode 100644
index d8f42db6faa..00000000000
--- a/gdb/gdbtk/library/browserwin.itb
+++ /dev/null
@@ -1,731 +0,0 @@
-# Browswer window for Insight.
-# Copyright (C) 1998, 1999, 2001, 2002, 2003 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ----------------------------------------------------------------------
-# Implements Browser window for Insight
-#
-# ----------------------------------------------------------------------
-
-option add *BrowserWin.textBackground $::Colors(textbg)
-
-# ------------------------------------------------------------------
-# CONSTRUCTOR - create new browser window
-# ------------------------------------------------------------------
-itcl::body BrowserWin::constructor {args} {
- debug
- #eval itk_initialize $args
- window_name "Function Browser"
-
- set _layout [pref get gdb/browser/layout]
- set Current(filename) {}
- set Current(function) {}
- _build_win
-
- eval itk_initialize $args
- add_hook file_changed_hook [code $this _fill_file_box]
-}
-
-# ------------------------------------------------------------------
-# DESTRUCTOR - destroy window containing widget
-# ------------------------------------------------------------------
-itcl::body BrowserWin::destructor {} {
- debug
- if {$filter_trace_after != ""} {
- after cancel $filter_trace_after
- }
-
- remove_hook file_changed_hook [code $this _fill_file_box]
- trace vdelete [pref varname gdb/search/last_symbol] \
- w [code $this _filter_trace_proc]
-}
-
-# ------------------------------------------------------------------
-# METHOD: _build_win - build the main browser window
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_build_win {} {
- debug
-
- # popup menu
- itk_component add popup {
- menu $itk_interior.pop -tearoff 0
- } {}
- set pop $itk_component(popup)
- $pop add command -label "Toggle Layout" -command [code $this _switch_layout]
- $pop add command -label "Help" -command "open_help browser.html"
- $pop add separator
- $pop add command -label "Close" -command "destroy [winfo toplevel $itk_interior]"
- bind [winfo toplevel $itk_interior] <3> "tk_popup $itk_component(popup) %X %Y"
-
- # Four Main Frames: filter, files, functions, and view (source)
- # Their layout depends on _layout
-
- if {$_layout == 1} {
- set p [cyg::panedwindow $itk_interior.p -orient vertical -height 5i \
- -width 5i]
- $p add left
- set p2 [cyg::panedwindow [$p childsite left].p]
-
- $p2 add file
- _build_file_frame [$p2 childsite file]
-
- $p2 add filter
- set f [frame [$p2 childsite filter].f]
- _build_filter_frame $f
- _build_function_frame $f
- pack $f -fill both -expand yes
- pack $p2 -fill both -expand yes
-
- $p add view
- _build_view_frame [$p childsite view]
-
- } else {
- set p [cyg::panedwindow $itk_interior.p -height 5i -width 5i]
- $p add top
- set f [frame [$p childsite top].f]
- _build_filter_frame $f
-
- set browser [cyg::panedwindow $f.p -orient vertical]
- $browser add file
- _build_file_frame [$browser childsite file]
- $browser add function
- _build_function_frame [$browser childsite function]
-
- pack $browser -fill both -expand yes
- pack $f -fill both -expand yes
-
- $p add view
- _build_view_frame [$p childsite view]
- }
-
- # Fill file box
- _fill_file_box
-
- pack $p -fill both -expand yes
-}
-
-# ------------------------------------------------------------------
-# METHOD: _filter_trace_proc
-# This is called when something is entered in the filter
-# box. The actual filtering is done in an after to avoid
-# flashing too much if the user is typing quickly.
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_filter_trace_proc {v1 v2 mode} {
- if {$filter_trace_after != ""} {
- after cancel $filter_trace_after
- }
- set filter_trace_after [after 100 [code $this _filter_trace_after]]
-}
-
-# ------------------------------------------------------------------
-# METHOD: _filter_trace_after
-# This is a wrapper around search, needed to pass to trace
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_filter_trace_after {} {
- set filter_trace_after ""
- search
-}
-
-# ------------------------------------------------------------------
-# METHOD: _search_src
-# Search for text or jump to a specific line
-# in source window, going in the specified DIRECTION.
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_search_src {direction} {
- set exp [$itk_component(view_search) get]
- $itk_component(view_src) search $exp $direction
-}
-
-# ------------------------------------------------------------------
-# METHOD: search
-# Search for functions matching regexp/pattern
-# in specified files
-# ------------------------------------------------------------------
-itcl::body BrowserWin::search {} {
-
- set files [$itk_component(file_box) getcurselection]
-
- if {[llength $files] == 0} {
- return
- }
-
- _freeze_me
-
- set filt_pat [format $filter_regexp($cur_filter_mode) \
- [pref get gdb/search/last_symbol]]
-
- if {[llength $files] == [$itk_component(file_box) size]} {
- set err [catch {gdb_search functions $filt_pat \
- -filename 1} matches]
- } else {
- set err [catch {gdb_search functions $filt_pat \
- -files $files -filename 1} matches]
- }
-
- if {$err} {
- debug "ERROR searching for [pref get gdb/search/last_symbol]: $matches"
- _thaw_me
- return
- }
-
- $itk_component(func_box) delete 0 end
-
- set i -1
- catch {unset index_to_file}
-
- foreach func [lsort -command "list_element_strcmp 0" $matches] {
- $itk_component(func_box) insert end [lindex $func 0]
- set index_to_file([incr i]) [lindex $func 1]
- }
- _thaw_me
-}
-
-# ------------------------------------------------------------------
-# METHOD: _process_file_selection
-# This fills the func combo, and the more window if it
-# is currently open with the hit in the File combobox.
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_process_file_selection {y} {
-
- set curIndex [$itk_component(file_box) nearest $y]
- set curSelection [$itk_component(file_box) curselection]
-
- # We got a button-release - First make sure the click selected the item...
-
- if {[lsearch $curIndex $curSelection] >= 0} {
- _fill_source [$itk_component(file_box) get $curIndex] 0
- } else {
- # If the item was deselected, go back to the first one in the list...
- # It would be better to keep a stack of the clicked items, and go to the
- # last one on the stack. But in extended mode, this is tricky. FIXME
-
- if {[llength $curSelection] > 0} {
- _fill_source [$itk_component(file_box) get [lindex $curSelection 0]] 0
- } else {
- _fill_source ""
- }
- }
-
- search
-}
-
-# ------------------------------------------------------------------
-# METHOD: _process_func_selection
-# This points the more window to the hit in the Func combobox
-# if it is currently open.
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_process_func_selection {y} {
-
- set curIndex [$itk_component(func_box) nearest $y]
- set curSelection [$itk_component(func_box) curselection]
-
- # We got a button-release - First make sure the click selected the item...
-
- if {[lsearch $curIndex $curSelection] >= 0} {
- set funcName [$itk_component(func_box) get $curIndex]
- set fileName $index_to_file($curIndex)
- _fill_source $funcName 1 $fileName
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: do_all_bp
-# Toggle a bp at every selected function in FuncLB
-# ------------------------------------------------------------------
-itcl::body BrowserWin::do_all_bp {onp} {
-
- set funcs [$itk_component(func_box) getcurselection]
- _freeze_me
-
- foreach f $funcs {
- if {[catch {gdb_loc $f} linespec]} {
- dbug W "Could not gdb_loc \"$f\""
- return
- }
- set bpnum [bp_exists $linespec]
- if {$bpnum == -1 && $onp} {
-
- # FIXME: gdb_set_bp is the preferred method, but it requires
- # a file and line number. This doesn't work very well for
- # templates...
- gdb_cmd "break $f"
- } elseif {!$onp} {
- catch {gdb_cmd "delete $bpnum"}
- }
- }
- _thaw_me
-}
-
-# ------------------------------------------------------------------
-# METHOD: _toggle_bp
-# Toggle bp at function specified by the given Y
-# coordinate in the listbox
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_toggle_bp {y} {
-
- set f [$itk_component(func_box) get [$itk_component(func_box) nearest $y]]
- if {$f != ""} {
- if {[catch {gdb_loc $f} linespec]} {
- return
- }
- set bpnum [bp_exists $linespec]
- if {$bpnum == -1} {
- # FIXME: gdb_set_bp is the preferred method, but it requires
- # a file and line number. This doesn't work very well for
- # templates...
- gdb_cmd "break $f"
- } else {
- catch {gdb_cmd "delete $bpnum"}
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: _select
-# Un/Highlight all files in the files list
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_select {highlight} {
- if {$highlight} {
- $itk_component(file_box) selection set 0 end
- } else {
- $itk_component(file_box) selection clear 0 end
- }
- search
-}
-
-# ------------------------------------------------------------------
-# METHOD: _set_filter_mode
-# React to changes in the filter mode
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_set_filter_mode {w mode} {
- if {[string compare $mode $cur_filter_mode] != 0} {
- set cur_filter_mode $mode
- pref set gdb/search/filter_mode $mode
- search
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: _file_hide_h
-# Run when the "Hide .h files" preference is chosen.
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_file_hide_h {} {
- _fill_file_box
- search
-}
-
-# ------------------------------------------------------------------
-# METHOD: _fill_source
-# Helper function to fill the srctextwin
-# when needed.
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_fill_source {f {funcp 1} {filename ""}} {
- if {($funcp && [string compare $f $Current(function)]) \
- || [string compare $f $Current(filename)]} {
- if {!$funcp} {
- if {$filename == ""} {
- set f $f:1
- } else {
- set f $f:$filename
- }
- }
-
- if {[catch {gdb_loc $f} linespec]} {
- return
- }
-
- lassign $linespec foo funcname name line addr pc_addr lib
- set file_changed [string compare $Current(filename) $name]
-
- if {$file_changed} {
- # Set the file name label:
- $itk_component(view_name) configure -text $name:
- _freeze_me
- }
-
- # fill srctextwin
- $itk_component(view_src) location BROWSE_TAG $name $funcname \
- $line $addr $pc_addr lib
-
- if {$file_changed} {
- _thaw_me
- }
-
- set Current(function) $funcname
- # fill func combo
- if {$file_changed} {
- set Current(filename) $name
- _fill_funcs_combo $name
- }
- # Set current function in combo box
- $itk_component(view_func) entryset $f
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: mode
-# Function called by srctextwin when the display
-# mode changes
-# ------------------------------------------------------------------
-itcl::body BrowserWin::mode {w {mode ""} {go 1}} {
- if {$mode != ""} {
- $itk_component(view_src) mode_set $mode $go
- $itk_component(view_mode) entryset $mode
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: _goto_func
-# Callback for the function combo box which
-# sets the srctextwin looking at the given function (VAL)
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_goto_func {w {val ""}} {
- if {$val != ""} {
- set mang 0
- if {[info exists _mangled_func($val)]} {
- set mang $_mangled_func($val)
- }
- if {$mang} {
- set loc $val
- } else {
- set fn [lindex [::file split $Current(filename)] end]
- set loc $fn:$val
- }
- debug "GOTO \"$loc\""
- if {![catch {gdb_loc $loc} result]} {
- lassign $result foo funcname name line addr pc_addr lib
- $itk_component(view_src) location BROWSE_TAG $name $funcname \
- $line $addr $pc_addr lib
- } else {
- dbug W "gdb_loc returned \"$result\""
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: _fill_file_box
-# This private method fills the file listbox
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_fill_file_box {} {
- # It would be cool if gdb_listfiles took a regexp to match,
- # but it doesn't...
-
- $itk_component(file_box) clear
- set allFiles [gdb_listfiles]
-
- if {[pref get gdb/browser/hide_h]} {
- foreach file $allFiles {
- if {[string compare [file extension $file] ".h"]} {
- $itk_component(file_box) insert end $file
- }
- }
- } else {
- foreach file $allFiles {
- $itk_component(file_box) insert end $file
- }
- }
- search
-}
-
-# ------------------------------------------------------------------
-# METHOD: _fill_funcs_combo
-# This private method fills the functions combo box
-# with all the functions in NAME.
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_fill_funcs_combo {name} {
-
- $itk_component(view_func) list delete 0 end
- if {$name != ""} {
- set maxlen 10
- if {[catch {gdb_listfuncs $name} listfuncs]} {
- tk_messageBox -icon error -default ok \
- -title "GDB" -type ok \
- -message "This file can not be found or does not contain\ndebugging information."
- return
- }
- foreach f [lsort $listfuncs] {
- lassign $f func mang
- if {$func == "global constructors keyed to main"} {continue}
- set _mangled_func($func) $mang
- $itk_component(view_func) list insert end $func
- if {[string length $func] > $maxlen} {
- set maxlen [string length $func]
- }
- }
- # limit size to 40 chars because if we don't set a reasonable limit
- # then the combobox can be wider than the screen
- if {$maxlen > 40} {set maxlen 40}
-
- $itk_component(view_func) configure -width [expr {$maxlen + 1}]
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: _build_filter_frame
-# This private method builds the filter frame
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_build_filter_frame {parent} {
-
- itk_component add filter {
- iwidgets::labeledframe $parent.filter -labeltext "Function Filter" \
- -relief groove -borderwidth 2 -ipadx 6 -ipady 4
- }
-
- # Set up the contents of the Filter frame
- if {$_layout == 2} {
- itk_component add filt_label {
- label [$itk_component(filter) childsite].lbl -text "Show if function " \
- -font global/fixed
- }
- }
-
- itk_component add filt_type {
- combobox::combobox [$itk_component(filter) childsite].type -height 4 \
- -width 15 -editable 0 \
- -command [code $this _set_filter_mode] \
- -font global/fixed
- } {
- rename -background -textbackground textBackground Background
- }
-
- # Fill the filter mode combo-box
- foreach elem $filter_modes {
- $itk_component(filt_type) list insert end $elem
- }
-
- set cur_filter_mode [pref get gdb/search/filter_mode]
- if {[lsearch $filter_modes $cur_filter_mode] < 0} {
- set cur_filter_mode [lindex $filter_modes 0]
- }
- $itk_component(filt_type) entryset $cur_filter_mode
-
- itk_component add filt_entry {
- entry [$itk_component(filter) childsite].ent -font global/fixed \
- -textvariable [pref varname gdb/search/last_symbol]
- } {}
- bind_plain_key $itk_component(filt_entry) Return [list $this search]
-
- # Watch keystrokes into the entry box and filter on them...
- trace variable [pref varname gdb/search/last_symbol] w \
- [code $this _filter_trace_proc]
-
- if {$_layout == 2} {
- pack $itk_component(filt_label) -side left
- }
- pack $itk_component(filt_type) -side left -padx 4 -fill y -pady 5
- pack $itk_component(filt_entry) -side right -fill both -expand 1 \
- -padx 6 -pady 5
-
- pack $itk_component(filter) -fill x -anchor n -pady 3
-}
-
-# ------------------------------------------------------------------
-# METHOD: _build_file_frame
-# This private method builds the files frame
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_build_file_frame {parent} {
-
- # Labeled Frame
- itk_component add file_frame {
- iwidgets::labeledframe $parent.file -labeltext "Files" \
- -relief groove -borderwidth 2 -ipadx 6 -ipady 4
- }
-
- # Listbox with files
- itk_component add file_box {
- iwidgets::scrolledlistbox [$itk_component(file_frame) childsite].listbox \
- -selectmode extended -exportselection false \
- -hscrollmode dynamic -vscrollmode dynamic -foreground $::Colors(textfg) \
- -textbackground $::Colors(textbg)
- } {}
-
- bind [$itk_component(file_box) component listbox] <ButtonRelease-1> \
- [code $this _process_file_selection %y]
-
- itk_component add file_sep {
- frame [$itk_component(file_frame) childsite].sep -relief raised -height 2 \
- -borderwidth 1
- }
-
- itk_component add file_hide {
- checkbutton [$itk_component(file_frame) childsite].hide \
- -text "Hide .h files" \
- -variable [pref varname gdb/browser/hide_h] \
- -command [code $this _file_hide_h]
- }
-
- itk_component add file_all {
- button [$itk_component(file_frame) childsite].sel \
- -text "Select All" \
- -command [code $this _select 1]
- }
-
- # pack all the pieces
- grid $itk_component(file_box) -column 0 -row 0 -columnspan 2 \
- -sticky news
- grid $itk_component(file_sep) -column 0 -row 1 -columnspan 2 \
- -sticky ew -pady 8
- grid $itk_component(file_hide) -column 0 -row 2 -padx 5 -sticky w
- grid $itk_component(file_all) -column 1 -row 2 -padx 5 -sticky e
-
- grid columnconfigure [$itk_component(file_frame) childsite] 0 -weight 1
- grid rowconfigure [$itk_component(file_frame) childsite] 0 -weight 1
-
- # finally pack the main frame
- pack $itk_component(file_frame) -side left -fill both -expand yes
-}
-
-# ------------------------------------------------------------------
-# METHOD: _build_function_frame
-# This private method builds the functions frame
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_build_function_frame {parent} {
-
- # Labeled Frame
- itk_component add func_frame {
- iwidgets::labeledframe $parent.file -labeltext "Function" \
- -relief groove -borderwidth 2 -ipadx 6 -ipady 4
- }
-
- # Functions Listbox
- itk_component add func_box {
- iwidgets::scrolledlistbox [$itk_component(func_frame) childsite].listbox \
- -selectmode extended -hscrollmode dynamic -vscrollmode dynamic \
- -exportselection false -foreground $::Colors(textfg) \
- -textbackground $::Colors(textbg)
- } {}
-
- bind [$itk_component(func_box) component listbox] <ButtonRelease-1> \
- [code $this _process_func_selection %y]
- bind $itk_component(func_box) <3> [code $this _toggle_bp %y]
-
- itk_component add func_sep {
- frame [$itk_component(func_frame) childsite].sep -relief raised \
- -height 2 -borderwidth 1
- }
-
- itk_component add func_add_bp {
- button [$itk_component(func_frame) childsite].abp -text "Set BP" \
- -command [code $this do_all_bp 1]
- }
-
- itk_component add func_remove_bp {
- button [$itk_component(func_frame) childsite].rbp -text "Delete BP" \
- -command [code $this do_all_bp 0]
- }
-
- # pack all the pieces
- grid $itk_component(func_box) -column 0 -row 0 -columnspan 2 -sticky news
- grid $itk_component(func_sep) -row 1 -column 0 -columnspan 2 \
- -sticky ew -pady 8
- grid $itk_component(func_remove_bp) -row 2 -column 0 -padx 5 -sticky w
- grid $itk_component(func_add_bp) -row 2 -column 1 -padx 5 -sticky e
-
- grid columnconfigure [$itk_component(func_frame) childsite] 0 -weight 1
- grid rowconfigure [$itk_component(func_frame) childsite] 0 -weight 1
-
- # finally pack the main frame
- pack $itk_component(func_frame) -fill both -expand yes
-}
-
-# ------------------------------------------------------------------
-# METHOD: _build_view_frame
-# This private method builds the view frame
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_build_view_frame {parent} {
- itk_component add view {
- frame $parent.view
- }
-
- itk_component add view_src {
- SrcTextWin $itk_component(view).src -Tracing 0 \
- -parent $this -ignore_var_balloons 0
- } {
- rename -background -textbackground textBackground Background
- }
-
- itk_component add view_bottom {
- frame $itk_component(view).bottom
- }
-
- itk_component add view_name {
- label $itk_component(view).name -font global/fixed
- }
-
- itk_component add view_func {
- combobox::combobox $itk_component(view_bottom).combo -maxheight 15\
- -font global/fixed -command [code $this _goto_func]
- } {
- rename -background -textbackground textBackground Background
- }
-
- itk_component add view_mode {
- combobox::combobox $itk_component(view_bottom).mode -width 9 \
- -font global/fixed -command [code $this mode]
- } {
- rename -background -textbackground textBackground Background
- }
-
- itk_component add view_search {
- entry $itk_component(view_bottom).search -borderwidth 2 \
- -font global/fixed -width 10 -background $::Colors(textbg)
- } {}
-
- # Pack all the components of view into the frame:
- pack $itk_component(view_func) -side left -anchor w
- pack $itk_component(view_mode) -side left -padx 5
- pack $itk_component(view_search) -side right -padx 5 -expand 1 -anchor e
- pack $itk_component(view_name) -side top -fill x -padx 5 -pady 3
- pack $itk_component(view_bottom) -side bottom -fill x -pady 3 -padx 5
- pack $itk_component(view_src) -fill both -expand 1 -padx 5 -pady 3
-
- # Fill combo boxes
- $itk_component(view_mode) list insert end SOURCE
- $itk_component(view_mode) list insert end ASSEMBLY
- $itk_component(view_mode) list insert end MIXED
- # don't allow SRC+ASM mode... $itk_component(view_mode) insert end SRC+ASM
- $itk_component(view_mode) entryset [$itk_component(view_src) mode_get]
-
- # Key bindings
- bind_plain_key $itk_component(view_search) Return \
- [code $this _search_src forwards]
- bind_plain_key $itk_component(view_search) Shift-Return \
- [code $this _search_src backwards]
-
- pack $itk_component(view) -fill both -expand yes
-}
-
-# ------------------------------------------------------------------
-# METHOD: _switch_layout
-# Switch between different layouts
-#
-# ------------------------------------------------------------------
-itcl::body BrowserWin::_switch_layout {} {
- # only 2 right now, so toggle
- if {$_layout == 1} {
- set _layout 2
- } else {
- set _layout 1
- }
- pref set gdb/browser/layout $_layout
- destroy $itk_interior.p
- destroy $itk_component(popup)
- set Current(filename) {}
- set Current(function) {}
- if {$filter_trace_after != ""} {
- after cancel $filter_trace_after
- }
- trace vdelete [pref varname gdb/search/last_symbol] \
- w [code $this _filter_trace_proc]
- _build_win
-}
diff --git a/gdb/gdbtk/library/browserwin.ith b/gdb/gdbtk/library/browserwin.ith
deleted file mode 100644
index 8e36a70707f..00000000000
--- a/gdb/gdbtk/library/browserwin.ith
+++ /dev/null
@@ -1,77 +0,0 @@
-# Browser window class definition for Insight.
-# Copyright (C) 1998, 1999, 2003 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-itcl::class BrowserWin {
- inherit EmbeddedWin
-
- public {
- method constructor {args}
- method destructor {}
- method mode {w {mode ""} {go 1}}
- method search {}
- method test_get {var}
- method do_all_bp {onp}
-
- }
-
- private {
- method _build_win {}
- method _file_hide_h {}
- method _fill_file_box {}
- method _fill_funcs_combo {name}
- method _fill_source {f {funcp 1} {filename ""}}
- method _filter_trace_proc {v1 v2 mode}
- method _filter_trace_after {}
- method _goto_func {w {val ""}}
- method _process_file_selection {y}
- method _process_func_selection {y}
- method _search_src {direction}
- method _select {highlight}
- method _set_filter_mode {w mode}
- method _toggle_bp {y}
- method _build_filter_frame {parent}
- method _build_file_frame {parent}
- method _build_function_frame {parent}
- method _build_view_frame {parent}
- method _switch_layout
-
- variable cur_filter_mode
- variable Current;
- variable labelUpdateCode ""
- variable index_to_file
- variable _mangled_func
- variable filter_trace_after ""
- variable _layout
-
- common componentToRow
- array set componentToRow {
- filter 0
- browser 1
- view 2
- view_hidden 3
- }
-
- common filter_modes [list "starts with" \
- "contains" \
- "ends with" \
- "matches regexp"]
- common filter_regexp
- array set filter_regexp {
- "starts with" ^%s
- "contains" %s
- "ends with" %s$
- "matches regexp" %s
- }
- }
-}
-
diff --git a/gdb/gdbtk/library/console.itb b/gdb/gdbtk/library/console.itb
deleted file mode 100644
index 63a2baf44a1..00000000000
--- a/gdb/gdbtk/library/console.itb
+++ /dev/null
@@ -1,747 +0,0 @@
-# Console window for Insight
-# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::body Console::constructor {args} {
- global gdbtk_state
- window_name "Console Window"
-
- debug "$args"
- _build_win
- eval itk_initialize $args
- add_hook gdb_no_inferior_hook [list $this idle dummy]
-
- # There are a bunch of console prefs that have no UI
- # for the user to modify them. In the event that the user
- # really wants to change them, they will have to be modified
- # in prefs.tcl or by editing .gdbtkinit. When these prefs
- # gain a prefs UI, the user may change them dynamically
- # and the console window will need notification that they
- # have changed. Add them to the following list and
- # Console::_update_option.
- foreach option {gdb/console/wrap} {
- pref add_hook $option [code $this _update_option]
- }
-
- set gdbtk_state(console) $this
-}
-
-itcl::body Console::destructor {} {
- global gdbtk_state
- set gdbtk_state(console) ""
- remove_hook gdb_no_inferior_hook [list $this idle dummy]
-}
-
-itcl::body Console::_build_win {} {
- iwidgets::scrolledtext $itk_interior.stext \
- -vscrollmode dynamic -textbackground white
-
- set _twin [$itk_interior.stext component text]
-
- _set_wrap [pref get gdb/console/wrap]
-
- $_twin tag configure prompt_tag -foreground [pref get gdb/console/prompt_fg]
- $_twin tag configure err_tag -foreground [pref get gdb/console/error_fg]
- $_twin tag configure log_tag -foreground [pref get gdb/console/log_fg]
- $_twin tag configure target_tag -foreground [pref get gdb/console/target_fg]
- $_twin configure -font [pref get gdb/console/font] \
- -bg $::Colors(textbg) -fg $::Colors(textfg)
-
- #
- # bind editing keys for console window
- #
- bind $_twin <Return> "$this invoke; break"
- bind_plain_key $_twin Control-m "$this invoke; break"
- bind_plain_key $_twin Control-j "$this invoke; break"
-
- # History control.
- bind_plain_key $_twin Control-p "[code $this _previous]; break"
- bind $_twin <Up> "[code $this _previous]; break"
- bind_plain_key $_twin Control-n "[code $this _next]; break"
- bind $_twin <Down> "[code $this _next]; break"
- bind $_twin <Meta-less> "[code $this _first]; break"
- bind $_twin <Home> "[code $this _first]; break"
- bind $_twin <Meta-greater> "[code $this _last]; break"
- bind $_twin <End> "[code $this _last]; break"
- bind_plain_key $_twin Control-o "[code $this _operate_and_get_next]; break"
-
- # Tab completion
- bind_plain_key $_twin KeyPress-Tab "[code $this _complete]; break"
-
- # Don't let left arrow or ^B go over the prompt
- bind_plain_key $_twin Control-b {
- if {[%W compare insert <= {cmdmark + 1 char}]} {
- break
- }
- }
- bind $_twin <Left> [bind $_twin <Control-b>]
-
- # Don't let Control-h, Delete, or Backspace back up over the prompt.
- bind_plain_key $_twin Control-h "[code $this _delete]; break"
-
- bind $_twin <BackSpace> "[code $this _delete]; break"
-
- bind $_twin <Delete> "[code $this _delete 1]; break"
-
- # Control-a moves to start of line.
- bind_plain_key $_twin Control-a {
- %W mark set insert {cmdmark + 1 char}
- %W see {insert linestart}
- break
- }
-
- # Control-u deletes to start of line.
- bind_plain_key $_twin Control-u {
- %W delete {cmdmark + 1 char} insert
- %W see {insert linestart}
- }
-
- # Control-w deletes previous word.
- bind_plain_key $_twin Control-w {
- if {[%W compare {insert -1c wordstart} > cmdmark]} {
- %W delete {insert -1c wordstart} insert
- %W see insert
- }
- }
-
- bind $_twin <Control-Up> "[code $this _search_history]; break"
- bind $_twin <Shift-Up> "[code $this _search_history]; break"
- bind $_twin <Control-Down> "[code $this _rsearch_history]; break"
- bind $_twin <Shift-Down> "[code $this _rsearch_history]; break"
-
- # Don't allow key motion to move insertion point outside the command
- # area. This is done by fixing up the insertion point after any key
- # movement. We only need to do this after events we do not
- # explicitly override. Note that since the edit line is always the
- # last line, we can't possibly go past it, so we don't bother
- # checking that. Note also that we check for a binding which is
- # simply `;'; this lets us handle keys already bound via
- # bind_plain_key.
- foreach event [bind Text] {
- if {[string match *Key* $event]
- && ([bind $_twin $event] == ""
- || [bind $_twin $event] == ";")} {
- bind $_twin $event [bind Text $event]
- bind $_twin $event {+
- if {[%W compare insert <= {cmdmark + 1 char}]} {
- %W mark set insert {cmdmark + 1 char}
- }
- break
- }
- }
- }
-
- # Don't allow mouse to put cursor outside command line. For some
- # events we do this by noticing when the cursor is outside the
- # range, and then saving the insertion point. For others we notice
- # the saved insertion point.
- set pretag pre-$_twin
- bind $_twin <1> [format {
- if {[%%W compare [tk::TextClosestGap %%W %%x %%y] <= cmdmark]} {
- %s _insertion [%%W index insert]
- } else {
- %s _insertion {}
- }
- } $this $this]
- bind $_twin <B1-Motion> [format {
- if {[%s _insertion] != ""} {
- %%W mark set insert [%s _insertion]
- }
- } $this $this $this]
- # FIXME: has inside information.
- bind $_twin <ButtonRelease-1> [format {
- tk::CancelRepeat
- if {[%s _insertion] != ""} {
- %%W mark set insert [%s _insertion]
- }
- %s _insertion {}
- break
- } $this $this $this]
-
- # Don't allow inserting text outside the command line. FIXME:
- # requires inside information.
- # Also make it a little easier to paste by making the button
- # drags a little "fuzzy".
- bind $_twin <B2-Motion> {
- if {!$tk_strictMotif} {
- if {($tk::Priv(x) - 2 < %x < $tk::Priv(x) + 2) \
- || ($tk::Priv(y) - 2 < %y < $tk::Priv(y) + 2)} {
- set tk::Priv(mouseMoved) 1
- }
- if {$tk::Priv(mouseMoved)} {
- %W scan dragto %x %y
- }
- }
- break
- }
- bind $_twin <ButtonRelease-2> [format {
- if {!$tk::Priv(mouseMoved) || $tk_strictMotif} {
- %s
- break
- }
- } [code $this _paste 1]]
- bind $_twin <<Paste>> "[code $this _paste 0]; break"
- bind $_twin <<PasteSelection>> "[code $this _paste 0]; break"
- bind_plain_key $_twin Control-c "event generate $_twin <<Copy>>"
- bind_plain_key $_twin Control-v "[code $this _paste 1]; break"
-
- _setprompt
- pack $itk_interior.stext -expand yes -fill both
-
- focus $_twin
-
-}
-
-itcl::body Console::idle {event} {
- set _running 0
- $_top configure -cursor {}
-}
-
-# ------------------------------------------------------------------
-# METHOD: busy - busy event handler
-# ------------------------------------------------------------------
-itcl::body Console::busy {event} {
- set _running 1
- $_top configure -cursor watch
-}
-
-# ------------------------------------------------------------------
-# METHOD: insert - insert new text in the text widget
-# ------------------------------------------------------------------
-itcl::body Console::insert {line {tag ""}} {
- if {$_needNL} {
- $_twin insert {insert linestart} "\n"
- }
- # Remove all \r characters from line.
- set line [join [split $line \r] {}]
- $_twin insert {insert -1 line lineend} $line $tag
-
- set nlines [lindex [split [$_twin index end] .] 0]
- if {$nlines > $throttle} {
- set delta [expr {$nlines - $throttle}]
- $_twin delete 1.0 ${delta}.0
- }
-
- $_twin see insert
- set _needNL 0
- ::update idletasks
-}
-
-# ------------------------------------------------------------------
-# NAME: ConsoleWin::_operate_and_get_next
-# DESCRIPTION: Invokes the current command and, if this
-# command came from the history, arrange for
-# the next history command to be inserted once this
-# command is finished.
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-itcl::body Console::_operate_and_get_next {} {
- if {$_histElement >= 0} {
- # _pendingHistElement will be used after the new history element
- # is pushed. So we must increment it.
- set _pendingHistElement [expr {$_histElement + 1}]
- }
- invoke
-}
-
-#-------------------------------------------------------------------
-# METHOD: _previous - recall the previous command
-# ------------------------------------------------------------------
-itcl::body Console::_previous {} {
- if {$_histElement == -1} {
- # Save partial command.
- set _partialCommand [$_twin get {cmdmark + 1 char} {cmdmark lineend}]
- }
- incr _histElement
- set text [lindex $_history $_histElement]
- if {$text == ""} {
- # No dice.
- incr _histElement -1
- # FIXME flash window.
- } else {
- $_twin delete {cmdmark + 1 char} {cmdmark lineend}
- $_twin insert {cmdmark + 1 char} $text
- }
-}
-
-#-------------------------------------------------------------------
-# METHOD: _search_history - search history for match
-# ------------------------------------------------------------------
-itcl::body Console::_search_history {} {
- set str [$_twin get {cmdmark + 1 char} {cmdmark lineend}]
-
- if {$_histElement == -1} {
- # Save partial command.
- set _partialCommand $str
- set ix [lsearch $_history ${str}*]
- } else {
- set str $_partialCommand
- set num [expr $_histElement + 1]
- set ix [lsearch [lrange $_history $num end] ${str}*]
- incr ix $num
- }
-
- set text [lindex $_history $ix]
- if {$text != ""} {
- set _histElement $ix
- $_twin delete {cmdmark + 1 char} {cmdmark lineend}
- $_twin insert {cmdmark + 1 char} $text
- }
-}
-
-#-------------------------------------------------------------------
-# METHOD: _rsearch_history - search history in reverse for match
-# ------------------------------------------------------------------
-itcl::body Console::_rsearch_history {} {
- if {$_histElement != -1} {
- set str $_partialCommand
- set num [expr $_histElement - 1]
- set ix $num
- while {$ix >= 0} {
- if {[string match ${str}* [lindex $_history $ix]]} {
- break
- }
- incr ix -1
- }
-
- set text ""
- if {$ix >= 0} {
- set text [lindex $_history $ix]
- set _histElement $ix
- } else {
- set text $_partialCommand
- set _histElement -1
- }
- $_twin delete {cmdmark + 1 char} {cmdmark lineend}
- $_twin insert {cmdmark + 1 char} $text
- }
-}
-
-#-------------------------------------------------------------------
-# METHOD: _next - recall the next command (scroll forward)
-# ------------------------------------------------------------------
-itcl::body Console::_next {} {
- if {$_histElement == -1} {
- # FIXME flash window.
- return
- }
- incr _histElement -1
- if {$_histElement == -1} {
- set text $_partialCommand
- } else {
- set text [lindex $_history $_histElement]
- }
- $_twin delete {cmdmark + 1 char} {cmdmark lineend}
- $_twin insert {cmdmark + 1 char} $text
-}
-
-#-------------------------------------------------------------------
-# METHOD: _last - get the last history element
-# ------------------------------------------------------------------
-itcl::body Console::_last {} {
- set _histElement 0
- _next
-}
-
-#-------------------------------------------------------------------
-# METHOD: _first - get the first (earliest) history element
-# ------------------------------------------------------------------
-itcl::body Console::_first {} {
- set _histElement [expr {[llength $_history] - 1}]
- _previous
-}
-
-
-
-#-------------------------------------------------------------------
-# METHOD: _setprompt - put a prompt at the beginning of a line
-# ------------------------------------------------------------------
-itcl::body Console::_setprompt {{prompt {}}} {
- if {$prompt == ""} {
- #set prompt [pref get gdb/console/prompt]
- set prompt [gdb_prompt]
- } elseif {$prompt == "none"} {
- set prompt ""
- }
-
- $_twin delete {insert linestart} {insert lineend}
- $_twin insert {insert linestart} $prompt prompt_tag
- $_twin mark set cmdmark "insert -1 char"
- $_twin see insert
-
- if {$_pendingHistElement >= 0} {
- set _histElement $_pendingHistElement
- set _pendingHistElement -1
- _next
- }
-}
-
-#-------------------------------------------------------------------
-# METHOD: gets - get a line of input from the console
-# ------------------------------------------------------------------
-itcl::body Console::gets {} {
- set _input_mode 1
-# _setprompt "(input) "
- _setprompt none
- $_twin delete insert end
- $_twin mark set cmdmark {insert -1 char}
-
- bind_plain_key $_twin Control-d "$this invoke 1; break"
- bind_plain_key $_twin Control-c "[code $this _cancel]; break"
-
- vwait [scope _input_result]
- set _input_mode 0
- bind_plain_key $_twin Control-c "event generate $_twin <<Copy>>"
- activate
- if {$_input_error} {
- set _input_error 0
- return -code error ""
- }
- return $_input_result
-}
-
-#-------------------------------------------------------------------
-# METHOD: cancel - cancel input when ^C is hit
-# ------------------------------------------------------------------
-itcl::body Console::_cancel {} {
- if {$_input_mode} {
- set _needNL 1
- $_twin mark set insert {insert lineend}
- $_twin insert {insert lineend} "^C\n"
- incr _invoking
- set _input_error 1
- set _input_result ""
- }
-}
-
-#-------------------------------------------------------------------
-# METHOD: activate - run this after a command is run
-# ------------------------------------------------------------------
-itcl::body Console::activate {{prompt {}}} {
- if {$_invoking > 0} {
- incr _invoking -1
- _setprompt $prompt
- }
-}
-
-#-------------------------------------------------------------------
-# METHOD: invoke - invoke a command
-# ------------------------------------------------------------------
-itcl::body Console::invoke {{controld 0}} {
- global gdbtk_state
-
- set text [$_twin get {cmdmark + 1 char} end ]
-
- if { "[string range $text 0 1]" == "tk" } {
- if {! [info complete $text] } {
- $_twin insert {insert lineend} " \\\n"
- $_twin see insert
- return
- }
- }
-
- incr _invoking
-
- set text [string trimright $text \n]
- if {$text == ""} {
- set text [lindex $_history 0]
- $_twin insert {insert lineend} $text
- }
- $_twin mark set insert {insert lineend}
- $_twin insert {insert lineend} "\n"
-
- set ok 0
- if {$_running} {
- if {[string index $text 0] == "!"} {
- set text [string range $text 1 end]
- set ok 1
- }
- }
-
- if {$_input_mode} {
- if {!$controld} {append text \n}
- set _input_result $text
- set _needNL 1
- return
- }
-
- # Only push new nonempty history items.
- if {$text != "" && [lindex $_history 0] != $text} {
- lvarpush _history $text
- }
-
- set index [$_twin index insert]
-
- # Clear current history element, and current partial element.
- set _histElement -1
- set _partialCommand ""
-
- # Need a newline before next insert.
- set _needNL 1
-
- # run command
- if {$gdbtk_state(readline)} {
- set gdbtk_state(readline_response) $text
- return
- }
-
- if {!$_running || $ok} {
- set result [catch {gdb_immediate "$text" 1} message]
- } else {
- set result 1
- set message "The debugger is busy."
- }
-
- # gdb_immediate may take a while to finish. Exit if
- # our window has gone away.
- if {![winfo exists $_twin]} { return }
-
- if {$result} {
- global errorInfo
- dbug W "Error: $errorInfo\n"
- $_twin insert end "Error: $message\n" err_tag
- } elseif {$message != ""} {
- $_twin insert $index "$message\n"
- }
-
- # Make the prompt visible again.
- activate
-
- # Make sure the insertion point is visible.
- $_twin see insert
-}
-
-#-------------------------------------------------------------------
-# PRIVATE METHOD: _delete - Handle a Delete of some sort.
-# ------------------------------------------------------------------
-itcl::body Console::_delete {{right 0}} {
-
- # If we are deleting to the right, and we have this turned off,
- # delete to the right.
-
- if {$right && ![pref get gdb/console/deleteLeft]} {
- set right 0
- }
-
- if {!$right} {
- set insert_valid [$_twin compare insert > {cmdmark + 1 char}]
- set delete_loc "insert-1c"
- } else {
- set insert_valid [$_twin compare insert > cmdmark]
- set delete_loc "insert"
- }
-
- # If there is a selection on the command line, delete it,
- # If there is a selection above the command line, do a
- # regular delete, but don't delete the prompt.
- # If there is no selection, do the delete.
-
- if {![catch {$_twin index sel.first}]} {
- if {[$_twin compare sel.first <= cmdmark]} {
- if {$insert_valid} {
- $_twin delete $delete_loc
- }
- } else {
- $_twin delete sel.first sel.last
- }
- } elseif {$insert_valid} {
- $_twin delete $delete_loc
- }
-}
-
-#-------------------------------------------------------------------
-# PRIVATE METHOD: _insertion - Set or get saved insertion point
-# ------------------------------------------------------------------
-itcl::body Console::_insertion {args} {
- if {! [llength $args]} {
- return $_saved_insertion
- } else {
- set _saved_insertion [lindex $args 0]
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: _paste - paste the selection into the console window
-# ------------------------------------------------------------------
-itcl::body Console::_paste {{check_primary 1}} {
- set sel {}
-
- if {!$check_primary || [catch {selection get} sel] || $sel == ""} {
- if {[catch {selection get -selection CLIPBOARD} sel] || $sel == ""} {
- return
- }
- }
-
- #if there is a selection, insert over it:
- if {![catch {$_twin index sel.first}]
- && [$_twin compare sel.first > {cmdmark + 1 char}]} {
- set point [$_twin index sel.first]
- $_twin delete sel.first sel.last
- $_twin insert $point $sel
- } else {
- $_twin insert insert $sel
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: _find_lcp - Return the longest common prefix in SLIST.
-# Can be empty string.
-# ------------------------------------------------------------------
-itcl::body Console::_find_lcp {slist} {
- # Handle trivial cases where list is empty or length 1
- if {[llength $slist] <= 1} {return [lindex $slist 0]}
-
- set prefix [lindex $slist 0]
- set prefixlast [expr [string length $prefix] - 1]
-
- foreach str [lrange $slist 1 end] {
- set test_str [string range $str 0 $prefixlast]
- while {[string compare $test_str $prefix] != 0} {
- incr prefixlast -1
- set prefix [string range $prefix 0 $prefixlast]
- set test_str [string range $str 0 $prefixlast]
- }
- if {$prefixlast < 0} break
- }
- return $prefix
-}
-
-# ------------------------------------------------------------------
-# METHOD: _find_completion - Look through COMPLETIONS to generate
-# the suffix needed to do command
-# ------------------------------------------------------------------
-itcl::body Console::_find_completion {cmd completions} {
- # Get longest common prefix
- set lcp [_find_lcp $completions]
- set cmd_len [string length $cmd]
- # Return suffix beyond end of cmd
- return [string range $lcp $cmd_len end]
-}
-
-# ------------------------------------------------------------------
-# METHOD: _complete - Command line completion
-# ------------------------------------------------------------------
-itcl::body Console::_complete {} {
-
- set command_line [$_twin get {cmdmark + 1 char} {cmdmark lineend}]
- set choices [gdb_cmd "complete $command_line" 1]
- set choices [string trimright $choices \n]
- set choices [split $choices \n]
-
- # Just do completion if this is the first tab
- if {!$_saw_tab} {
- set _saw_tab 1
- set completion [_find_completion $command_line $choices]
-
- # Here is where the completion is actually done. If there
- # is one match, complete the command and print a space.
- # If two or more matches, complete the command and beep.
- # If no match, just beep.
- switch [llength $choices] {
- 0 {}
- 1 {
- $_twin insert end "$completion "
- set _saw_tab 0
- return
- }
-
- default {
- $_twin insert end $completion
- }
- }
- bell
- $_twin see end
- bind $_twin <KeyPress> [code $this _reset_tab]
- } else {
- # User hit another consecutive tab. List the choices.
- # Note that at this point, choices may contain commands
- # with spaces. We have to lop off everything before (and
- # including) the last space so that the completion list
- # only shows the possibilities for the last token.
- set choices [lsort $choices]
- if {[regexp ".* " $command_line prefix]} {
- regsub -all $prefix $choices {} choices
- }
- if {[llength choices] != 0} {
- insert "\nCompletions:\n[join $choices \ ]\n"
- $_twin see end
- bind $_twin <KeyPress> [code $this _reset_tab]
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: _reset_tab - Helper method for tab completion. Used
-# to reset the tab when a key is pressed.
-# ------------------------------------------------------------------
-itcl::body Console::_reset_tab {} {
- bind $_twin <KeyPress> {}
- set _saw_tab 0
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: _set_wrap - Set wrap mode
-# ------------------------------------------------------------------
-itcl::body Console::_set_wrap {wrap} {
- if { $wrap } {
- set hsm none
- set wv char
- } else {
- set hsm dynamic
- set wv none
- }
-
- $itk_interior.stext configure -hscrollmode $hsm
- $_twin configure -wrap $wv
-}
-
-# ------------------------------------------------------------------
-# METHOD: _update_option - Update in response to preference change
-# ------------------------------------------------------------------
-itcl::body Console::_update_option {name value} {
- switch -- $name {
- gdb/console/wrap {
- _set_wrap $value
- }
-
- gdb/console/prompt_fg {
- $_twin tag configure prompt_tag -foreground $value
- }
-
- gdb/console/error_fg {
- $_twin tag configure err_tag -foreground $value
- }
- }
-}
-
-# ------------------------------------------------------------------
-# NAME: public method Console::test
-# DESCRIPTION: Executes the given command
-#
-# ARGUMENTS: Command to run
-# RETURNS: Return value of command
-#
-# NOTES: This will only run if env(GDBTK_TEST_RUNNING)==1.
-# FOR TESTING ONLY
-# ------------------------------------------------------------------
-itcl::body Console::test {args} {
- global env
-
- if {[info exists env(GDBTK_TEST_RUNNING)] && $env(GDBTK_TEST_RUNNING) == 1} {
- return [eval $args]
- }
-}
-
diff --git a/gdb/gdbtk/library/console.ith b/gdb/gdbtk/library/console.ith
deleted file mode 100644
index bf834f3223e..00000000000
--- a/gdb/gdbtk/library/console.ith
+++ /dev/null
@@ -1,77 +0,0 @@
-# Console window class definition for GDBtk.
-# Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ----------------------------------------------------------------------
-# Implements a console display widget using primitive widgets as the building
-# blocks.
-# ----------------------------------------------------------------------
-
-itcl::class Console {
- inherit EmbeddedWin GDBEventHandler
-
- public {
- #Approximate maximum number of lines allowed in widget
- variable throttle 2000
-
- method constructor {args}
- method destructor {}
- method insert {line {tag ""}}
- method invoke {{controld 0}}
- method _insertion {args}
- method activate {{prompt {}}}
- method test {args}
- method gets {}
-
- #
- # GDB Events
- #
- method busy {event}
- method idle {event}
- }
-
- private {
- variable _twin
- variable _invoking 0
- variable _needNL 1
- variable _history {}
- variable _histElement -1
- variable _partialCommand ""
- variable _saved_insertion ""
- variable _running 0
- variable _saw_tab 0
- variable _pendingHistElement -1
- variable _input_mode 0
- variable _input_result ""
- variable _input_error 0
-
- method _build_win {}
- method _cancel {}
- method _complete {}
- method _delete {{left 0}}
- method _find_completion {cmd completions}
- method _find_lcp {slist}
- method _first {}
- method _last {}
- method _next {}
- method _operate_and_get_next {}
- method _paste {{check_primary 1}}
- method _previous {}
- method _reset_tab {}
- method _search_history {}
- method _rsearch_history {}
- method _setprompt {{prompt {}}}
- method _set_wrap {wrap}
- method _update_option {name value}
- }
-}
diff --git a/gdb/gdbtk/library/cspref.itb b/gdb/gdbtk/library/cspref.itb
deleted file mode 100644
index 551992c9f65..00000000000
--- a/gdb/gdbtk/library/cspref.itb
+++ /dev/null
@@ -1,152 +0,0 @@
-# Color Scheme preferences dialog for Insight.
-# Copyright (C) 2004 Red Hat
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ------------------------------------------------------------------
-# CONSTRUCTOR - create new source preferences window
-# ------------------------------------------------------------------
-itcl::body CSPref::constructor {args} {
- window_name "Color Scheme Preferences"
- _init_var
- _build_win
-}
-
-# ------------------------------------------------------------------
-# METHOD: init_var - initialize preference variables
-# ------------------------------------------------------------------
-itcl::body CSPref::_init_var {} {
- for {set i 0} {$i < 16} {incr i} {
- lappend vlist gdb/bg/$i
- }
-
- foreach var $vlist {
- set _saved($var) [pref get $var]
- set _new($var) $_saved($var)
- }
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: build_win - build the dialog
-# ------------------------------------------------------------------
-itcl::body CSPref::_build_win {} {
- frame $itk_interior.f
- frame $itk_interior.f.a
- frame $itk_interior.f.b
- set f $itk_interior.f.a
-
- # Description frame
- set d [labelframe $f.desc -text "Description"]
- label $d.txt -justify left -wraplength 6i -background $::Colors(textbg) \
- -text "There are many situations where multiple instances\
-of Insight may be running. Some examples are when debugging itself, when debugging\
-client and server programs, or multiprocessor systems. In these situations, it is easy\
-to get confused by the many different windows. Insight provides a simple way to have\
-all the windows belonging to a particular Insight instance use the same background color.\
-\n\nClick on a color below to edit it. This is a text background color. Other colors are\
-computed based on it."
- pack $d.txt -side top
- pack $f.desc -expand yes -fill both
-
- set w [labelframe $f.colors -text "Text Backgrounds"]
- for {set i 0} {$i < 16} {incr i} {
- set color $_new(gdb/bg/$i)
- button $w.$i -text [format "%X" $i] -activebackground $color -bg $color \
- -command [code $this _pick $color $w.$i $i]
- }
-
- grid $w.0 $w.1 $w.2 $w.3 $w.4 $w.5 $w.6 $w.7 -padx 10 -pady 10 -sticky we
- grid $w.8 $w.9 $w.10 $w.11 $w.12 $w.13 $w.14 $w.15 -padx 10 -pady 10 -sticky we
-
- pack $w -fill both -expand yes
- pack $f.colors -fill both -expand yes
-
- button $itk_interior.f.b.ok -text OK -width 7 -underline 0 -command [code $this _save]
- button $itk_interior.f.b.apply -text Apply -width 7 -underline 0 -command [code $this _apply]
- button $itk_interior.f.b.quit -text Cancel -width 7 -underline 0 -command [code $this _cancel]
- standard_button_box $itk_interior.f.b
- pack $itk_interior.f.a $itk_interior.f.b $itk_interior.f -expand yes -fill both -padx 5 -pady 5
-}
-
-# ------------------------------------------------------------------
-# METHOD: apply - apply changes
-# ------------------------------------------------------------------
-itcl::body CSPref::_apply {} {
- foreach var [array names _new] {
- if {$_new($var) != [pref get $var]} {
- pref set $var $_new($var)
- }
- }
- set_bg_colors
-}
-
-# ------------------------------------------------------------------
-# METHOD: _cancel
-# ------------------------------------------------------------------
-itcl::body CSPref::_cancel {} {
- set bg_changed 0
-
- if {[string compare [pref get gdb/bg/$::gdb_bg_num] $_saved(gdb/bg/$::gdb_bg_num)] != 0} {
- set bg_changed 1
- }
-
- foreach elem [array names _saved] {
- set cur_val [pref get $elem]
- if {[string compare $cur_val $_saved($elem)] != 0} {
- pref set $elem $_saved($elem)
- }
- }
-
- if {$bg_changed} {
- set_bg_colors
- } else {
- ManagedWin::restart
- }
- unpost
-}
-
-# ------------------------------------------------------------------
-# METHOD: save - apply changes and quit
-# ------------------------------------------------------------------
-itcl::body CSPref::_save {} {
- _apply
- unpost
-}
-
-# ------------------------------------------------------------------
-# METHOD: reconfig - called when windows are reconfigured
-# ------------------------------------------------------------------
-
-itcl::body CSPref::reconfig {} {
- # Unfortunately, r_setcolors recolors buttons if we do an Apply,
- # so fix them up here.
-
- for {set i 0} {$i < 10} {incr i} {
- set color $_new(gdb/bg/$i)
- $w.$i configure -activebackground $color -bg $color
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: pick - pick colors
-# ------------------------------------------------------------------
-itcl::body CSPref::_pick {color win num} {
- #debug "$color $win $num"
- set new_color [tk_chooseColor -initialcolor $color -title "Choose color"]
- if {$new_color != $color && $new_color != {}} {
- $win configure -activebackground $new_color -bg $new_color \
- -command [code $this _pick $new_color $w.${num}b $num]
- set _new(gdb/bg/$num) $new_color
- pref set gdb/bg/$num $new_color
- }
-}
diff --git a/gdb/gdbtk/library/cspref.ith b/gdb/gdbtk/library/cspref.ith
deleted file mode 100644
index 587fd2aa401..00000000000
--- a/gdb/gdbtk/library/cspref.ith
+++ /dev/null
@@ -1,36 +0,0 @@
-# Color Scheme preferences dialog class definition for GDBtk.
-# Copyright (C) 2004, Red Hat Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class CSPref {
- inherit ManagedWin ModalDialog
-
- private {
- variable _saved ;# These are the saved values...
- variable _new ;# These are the changed values
- variable w
- method _apply {}
- method _build_win {}
- method _cancel {}
- method _init_var {}
- method _pick {color win num}
- method _save {}
- method _setcolors {}
- }
-
- public {
- method constructor {args}
- method reconfig {}
- }
-}
-
diff --git a/gdb/gdbtk/library/debugwin.itb b/gdb/gdbtk/library/debugwin.itb
deleted file mode 100644
index 623f044dafd..00000000000
--- a/gdb/gdbtk/library/debugwin.itb
+++ /dev/null
@@ -1,483 +0,0 @@
-# Debug window for GDBtk.
-# Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# -----------------------------------------------------------------------------
-# NAME: DebugWin::constructor
-#
-# SYNOPSIS: constructor::args
-#
-# DESC: Creates the debug window
-#
-# ARGS: None are used yet.
-# -----------------------------------------------------------------------------
-itcl::body DebugWin::constructor {args} {
- debug $args
- window_name "Insight Debug" "Debug"
-
- build_win
-}
-
-# -----------------------------------------------------------------------------
-# NAME: DebugWin::destructor
-#
-# SYNOPSIS: Not called by hand
-#
-# DESC: Destroys the debug window
-#
-# ARGS: None
-# -----------------------------------------------------------------------------
-itcl::body DebugWin::destructor {} {
- # notify debug code that window is going away
- ::debug::debugwin ""
-}
-
-# -----------------------------------------------------------------------------
-# NAME: DebugWin::reconfig
-#
-# SYNOPSIS: Reconfigure callback
-#
-# DESC: Fixes up window colors
-#
-# ARGS: None
-# -----------------------------------------------------------------------------
-itcl::body DebugWin::reconfig {} {
- # This keeps the Debug window using its unique black background.
- # Otherwise, a reconfigure event will color it to match the other windows
- $itk_interior.s configure -textbackground black
-}
-
-# -----------------------------------------------------------------------------
-# NAME: DebugWin::build_win
-#
-# SYNOPSIS: build_win
-#
-# DESC: Creates the Debug Window. Reads the contents of the debug log
-# file, if it exists. Notifies the debug functions in ::debug
-# to send output here.
-# -----------------------------------------------------------------------------
-itcl::body DebugWin::build_win {} {
- global gdb_ImageDir GDBTK_LIBRARY
-
- set top [winfo toplevel $itk_interior]
-
- # initialize the gdbtk_de array
- if {![info exists ::gdbtk_de]} {
- set ::gdbtk_de(ALL) 1
- set ::gdbtk_de(ERRORS_ONLY) 0
- set ::gdbtk_de(others) 0
- set ::gdbtk_de(filter_var) ALL
- }
-
- # create menubar
- set menu [menu $itk_interior.m -tearoff 0]
- $menu add cascade -menu $menu.file -label "File" -underline 0
- set m [menu $menu.file]
- $m add command -label "Clear" -underline 1 \
- -command [code $this _clear]
- $m add command -label "Mark Old" -underline 1 \
- -command [code $this _mark_old]
- $m add separator
- $m add command -label "Save" -underline 0 \
- -command [code $this _save_contents]
- $m add separator
- $m add command -label "Close" -underline 0 \
- -command "::debug::debugwin {};delete object $this"
- $menu add cascade -menu $menu.trace -label "Trace"
- set m [menu $menu.trace]
- $m add radiobutton -label Start -variable ::debug::tracing -value 1
- $m add radiobutton -label Stop -variable ::debug::tracing -value 0
- $menu add cascade -menu $menu.rs -label "ReSource"
- set m [menu $menu.rs]
- foreach f [lsort [glob [file join $GDBTK_LIBRARY *.itb]]] {
- $m add command -label "Source [file tail $f]"\
- -command [list source $f]
- }
- $m add separator
- $m add command -label "Source ALL" -command [code $this _source_all]
-
- $menu add cascade -menu $menu.opt -label "Options"
- set m [menu $menu.opt]
- $m add command -label "Display" -underline 0 \
- -command [list ManagedWin::open DebugWinDOpts -over $this]
- if {!$::debug::initialized} {
- $menu entryconfigure 1 -state disabled
- $menu add cascade -label " Tracing Not Initialized" -foreground red \
- -activeforeground red
- }
- $menu add cascade -menu $menu.help -label "Help" -underline 0
- set m [menu $menu.help]
- $m add command -label "Debugging Functions" -underline 0 \
- -command {open_help debug.html}
-
- $top configure -menu $menu
-
- iwidgets::scrolledtext $itk_interior.s -hscrollmode static \
- -vscrollmode static -wrap none -textbackground black -foreground white
- set _t [$itk_interior.s component text]
- pack $itk_interior.s -expand 1 -fill both
-
- # define tags
- foreach color $_colors {
- $_t tag configure [lindex $color 0] -foreground [lindex $color 1]
- }
- $_t tag configure trace -foreground gray
- $_t tag configure args -foreground blue
- $_t tag configure marked -background grey20
-
- loadlog
-
- # now notify the debug functions to use this window
- ::debug::debugwin $this
-
- # override the window delete procedure so the messages are
- # turned off first.
- wm protocol $top WM_DELETE_WINDOW "::debug::debugwin {};destroy $top"
-}
-
-# -----------------------------------------------------------------------------
-# NAME: DebugWin::puts
-#
-# SYNOPSIS: puts {level cls func msg}
-#
-# DESC: Writes debugging information into the DebugWin. A filter
-# will be applied to determine if the message should be
-# displayed or not.
-#
-# ARGS: level - priority level. See debug::dbug for details.
-# cls - class name of caller, for example "SrcWin"
-# func - function name of caller
-# msg - message to display
-# -----------------------------------------------------------------------------
-itcl::body DebugWin::puts {level cls func msg} {
- # filter. check if we should display this message
- # for now we always let high-level messages through
- if {$level == "I"} {
-
- # errors and warnings only
- if {$::gdbtk_de(ERRORS_ONLY)} { return }
-
- # ALL classes except those set
- if {$::gdbtk_de(ALL)} {
- if {[info exists ::gdbtk_de($cls)]} {
- if {$::gdbtk_de($cls)} {
- return
- }
- } elseif {$::gdbtk_de(others)} {
- return
- }
- }
-
- # ONLY the classes set
- if {!$::gdbtk_de(ALL)} {
- if {[info exists ::gdbtk_de($cls)]} {
- if {!$::gdbtk_de($cls)} {
- return
- }
- } elseif {!$::gdbtk_de(others)} {
- return
- }
- }
- }
-
- if {$func != ""} {
- append cls ::$func
- }
- $_t insert end "($cls) " {} "$msg\n" $level
- $_t see insert
-}
-
-# -----------------------------------------------------------------------------
-# NAME: DebugWin::put_trace
-#
-# SYNOPSIS: put_trace {enter level func ar}
-#
-# DESC: Writes trace information into the DebugWin. A filter
-# will be applied to determine if the message should be
-# displayed or not.
-#
-# ARGS: enter - 1 if this is a function entry, 0 otherwise.
-# level - stack level
-# func - function name
-# ar - function arguments
-# -----------------------------------------------------------------------------
-itcl::body DebugWin::put_trace {enter level func ar} {
- set x [expr {$level * 2 - 2}]
- if {$enter} {
- $_t insert end "[string range $_bigstr 0 $x]$func " trace "$ar\n" args
- } else {
- $_t insert end "[string range $_bigstr 0 $x]<- $func " trace "$ar\n" args
- }
- $_t see insert
-}
-
-# -----------------------------------------------------------------------------
-# NAME: DebugWin::loadlog
-#
-# SYNOPSIS: loadlog
-#
-# DESC: Reads the contents of the debug log file, if it exists, into
-# the DebugWin.
-# -----------------------------------------------------------------------------
-itcl::body DebugWin::loadlog {} {
- $_t delete 0.0 end
- # Now load in log file, if possible.
- # this is rather rude, using the logfile variable in the debug namespace
- if {$::debug::logfile != "" && $::debug::logfile != "stdout"} {
- flush $::debug::logfile
- seek $::debug::logfile 0 start
- while {[gets $::debug::logfile line] >= 0} {
- while {[catch {set f [lindex $line 0]} f]} {
- # If the lindex failed its because the remainder of the
- # list is on the next line. Get it.
- if {[gets $::debug::logfile line2] < 0} {
- break
- }
- append line \n $line2
- }
- if {$f == "T"} {
- put_trace [lindex $line 1] [lindex $line 2] [lindex $line 3] \
- [lindex $line 4]
- } else {
- puts $f [lindex $line 1] [lindex $line 2] [lindex $line 3]
- }
- }
- }
-}
-
-# -----------------------------------------------------------------------------
-# NAME: DebugWin::_source_all
-#
-# SYNOPSIS: _source_all
-#
-# DESC: Re-sources all the .itb files.
-# -----------------------------------------------------------------------------
-itcl::body DebugWin::_source_all {} {
- foreach f [glob [file join $::GDBTK_LIBRARY *.itb]] {
- source $f
- }
-}
-
-# -----------------------------------------------------------------------------
-# NAME: DebugWin::_clear
-#
-# SYNOPSIS: _clear
-#
-# DESC: Clears out the content of the debug window.
-# -----------------------------------------------------------------------------
-itcl::body DebugWin::_clear {} {
- $_t delete 1.0 end
-}
-
-# -----------------------------------------------------------------------------
-# NAME: DebugWin::_mark_old
-#
-# SYNOPSIS: _mark_old
-#
-# DESC: Changes the background of the current contents of the window.
-# -----------------------------------------------------------------------------
-itcl::body DebugWin::_mark_old {} {
- $_t tag add marked 1.0 "end - 1c"
-}
-
-# -----------------------------------------------------------------------------
-# NAME: DebugWin::_save_contents
-#
-# SYNOPSIS: _save_contents
-#
-# DESC: Changes the background of the current contents of the window.
-# -----------------------------------------------------------------------------
-itcl::body DebugWin::_save_contents {} {
- set file [tk_getSaveFile -title "Choose debug window dump file" \
- -parent [winfo toplevel $itk_interior]]
- if {$file == ""} {
- return
- }
-
- if {[catch {::open $file w} fileH]} {
- tk_messageBox -type ok -icon error -message \
- "Can't open file: \"$file\". \n\nThe error was:\n\n\"$fileH\""
- return
- }
- ::puts $fileH [$_t get 1.0 end]
-
-}
-
-###############################################################################
-# -----------------------------------------------------------------------------
-# NAME: DebugWinDOpts::constructor
-#
-# SYNOPSIS: constructor
-#
-# DESC: Creates the Debug Window Options Dialog.
-# -----------------------------------------------------------------------------
-itcl::body DebugWinDOpts::constructor {args} {
- window_name "Debug Window Options"
- build_win
- eval itk_initialize $args
-}
-
-###############################################################################
-# -----------------------------------------------------------------------------
-# NAME: DebugWinDOpts::destructor
-#
-# SYNOPSIS: Not called by hand
-#
-# DESC: Destroys the Debug Window Options Dialog.
-# -----------------------------------------------------------------------------
-itcl::body DebugWinDOpts::destructor {} {
-}
-
-
-# -----------------------------------------------------------------------------
-# NAME: DebugWinDOpts::build_win
-#
-# SYNOPSIS: build_win
-#
-# DESC: Creates the Debug Window Options Dialog. This dialog allows the
-# user to select which information is displayed in the debug
-# window and (eventually) how it looks.
-# -----------------------------------------------------------------------------
-itcl::body DebugWinDOpts::build_win {} {
- wm title [winfo toplevel $itk_interior] "Debug Display Options"
- # initialize here so we can resource this file and update the list
- set _classes {DebugWin RegWin SrcBar SrcWin ToolBar WatchWin EmbeddedWin \
- ManagedWin GDBWin StackWin SrcTextWin global \
- BpWin TargetSelection ModalDialog ProcessWin \
- GDBEventHandler MemWin VarTree}
- set _classes [concat [lsort $_classes] others]
-
- set f [frame $itk_interior.f]
- set btns [frame $itk_interior.buttons]
-
- iwidgets::Labeledframe $f.display -labelpos nw -labeltext {Classes}
- set fr [$f.display childsite]
- radiobutton $fr.0 -text "Messages from ALL classes EXCEPT those selected below" \
- -variable ::gdbtk_de(filter_var) -value ALL -command [code $this _all]
- radiobutton $fr.1 -text "Messages from ONLY those classes selected below" \
- -variable ::gdbtk_de(filter_var) -value ONLY -command [code $this _all]
- radiobutton $fr.2 -text "Only WARNINGS and ERRORS" \
- -variable ::gdbtk_de(filter_var) -value ERRORS -command [code $this _all]
-
- grid $fr.0 -sticky w -padx 5 -pady 5
- grid $fr.1 -sticky w -padx 5 -pady 5
- grid $fr.2 -sticky w -padx 5 -pady 5
-
- iwidgets::Labeledframe $f.classes
- set fr [$f.classes childsite]
-
- set i 0
- foreach cls $_classes {
- if {![info exists ::gdbtk_de($cls)]} {
- set ::gdbtk_de($cls) 0
- }
- checkbutton $fr.$i -text $cls -variable ::gdbtk_de($cls)
- incr i
- }
-
- set k [expr 3*(int($i/3))]
- set more [expr $i - $k]
- set j 0
- while {$j < $k} {
- grid $fr.$j $fr.[expr $j+1] $fr.[expr $j+2] -sticky w -padx 5 -pady 5
- incr j 3
- }
- switch $more {
- 1 { grid $fr.$j x x -sticky w -padx 5 -pady 5}
- 2 { grid $fr.$j $fr.[expr $j+1] x -sticky w -padx 5 -pady 5}
- }
-
- pack $f.display -side top -expand 1 -fill both
- pack $f.classes -side top -expand 1 -fill both
-
- button $btns.ok -text [gettext OK] -width 7 -command [code $this _apply 1] \
- -default active
- button $btns.apply -text "Apply to All" -width 7 \
- -command [code $this _apply 0]
- if {$::debug::logfile == "" || $::debug::logfile == "stdout"} {
- $btns.apply configure -state disabled
- }
- button $btns.help -text [gettext Help] -width 10 -command [code $this help] \
- -state disabled
- standard_button_box $btns
- bind $btns.ok <Return> "$btns.ok flash; $btns.ok invoke"
- bind $btns.apply <Return> "$btns.apply flash; $btns.apply invoke"
- bind $btns.help <Return> "$btns.help flash; $btns.help invoke"
-
- pack $btns $f -side bottom -expand 1 -fill both -anchor e
- focus $btns.ok
-}
-
-# -----------------------------------------------------------------------------
-# NAME: DebugWinDOpts::_all
-#
-# SYNOPSIS: _all
-#
-# DESC: Callback for selecting ALL classes. If the user selects ALL,
-# deselect all the individual class checkbuttons.
-# -----------------------------------------------------------------------------
-itcl::body DebugWinDOpts::_all {} {
- switch $::gdbtk_de(filter_var) {
- ALL {
- set ::gdbtk_de(ALL) 1
- set ::gdbtk_de(ERRORS_ONLY) 0
- #enable class buttons
- set num 0
- foreach class $_classes {
- [$itk_interior.f.classes childsite].$num configure -state normal
- incr num
- }
- }
- ONLY {
- set ::gdbtk_de(ALL) 0
- set ::gdbtk_de(ERRORS_ONLY) 0
- #enable class buttons
- set num 0
- foreach class $_classes {
- [$itk_interior.f.classes childsite].$num configure -state normal
- incr num
- }
- }
- ERRORS {
- set ::gdbtk_de(ALL) 0
- set ::gdbtk_de(ERRORS_ONLY) 1
- # disable class buttons
- set num 0
- foreach class $_classes {
- [$itk_interior.f.classes childsite].$num configure -state disabled
- incr num
- }
- }
- }
-}
-
-
-# -----------------------------------------------------------------------------
-# NAME: DebugWinDOpts::_apply
-#
-# SYNOPSIS: _apply
-#
-# DESC: Callback for the "Apply" button. Loads the contents of the
-# log file through the new filter into the debug window. The
-# button is disabled if there is no log file.
-# -----------------------------------------------------------------------------
-itcl::body DebugWinDOpts::_apply { done } {
- set dw [ManagedWin::find DebugWin]
- debug $dw
- if {$dw != ""} {
- $dw loadlog
- }
- if {$done} {
- delete object $this
- }
-}
diff --git a/gdb/gdbtk/library/debugwin.ith b/gdb/gdbtk/library/debugwin.ith
deleted file mode 100644
index b6a961d6c5b..00000000000
--- a/gdb/gdbtk/library/debugwin.ith
+++ /dev/null
@@ -1,93 +0,0 @@
-# Debug window class definition for GDBtk.
-# Copyright (C) 1998, 1999 Cygnus Solutions
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# -----------------------------------------------------------------------------
-# NAME:
-# class DebugWin
-#
-# DESC:
-# This class implements a debug output window to display internal
-# debugging information. It can handle debugging messages, tracing,
-# and eventually profiling.
-#
-# NOTES:
-# This window is for developers.
-#
-# -----------------------------------------------------------------------------
-itcl::class DebugWin {
- inherit ManagedWin
-
- private {
- variable _t
- variable _colors {
- {I green}
- {W yellow}
- {E orange}
- {X red}
- }
- variable _bigstr " "
- method build_win {}
- method _source_all {}
- method _clear {}
- method _mark_old {}
- method _save_contents {}
- method reconfig {}
- }
-
- protected {
- method _ignore_on_save {} { return 1 }
- }
-
- public {
- method constructor {args}
- method destructor {}
- method puts {level cls func msg}
- method put_trace {enter level func ar}
- method loadlog {}
- }
-}
-
-# -----------------------------------------------------------------------------
-# NAME:
-# class DebugWinDOpts
-#
-# DESC:
-# This class implements a debug options dialog for the DebugWin.
-# Currently this consists os a selection dialog to choose which
-# messages to print. Eventually it could also include a filter
-# for different priorities and color selections.
-#
-# NOTES:
-# This window is for developers.
-#
-# -----------------------------------------------------------------------------
-itcl::class DebugWinDOpts {
- inherit ManagedWin
-
- public {
- method constructor {args} {}
- method destructor {}
- }
-
- protected {
- method _ignore_on_save { return 1 }
- }
-
- private {
- variable _classes
- method build_win {}
- method _all {}
- method _apply {done}
- }
-}
diff --git a/gdb/gdbtk/library/download.itb b/gdb/gdbtk/library/download.itb
deleted file mode 100644
index 29d9f464bcb..00000000000
--- a/gdb/gdbtk/library/download.itb
+++ /dev/null
@@ -1,304 +0,0 @@
-# Download class implementation for Insight.
-# Copyright (C) 1999, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ----------------------------------------------------------------------
-# Download window and associated procs
-#
-# ----------------------------------------------------------------------
-
-itcl::body Download::constructor {args} {
- global gdb_pretty_name
- debug $args
- eval itk_initialize $args
- window_name "Download Status" "Download"
- add_hook download_progress_hook "$this update_download"
-
- label $itk_interior.dload -text "Downloading $filename to $gdb_pretty_name"
-
- label $itk_interior.stat
- set f [frame $itk_interior.f]
-
- set i 0
- while {$i <$num_sections} {
- iwidgets::feedback $f.meter$i -steps $num_steps
- grid forget [$f.meter$i component percentage]
- label $f.sec$i -text [lindex $section(names) $i] -anchor w
- label $f.num$i -text $bytes($i) -anchor e
- grid $f.sec$i $f.meter$i $f.num$i -padx 4 -pady 4 -sticky news
- incr i
- }
- grid columnconfigure $f 1 -weight 1
-
- button $itk_interior.cancel -text Cancel -command "$this cancel" \
- -state active -width 10
-
- pack $itk_interior.dload -padx 5 -pady 5 -side top -fill x -expand yes
- pack $itk_interior.stat -padx 5 -pady 5 -expand yes
- pack $itk_interior.f -padx 5 -pady 5 -fill x -expand yes
-
- pack $itk_interior.cancel -padx 5 -pady 5 -side bottom
- ::update idletasks
-}
-
-# ------------------------------------------------------------------
-# METHOD: update_download - update the download meters
-# ------------------------------------------------------------------
-itcl::body Download::update_download { sec num tot } {
-
- # Loop through all the sections, marking each as either done or
- # updating its meter. This will mark all previous sections prior to
- # SEC as complete.
- foreach s $section(names) {
- set i $section($s)
-
- if {$s == $sec} {
- # Advance feedback meter. The iwidgets meter leaves a lot to
- # be desired. No way to query the current setting. No way to
- # set the state of the meter by percentage. It only understands
- # steps, and we must be careful not to step the widget past the
- # the configured number of steps, or else the meter will be
- # set wrong. How lame.
- set steps [expr {$num / $bytes($i) * $num_steps}]
- if {[expr {$completed_steps($s) + $steps}] > $num_steps} {
- set steps [expr {$num_steps - $completed_steps($s)}]
- }
- incr completed_steps($s) $steps
- $itk_interior.f.meter$i step $steps
- break
- } else {
- # Section already loaded. Make sure meter is at 100%.
- if {$completed_steps($s) < $num_steps} {
- set steps [expr {$num_steps - $completed_steps($s)}]
- set completed_steps($s) $num_steps
- $itk_interior.f.meter$i step $steps
- }
- }
- }
-
- ::update
-}
-
-# ------------------------------------------------------------------
-# METHOD: done - notification that the download is really complete
-# ------------------------------------------------------------------
-itcl::body Download::done { {msg ""} } {
- bell
-
- if {$msg == ""} {
- # download finished
- set secs [expr {[clock seconds] - $::download_start_time}]
- if {$secs == 0} { incr secs }
- $itk_interior.cancel config -state disabled
- set bps [expr {8 * $total_bytes / $secs / 1000}]
- $itk_interior.stat config -text "$total_bytes bytes in $secs seconds ($bps kbps)"
-
- # set all indicators to FULL
- foreach sec $section(names) {
- set i $section($sec)
- if {$completed_steps($sec) < $num_steps} {
- set steps [expr {$num_steps - $completed_steps($sec)}]
- set completed_steps($sec) $num_steps
- $itk_interior.f.meter$i step $steps
- }
- }
- } else {
- # download failed
- if {$msg != "CANCEL"} {
- $itk_interior.stat config -text $msg
- }
- }
-
- # enable OK button
- $itk_interior.cancel config -state active -text OK -command "delete object $this"
- ::update
-}
-
-# ------------------------------------------------------------------
-# METHOD: cancel - cancel the download
-# ------------------------------------------------------------------
-itcl::body Download::cancel {} {
- debug "canceling the download"
- set ::download_cancel_ok 1
-}
-
-# ------------------------------------------------------------------
-# DESTRUCTOR - destroy window containing widget
-# ------------------------------------------------------------------
-itcl::body Download::destructor {} {
- remove_hook download_progress_hook "$this update_download"
-}
-
-itcl::body Download::do_download_hooks {} {
- set ::download_timer(ok) 1
-}
-
-itcl::body Download::download_hash { section num } {
- global download_timer
- debug "sec=$section num=$num tot=$total_bytes ok=$::download_cancel_ok"
- ::update
- # Only run the timer at discrete times...
- if {[info exists download_timer(timer)]} {
- after cancel $download_timer(timer)
- }
-
- set download_timer(timer) [after 100 Download::do_download_hooks]
- if {![info exists download_timer(ok)] || $download_timer(ok)} {
- run_hooks download_progress_hook $section $num $total_bytes
- ::update
- unset download_timer(timer)
- set download_timer(ok) 0
- }
-
- return $::download_cancel_ok
-}
-
-# Download the executable. Return zero for success, and non-zero for error.
-itcl::body Download::download_it { } {
- global gdb_exe_name gdb_downloading gdb_loaded
- global gdb_target_name gdb_pretty_name
- global gdb_running
- global tcl_platform
-
- debug "exe=$gdb_exe_name downloading=$gdb_downloading"
- debug " loaded=$gdb_loaded target=$gdb_target_name running=$gdb_running"
-
- if {$gdb_downloading || $gdb_exe_name == ""} {
- return 0
- }
-
- set gdb_downloading 1
- set gdb_loaded 0
- # Make sure the source window has had time to be created
- ::update
-
- gdbtk_busy
-
- # Only places that load files should do set_exe
- #set_exe
- switch [set_target] {
- ERROR {
- # target command failed
- set gdb_downloading 0
- gdbtk_idle
- return 0
- }
- CANCELED {
- # command cancelled by user
- set gdb_downloading 0
- if {$gdb_running} {
- # Run the idle hooks (free the UI)
- gdbtk_update
- gdbtk_idle
- } else {
- gdbtk_idle
- }
- return 1
- }
- }
-
- if {[string compare $tcl_platform(platform) "windows"] == 0} {
- set f [ide_cygwin_path to_win32 $gdb_exe_name]
- } else {
- set f $gdb_exe_name
- }
- if {! [file exists $f]} {
- tk_messageBox -icon error -title GDB -type ok \
- -message "Request to download non-existent executable $gdb_exe_name"
- set gdb_downloading 0
- gdbtk_idle
- return 0
- }
-
- debug "downloading $gdb_exe_name"
-
- set target $gdb_target_name
-
- # get load info and total up number of bytes
- if {[catch {gdb_load_info $gdb_exe_name} val]} {
- set result "$gdb_exe_name: $val"
- tk_dialog .load_warn "" "$result" error 0 Ok
- return 0
- }
- set i 0
- set total_bytes 0
- set section(names) {}
- foreach x $val {
- set s [lindex $x 0]
- lappend section(names) $s
- set section($s) $i
- set b [lindex $x 1]
- set bytes($i) [expr {double($b)}]
- incr total_bytes $b
- set completed_steps($s) 0
- incr i
- }
- set num_sections $i
-
- set ::download_cancel_ok 0
- set ::download_start_time [clock seconds]
-
- if {[pref getd gdb/load/$target-verbose] == "1"} {
- # open a detailed download dialog window
- set download_dialog [ManagedWin::open Download -transient -filename $gdb_exe_name]
- } else {
- # raise source windows
- foreach src [ManagedWin::find SrcWin] {
- $src reveal
- $src toolbar downloading
- }
- set download_dialog ""
- }
-
- set download_error ""
- debug "starting load"
- ::update idletasks
- if {[catch {gdb_cmd "load $gdb_exe_name"} errTxt]} {
- debug "load returned $errTxt"
- if {[regexp -nocase cancel $errTxt]} {
- set download_error "CANCEL"
- } else {
- set download_error $errTxt
- }
- set ::download_cancel_ok 1
- }
-
- debug "Done loading"
-
- set gdb_downloading 0
- if {$::download_cancel_ok} {
- set gdb_loaded 0
- if {$download_dialog != ""} {
- catch {$download_dialog done $download_error}
- }
- } else {
- set gdb_loaded 1
- if {$download_dialog != ""} {
- catch {$download_dialog done}
- }
- }
-
- foreach src [ManagedWin::find SrcWin] {
- if {$download_error == "CANCEL"} {
- $src download_progress CANCEL 1 1
- } else {
- $src download_progress DONE 0 $total_bytes $download_error
- }
- }
-
- set ::download_cancel_ok 0
- set download_dialog ""
-
- gdbtk_idle
- return 0
-}
diff --git a/gdb/gdbtk/library/download.ith b/gdb/gdbtk/library/download.ith
deleted file mode 100644
index a7ac2ad0fc9..00000000000
--- a/gdb/gdbtk/library/download.ith
+++ /dev/null
@@ -1,45 +0,0 @@
-# Download class definition for Insight
-# Copyright (C) 1999, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class Download {
- inherit ManagedWin
-
- protected {
- common total_bytes
- common section
- common bytes
- common num_sections
- common num_steps 100
-
- # completed steps in feedback meter (iwidget::feedback is lame)
- common completed_steps
-
- method _ignore_on_save {} { return 1 }
- proc dont_remember_size {} { return 1}
- }
- public {
- variable filename
-
- method constructor {args}
- method destructor {}
- method update_download { sec num tot }
- method done { {msg ""} }
- method cancel {}
-
- proc download_it { }
- proc do_download_hooks {}
- proc download_hash { section num }
-
- }
-}
diff --git a/gdb/gdbtk/library/editor.tcl b/gdb/gdbtk/library/editor.tcl
deleted file mode 100644
index 12d291e0527..00000000000
--- a/gdb/gdbtk/library/editor.tcl
+++ /dev/null
@@ -1,47 +0,0 @@
-# Editor
-# Copyright (C) 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# ----------------------------------------------------------------------
-# Implements a set of editor commands
-# ----------------------------------------------------------------------
-
-namespace eval Editor {
- namespace export edit
-
- proc edit {loc_info} {
- global external_editor_command
-
- if {[info exists external_editor_command]} {
- if {[catch {uplevel \#0 "$external_editor_command edit $loc_info"} \
- err]} {
- tk_dialog .warn-sn "Edit" $err error 0 Ok
- }
- return
- }
-
- lassign $loc_info baseName fnName fileName lineNum addr pc
-
- set newCmd [pref get gdb/editor]
- if {! [string compare $newCmd ""]} {
- tk_dialog .warn "Edit" "No editor command specified" error 0 Ok
- }
-
- # Replace %s with file name and %d with line number.
- regsub -all -- %s $newCmd $fileName newCmd
- regsub -all -- %d $newCmd $lineNum newCmd
-
- if {[catch "exec $newCmd &" err]} {
- tk_dialog .warn "Edit" $err error 0 Ok
- }
- }
-}
diff --git a/gdb/gdbtk/library/ehandler.itb b/gdb/gdbtk/library/ehandler.itb
deleted file mode 100644
index ca3e370791b..00000000000
--- a/gdb/gdbtk/library/ehandler.itb
+++ /dev/null
@@ -1,31 +0,0 @@
-# GDBEventHandler class implementation for Insight.
-# Copyright (C) 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# ------------------------------------------------------------
-# PUBLIC PROC: dispatch - Dispatch the given event to all
-# event handlers. The name of the handler
-# method to call is stored in the event's
-# "handler" method.
-# ------------------------------------------------------------
-itcl::body GDBEventHandler::dispatch {event} {
-
- set handler [$event handler]
-
- # invoke event handlers
- foreach w [itcl_info objects -isa GDBEventHandler] {
- dbug I "posting event \"$handler\" to \"$w\""
- if {[catch {$w $handler $event}]} {
- dbug E "On $handler event, $w errored:\n$::errorInfo"
- }
- }
-}
diff --git a/gdb/gdbtk/library/ehandler.ith b/gdb/gdbtk/library/ehandler.ith
deleted file mode 100644
index f66a1239ae1..00000000000
--- a/gdb/gdbtk/library/ehandler.ith
+++ /dev/null
@@ -1,48 +0,0 @@
-# GDBEventHandler class definition for Insight.
-# Copyright (C) 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-itcl::class GDBEventHandler {
-
- constructor {args} {}
- destructor {}
-
- # Dispatching proc. ALL events should be funneled through this
- # procedure.
- public proc dispatch {event}
-
- #
- # Events
- #
-
- # See gdbevent.ith for descriptions of event
- public {
- # Breakpiont/tracepoint events
- method breakpoint {event} {}
- method tracepoint {event} {}
-
- # Set variable
- method set_variable {event} {}
-
- # Busy event
- method busy {event} {}
-
- # Idle event
- method idle {event} {}
-
- # Update event
- method update {event} {}
-
- # Architecture changed event
- method arch_changed {event} {}
- }
-}
diff --git a/gdb/gdbtk/library/embeddedwin.ith b/gdb/gdbtk/library/embeddedwin.ith
deleted file mode 100644
index 2cda6af6e08..00000000000
--- a/gdb/gdbtk/library/embeddedwin.ith
+++ /dev/null
@@ -1,25 +0,0 @@
-# EmbeddedWin class definition for GDBtk.
-# Copyright (C) 1998, 1999, 2001 Red Hat
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class EmbeddedWin {
- inherit ManagedWin
-
- constructor {args} {
- debug "$args"
- }
-
- destructor {
- debug
- }
-}
diff --git a/gdb/gdbtk/library/gdbevent.itb b/gdb/gdbtk/library/gdbevent.itb
deleted file mode 100644
index 630f4604569..00000000000
--- a/gdb/gdbtk/library/gdbevent.itb
+++ /dev/null
@@ -1,205 +0,0 @@
-# GDB event class implementations for Insight.
-# Copyright (C) 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# ------------------------------------------------------------
-# PUBLIC METHOD: get - Retrieve data about the event
-# ------------------------------------------------------------
-itcl::body BreakpointEvent::get {what} {
-
- switch $what {
- action { return $action }
- number { return $number }
- file { return $_file }
- function { return $_function }
- line { return $_line }
- address { return $_address }
- type { return $_type }
- enabled { return $_enabled }
- disposition { return $_disposition }
- ignore_count { return $_ignore_count }
- commands { return $_commands }
- condition { return $_condition }
- thread { return $_thread }
- hit_count { return $_hit_count }
- user_specification { return $_user_specification }
-
- default { error "unknown event data \"$what\": should be: action|number|file|function|line|address|type|enabled|disposition|ignore_count|commands|condition|thread|hit_count|user_specification" }
- }
-}
-
-# ------------------------------------------------------------
-# PRIVATE METHOD: _init - Initialize all private data
-# ------------------------------------------------------------
-itcl::body BreakpointEvent::_init {} {
- if {[catch {gdb_get_breakpoint_info $number} bpinfo]} {
- set _file {}
- set _function {}
- set _line {}
- set _address {}
- set _type {}
- set _enabled {}
- set _disposition {}
- set _ignore_count {}
- set _commands {}
- set _condition {}
- set _thread {}
- set _hit_count {}
- set _user_specification {}
- } else {
- lassign $bpinfo \
- _file \
- _function \
- _line \
- _address \
- _type \
- _enabled \
- _disposition \
- _ignore_count \
- _commands \
- _condition \
- _thread \
- _hit_count \
- _user_specification
- }
-}
-
-# When the breakpoint number for the event changes,
-# update the private data in the event.
-itcl::configbody BreakpointEvent::number {
- _init
-}
-
-# ------------------------------------------------------------
-# PUBLIC METHOD: get - Retrieve data about the event
-# ------------------------------------------------------------
-itcl::body TracepointEvent::get {what} {
-
- switch $what {
- action { return $action }
- number { return $number }
- file { return $_file }
- function { return $_function }
- line { return $_line }
- address { return $_address }
- enabled { return $_enabled }
- pass_count { return $_pass_count }
- step_count { return $_step_count }
- thread { return $_thread }
- hit_count { return $_hit_count }
- actions { return $_actions }
-
- default { error "unknown event data \"$what\": should be: action|number|file|function|line|address|pass_count|step_count|thread|hit_count|actions" }
- }
-}
-
-# ------------------------------------------------------------
-# PRIVATE METHOD: _init - Initialize all private data
-# ------------------------------------------------------------
-itcl::body TracepointEvent::_init {} {
- if {[catch {gdb_get_tracepoint_info $number} tpinfo]} {
- set _file {}
- set _function {}
- set _line {}
- set _address {}
- set _enabled {}
- set _pass_count {}
- set _step_count {}
- set _thread {}
- set _hit_count {}
- set _actions {}
- } else {
- lassign $tpinfo \
- _file \
- _function \
- _line \
- _address \
- _enabled \
- _pass_count \
- _step_count \
- _thread \
- _hit_count \
- _actions
- }
-}
-
-# When the tracepoint number for the event changes,
-# update the private data in the event.
-itcl::configbody TracepointEvent::number {
- _init
-}
-
-# ------------------------------------------------------------
-# PUBLIC METHOD: get - Retrieve data about the event
-# ------------------------------------------------------------
-itcl::body TracepointEvent::get {what} {
-
- switch $what {
- action { return $action }
- number { return $number }
- file { return $_file }
- function { return $_function }
- line { return $_line }
- address { return $_address }
- enabled { return $_enabled }
- pass_count { return $_pass_count }
- step_count { return $_step_count }
- thread { return $_thread }
- hit_count { return $_hit_count }
- actions { return $_actions }
-
- default { error "unknown event data \"$what\": should be: action|number|file|function|line|address|pass_count|step_count|thread|hit_count|actions" }
- }
-}
-
-# ------------------------------------------------------------
-# PUBLIC METHOD: get - Retrieve data about the event
-# ------------------------------------------------------------
-itcl::body SetVariableEvent::get {what} {
-
- switch $what {
- variable { return $variable }
- value { return $value }
-
- default { error "unknown event data \"$what\": should be: variable|value" }
- }
-}
-
-# ------------------------------------------------------------
-# CONSTRUCTOR: Create an UpdateEvent
-# ------------------------------------------------------------
-itcl::body UpdateEvent::constructor {args} {
- if {[catch {gdb_loc} loc]} {
- dbug E "could not get current location: $loc"
- } else {
- lassign $loc _compile_filename _function _full_filename \
- _line _frame_pc _pc _shlib
- }
-}
-
-# ------------------------------------------------------------
-# PUBLIC METHOD: get - Retrieve data about the event
-# ------------------------------------------------------------
-itcl::body UpdateEvent::get {what} {
-
- switch $what {
- compile_filename { return $_compile_filename }
- full_filename { return $_full_filename }
- function { return $_function }
- line { return $_line }
- frame_pc { return $_frame_pc }
- pc { return $_pc }
- shlib { return $_shlib }
-
- default { error "unknown event data \"$what\": should be: variable|value" }
- }
-}
diff --git a/gdb/gdbtk/library/gdbevent.ith b/gdb/gdbtk/library/gdbevent.ith
deleted file mode 100644
index 2d1e16a4124..00000000000
--- a/gdb/gdbtk/library/gdbevent.ith
+++ /dev/null
@@ -1,220 +0,0 @@
-# GDBEvent class definitions for Insight.
-# Copyright (C) 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# For reasons unknown to me, I cannot put any of the constructors
-# in the implementation files. The very first instance of the class
-# will call the (empty) constructor in here instead of the one
-# defined in the implementation file. Sigh.
-
-itcl::class GDBEvent {
- public method get {what} { return "" }
- public method handler {} { return "unknown" }
-}
-
-# BREAKPOINT EVENT
-#
-# This event is created/dispatched whenever a breakpoint is created,
-# deleted, or modified.
-#
-# action ....... what type of BP event ("create", "delete", "modify")
-# number ....... gdb's internal token for the BP
-# file ......... filename in which event occurred
-# function ..... function in which event occurred
-# line ......... line number in file
-# address ...... address of BP
-# type ......... breakpoint type ("breakpoint", "hw breakpoint", "step resume", etc)
-# enabled ...... BP enabled?
-# disposition .. BP's disposition ("delete", "delstop", "disable", "donttouch")
-# ignore_count . BP's ignore count
-# commands ..... list of commands to run when BP hit
-# condition .... BP condition
-# thread ....... thread in which BP is set (or -1 for all threads)
-# hit_count .... number of times BP has been hit
-# user_specification
-# .. text the user initially used to set this breakpoint
-itcl::class BreakpointEvent {
- inherit GDBEvent
-
- public variable action {}
- public variable number {}
-
- #constructor {args} {}
- constructor {args} {
- eval configure $args
-
- # If creating/modifying a breakpoint, then get
- # all info about it and save it away.
- _init
- }
- #destructor { dbug I "" }
-
- public method get {what}
- public method handler {} { return "breakpoint" }
-
- private variable _file {}
- private variable _function {}
- private variable _line {}
- private variable _address {}
- private variable _type {}
- private variable _enabled {}
- private variable _disposition {}
- private variable _ignore_count {}
- private variable _commands {}
- private variable _condition {}
- private variable _thread {}
- private variable _hit_count {}
- private variable _user_specification {}
-
- private method _init {}
-}
-
-# TRACEPOINT EVENT
-#
-# This event is created/dispatched whenever a tracepoint is created,
-# deleted, or modified.
-#
-# action ....... what type of BP event ("create", "delete", "modify")
-# number ....... gdb's internal token for the BP
-# file ......... filename in which event occurred
-# function ..... function in which event occurred
-# line ......... line number in file
-# address ...... address of BP
-# enabled ...... BP enabled?
-# pass_count ...
-# step_count ...
-# thread ....... thread in which BP is set (or -1 for all threads)
-# hit_count .... number of times BP has been hit
-# actions ...... a list of actions to be performed when the tracepoint is hit
-itcl::class TracepointEvent {
- inherit GDBEvent
-
- public variable action {}
- public variable number {}
-
- # For reasons unknown to me, I cannot put this in the implementation
- # file. The very first instance of the class will call this empty
- # constructor instead of the one defined in the implementation file.
- #constructor {args} {}
- constructor {args} {
- eval configure $args
-
- # If creating/modifying a tracepoint, then get
- # all info about it and save it away.
- _init
- }
- #destructor { dbug I "" }
- public method get {what}
- public method handler {} { return "tracepoint" }
-
- private variable _file {}
- private variable _function {}
- private variable _line {}
- private variable _address {}
- private variable _enabled {}
- private variable _pass_count {}
- private variable _step_count {}
- private variable _thread {}
- private variable _hit_count {}
- private variable _actions {}
-
- private method _init {}
-}
-
-# SET VARIABLE EVENT
-#
-# This event is created/dispatched whenever a "set" command successfully
-# completes in gdb's command interpreter.
-#
-# variable ..... the variable that was changed
-# value ........ the variable's new value
-itcl::class SetVariableEvent {
- inherit GDBEvent
-
- public variable variable
- public variable value
-
- constructor {args} {
- eval configure $args
- }
- #destructor { dbug I "" }
- public method get {what}
- public method handler {} { return "set_variable" }
-}
-
-# BUSY EVENT
-#
-# This event is created/dispatched whenever the GUI or GDB is "busy".
-# This could happen when the inferior is executing or when the GUI
-# is, for example, fetching memory from the target.
-
-itcl::class BusyEvent {
- inherit GDBEvent
-
- public method handler {} { return "busy" }
-}
-
-# IDLE EVENT
-#
-# This event is created/dispatched whenever the GUI and GDB is not
-# "busy". Receipt of this event means that the GUI should be put into
-# a state to accept input by the user.
-
-itcl::class IdleEvent {
- inherit GDBEvent
-
- public method handler {} { return "idle" }
-}
-
-# UPDATE EVENT
-#
-# This event is created/dispatched whenever the target's state
-# has changed. When an UpdateEvent is received, widgets should
-# update their contents to reflect the inferior's new state.
-#
-# Right now, this just holds the output of gdb_loc...
-#
-# compile_filename - Filename stored in the symtab
-# full_filename - Full filename of file, if found in source search dir
-# function - Function name
-# line - Line number
-# frame_pc - Frame's PC
-# pc - Real stop PC
-# shlib - Shared library stopped in
-#
-# FIXME: Should probably put frame_pc and pc into different
-# types of update events...
-itcl::class UpdateEvent {
- inherit GDBEvent
-
- constructor {args} {}
- public method get {what}
- public method handler {} { return "update" }
-
- private variable _compile_filename {}
- private variable _function {}
- private variable _full_filename {}
- private variable _line {}
- private variable _frame_pc {}
- private variable _pc {}
- private variable _shlib {}
-}
-
-# ARCHITECTURE CHANGED EVENT
-#
-# This event is posted whenever the target architecture changes
-
-itcl::class ArchChangedEvent {
- inherit GDBEvent
-
- public method handler {} { return "arch_changed" }
-}
diff --git a/gdb/gdbtk/library/gdbmenubar.itcl b/gdb/gdbtk/library/gdbmenubar.itcl
deleted file mode 100644
index cdeecff29e5..00000000000
--- a/gdb/gdbtk/library/gdbmenubar.itcl
+++ /dev/null
@@ -1,332 +0,0 @@
-# GDBMenuBar
-# Copyright (C) 2000, 2004 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# ----------------------------------------------------------------------
-# Implements a GDB menubar.
-#
-# PUBLIC ATTRIBUTES:
-#
-#
-# METHODS:
-#
-# configure ....... used to change public attributes
-#
-# PRIVATE METHODS
-#
-# X11 OPTION DATABASE ATTRIBUTES
-#
-#
-# ----------------------------------------------------------------------
-
-itcl::class GDBMenuBar {
- inherit itk::Widget
-
- # ------------------------------------------------------------------
- # CONSTRUCTOR - create widget
- # ------------------------------------------------------------------
- constructor {args} {
-
- set Menu [menu $itk_interior.m -tearoff 0]
-
- eval itk_initialize $args
- }
-
- # ------------------------------------------------------------------
- # DESTRUCTOR - destroy window containing widget
- # ------------------------------------------------------------------
- destructor {
-
- #destroy $this
- }
-
- # ------------------------------------------------------------------
- # METHOD: show - attach menu to the toplevel window
- # ------------------------------------------------------------------
- public method show {} {
- [winfo toplevel $itk_interior] configure -menu $Menu
- }
-
- # ------------------------------------------------------------------
- # METHOD: set_class_state - standard method to control state by class
- # ------------------------------------------------------------------
- public method set_class_state {enable_list} {
- debug "Enable list is: $enable_list"
-
- foreach {type state} $enable_list {
- # debug $type
- if {[info exists menu_classes($type)]} {
- set class_list $menu_classes($type)
- if {[llength $class_list]} {
- # debug "$type $state \{$class_list\}"
- foreach menu $class_list {
- # debug "$type $menu $state"
- menubar_change_menu_state $menu $state
- }
- }
- }
- }
- }
-
- ####################################################################
- # Methods that deal with menus.
- #
- # The next set of methods control the menubar associated with the
- # toolbar. Currently, only sequential addition of submenu's and menu
- # entries is allowed. Here's what you do. First, create a submenu
- # with the "new_menu" command. This submenu is the targeted menu.
- # Subsequent calls to add_menu_separator, and add_menu_command add
- # separators and commands to the end of this submenu.
- # If you need to edit a submenu, call clear_menu and then add all the
- # items again.
- #
- # Each menu command also has a class list. Transitions between states
- # of gdb will enable and disable different classes of menus.
- #
- # FIXME - support insert_command, and also cascade menus, whenever
- # we need it...
- ####################################################################
-
- # ------------------------------------------------------------------
- # METHOD: add - Add something.
- # It can be a menubutton for the main menu,
- # a separator or a command.
- #
- # type - what we want to add
- # args - arguments appropriate to what is being added
- #
- # RETURNS: the cascade menu widget path.
- # ------------------------------------------------------------------
- method add {type args} {
-
- switch $type {
- menubutton {
- eval menubar_new_menu $args
- }
- command {
- eval menubar_add_menu_command $args
- }
- separator {
- menubar_add_menu_separator
- }
- cascade {
- eval menubar_add_cascade $args
- }
- default {
- error "Invalid item type: $type"
- }
- }
-
- return $current_menu
- }
-
- # ------------------------------------------------------------------
- # NAME: private method GDBMenuBar::menubar_add_cascade
- # DESCRIPTION: Create a new cascading menu in the current menu
- #
- # ARGUMENTS: menu_name - the name of the menu to be created
- # label - label to be displayed for the menu
- # underline - which element to underline for shortcuts
- # RETURNS: Nothing
- # ------------------------------------------------------------------
- private method menubar_add_cascade {menu_name class label underline} {
- set m [menu $current_menu.$menu_name -tearoff false]
- $current_menu add cascade -menu $m -label $label \
- -underline $underline
- incr item_number
- switch $class {
- None {}
- default {
- foreach elem $class {
- lappend menu_classes($elem) [list $current_menu $item_number]
- }
- }
- }
- set current_menu $m
- }
-
- # ------------------------------------------------------------------
- # PRIVATE METHOD: menubar_new_menu - Add a new menu to the main
- # menu.
- # Also target this menu for subsequent
- # menubar_add_menu_command calls.
- #
- # name - the token for the new menu
- # label - The label used for the label
- # underline - the index of the underlined character for this menu item.
- #
- # ------------------------------------------------------------------
- private method menubar_new_menu {name label underline args} {
-
- set current_menu $Menu.$name
- $Menu add cascade -menu $current_menu -label $label \
- -underline $underline
- eval menu $current_menu -tearoff 0 $args
-
- # Save the index number of this menu. It is always the last one.
- set menu_list($name) [$Menu index end]
- set menu_list($name,label) $label
- set item_number -1
- }
-
- # ------------------------------------------------------------------
- # PRIVATE METHOD: menubar_add_menu_command - Adds a menu command item
- # to the currently targeted submenu of the main menu.
- #
- # class - The class of the command, used for disabling entries.
- # label - The text for the command.
- # command - The command for the menu entry
- # args - Passed to the menu entry creation command (eval'ed)
- # ------------------------------------------------------------------
- private method menubar_add_menu_command {class label command args} {
-
- eval $current_menu add command -label \$label -command \$command \
- $args
-
- incr item_number
-
- switch $class {
- None {}
- default {
- foreach elem $class {
- lappend menu_classes($elem) [list $current_menu $item_number]
- }
- }
- }
- }
-
- # ------------------------------------------------------------------
- # PRIVATE METHOD: menubar_add_menu_separator - Adds a menu separator
- # to the currently targeted submenu of the main menu.
- #
- # ------------------------------------------------------------------
- private method menubar_add_menu_separator {} {
- incr item_number
- $current_menu add separator
- }
-
- # ------------------------------------------------------------------
- # METHOD: exists - Report whether a menu keyed by NAME exists.
- #
- # name - the token for the menu sought
- #
- # RETURNS: 1 if the menu exists, 0 otherwise.
- # ------------------------------------------------------------------
- method exists {name} {
- return [info exists menu_list($name)]
-
- }
-
- # ------------------------------------------------------------------
- # METHOD: clear - Deletes the items from one of the
- # main menu cascade menus. Also makes this menu
- # the target menu.
- #
- # name - the token for the new menu
- #
- # RETURNS: then item number of the menu, or "" if the menu is not found.
- #
- # FIXME: Does not remove the deleted menus from their class lists.
- # ------------------------------------------------------------------
- method clear {name} {
- if {[info exists menu_list($name)]} {
- set current_menu [$Menu entrycget $menu_list($name) -menu]
- $current_menu delete 0 end
- set item_number -1
- return $current_menu
- } else {
- return ""
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: delete - Deletes one of the main menu
- # cascade menus. Also makes the previous menu the
- # target menu.
- #
- # name - the token for the new menu
- #
- # RETURNS: then item number of the menu, or "" if the menu is not found.
- #
- # FIXME: Does not remove the deleted menus from their class lists.
- # ------------------------------------------------------------------
- method delete {name} {
- if {[info exists menu_list($name)]} {
- $Menu delete $menu_list($name,label)
- set current_menu {}
- unset menu_list($name,label)
- unset menu_list($name)
- }
- }
-
- # ------------------------------------------------------------------
- # PRIVATE METHOD: menubar_change_menu_state - Does the actual job of
- # enabling menus...
- #
- # INPUT: Pass normal or disabled for the state.
- # ------------------------------------------------------------------
- private method menubar_change_menu_state {menu state} {
-
- [lindex $menu 0] entryconfigure [lindex $menu 1] -state $state
- }
-
- # ------------------------------------------------------------------
- # METHOD: menubar_set_current_menu - Change the current_menu pointer.
- # Returns the current value so it can be restored.
- # ------------------------------------------------------------------
- method menubar_set_current_menu {menup} {
- set saved_menu $current_menu
- set current_menu $menup
- return $saved_menu
- }
-
- # ------------------------------------------------------------------
- # METHOD: menubar_get_current_menu - Get the current_menu pointer.
- # Returns the current value so it can be restored.
- # ------------------------------------------------------------------
- method menubar_get_current_menu {} {
- return $current_menu
- }
-
- ####################################################################
- #
- # PRIVATE DATA
- #
- ####################################################################
-
- # This array holds the menu classes. The key is the class name,
- # and the value is the list of menus belonging to this class.
- private variable menu_classes
-
- # This array holds the pathname that corresponds to a menu name
- private variable menu_list
-
- private variable item_number -1
- private variable current_menu {}
-
- ####################################################################
- #
- # PROTECTED DATA
- #
- ####################################################################
-
- # The menu Tk widget
- protected variable Menu
-
- ####################################################################
- #
- # PUBLIC DATA
- #
- ####################################################################
-
- # None
-}
diff --git a/gdb/gdbtk/library/gdbtoolbar.itcl b/gdb/gdbtk/library/gdbtoolbar.itcl
deleted file mode 100644
index 1e164b82b1c..00000000000
--- a/gdb/gdbtk/library/gdbtoolbar.itcl
+++ /dev/null
@@ -1,396 +0,0 @@
-# GDBToolBar
-# Copyright (C) 2000 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# ----------------------------------------------------------------------
-# Implements a toolbar.
-#
-# PUBLIC ATTRIBUTES:
-#
-#
-# METHODS:
-#
-# configure ....... used to change public attributes
-#
-# PRIVATE METHODS
-#
-# X11 OPTION DATABASE ATTRIBUTES
-#
-#
-# ----------------------------------------------------------------------
-
-itcl::class GDBToolBar {
- inherit itk::Widget
-
- # ------------------------------------------------------------------
- # CONSTRUCTOR - create widget
- # ------------------------------------------------------------------
- constructor {args} {
-
- # Make a subframe so that the menu can't accidentally conflict
- # with a name created by some subclass.
- set ButtonFrame [frame $itk_interior.t]
-
- pack $ButtonFrame $itk_interior -fill both -expand true
-
- eval itk_initialize $args
- }
-
- # ------------------------------------------------------------------
- # DESTRUCTOR - destroy window containing widget
- # ------------------------------------------------------------------
- destructor {
-
- #destroy $this
- }
-
- # ------------------------------------------------------------------
- # METHOD: show - show the toolbar
- # ------------------------------------------------------------------
- public method show {} {
-
- if {[llength $button_list]} {
- eval standard_toolbar $ButtonFrame $button_list
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: set_class_state - standard method to control state by class
- # ------------------------------------------------------------------
- public method set_class_state {enable_list} {
- debug "Enable list is: $enable_list"
-
- foreach {type state} $enable_list {
- # debug $type
- if {[info exists button_classes($type)]} {
- set class_list $button_classes($type)
- if {[llength $class_list]} {
- # debug "$type $state \{$class_list\}"
- foreach button $class_list {
- # debug "$type $button $state"
- itemconfigure $button -state $state
- }
- }
- }
- }
- }
-
- ####################################################################
- # Methods that deal with buttons.
- ####################################################################
-
- # ------------------------------------------------------------------
- # METHOD: add - Add something.
- # It can be a button a separator or a label.
- #
- # type - what we want to add
- # args - arguments appropriate to what is being added
- #
- # ------------------------------------------------------------------
- method add {type args} {
-
- switch $type {
- button {
- eval toolbar_add_button $args
- }
- label {
- eval toolbar_add_label $args
- }
- separator {
- toolbar_add_button_separator
- }
- custom {
- eval toolbar_add_custom $args
- }
- default {
- error "Invalid item type: $type"
- }
- }
- }
-
- # ------------------------------------------------------------------
- # PRIVATE METHOD: toolbar_add_button - Creates a button, and inserts
- # it at the end of the button list. Call this when
- # the toolbar is being set up, but has not yet been
- # made.
- # ------------------------------------------------------------------
- private method toolbar_add_button {name class command balloon args} {
-
- lappend button_list \
- [eval _register_button 1 \$name \$class \$command \$balloon $args]
-
- }
-
- # ------------------------------------------------------------------
- # PRIVATE METHOD: toolbar_add_label - Create a label to be inserted
- # in the toolbar.
- # ------------------------------------------------------------------
-
- private method toolbar_add_label {name text balloon args} {
- set lname $ButtonFrame.$name
- set Buttons($name) $lname
- set Buttons($lname,align) $button_align
- eval label $lname -text \$text $args
- balloon register $lname $balloon
- lappend button_list $lname
- }
-
- # ------------------------------------------------------------------
- # PRIVATE METHOD: toolbar_add_custom - Create a user defined widget
- # to be inserted in the toolbar.
- # ------------------------------------------------------------------
-
- private method toolbar_add_custom {name createCmd balloon args} {
- set wname $ButtonFrame.$name
- set Buttons($name) $wname
- set Buttons($wname,align) $button_align
-
- eval $createCmd $wname $args
- balloon register $wname $balloon
-
- lappend button_list $wname
- }
-
- # ------------------------------------------------------------------
- # PRIVATE METHOD: toolbar_add_button_separator -
- # ------------------------------------------------------------------
-
- private method toolbar_add_button_separator {} {
- lappend button_list -
- }
-
- # ------------------------------------------------------------------
- # PRIVATE METHOD: _register_button - Creates all the bookkeeping
- # for a button, without actually inserting it in the toolbar.
- # If the button will not be immediately inserted (INS == 0),
- # sets its bindings and appearences to the same of a
- # standard_toolbar button.
- # ------------------------------------------------------------------
- private method _register_button {ins name class command balloon args} {
- set bname $ButtonFrame.$name
- set Buttons($name) $bname
- set Buttons($bname,align) $button_align
-
- eval button $bname -command \$command $args
- balloon register $bname $balloon
- foreach elem $class {
- switch $elem {
- None {}
- default {
- lappend button_classes($elem) $name
- }
- }
- }
-
- # If the button is not going to be inserted now...
- if {! $ins} {
- # This is a bit of a hack, but I need to bind the standard_toolbar bindings
- # and appearances to these externally, since I am not inserting them in
- # the original toolbar...
- # FIXME: Have to add a method to the libgui toolbar to do this.
-
- # Make sure the button acts the way we want, not the default Tk way.
- $bname configure -takefocus 0 -highlightthickness 0 \
- -relief flat -borderwidth 1
- set index [lsearch -exact [bindtags $bname] Button]
- bindtags $bname [lreplace [bindtags $bname] $index $index ToolbarButton]
- }
-
- return $bname
- }
-
- # ------------------------------------------------------------------
- # METHOD: create - Creates all the bookkeeping for a button,
- # without actually inserting it in the toolbar.
- # ------------------------------------------------------------------
- method create {name class command balloon args} {
-
- return [eval _register_button 0 \$name \$class \$command \$balloon $args]
- }
-
- # ------------------------------------------------------------------
- # METHOD: itemconfigure -
- # ------------------------------------------------------------------
-
- method itemconfigure {button args} {
- eval $Buttons($button) configure $args
- }
-
- # ------------------------------------------------------------------
- # METHOD: itembind -
- # ------------------------------------------------------------------
-
- method itembind {button key cmd} {
- eval [list bind $Buttons($button) $key $cmd]
- }
-
- # ------------------------------------------------------------------
- # METHOD: itemballoon -
- # ------------------------------------------------------------------
-
- method itemballoon {button text} {
- eval [list balloon register $Buttons($button) $text]
- }
-
- # ------------------------------------------------------------------
- # PRIVATE METHOD: toolbar_insert_button - Inserts button "name" before
- # button "before".
- # The toolbar must be made, and the buttons must have been
- # created before you run this.
- # ------------------------------------------------------------------
- private method toolbar_insert_button {name before} {
-
- if {[string first "-" $name] == 0} {
- set name [string range $name 1 end]
- set add_sep 1
- } else {
- set add_sep 0
- }
-
- if {![info exists Buttons($name)] || ![info exists Buttons($before)]} {
- error "toolbar_insert_buttons called with non-existant button"
- }
-
- set before_col [gridCGet $Buttons($before) -column]
- set before_row [gridCGet $Buttons($before) -row]
-
- set slaves [grid slaves $ButtonFrame]
-
- set incr [expr 1 + $add_sep]
- foreach slave $slaves {
- set slave_col [gridCGet $slave -column]
- if {$slave_col >= $before_col} {
- grid configure $slave -column [expr $slave_col + $incr]
- }
- }
- if {$add_sep} {
- grid $Buttons(-$name) -column $before_col -row $before_row
- }
-
- # Now grid our button. Have to put in the pady since this button
- # may not have been originally inserted by the libgui toolbar
- # proc.
-
- grid $Buttons($name) -column [expr $before_col + $add_sep] \
- -row $before_row -pady 2
-
- }
-
- # ------------------------------------------------------------------
- # PRIVATE METHOD: toolbar_remove_button -
- # ------------------------------------------------------------------
-
- private method toolbar_remove_button {name} {
-
- if {[string first "-" $name] == 0} {
- set name [string range $name 1 end]
- set remove_sep 1
- } else {
- set remove_sep 0
- }
-
- if {![info exists Buttons($name)] } {
- error "toolbar_remove_buttons called with non-existant button $name"
- }
-
- set name_col [gridCGet $Buttons($name) -column]
- set name_row [gridCGet $Buttons($name) -row]
-
- grid remove $Buttons($name)
- if {$remove_sep} {
- set Buttons(-$name) [grid slaves $ButtonFrame \
- -column [expr $name_col - 1] \
- -row $name_row]
- grid remove $Buttons(-$name)
- }
-
- set slaves [grid slaves $ButtonFrame -row $name_row]
- foreach slave $slaves {
- set slave_col [gridCGet $slave -column]
- if {($slave_col > $name_col)
- && ! ([info exists Buttons($slave,align)]
- && $Buttons($slave,align) == "right")} {
- grid configure $slave -column [expr $slave_col - 1 - $remove_sep]
- }
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: toolbar_button_right_justify -
- # ------------------------------------------------------------------
-
- method toolbar_button_right_justify {} {
- lappend button_list --
- set button_align "right"
- }
-
- # ------------------------------------------------------------------
- # METHOD: toolbar_swap_button_lists -
- # ------------------------------------------------------------------
-
- method toolbar_swap_button_lists {in_list out_list} {
- # Now swap out the buttons...
- set first_out [lindex $out_list 0]
- if {[info exists Buttons($first_out)] && [grid info $Buttons($first_out)] != ""} {
- foreach button $in_list {
- toolbar_insert_button $button $first_out
- }
- foreach button $out_list {
- toolbar_remove_button $button
- }
- } elseif {[info exists Buttons($first_out)]} {
- debug "Error in swap_button_list - $first_out not gridded..."
- } else {
- debug "Button $first_out is not in button list"
- }
- }
-
- ####################################################################
- #
- # PRIVATE DATA
- #
- ####################################################################
-
- # This is the list of buttons that are being built up
- #
- private variable button_list {}
-
- # This is an array of buttons names -> Tk Window names
- # and also of Tk Window names -> column position in grid
- private variable Buttons
-
- # This array holds the button classes. The key is the class name,
- # and the value is the list of buttons belonging to this class.
- private variable button_classes
-
- # Tell if we are inserting buttons left or right justified
- private variable button_align "left"
-
- #The frame to contain the buttons:
- private variable ButtonFrame
-
- ####################################################################
- #
- # PROTECTED DATA
- #
- ####################################################################
-
- # None.
-
- ####################################################################
- #
- # PUBLIC DATA
- #
- ####################################################################
-
- # None.
-}
diff --git a/gdb/gdbtk/library/gdbwin.ith b/gdb/gdbtk/library/gdbwin.ith
deleted file mode 100644
index 99895a09ab6..00000000000
--- a/gdb/gdbtk/library/gdbwin.ith
+++ /dev/null
@@ -1,25 +0,0 @@
-# GDBwin class definition for Insight.
-# Copyright (C) 1998, 1999, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class GDBWin {
- inherit GDBEventHandler
-
- constructor {args} {
- debug "$args"
- }
-
- destructor {
- debug
- }
-}
diff --git a/gdb/gdbtk/library/globalpref.itb b/gdb/gdbtk/library/globalpref.itb
deleted file mode 100644
index c3b4e65b050..00000000000
--- a/gdb/gdbtk/library/globalpref.itb
+++ /dev/null
@@ -1,481 +0,0 @@
-# Global preference class implementation for Insight.
-# Copyright (C) 1997, 1998, 1999, 2002, 2003, 2004 Red Hat
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ----------------------------------------------------------------------
-# Implements Global preferences dialog
-#
-# ----------------------------------------------------------------------
-
-# ------------------------------------------------------------------
-# METHOD: _init - set up the tracing labels info
-# ------------------------------------------------------------------
-itcl::body GlobalPref::_init {} {
- if {$inited} {
- return
- }
-
- set inited 1
-
- array set tracing_labels {
- 0 "Tracing features disabled"
- 1 "Tracing features enabled"
- max_len 0
- }
-
- foreach elem [array names tracing_labels] {
- set len [string length $tracing_labels($elem)]
- set tracing_labels(max_len) \
- [expr $len > $tracing_labels(max_len) ? $len : $tracing_labels(max_len) ]
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: init_var - initialize preference variables
-# ------------------------------------------------------------------
-itcl::body GlobalPref::_init_var {} {
- set vlist {gdb/ImageDir gdb/console/wrap gdb/mode gdb/use_icons gdb/compat gdb/use_color_schemes}
-
- foreach var $vlist {
- set _saved($var) [pref get $var]
- set _new($var) $_saved($var)
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: constructor - create the Global Preferences object
-# ------------------------------------------------------------------
-itcl::body GlobalPref::constructor {args} {
- window_name "Global Preferences"
- _init
- _init_var
- _build_win
- eval itk_initialize $args
-}
-
-# ------------------------------------------------------------------
-# METHOD: destructor - destroy the Global Preferences object
-# ------------------------------------------------------------------
-itcl::body GlobalPref::destructor {} {
- foreach thunk $_fonts {
- font delete test-$thunk-font
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: _build_win - build the dialog
-# ------------------------------------------------------------------
-itcl::body GlobalPref::_build_win {} {
- global tcl_platform GDBTK_LIBRARY
- debug
- frame $itk_interior.f
- frame $itk_interior.x
- set frame $itk_interior.f
-
- # Icons
- frame $frame.icons
- label $frame.icons.lab -text "Icons "
- combobox::combobox $frame.icons.cb -editable 0 -maxheight 10\
- -command [code $this _change_icons] -bg $::Colors(textbg)
-
- # get list of icon directories
- set curdir [pwd]
- set _icondirlist ""
- cd $GDBTK_LIBRARY
- foreach foo [glob -- *] {
- if {[file isdirectory $foo] && [file exists [file join $foo "icons.txt"]]} {
- lappend _icondirlist $foo
- }
- }
-
- set width 14
- # load combobox
- foreach dir $_icondirlist {
- if {![string compare $dir $_saved(gdb/ImageDir)]} {
- set cdir 1
- } else {
- set cdir 0
- }
- set foo [file join $dir "icons.txt"]
- if {[catch {::open $foo r} fid]} {
- # failed
- dbug E "couldn't open $foo:$fid"
- if {$cdir} {$frame.icons.cb entryset "unknown icons"}
- $frame.icons.cb list insert end "unknown icons"
- } else {
- if {[gets $fid txt] >= 0} {
- if {$cdir} {$frame.icons.cb entryset $txt}
- if {[string length $txt] > $width} {set width [string length $txt]}
- $frame.icons.cb list insert end $txt
- } else {
- if {$cdir} {$frame.icons.cb entryset "unknown icons"}
- $frame.icons.cb list insert end "unknown icons"
- }
- close $fid
- }
- }
- $frame.icons.cb configure -width $width
- cd $curdir
-
- # searching for fixed font families take a long time
- # therefore, we cache the font names. The font cache
- # can be saved in the init file. A way should be provided
- # to rescan the font list, without deleting the entry from the
- # init file.
- set font_cache [pref get gdb/font_cache]
-
- # get list of fonts, removing some that typically
- # are not useful or cause tk problems
- set fam [lremove [font families] "open look glyph"]
- set fam [lremove $fam "open look cursor"]
- set fam [lremove $fam "song ti"]
- set fam [lremove $fam "clearlyu"]
- set fam [lremove $fam "clearlyu alternate glyphs"]
- set fam [lremove $fam "clearlyu arabic extra"]
- set fam [lremove $fam "clearlyu ligature"]
- set fam [lremove $fam "clearlyu pua"]
- set fam [lremove $fam "fangsong ti"]
- set fam [lremove $fam "newspaper"]
- set fam [lremove $fam "palatino linotype"]
- set fam [lsort $fam]
-
- if {$font_cache == ""} {
- if {$tcl_platform(platform) == "unix"} {
- toplevel .c
- wm title .c "Scanning for fonts"
- message .c.m -width 3i -text "Scanning system for fonts\n\nPlease wait..." \
- -relief flat -padx 30 -pady 30 \
- -bg [pref get gdb/global_prefs/message_bg] \
- -fg [pref get gdb/global_prefs/message_fg]
- ::update
- pack .c.m
- focus .c
- ::raise .c
- ::update
- }
-
- foreach fn $fam {
- if {[font metrics [list $fn] -fixed] == 1} {
- lappend font_cache $fn
- }
- }
- pref set gdb/font_cache $font_cache
- if {[winfo exists .c]} { destroy .c }
- }
-
- Labelledframe $frame.d -text "Fonts"
- set f [$frame.d get_frame]
-
- _make_font_item $f fixed "Fixed Font:" $font_cache
-
- if {$tcl_platform(platform) != "windows"} {
- # Cannot change the windows menu font ourselves
- _make_font_item $f menu "Menu Font:" $fam
- }
-
- _make_font_item $f default "Default Font:" $fam
- _make_font_item $f status "Status Bar Font:" $fam
-
-
- iwidgets::Labeledframe $frame.misc -labelpos nw -labeltext "Misc"
- set f [$frame.misc childsite]
-
- # This is the tracing preference
- set tracing_cb [pref get gdb/mode]
- if { ![info exists tracing_labels($tracing_cb)]} {
- dbug E "Got unknown mode value: $tracing_cb"
- set tracing_labels($tracing_cb) "Unknown gdb mode..."
- }
-
- checkbutton $f.tracing -variable [scope _new(gdb/mode)] \
- -text $tracing_labels($tracing_cb) \
- -command [code $this _toggle_tracing $f.tracing] \
- -width $tracing_labels(max_len) -anchor w
-
- # use_icons
- if {$tcl_platform(platform) == "unix"} {
- checkbutton $f.use_icons \
- -text "Use builtin image as icon." -variable [scope _new(gdb/use_icons)]
- }
-
- # console wrap
- checkbutton $f.consolewrap -text "Wrap text in console window" \
- -variable [scope _new(gdb/console/wrap)]
-
- # colored backgrounds
- checkbutton $f.use_cs -text "Enable Color Schemes" \
- -variable [scope _new(gdb/use_color_schemes)]
-
- grid $f.tracing -sticky w -padx 5 -pady 5
-
- if {$tcl_platform(platform) == "unix"} {
- grid $f.use_icons -sticky w -padx 5 -pady 5
- }
- grid $f.consolewrap -sticky w -padx 5 -pady 5
- grid $f.use_cs -sticky w -padx 5 -pady 5
-
- if {$tcl_platform(platform) == "unix"} {
- # Compatibility frame
- iwidgets::Labeledframe $frame.compat -labelpos nw -labeltext "OS Compatibility"
- set fc [$frame.compat childsite]
- radiobutton $fc.0 -text "GNOME" -value "GNOME" -variable [scope _new(gdb/compat)]
- radiobutton $fc.1 -text "KDE" -value "KDE" -variable [scope _new(gdb/compat)]
- radiobutton $fc.2 -text "default" -value "default" -variable [scope _new(gdb/compat)]
- grid $fc.0 -sticky w -padx 5 -pady 5
- grid $fc.1 -sticky w -padx 5 -pady 5
- grid $fc.2 -sticky w -padx 5 -pady 5
- grid [label $fc.warn -text "Restart required for all\nchanges to take effect"] -sticky w
- }
-
- # pack it all
- pack $frame.icons.lab $frame.icons.cb -side left
- grid $frame.icons x -sticky w -pady 10
- grid $frame.d -columnspan 2 -sticky w
- if {$tcl_platform(platform) == "unix"} {
- grid $frame.compat $frame.misc -sticky we
- } else {
- grid $frame.misc x -sticky we
- }
-
- # make buttons
- button $itk_interior.x.ok -text OK -underline 0 -width 7 -command [code $this _ok]
- button $itk_interior.x.apply -text Apply -width 7 -underline 0 -command [code $this _apply]
- button $itk_interior.x.cancel -text Cancel -width 7 -underline 0 -command [code $this _cancel]
- pack $itk_interior.x.ok $itk_interior.x.apply $itk_interior.x.cancel -side left
- standard_button_box $itk_interior.x
-
- pack $itk_interior.x -fill x -padx 5 -pady 5 -side bottom
- pack $itk_interior.f -fill both -expand yes -padx 5 -pady 5
-
- bind $itk_interior.x.ok <Return> \
- "$itk_interior.x.ok flash; $itk_interior.x.ok invoke"
- focus $itk_interior.x.ok
-
- # We don't want the window flashing around as we change the fonts...
-
- ::update idletasks
-
- _resize_font_item_height
- pack propagate $itk_interior.f 0
-
-}
-# ------------------------------------------------------------------
-# PRIVATE METHOD: _make_font_item
-# ------------------------------------------------------------------
-itcl::body GlobalPref::_make_font_item {f name label font_list} {
-
- # create ComboBox with font name
- lappend _fonts $name
-
- set _original($name,family) [font actual global/$name -family]
- set _original($name,size) [font actual global/$name -size]
- font create test-$name-font -family $_original($name,family) \
- -size $_original($name,size)
- label $f.${name}x -text $label
-
- combobox::combobox $f.${name}n -editable 0 -value $_original($name,family) \
- -command [code $this _change_font $name] -bg $::Colors(textbg)
-
- foreach a $font_list {
- $f.${name}n list insert end $a
- }
-
- itk_component add $name-size {
- iwidgets::spinint $f.${name}s -labeltext "Size:" -range {6 18} -step 1 \
- -fixed 2 -width 2 -textvariable [scope _size($name)] -wrap 0 \
- -increment [code $this _change_size up $name] \
- -decrement [code $this _change_size down $name] \
- -textbackground $::Colors(textbg)
- } {}
- label $f.${name}l -text ABCDEFabcdef0123456789 -font test-$name-font
- set _size($name) $_original($name,size)
-
- grid $f.${name}x $f.${name}n $f.${name}s $f.${name}l -sticky we -padx 5 -pady 5
- grid columnconfigure $f 3 -weight 1
-}
-
-# ------------------------------------------------------------------
-# PRIVATE METHOD: _resize_font_item_height
-# ------------------------------------------------------------------
-itcl::body GlobalPref::_resize_font_item_height {} {
- foreach font $_fonts {
- set master [$itk_interior.f.d get_frame]
- set row [gridCGet $master.${font}l -row]
- grid rowconfigure $master $row -minsize [lindex [grid bbox $master 0 $row 3 $row ] 3]
- }
-}
-
-# ------------------------------------------------------------------
-# PRIVATE METHOD: _change_icons
-# ------------------------------------------------------------------
-itcl::body GlobalPref::_change_icons {w args} {
- set index [$w curselection]
- if {$index != ""} {
- set _new(gdb/ImageDir) [lindex $_icondirlist $index]
- }
-}
-
-# ------------------------------------------------------------------
-# NAME: private method GlobalPref::_change_font
-# DESCRIPTION: Change the given font's family
-#
-# ARGUMENTS:
-# font - the font whose family is to be
-# changed
-# stupid - the comobox widget which changed
-# implementation - the new value of the combobox
-# RETURNS: Nothing
-#
-# NOTES: The combobox has a really non-standard callback
-# mechanism: it always adds two args to the callback.
-# ------------------------------------------------------------------
-itcl::body GlobalPref::_change_font {font stupid implementation} {
- font configure test-$font-font -family $implementation
-}
-
-# ------------------------------------------------------------------
-# NAME: private method GlobalPref::_change_size
-# DESCRIPTION: Change the given font's size
-#
-# ARGUMENTS:
-# direction - the direction of the change (up/down)
-# font - the font that is changing
-# RETURNS: Nothing
-#
-# NOTES: See comments for purpose of "direction". Sigh.
-# ------------------------------------------------------------------
-itcl::body GlobalPref::_change_size {direction font} {
-
- # Almost as stupid as the comobox, the iwidgets::spinint class
- # will not treat its -increment and -decrement commands
- # as command callbacks. Instead it OVERRIDES all behavior.
- # Thus, we need to call the stupid spinint's callback.
- $itk_component($font-size) $direction
- font configure test-$font-font -size $_size($font)
-}
-
-
-itcl::body GlobalPref::_toggle_tracing {win} {
- debug
- $win configure -text $tracing_labels($_new(gdb/mode))
-}
-
-# ------------------------------------------------------------------
-# METHOD: _ok - called to accept settings and close dialog
-# ------------------------------------------------------------------
-itcl::body GlobalPref::_ok {} {
- _apply 1
-}
-
-# ------------------------------------------------------------------
-# METHOD: _apply - apply current settings to the screen
-# ------------------------------------------------------------------
-itcl::body GlobalPref::_apply {{deleteMe 0}} {
- debug
- set changed_something 0
-
- # If you are not destroying the window, then make sure to
- # propagate the geometry info from the font frame, so that changing
- # the fonts IN the window don't cause some of the buttons to
- # get obscured...
-
- if {!$deleteMe} {
- pack propagate $itk_interior.f 1
- }
-
- foreach thunk $_fonts {
- set font [font configure test-$thunk-font]
- if {[pref get global/font/$thunk] != $font} {
- pref set global/font/$thunk $font
- }
- }
-
- foreach var [array names _new] {
- if {$_new($var) != [pref get $var]} {
- debug "$var = $_new($var)"
-
- if {$var == "gdb/mode"} {
- if {!$_new(gdb/mode)} { pref set gdb/B1_behavior 1 }
- } elseif {$var == "gdb/ImageDir"} {
- set ::gdb_ImageDir [file join $::GDBTK_LIBRARY $_new($var)]
- }
- pref set $var $_new($var)
- set changed_something 1
- }
- }
-
- if {$changed_something} {
- if {$deleteMe} { unpost }
- ManagedWin::restart
- return
- }
- if {$deleteMe} {
- unpost
- } else {
- after idle "
- update idletasks
- [code $this _resize_font_item_height]
- pack propagate $itk_interior.f 0
- "
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: _cancel - forget current settings -- reset to original
-# state and close preferences
-# ------------------------------------------------------------------
-itcl::body GlobalPref::_cancel {} {
- debug
- set changed_something 0
-
- # Reset fonts if different
- foreach thunk $_fonts {
- set family [font configure global/$thunk -family]
- set size [font configure global/$thunk -size]
- if {$_original($thunk,family) != $family || $_original($thunk,size) != $size} {
- pref set global/font/$thunk \
- [list -family $_original($thunk,family) -size $_original($thunk,size)]
- set changed_something 1
- }
- }
-
- foreach var [array names _saved] {
- if {$_saved($var) != [pref get $var]} {
- debug "$var = $_saved($var)"
-
- if {$var == "gdb/mode"} {
- if {!$_saved(gdb/mode)} { pref set gdb/B1_behavior 1 }
- } elseif {$var == "gdb/ImageDir"} {
- set ::gdb_ImageDir [file join $::GDBTK_LIBRARY $_saved($var)]
- }
- pref set $var $_saved($var)
- set changed_something 1
- }
- }
-
- if {$changed_something} {
- ManagedWin::restart
- }
- unpost
-}
-
-# ------------------------------------------------------------------
-# METHOD: cancel - override modal dialog cancel method.
-# The cancel method is actually called when
-# the window is closed. Name needs fixed.
-# ------------------------------------------------------------------
-itcl::body GlobalPref::cancel {} {
- # when the window is closed, we want the preferences selected to
- # be applied.
- _apply 1
-}
diff --git a/gdb/gdbtk/library/globalpref.ith b/gdb/gdbtk/library/globalpref.ith
deleted file mode 100644
index 2f89a70ce88..00000000000
--- a/gdb/gdbtk/library/globalpref.ith
+++ /dev/null
@@ -1,47 +0,0 @@
-# Global preference class definition for GDBtk.
-# Copyright (C) 1998, 1999 Cygnus Solutions
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class GlobalPref {
- inherit ManagedWin ModalDialog
-
- private {
- variable _new
- variable _saved
- variable _icondirlist ""
- variable _original ;# Original font settings
- variable _size ;# Array tracking spinint values
- variable _fonts ;# List of all available fonts for editing
- common tracing_labels
- common inited 0
-
- method _init {}
- method _init_var {}
- method _build_win {}
- method _make_font_item {f name label font_list}
- method _resize_font_item_height {}
- method _change_icons {w args}
- method _change_font {font stupid implementation}
- method _change_size {direction font}
- method _ok {}
- method _apply {{deleteMe 0}}
- method _cancel {}
- method cancel {}
- method _toggle_tracing {win}
- }
-
- public {
- method constructor {args}
- method destructor {}
- }
-}
diff --git a/gdb/gdbtk/library/help/breakpoint.html b/gdb/gdbtk/library/help/breakpoint.html
deleted file mode 100644
index 443237a6970..00000000000
--- a/gdb/gdbtk/library/help/breakpoint.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.06 [en] (X11; I; Linux 2.0.35 i686) [Netscape]">
- <TITLE>Breakpoint Window Help</TITLE>
-</HEAD>
-<BODY>
-
-<H1>The Breakpoint Window</H1>
-The Breakpoint Window lists all the various breakpoints that exist in the
-program. It facilitates modifying breakpoints (make them temporary or normal,
-disabled or enabled) and removing breakpoints.
-<UL>
-<LI><A HREF="#menus_bp">Breakpoint Menu</A></LI>
-<LI><A HREF="#menus_global">Global Menu</A></LI>
-<LI><A HREF="#display">Breakpoint Display</A></LI>
-</UL>
-
-<HR SIZE=4 WIDTH="100%">
-
-<H2>
-<A NAME="menus_bp"></A>Breakpoint Menu</H2>
-The Breakpoint Menu operates on the selected breakpoint only.&nbsp; If
-no breakpoint is selected the menu items will be disabled. The type and
-state of a breakpoint may be changed by selecting the desired type or state
-from the menu.
-<DL>
-<DT>Normal</DT>
-<DD>The selected breakpoint is a normal breakpoint</DD>
-<DT>Temporary</DT>
-<DD>Indicates that the breakpoint is temporary</DD>
-<DT>Enabled</DT>
-<DD>The breakpoint is active and will stop the debugger when it is hit.</DD>
-<DT>Disabled</DT>
-<DD>The breakpoint is being ignored. A disabled breakpoint will never get hit.</DD>
-<DT>Remove</DT>
-<DD>Deletes the breakpoint</DD>
-</DL>
-
-<HR SIZE=4 WIDTH="100%">
-<H2>
-<A NAME="menus_global"></A>Global Menu</H2>
-Items on the Global Menu affect all defined breakpoints. Users may:
-<DL>
-<DT>Show Threads</DT>
-<DD>Toggle on/off the thread column</DD>
-<DT>Enable All</DT>
-<DD>Enable all breakpoints</DD>
-<DT>Disable All</DT>
-<DD>Disable all breakpoints</DD>
-<DT>Remove All</DT>
-<DD>Delete all breakpoints</DD>
-</DL>
-
-<HR SIZE=4 WIDTH="100%">
-
-<H2><A NAME="display"></A>Breakpoint Display</H2>
-The Breakpoint Display is a table of breakpoints. The first column of the
-table (unlabeled) shows a checkbutton, indicating whether the breakpoint
-is enabled (checked) or disabled (unchecked). Disabled breakpoints are
-ignored and will not cause the program to stop.
-<P>To use the Breakpoint Menu or the Breakpoint Pop-up Menu, first use
-the left mouse button to select a breakpoint from the list, then make the
-menu selection.
-
-<H4>Modifying Breakpoints</H4>
-To&nbsp;<A NAME="display_state"></A>enable a breakpoint, simply click the
-checkbutton in the first column of the desired breakpoint so that it is
-selected (checked). To disable a breakpoint, "uncheck" the checkbutton.
-<P>To change a breakpoint's&nbsp;<A NAME="display_temp"></A>type, select
-the desired type from either the Breakpoint Menu or the Breakpoint Pop-up
-Menu.
-<P>To remove a&nbsp;<A NAME="display_remove"></A>breakpoint, use the left
-mouse button to select the breakpoint to remove and use either the Breakpoint
-Menu or the Breakpoint Pop-up Menu to select "remove". To re-install a
-breakpoint, use the <A HREF="source.html#setting_a_breakpoint">Source Window
-Display</A>.
-
-<H4><A NAME="display_popup"></A>Breakpoint Pop-up Menu</H4>
-The Breakpoint Pop-up Menu is accessed by using the mouse cursor to select
-a breakpoint from the Breakpoint Display and then clicking the right button
-on the mouse. The Pop-up allows expert users quicker access to the functions
-of the Breakpoint Menu:
-<DL>
-<DT>Normal</DT>
-<DD>The selected breakpoint is a normal breakpoint</DD>
-<DT>Temporary</DT>
-<DD>Indicates that the breakpoint is temporary</DD>
-<DT>Enabled</DT>
-<DD>The breakpoint is active and will stop the debugger when it is hit.</DD>
-<DT>Disabled</DT>
-<DD>The breakpoint is being ignored. A disabled breakpoint will never get hit.</DD>
-<DT>Remove</DT>
-<DD>Deletes the breakpoint</DD>
-<DT>Global, Show Threads</DT>
-<DD>Toggle on/off the thread column</DD>
-<DT>Global, Enable All</DT>
-<DD>Enable all breakpoints</DD>
-<DT>Global, Disable All</DT>
-<DD>Disable all breakpoints</DD>
-<DT>Global, Remove All</DT>
-<DD>Delete all breakpoints</DD>
-</DL>
-
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/browser.html b/gdb/gdbtk/library/help/browser.html
deleted file mode 100644
index df9203beedc..00000000000
--- a/gdb/gdbtk/library/help/browser.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Function Browser Help</TITLE>
-</HEAD>
-<BODY>
-<H1>The Function Browser</H1>
-<img src="images/browser1.png" alt="layout1" width=164 height=171 align="right" border=0>
-<img src="images/browser2.png" alt="layout2" width=164 height=170 align="right" border=0>
-
-<h2>Overview</h2>
-<p>The Function Browser may be used to search for specific functions
-in the executable, allowing the user to easily browse through source
-code and set and clear breakpoints at anywhere in the executable
-with ease. Its powerful regular expression searches allow the user
-to easily set breakpoints on multiple functions at once.</p>
-<p>The Function Browser has two different layouts. Both layouts contain the same four sections;
-Files, Function Filter, Functions, and Source Display.</p>
-
-<h3>Files</h3>
-<p>The Files section displays a list of all the source files. The files are
-read from the debug information in the program being debugged. To see
-the list of functions in a file, click on it. The function list should appear
-in the Functions Display and the source should appear in the Source Display.
-You can select multiple files by using the Control or Shift keys while
-clicking the left mouse button. When multiple files are selected, all the functions in those files
-are displayed in the Functions Display.
-</p>
-<p>At the bottom of the Files Display, you should see a checkbutton labelled "Hide .h files"
-and a button labelled "Select All". Checking "Hide .h files" will remove all
-files ending in ".h" from the Files Display. Clicking "Select All" will select all files
-in the Files Display.</p>
-
-<h3>Function Filter</h3>
-<p>Above the Function Display you should see a section labelled "Function Filter".
-The purpose of this section is to apply a filter to the list of functions in the Functions Display.
-For example, if you click "Select All" in the Files Display, then many hundreds of functions
-could appear in the Functions Display. To see all functions containing the string "print", for example, click on the combobox in the Function Filter and select "contains".
-Then type "print" into the box to the right and hit the enter or return key. You should see the Function
-Display updated with a list of all functions containing "print".</p>
-
-<p>Insight remember what the last filter you used was and will always open the Function
-Browser window with the last filter settings.
-</p>
-
-<h3>Function Display</h3>
-<p>The Function Display contains the list of functions in the files that have been
-selected in the Files Display, after running them through any filter settings in the Filter Display.
-There are two buttons at the bottom of the display that allow you so set or delete breakpoints on every function
-in the Function Display in one operation.
-</p>
-<p>For example, to set a breakpoint of every function name containing "print", follow the example in the Function Filter section to
-get a list of all functions containing "print". Then simply click the "Set BP" button.</p>
-
-<h3>Source Display</h3>
-<p>The Source Display shows the source code for any file selected in the File Display. If a function
-is selected in the Function Display, the first line of that function containing
-executable code will be highlighted. If no source file is found, then the function will be
-displayed disassembled.</p>
-
-<p>At the bottom of the window are two comboboxes and a text field. The combobox on the far left
-contains the function name or file location to display. Normally this is just output for your information, however
-you can type the name of any function into this box to see its source.
-</p>
-<p>To the right of this is another combobox that allows you to toggle between source and assembly.
-</p>
-<p>To the far right is an empty field. You can type a string in it and hit enter to
-search the current source file for any string.</p>
-<p>In the source window itself, you can set breakpoints just like the source window.</p>
-<h3>Popup Menu</h3>
-<p>If you click the right mouse button while over the File Browser, you should get a simple menu
-with three options; <i>Toggle Layout</i>, <i>Help</i>, and <i>Close</i>. <i>Toggle Layout</i>
-switches you between the two different Browser Window layouts. Choose the one you like best;
-Insight will remember it between sessions. <i>Help</i> pops up this help window. <i>Close</i> closes the Function Browser.
-</p>
-
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/console.html b/gdb/gdbtk/library/help/console.html
deleted file mode 100644
index d0fdfba52e1..00000000000
--- a/gdb/gdbtk/library/help/console.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<HTML>
- <HEAD>
- <TITLE>Console Window Help</TITLE>
- </HEAD>
- <BODY>
- <CENTER><H2>The Console Window</H2></CENTER>
-
- <P>The Console Window provides the traditional command-line interface to GDB.
- It is very similar to the command-line you get when GDB is run with "-nw".</P>
-
- <UL>
- <LI><A HREF="#display">Console Display</A></LI>
- <LI><A HREF="#editing">Editing Commands</A></LI>
- <LI><A HREF="#history">History Commands</A></LI>
- <LI><A HREF="#display_hlp">Getting Help</A></LI>
- </UL>
-
- <H4><A NAME="display">Console Display</A></H4>
- The Console Display is simply a scrolled window in which the debugger prompt
- appears. By default, the prompt is set to "(gdb) ", but it may be changed via a
- command line option.
-
- <P>To execute commands in the console window, simply enter
- the command in the display. If the debugger is busy, the message "Error: The
- debugger is busy." appears informing the user that the command was not accepted.</P>
-
- <P>Whenever a command is executed, the debugger's windows will update to display
- any new state information. Any output from the command is also echoed to the Console
- Window for ease of use. If an error occurs, an error message is printed to the Console
- Window. All error messages appear in the Console Window using a red typeface.
- </P>
-
- <BR>
-
- <H4><A NAME="editing">Editing Commands</A></H4>
- <P>The Console Window shell has many powerful features to help edit commands.</P>
- <UL>
- <LI> Return or Enter causes the command to be executed.
-
- <LI> Control-A moves the cursor to the beginning of the line.</LI>
- <LI> Control-E moves the cursor to the end of the line.</LI>
- <LI> Control-D or DELETE delete the character to the right of the cursor.</LI>
- <LI> BACKSPACE deletes the character to the left of the cursor.</LI>
- <LI> Control-B or LeftArrow moves the cursor to the left.</LI>
- <LI> Control-F or RightArrow moves the cursor to the right.</LI>
- <LI> Control-K deletes everything to the right of the cursor.</LI>
- <LI> Control-U deletes the text between the cursor and the start of the line.</LI>
- <LI> Control-W deletes the previous word</LI>
- <LI> END deletes the whole line.</LI>
- <LI> The mouse may also be used to position the cursor and cut and paste.</LI>
- </UL>
-
- <H4><A NAME="history">History Commands</A></H4>
- <UL>
- <LI> Conrol-P or UpArrow recalls the previous command.</LI>
- <LI> Conrol-N or DownArrow recalls the next command.</LI>
- <LI> Shift-UpArrow or Control-UpArrow will search through previous commands
- for commands that start with the same characters as the current line. For
- example, if you type "pr" and hit Shift-UpArrow, it may find commands in the
- history such as "print foo" or "print sol[x]". Each time you search it will
- go back further in the history. If nothing is on the current line, it
- acts just like Control-P or UpArrow.</LI>
- <LI> Shift-DownArrow or Control-DownArrow work in the opposite direction of
- Shift-UpArrow and Control-DownArrow. </LI>
- </UL>
-
- <BR>
-
- <H4><A NAME="display_hlp">Getting Help</A></H4>
- The Console Window has its own online help system. To access the help system, enter
- "help" at the prompt and follow the on-screen instructions. For more help, please
- consult the <!-- What is this really called? --> <I>GDB User's Guide</I>.
- </BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/debug.html b/gdb/gdbtk/library/help/debug.html
deleted file mode 100644
index 528a868ff5f..00000000000
--- a/gdb/gdbtk/library/help/debug.html
+++ /dev/null
@@ -1,133 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Internal Debugging Help</TITLE>
-</HEAD>
-<BODY>
-<H2>Insight Internal Debugging Functions</H2>
-<H3>Overview</H3>
-<P> This describes the basic internal functions for debugging Insight.
-This information is for Insight developers trying to debug Insight,
-not for users trying to debug other programs.</P>
-
-<H3>Environment Variables</H3>
-<P><b>GDBTK_DEBUG</b> - Setting this variable controls the Debug
-window.</P>
-<P><b>GDBTK_DEBUG</b> may have the following values:</P>
-<DL>
-<DT>0 or unset</DT>
-<DD>The Debug window is not opened and not listed on the menu. (You
-may still open it by typing Ctrl-U in the source window.)</DD>
-<DT>1</DT>
-<DD>The Debug window is listed on the menu, but not opened.</DD>
-<DT>2</DT>
-<DD>The Debug window is opened at startup.</DD>
-</DL>
-
-<HR>
-<P><b>GDBTK_TRACE</b> - This variable determines if tracing is enabled.
-Tracing may only be enabled at GDBTK startup. Changing <b>GDBTK_TRACE</b>
-while GDBTK is running has no effect.</P>
-<P><b>GDBTK_TRACE</b> may have the following values:</P>
-<DL>
-<DT>0 or unset</DT>
-<DD>Tracing is not enabled.</DD>
-<DT>1</DT>
-<DD>Tracing is enabled, but not started. To start tracing, you need to do
-so in the Debug Window or from the console. (The command to do this is "tk
-::debug::trace_start).</DD>
-<DT>2</DT>
-<DD>Tracing is enabled and started immediately.</DD>
-</DL>
-
-<P><b>GDBTK_DEBUGFILE</b> - This variable contains an optional filename
-where GDBTK will write all debugging information. This information will include
-the output of all "debug" and "dbug" commands, as well as tracing, if it is
-enabled. The value of
-<b>GDBTK_DEBUGFILE</b> will not change what is displayed in the Debug
-Window, with one exception; when the Debug Window is opened, it will read
-the contents of <b>GDBTK_DEBUGFILE</b> (if it is set and not "stdout").
-<P><b>GDBTK_DEBUGFILE</b> may have the following values:</P>
-<DL>
-<DT>unset</DT>
-<DD>No information will be logged.</DD>
-<DT><i>filename</i></DT>
-<DD>Debugging information will be logged to <i>filename</i>.
-<DT>"stdout"</DT>
-<DD>Debugging information will be written to stdout</DD>
-</DL>
-<HR>
-<H3>Tcl Debugging Functions</H3>
-<P> All debugging functions have been moved into debug.tcl in the ::debug
-namespace. "debug" and "dbug" are imported into the global namespace.</P>
-<P> The following are the standard debug message functions.</P>
-<pre>
-# -----------------------------------------------------------------------------
-# NAME: debug::debug
-#
-# SYNOPSIS: debug { {msg ""} }
-#
-# DESC: Writes a message to the proper output. The priority of the
-# message is assumed to be "I" (informational). This function
-# is provided for compatibility with the previous debug function.
-# For higher priority messages, use dbug.
-#
-# ARGS: msg - Message to be displayed.
-# -----------------------------------------------------------------------------
-
-# -----------------------------------------------------------------------------
-# NAME: debug::dbug
-#
-# SYNOPSIS: dbug { level msg }
-#
-# DESC: Writes a message to the proper output. Unlike debug, this
-# function take a priority level.
-#
-# ARGS: msg - Message to be displayed.
-# level - One of the following:
-# "I" - Informational only
-# "W" - Warning
-# "E" - Error
-# "X" - Fatal Error
-# ----------------------------------------------------------------------------
-</pre>
-<P> These next functions are used to trace variables, which should not be
-confused with the functions tracing.<P>
-<pre>
-# ----------------------------------------------------------------------------
-# NAME: debug::trace_var
-# SYNOPSIS: debug::trace_var {varName mode}
-# DESC: Sets up variable trace. When the trace is activated,
-# debugging messages will be displayed.
-# ARGS: varName - the variable name
-# mode - one of more of the following letters
-# r - read
-# w - write
-# u - unset
-# ----------------------------------------------------------------------------
-# ----------------------------------------------------------------------------
-# NAME: debug::remove_trace
-# SYNOPSIS: debug::remove_trace {var mode}
-# DESC: Removes a trace set up with "trace_var".
-# ----------------------------------------------------------------------------
-# ----------------------------------------------------------------------------
-# NAME: debug::remove_all_traces
-# SYNOPSIS: debug::remove_all_traces
-# DESC: Removes all traces set up with "trace_var".
-# ----------------------------------------------------------------------------
-</pre>
-<P> The following two functions may be used to start and stop tracing
-programmatically.</P>
-<pre>
-# -----------------------------------------------------------------------------
-# NAME: ::debug::trace_start
-# SYNOPSIS: ::debug::trace_start
-# DESC: Starts logging of function trace information.
-# -----------------------------------------------------------------------------
-# -----------------------------------------------------------------------------
-# NAME: ::debug::trace_stop
-# SYNOPSIS: ::debug::trace_stop
-# DESC: Stops logging of function trace information.
-# -----------------------------------------------------------------------------
-</pre>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/gbl_pref.html b/gdb/gdbtk/library/help/gbl_pref.html
deleted file mode 100644
index 2760750c4e9..00000000000
--- a/gdb/gdbtk/library/help/gbl_pref.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Global Preferences Help</TITLE>
-</HEAD>
-<BODY>
-<H1>Global Preferences</H1>
-<H3>Overview</H3>
-<P>Not yet done.</P>
-
-<P>Global Preferences topics:
-<UL>
- <LI><UL><A HREF="#">stuff</A>
- <LI><A HREF="#">stuff</A>
- <LI><A HREF="#">stuff</A>
- </UL>
-</UL></P>
-
-<H3><A NAME="">stuff</A></H3>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/help.html b/gdb/gdbtk/library/help/help.html
deleted file mode 100644
index 7cf93c3cedd..00000000000
--- a/gdb/gdbtk/library/help/help.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Help Window Help</TITLE>
-</HEAD>
-<BODY>
-<H1>The Help Window</H1>
-<H2>Overview</H2>
-<P>This is some nice text which describes the help window, its role
-in deugging, and perhaps some of the nifty things people can do with
-this window.</P>
-
-<P>Help Window topics:
-<UL>
- <LI><A HREF="#menus">Menus</A>
- <UL>
- <LI><A HREF="#menus_file">File Menu</A></LI>
- <LI><A HREF="#menus_topics">Topics Menu</A></LI>
- </LI>
- <LI><A HREF="#display">Help Display</A>
- <UL>
- <LI><A HREF="#display_nav">Navigating the Help Window</A></LI>
- <LI><A HREF="#display_link">Definition and Page Links</A></LI>
- </UL></LI>
-</UL></P>
-
-<H2><A NAME="menus">Menus</A></H2>
-<H3><A NAME="menus_file">File Menu</A></H3>
-<H3><A NAME="menus_topics">Topics Menu</A></H3>
-
-<H3><A NAME="display">Help Display</A></H3>
-<H3><A NAME="display_nav">Navigating the Help Window</A></H3>
-<H3><A NAME="display_link">Definition and Page Links</A></H3>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/images/browser1.png b/gdb/gdbtk/library/help/images/browser1.png
deleted file mode 100644
index c005cc3fce3..00000000000
--- a/gdb/gdbtk/library/help/images/browser1.png
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/browser2.png b/gdb/gdbtk/library/help/images/browser2.png
deleted file mode 100644
index 8fdddf8c307..00000000000
--- a/gdb/gdbtk/library/help/images/browser2.png
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/frame_info.gif b/gdb/gdbtk/library/help/images/frame_info.gif
deleted file mode 100644
index 3da109f84b6..00000000000
--- a/gdb/gdbtk/library/help/images/frame_info.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/insightbwr.png b/gdb/gdbtk/library/help/images/insightbwr.png
deleted file mode 100644
index 67618b56fef..00000000000
--- a/gdb/gdbtk/library/help/images/insightbwr.png
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/mem_menu.gif b/gdb/gdbtk/library/help/images/mem_menu.gif
deleted file mode 100644
index bf874f3d4ff..00000000000
--- a/gdb/gdbtk/library/help/images/mem_menu.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/mem_popup.gif b/gdb/gdbtk/library/help/images/mem_popup.gif
deleted file mode 100644
index a1387146934..00000000000
--- a/gdb/gdbtk/library/help/images/mem_popup.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/mem_pref.gif b/gdb/gdbtk/library/help/images/mem_pref.gif
deleted file mode 100644
index 4fc8a5aaa6e..00000000000
--- a/gdb/gdbtk/library/help/images/mem_pref.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/reg.png b/gdb/gdbtk/library/help/images/reg.png
deleted file mode 100644
index 251227da79e..00000000000
--- a/gdb/gdbtk/library/help/images/reg.png
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/reg_menu.png b/gdb/gdbtk/library/help/images/reg_menu.png
deleted file mode 100644
index 54e117b948e..00000000000
--- a/gdb/gdbtk/library/help/images/reg_menu.png
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/src_bal.gif b/gdb/gdbtk/library/help/images/src_bal.gif
deleted file mode 100644
index 51871bcc7f1..00000000000
--- a/gdb/gdbtk/library/help/images/src_bal.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/src_bp_bal.gif b/gdb/gdbtk/library/help/images/src_bp_bal.gif
deleted file mode 100644
index 1f6205ac2e5..00000000000
--- a/gdb/gdbtk/library/help/images/src_bp_bal.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/src_bpop.gif b/gdb/gdbtk/library/help/images/src_bpop.gif
deleted file mode 100644
index c9e4d099d28..00000000000
--- a/gdb/gdbtk/library/help/images/src_bpop.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/src_menu.gif b/gdb/gdbtk/library/help/images/src_menu.gif
deleted file mode 100644
index 8fba6aea810..00000000000
--- a/gdb/gdbtk/library/help/images/src_menu.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/src_pop.gif b/gdb/gdbtk/library/help/images/src_pop.gif
deleted file mode 100644
index 8794c0a5908..00000000000
--- a/gdb/gdbtk/library/help/images/src_pop.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/src_stat.gif b/gdb/gdbtk/library/help/images/src_stat.gif
deleted file mode 100644
index eab58188edc..00000000000
--- a/gdb/gdbtk/library/help/images/src_stat.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/src_thread.gif b/gdb/gdbtk/library/help/images/src_thread.gif
deleted file mode 100644
index 99203ccd8c8..00000000000
--- a/gdb/gdbtk/library/help/images/src_thread.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/src_toolbar.gif b/gdb/gdbtk/library/help/images/src_toolbar.gif
deleted file mode 100644
index d6801b3edf5..00000000000
--- a/gdb/gdbtk/library/help/images/src_toolbar.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/images/watch.png b/gdb/gdbtk/library/help/images/watch.png
deleted file mode 100644
index 3145de979ec..00000000000
--- a/gdb/gdbtk/library/help/images/watch.png
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/help/index.html b/gdb/gdbtk/library/help/index.html
deleted file mode 100644
index 9d7177cf259..00000000000
--- a/gdb/gdbtk/library/help/index.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
- <title>Insight Index</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Quanta Plus">
-</head>
-<body>
-<img src="images/insightbwr.png" width=300 height=120 border=0>
-<UL>
-<LI><A HREF="breakpoint.html">Breakpoint Window</A></LI>
-<LI><A HREF="console.html">Console Window</A></LI>
-<LI><A HREF="browser.html">Function Browser</A></LI>
-<LI><A HREF="locals.html">Locals Window</A></LI>
-<LI><A HREF="memory.html">Memory Window</A></LI>
-<LI><A HREF="register.html">Register Window</A></LI>
-<LI><A HREF="session.html">Sessions</A></LI>
-<LI><A HREF="source.html">Source Window</A></LI>
-<LI><A HREF="stack.html">Stack Window</A></LI>
-<LI><A HREF="target.html">Target Window</A></LI>
-<LI><A HREF="thread.html">Thread Window</A></LI>
-<LI><A HREF="watch.html">Watch Window</A></LI>
-</UL>
-<hr>
-<h2>For Developers Only</h2>
-<ul>
-<li><a href="debug.html">"Internal Debugging Functions</a></li>
-</ul>
-<hr>
-<br>
-<a href="http://sources.redhat.com/insight/" name="Insight Home Page">Insight Home Page</a>
-<br><br><hr><br>
-<A HREF="license.html">GNU General Public License</A>
-</body>
-</html>
diff --git a/gdb/gdbtk/library/help/license.html b/gdb/gdbtk/library/help/license.html
deleted file mode 100644
index 6ce6c431ca3..00000000000
--- a/gdb/gdbtk/library/help/license.html
+++ /dev/null
@@ -1,305 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>GNU General Public License</TITLE>
-</HEAD><BODY>
-<B>The GNU General Public License
-<P></P>
-</B>Version 2, June 1991
-<P></P>
-Copyright © 1989, 1991 Free Software Foundation, Inc.
-<BR>59 Temple Place / Suite 330, Boston, MA 02111-1307, USA
-<P></P>
-Everyone is permitted to copy and distribute verbatim copies of this license
-document, but changing it is not allowed.
-<P></P>
-<B>Preamble
-<P></P>
-</B>The licenses for most software are designed to take away your freedom to share
-and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and
-change free software to make sure the software is free for all its users. This General Public
-License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some
-other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs,
-too.
-<P></P>
-When we speak of free software, we are referring to freedom, not price. Our
-General Public Licenses are designed to make sure that you have the freedom to
-distribute copies of free software (and charge for this service if you wish),
-that you receive source code or can get it if you want it, that you can change the
-software or use pieces of it in new free programs; and that you know you can
-do these things.
-<P></P>
-To protect your rights, we need to make restrictions that forbid anyone to
-deny you these rights or to ask you to surrender the rights. These restrictions
-translate to certain responsibilities for you if you distribute copies of the
-software, or if you modify it.
-<P></P>
-For example, if you distribute copies of such a program, whether gratis or for
-a fee, you must give the recipients all the rights that you have. You must
-make sure that they, too, receive or can get the source code. And you must show
-them these terms so they know their rights.
-<P></P>
-We protect your rights with two steps: (1) copyright the software, and (2)
-offer you this license which gives you legal permission to copy, distribute and/or
-modify the software.
-<P></P>
-Also, for each author's protection and ours, we want to make certain that everyone understands that
-there is no warranty for this free software. If the software is modified by
-someone else and passed on, we want its recipients to know that what they have is
-not the original, so that any problems introduced by others will not reflect on
-the original authors' reputations.
-<P></P>
-Finally, any free program is threatened constantly by software patents. We
-wish to avoid the danger that redistributors of a free program will individually
-obtain patent licenses, in effect making the program proprietary. To prevent
-this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for
-copying, distribution and modification follow.
-<P></P>
-<B>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-<P></P>
-</B>0. This License applies to any program or other work which contains a notice
-placed by the copyright holder saying it may be distributed under the terms of this
-General Public License. The `Program”, below, refers to any such program or work, and a `work based on the Program' means either the Program or any derivative work under copyright law: that is
-to say, a work containing the Program or a portion of it, either verbatim or
-with modifications and/or translated into another language. (Hereinafter,
-translation is included without limitation in the term `modification'.) Each licensee is addressed as `you'.
-<P></P>
-Activities other than copying, distribution and modification are not covered
-by this License; they are outside its scope. The act of running the Program is
-not restricted, and the output from the Program is covered only if its contents
-constitute a work based on the Program (independent of having been made by
-running the Program). Whether that is true depends on what the Program does.
-<P></P>
-<OL><LI> You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this License
-and to the absence of any warranty; and give any other recipients of the Program
-a copy of this License along with the Program.
-<P></P>
-</OL>You may charge a fee for the physical act of transferring a copy, and you may
-at your option offer warranty protection in exchange for a fee.
-<P></P>
-<OL START="2"><LI> You may modify your copy or copies of the Program or any portion of it, thus
-forming a work based on the Program, and copy and distribute such modifications
-or work under the terms of Section 1 above, provided that you also meet all of
-these conditions:
-<P></P>
-</OL>a) You must cause the modified files to carry prominent notices stating that you
-changed the files and the date of any change.
-<P></P>
-b) You must cause any work that you distribute or publish, that in whole or in
-part contains or is derived from the Program or any part thereof, to be licensed
-as a whole at no charge to all third parties under the terms of this License.
-<P></P>
-c) If the modified program normally reads commands interactively when run, you
-must cause it, when started running for such interactive use in the most ordinary
-way, to print or display an announcement including an appropriate copyright
-notice and a notice that there is no warranty (or else, saying that you provide a
-warranty) and that users may redistribute the program under these conditions,
-and telling the user how to view a copy of this License. (Exception: if the
-Program itself is interactive but does not normally print such an announcement,
-your work based on the Program is not required to print an announcement.)
-<P></P>
-These requirements apply to the modified work as a whole. If identifiable
-sections of that work are not derived from the Program, and can be reasonably
-considered independent and separate works in themselves, then this License, and its
-terms, do not apply to those sections when you distribute them as separate
-works. But when you distribute the same sections as part of a whole which is a work
-based on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the entire whole,
-and thus to each and every part regardless of who wrote it.
-<P></P>
-Thus, it is not the intent of this section to claim rights or contest your
-rights to work written entirely by you; rather, the intent is to exercise the
-right to control the distribution of derivative or collective works based on the
-Program.
-<P></P>
-In addition, mere aggregation of another work not based on the Program with
-the Program (or with a work based on the Program) on a volume of a storage or
-distribution medium does not bring the other work under the scope of this License.
-<P></P>
-<OL START="3"><LI> You may copy and distribute the Program (or a work based on it, under Section
-2) in object code or executable form under the terms of Sections 1 and 2 above
-provided that you also do one of the following:
-<P></P>
-</OL>a) Accompany it with the complete corresponding machine-readable source code,
-which must be distributed under the terms of Sections 1 and 2 above on a medium
-customarily used for software interchange; or,
-<P></P>
-b) Accompany it with a written offer, valid for at least three years, to give any
-third party, for a charge no more than your cost of physically performing
-source distribution, a complete machine-readable copy of the corresponding source
-code, to be distributed under the terms of Sections 1 and 2 above on a medium
-customarily used for software interchange; or,
-<P></P>
-c) Accompany it with the information you received as to the offer to distribute
-corresponding source code. (This alternative is allowed only for noncommercial
-distribution and only if you received the program in object code or executable
-form with such an offer, in accord with Subsection b above.)
-<P></P>
-The source code for a work means the preferred form of the work for making
-modifications to it. For an executable work, complete source code means all the
-source code for all modules it contains, plus any associated interface definition
-files, plus the scripts used to control compilation and installation of the
-executable. However, as a special exception, the source code distributed need not
-include anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the operating
-system on which the executable runs, unless that component itself accompanies the
-executable.
-<P></P>
-If distribution of executable or object code is made by offering access to
-copy from a designated place, then offering equivalent access to copy the source
-code from the same place counts as distribution of the source code, even though
-third parties are not compelled to copy the source along with the object code.
-<P></P>
-<OL START="4"><LI> You may not copy, modify, sublicense, or distribute the Program except as
-expressly provided under this License. Any attempt otherwise to copy, modify,
-sublicense or distribute the Program is void, and will automatically terminate your
-rights under this License. However, parties who have received copies, or
-rights, from you under this License will not have their licenses terminated so long
-as such parties remain in full compliance.
-<P></P>
-<LI> You are not required to accept this License, since you have not signed it.
-However, nothing else grants you permission to modify or distribute the Program or
-its derivative works. These actions are prohibited by law if you do not accept
-this License. Therefore, by modifying or distributing the Program (or any work
-based on the Program), you indicate your acceptance of this License to do so,
-and all its terms and conditions for copying, distributing or modifying the
-Program or works based on it.
-<P></P>
-<LI> Each time you redistribute the Program (or any work based on the Program), the
-recipient automatically receives a license from the original licensor to copy,
-distribute or modify the Program subject to these terms and conditions. You
-may not impose any further restrictions on the recipients' exercise of the rights granted herein.
-<P></P>
-</OL>You are not responsible for enforcing compliance by third parties to this
-License.
-<P></P>
-<OL START="7"><LI> If, as a consequence of a court judgment or allegation of patent infringement
-or for any other reason (not limited to patent issues), conditions are imposed
-on you (whether by court order, agreement or otherwise) that contradict the
-conditions of this License, they do not excuse you from the conditions of this
-License. If you cannot distribute so as to satisfy simultaneously your obligations
-under this License and any other pertinent obligations, then as a consequence
-you may not distribute the Program at all. For example, if a patent license
-would not permit royalty-free redistribution of the Program by all those who
-receive copies directly or indirectly through you, then the only way you could
-satisfy both it and this License would be to refrain entirely from distribution of
-the Program.
-<P></P>
-</OL>If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply and the
-section as a whole is intended to apply in other circumstances.
-<P></P>
-It is not the purpose of this section to induce you to infringe any patents or
-other property right claims or to contest validity of any such claims; this
-section has the sole purpose of protecting the integrity of the free software
-distribution system, which is implemented by public license practices. Many people
-have made generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that system; it is up
-to the author/donor to decide if he or she is willing to distribute software
-through any other system and a licensee cannot impose that choice.
-<P></P>
-This section is intended to make thoroughly clear what is believed to be a
-consequence of the rest of this License.
-<P></P>
-<OL START="8"><LI> If the distribution and/or use of the Program is restricted in certain
-countries either by patents or by copyrighted interfaces, the original copyright
-holder who places the Program under this License may add an explicit geographical
-distribution limitation excluding those countries, so that distribution is
-permitted only in or among countries not thus excluded. In such case, this License
-incorporates the limitation as if written in the body of this License.
-<P></P>
-<LI> The Free Software Foundation may publish revised and/or new versions of the
-General Public License from time to time. Such new versions will be similar in
-spirit to the present version, but may differ in detail to address new problems
-or concerns.
-<P></P>
-</OL>Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and `any later version', you have the option of following the terms and conditions either of that
-version or of any later version published by the Free Software Foundation. If the
-Program does not specify a version number of this License, you may choose any
-version ever published by the Free Software Foundation.
-<P></P>
-<OL><LI> If you wish to incorporate parts of the Program into other free programs whose
-distribution conditions are different, write to the author to ask for
-permission. For software which is copyrighted by the Free Software Foundation, write to
-the Free Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status of all
-derivatives of our free software and of promoting the sharing and reuse of software
-generally.
-<P></P>
-</OL>NO WARRANTY
-<P></P>
-<OL><LI> BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE
-PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED
-IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM `AS IS' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
-NECESSARY SERVICING, REPAIR OR CORRECTION.
-<P></P>
-<LI> IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY
-COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
-PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
-SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
-INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
-THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
-PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-<P></P>
-</OL>END OF TERMS AND CONDITIONS
-<P></P>
-<B>How to Apply These Terms to Your New Programs
-<P></P>
-</B>If you develop a new program, and you want it to be of the greatest possible
-use to the public, the best way to achieve this is to make it free software
-which everyone can redistribute and change under these terms.
-<P></P>
-To do so, attach the following notices to the program. It is safest to attach
-them to the start of each source file to most effectively convey the exclusion
-of warranty; and each file should have at least the `copyright' line and a pointer to where the full notice is found.
-<P></P>
-<I>one line for the program's name and a brief idea of what it does.
-<BR></I>Copyright (C) 19<I>yy</I> <I>name of author</I>
-<BR>
-<BR>This program is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation; either version 2 of the License, or (at your option) any later
-version.
-<BR>
-<BR>This program is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-<BR>
-<BR>You should have received a copy of the GNU General Public License along with
-this program; if not, write to the Free Software Foundation, Inc., 59 Temple
-Place - Suite 330, Boston, MA 02111-1307, USA.
-<P></P>
-Also add information on how to contact you by electronic and paper mail.
-<P></P>
-If the program is interactive, make it output a short notice like the
-following example when it starts in an interactive mode:
-<P></P>
-Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes
-with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain
-conditions; type `show c' for details.
-<P></P>
-The hypothetical commands <B>show w</B> and <B>show c</B> should show the appropriate parts of the General Public License. Of course,
-the commands you use may be called something other than show w and show c; they can be mouse clicks or menu items—whatever suits your program.
-<P></P>
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a `copyright disclaimer' for the program, if necessary. The following is a sample (when copying, alter
-the names).
-<P></P>
-Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.
-<BR>
-<BR>signature of Ty Coon, 1 April 1989
-<BR>Ty Coon, President of Vice
-<P></P>
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may consider
-it more useful to permit linking proprietary applications with the library. If
-this is what you want to do, use the GNU Library General Public License instead of this License.
-<P></P>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/locals.html b/gdb/gdbtk/library/help/locals.html
deleted file mode 100644
index 5612b7de296..00000000000
--- a/gdb/gdbtk/library/help/locals.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Local Variables Help</TITLE>
-</HEAD>
-<BODY>
-<H1>The Local Variables Window</H1>
-<H2>Overview</H2>
-<p>The Local Variables Window displays all local variables in scope. It may be used to
-visualize and edit local variables. To open the Local Variables window, click on
-small house icon on the toolbar, or select "Local Variables" under the View
-pulldown menu.</p>
-
-<H3>Locals Display</H3>
-
-<p>Pointers, structures, and classes appear in the display with small expansion
-box before their names. To dereference pointers or
-view the members of classes or structures, click
-the closed expansion box (which appears as a small plus sign, "+") to "expand"
-the listing. The expansion box changes to a minus sign, "-", indicating that the
-display is now open. Pointers, structures and classes may be expanded recursively
-to allow multiple pointer dereferences and embedded structure viewing.</p>
-
-<P>The Locals Display updates after every execution of the program and highlights
-in green those variables whose values have changed.</P>
-
-<P>The Locals Window will, by default, display all pointers in hexadecimal and all
-other variables in decimal. To change the display format for a variable, select
-the Format option from the popup-menu.</P>
-
-<H3>Editing a Variable</H3>
-<p>To edit a variable, either double-click the left mouse button on the value of the variable in
-the display or select the Edit option from the pop-up menu. To abort editing a variable's value,
-simply press the escape key on the keyboard. The variable's original value is restored.</p>
-
-<H3>Local Variable Pop-up Menu</H3>
-<p>The pop-up menu provides quick access to the functions of the Local Variables Window.
-To use the pop-up menu, click the right mouse button while over a variable.</p>
-<DL>
- <dt>Format<dd>Change the display format of the variable.</dd></dt>
- <dt>Edit<dd>Edit the variable's value.</dd></dt>
- <dt>Delete<dd>Remove the variable from the display.</dd></dt>
- <dt>Dump Memory<dd>Open a Memory Window with the variable's value as an aaddress.</dd></dt>
- <dt>Help<dd>Open this help page.</dd></dt>
- <dt>Close<dd>Close the Local Variables Window.</dd></dt>
-</DL>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/memory.html b/gdb/gdbtk/library/help/memory.html
deleted file mode 100644
index afa2fe8fb47..00000000000
--- a/gdb/gdbtk/library/help/memory.html
+++ /dev/null
@@ -1,240 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.06 [en] (X11; I; Linux 2.0.35 i686) [Netscape]">
- <TITLE>Memory Window Help</TITLE>
-</HEAD>
-<BODY>
-
-<H1>
-The Memory Window</H1>
-The Memory Window allows users to display and edit the contents of memory.
-The Memory Window Preferences controls all of the display characteristics
-of the Memory Window.
-<BR>&nbsp;
-<LI>
-<A HREF="#menus">Address Menu</A></LI>
-
-<LI>
-<A HREF="#display">Memory Display</A></LI>
-
-<LI>
-<A HREF="#prefs">Memory Window Preferences</A></LI>
-
-<H2>
-
-<HR WIDTH="100%"></H2>
-
-<H2>
-<A NAME="menus"></A>Address Menu</H2>
-<IMG SRC="images/mem_menu.gif" HEIGHT=66 WIDTH=160>
-<P>This pulldown menu contains the following three items.
-<DL>
-<DT>
-<A NAME="menus_auto"></A>Auto Update</DT>
-
-<DD>
-When selected, causes the Memory Window to update the display every.&nbsp;
-If it is not selected, the display will be frozen until it is selected
-or "Update Now" is selected.</DD>
-
-<DT>
-<A NAME="menus_now"></A>Update Now</DT>
-
-<DD>
-Forces the Memory Window to update the display immediately.</DD>
-
-<DT>
-<A NAME="menus_prefs"></A>Preferences</DT>
-
-<DD>
-Opens the <A HREF="#prefs">Memory Window Preferences</A> dialog.</DD>
-</DL>
-
-<H2>
-
-<HR WIDTH="100%"></H2>
-
-<H2>
-<A NAME="display"></A>Memory Display</H2>
-Like the <A HREF="register.html">Register Window</A>, the Memory Window
-display is organized into a spreadsheet. The address of any cell in the
-Display can be determined by appending the row and column headers for the
-cell. Optionally, an ASCII display of the memory appears at the right.
-Any non-ASCII-representable byte in memory will appear in the ASCII Display
-as a control character (a dot, ".", by default). The <A HREF="#pref">Memory
-Preferences Dialog</A> may be used to alter the appearance of the Memory
-Window.
-<P><A NAME="display_nav"></A>To navigate the Memory Window, use the mouse
-and click the cell of interest. As an alternative, pressing the arrow keys
-on the keyboard will focus successive cells, from left to right, top to
-bottom. The focus will wrap from left to right, so hitting the right arrow
-key will keep advancing the address of the cell selected.
-<H4>
-<A NAME="display_edit"></A>Editing Memory</H4>
-To edit memory, simply enter the new value of the memory into the cell
-and press the enter key on the keyboard. As with the
-<A HREF="register.html">Register
-Window</A>, be careful of the input format used to enter data -- the debugger
-is capable of parsing binary, octal, decimal, and hexadecimal values. All
-entries will be padded with leading zeroes, if necessary.&nbsp; After you
-hit enter, the memory window will automatically shift focus to the next
-cell.
-<P>To edit part of the value of a cell, you can use the mouse to poistion
-the cursor to the exact part of the value you want to change.&nbsp; You
-can also use the backspace key to delete part of the value without deleting
-the whole value.
-<P>Another way to edit memory is to edit the ASCII window.&nbsp; To do
-this, select a cell using the mouse.&nbsp; Then type in a new string.
-<H4>
-<A NAME="display_popup"></A>Memory Pop-up Menu</H4>
-Clicking the right mouse button while the mouse cursor lies within the
-bounds of any cell brings up the following menu:
-<P><IMG SRC="images/mem_popup.gif" HEIGHT=100 WIDTH=220>
-<DL>
-<DT>
-Auto Update</DT>
-
-<DL>
-<DT>
-When selected, the Memory Window will track changes in memory shown in
-the Display.&nbsp; When not selected, the Memory Window is "frozen", representing
-a "snapshot" of memory.</DT>
-</DL>
-
-<DT>
-Update Now</DT>
-
-<DL>
-<DT>
-&nbsp;Forces the Memory Window to update the display immediately.</DT>
-</DL>
-
-<DT>
-Go To <I>address</I></DT>
-
-<DD>
-The Memory Window Display is updated to show memory starting at address
-<I>address</I>.</DD>
-
-<DT>
-Open New Window at <I>address</I></DT>
-
-<DD>
-A new Memory Window is opened, displaying memory at address <I>address</I></DD>
-
-<DT>
-Preferences...</DT>
-
-<DD>
-Opens the Memory Window Preferences for editing the appearance of the Memory
-Window Display.</DD>
-</DL>
-
-<H2>
-
-<HR WIDTH="100%"></H2>
-
-<H2>
-<A NAME="prefs"></A>Memory Window Preferences</H2>
-Memory Window Preference Dialog governs the appearance of the Memory Window:
-the total number of bytes displayed, the size of each cell, ASCII control
-character.
-<P><IMG SRC="images/mem_pref.gif" HEIGHT=417 WIDTH=330>
-<H4>
-<A NAME="prefs_size"></A>Size of the Display Cells</H4>
-This attribute controls how many bytes appear in each cell. Valid cell
-sizes in the Memory Window may be:
-<DL>
-<DT>
-Byte</DT>
-
-<DD>
-Each cell is exactly one byte</DD>
-
-<DT>
-Half Word</DT>
-
-<DD>
-Cells are displayed with two bytes</DD>
-
-<DT>
-Word</DT>
-
-<DD>
-Each cell contains four bytes</DD>
-
-<DT>
-Double Word</DT>
-
-<DD>
-Cells contain eight bytes</DD>
-
-<DT>
-Float</DT>
-
-<DD>
-Each cell contains four bytes, displayed as a floating point number</DD>
-
-<DT>
-Double Float</DT>
-
-<DD>
-Cells are displayed as floating point, eight bytes each</DD>
-</DL>
-
-<H4>
-<A NAME="prefs_fmt"></A>Format of the Display Cells</H4>
-The Format option of the Memory Preferences Dialog governs how the debugger
-represents the memory. Possible representations include:
-<DL>
-<DT>
-Binary</DT>
-
-<DD>
-The values are shown as binary numbers</DD>
-
-<DT>
-Signed Decimal</DT>
-
-<DD>
-The values are shown as signed decimal numbers</DD>
-
-<DT>
-Octal</DT>
-
-<DD>
-Each cell is represented as an octal number</DD>
-
-<DT>
-Unsigned Decimal</DT>
-
-<DD>
-Values are displayed as unsigned decimals</DD>
-
-<DT>
-Hex</DT>
-
-<DD>
-Memory is displayed as a hexadecimal number. This is the default.</DD>
-</DL>
-
-<H4>
-<A NAME="prefs_bytes"></A>Size of the Memory Window</H4>
-The size of the memory window determines how much memory is actually presented
-to the user. The total number of bytes shown can either be determined by
-the size of the window, in which case resizing the Memory Window will cause
-more or less memory to be displayed, or fixed at some specified number
-of bytes. By default, the Memory Window shows 128 bytes of memory.
-<H4>
-<A NAME="prefs_misc"></A>Miscellaneous</H4>
-Miscellaneous memory preferences include the option to display the ASCII
-representation of the memory, including what character to use for non-ASCII
-bytes (the "control" character). Additionally, users may specify the number
-of bytes per row, either by typing a number into the box or by choosing one
-from the list. The default is sixteen bytes per row. If the entered value is
-not a multiple of the cell size then it will be automatically rounded up. The
-maximum permitted value is 150 (before rounding).
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/register.html b/gdb/gdbtk/library/help/register.html
deleted file mode 100644
index 06513445eee..00000000000
--- a/gdb/gdbtk/library/help/register.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Register Window Help</TITLE>
-</HEAD>
-<BODY>
-<H1>The Register Window</H1>
-<P>The Register Window lists registers and their contents for
-the selected stack frame. It permits viewing the contents of registers
-in different formats, editing register values, and some display
-customizations.</P>
-
-<img src="images/reg.png" alt="register window" width=387 height=370 align="middle" border=0>
-
-<p>In the image above, you can see all the registers on the left and their values on the right.
-At the top is an option menu to allow you to choose what group of registers to display.
-The groups names are preset according to the architecture being debugged. The default is "all".
-Registers highlighted in green have recently changed.
-</p>
-<P>The Register Window will update the register contents in the display
-to match the stack frame currently being viewed in the <A HREF="source.html">
-Source Window</A> and <A HREF="stack.html">Stack Window</A>.</P>
-<p>Each time the program stops, the register window will automatically update.
-Registers that have changed since the last stop will be displayed in green.</p>
-
-
-
-<H3>The Register Pop-up Menu</H3>
-<img src="images/reg_menu.png" alt="register popup menu" width=396 height=388 border=0>
-<P>
-To activate the pop-up menu, click the right mouse button over a register.
-This will allow you change the way the register is displayed, or to remove
-it from the display. Or you can add the register to the watch window.
-For integer registers, you can also open a memory window at the
-location pointed to by the register.</P>
-
-<H3>Editing a Register</H3>
-<P>
-To edit a register, simply click on it with the left mouse button. Type
-in the new value and hit enter. You can enter a decimal, hex, or float number and
-the type will be converted if possible. You may also enter an expression to be evaluated.
-For example, to set $r3 to the same as $r4, edit $r3 and enter "$r4" as the value. In the same
-way, you can set $pc to "main".
-The value of the register is set to the current value of the expression; it will not be reevaluated
-if the expression's value later changes.
-</P>
-<P>Press the escape key on the keyboard to cancel your edit.</P>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/session.html b/gdb/gdbtk/library/help/session.html
deleted file mode 100644
index 6c770e8f022..00000000000
--- a/gdb/gdbtk/library/help/session.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<html>
-<head>
-<title>Sessions</title>
-</head>
-<body>
-
-<center><h2>Sessions</h2></center>
-
-Insight will save your session for you automatically. The ``session''
-is essentially a group of settings which are keyed by the name of the
-inferior which you are debugging.<p>
-
-Insight will show a list of the five most recent previous sessions on
-the <tt>File</tt> menu. Choosing an item from this list will cause
-Insight to load the indicated executable and restore all the settings
-saved in the session.<p>
-
-The settings stored in a session are:
-<ul>
-<li> The name of the executable.
-
-<li> The inferior's command-line arguments.
-
-<li> The target.
-
-<li> The path used when searching for source files.
-
-<li> The current working directory.
-
-<li> The breakpoints and watchpoints, including conditions, actions,
- and the like.
-</ul>
-<p>
-
-More items may be added to this list as the need arises.<p>
-
-At present there is no way to disable session saving.<p>
-
-</body>
-</html>
diff --git a/gdb/gdbtk/library/help/source.html b/gdb/gdbtk/library/help/source.html
deleted file mode 100644
index 0e04eac6579..00000000000
--- a/gdb/gdbtk/library/help/source.html
+++ /dev/null
@@ -1,424 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.06 [en] (X11; I; Linux 2.0.35 i686) [Netscape]">
- <TITLE>Source Window Help</TITLE>
-</HEAD>
-<BODY>
-
-<CENTER>
-<H1>The Source Window</H1></CENTER>
-
-<BR>The Source Window is the primary interface between the user and
-the debugger; it is automatically opened when the debugger starts. The
-Source Window displays the status of the program, controls execution of
-the program, and allows visualization of the program execution.
-
-<H3><A HREF="#menus">Menus</A></H3>
-
-<UL>
-<LI><A HREF="#menus_file">File Menu</A></LI>
-<LI><A HREF="#menus_run">Run Menu</A></LI>
-<LI><A HREF="#menus_view">View Menu</A></LI>
-<LI><A HREF="#menus_control">Control Menu</A></LI>
-<LI><A HREF="#menus_prefs">Preferences Menu</A></LI>
-</UL>
-
-<H3><A HREF="#toolbar">Toolbar</A></H3>
-
-<UL>
-<LI><A HREF="#toolbar_exec">Execution Control Buttons</A></LI>
-<LI><A HREF="#toolbar_window">Window Buttons</A></LI>
-<LI><A HREF="#toolbar_frame">Frame Control</A></LI>
-</UL>
-
-<H3><A HREF="#display">Source Window Display</A></H3>
-
-<UL>
-<LI><A HREF="#setting_a_breakpoint">Setting a Breakpoint</A></LI>
-<LI><A HREF="#viewing_breakpoints">Viewing Breakpoints</A></LI>
-<LI><A HREF="#display_balloon">Variable Balloons</A></LI>
-<LI><A HREF="#display_popup">Source Pop-up Menus</A></LI>
-</UL>
-
-<H3><A HREF="#status">Source Window Status Bars</A></H3>
-
-<UL>
-<LI><A HREF="#status_bar">Program Status Bar</A></LI>
-<LI><A HREF="#status_mode">Source Display Status Bar</A></LI>
-</UL>
-
-<H3><A HREF="#search">Search Entry</A></H3>
-
-<HR>
-<H2><A NAME="menus"></A>Menus</H2>
-
-<IMG SRC="images/src_menu.gif">
-<H4><A NAME="menus_file"></A>File Menu</H4>
-
-<DL>
-<DT>Open</DT>
-<DD>Opens a file selection dialog to select the executable to debug</DD>
-<DT>Close</DT>
-<DD>Closes a previously opened executable file</DD>
-<DT>Source</DT>
-<DD>Reads and executes GDB commands from a text file</DD>
-<DT>Target Settings...</DT>
-<DD>Opens the <A HREF="target.html">Target Selection Dialog</A> to edit target
-settings</DD>
-<DT>Page Setup</DT>
-<DD>(Windows only) Opens the Windows Page Setup dialog to configure printing</DD>
-<DT>Print</DT>
-<DD>Print the contents of the Source Window Display</DD>
-<DT>Exit</DT>
-<DD>Exits the debugger</DD>
-</DL>
-
-<H4><A NAME="menus_run"></A>Run Menu</H4>
-<DL>
-<DT>Connect to target</DT>
-<DD>Connect to the target specified in the <A HREF="target.html">Target Selection Dialog</A>. Open the dialog if there are no current settings.</DD>
-<DT>Download</DT>
-<DD>Initiates download of the executable onto the target via the protocol specified
-in the <A HREF="target.html">Target Selection Dialog</A></DD>
-<DT>Run</DT>
-<DD>Runs or re-runs the program</DD>
-<DT>Disconnect</DT>
-<DD>Close a previously opened connection</DD>
-</DL>
-
-<H4><A NAME="menus_view"></A>View Menu</H4>
-<DL>
-<DT>Stack</DT>
-<DD>Open a <A HREF="stack.html">Stack Window</A></DD>
-<DT>Registers</DT>
-<DD>Open a <A HREF="register.html">Register Window</A></DD>
-<DT>Memory</DT>
-<DD>Open a <A HREF="memory.html">Memory Window</A></DD>
-<DT>Watch Expressions</DT>
-<DD>Open a <A HREF="watch.html">Watch Window</A></DD>
-<DT>Local Variables</DT>
-<DD>Open a <A HREF="locals.html">Locals Window</A></DD>
-<DT>Breakpoints</DT>
-<DD>Open a <A HREF="breakpoint.html">Breakpoint Window</A></DD>
-<DT>Console</DT>
-<DD>Open a <A HREF="console.html">Console Window</A></DD>
-<DT>Function Browser</DT>
-<DD>Open a window allowing the user to easily search for functions and
-set breakpoints.</DD>
-<DT>Thread List</DT>
-<DD>Open a window that displays all current threads and allows the user
-to change active threads</DD>
-</DL>
-
-<H4><A NAME="menus_control"></A>Control Menu</H4>
-<DL>
-<DT><A HREF="#step_button">Step</A></DT>
-<DD>Step program until it reaches a different source line</DD>
-<DT><A HREF="#next_button">Next</A></DT>
-<DD>Step program, proceeding through subroutine calls</DD>
-<DT><A HREF="#finish_button">Finish</A></DT>
-<DD>Execute until the current stack frame returns</DD>
-<DT><A HREF="#continue_button">Continue</A></DT>
-<DD>Continue program being debugged, after signal or breakpoint</DD>
-<DT><A HREF="#stepi_button">Step Asm Inst</A></DT>
-<DD>Step one instruction exactly</DD>
-<DT><A HREF="#nexti_button">Next Asm Inst</A></DT>
-<DD>Step one instruction, but proceed through subroutine calls</DD>
-<DT>Automatic Step</DT>
-<DD>Automatically step the program every two seconds</DD>
-</DL>
-
-<H4><A NAME="menus_prefs"></A>Preferences Menu</H4>
-<DL>
-<DT>Global</DT>
-<DD>Opens the <A HREF="gbl_pref.html">Global Preferences Dialog</A> and allows
-editing of global settings</DD>
-<DT>Source</DT>
-<DD>Opens the <A HREF="src_pref.html">Source Preferences Dialog</A> and allows
-editing of Source Window settings</DD>
-</DL>
-
-<HR>
-
-<H2><A NAME="toolbar"></A>Toolbar</H2>
-<IMG SRC="images/src_toolbar.gif">
-The Source Window toolbar consists of three functional sections: execution
-control buttons, debugger window buttons, and stack frame control buttons.
-
-<BR>
-<H4><A NAME="toolbar_exec"></A>Execution Control Buttons</H4>
-These convenience buttons provide on-screen access to the most important
-debugger execution control functions:
-<DL>
-<DT><A NAME="run_button"></A><IMG SRC="../images/run.gif"> or
-<IMG SRC="../images2/run.gif"> Run </DT>
-<DD>The Run Button will start execution of the program, including target selection
-and downloading, if necessary. If the program is already running, the Run
-Button will start the program from the beginning (re-run it).</DD>
-
-<DT><A NAME="stop_button"></A><IMG SRC="../images/stop.gif"> or
-<IMG SRC="../images2/stop.gif"> Stop</DT>
-<DD>The Stop Button will interrupt execution of the program (provided this
-feature is supported by the underlying debugging protocol and hardware)
-or cancel downloads. It is also used as an indication that the debugger
-is busy.</DD>
-<DT><A NAME="step_button"></A><IMG SRC="../images/step.gif"> or <IMG SRC="../images2/step.gif">Step</DT>
-<DD>Step the program until it reaches a different source line</DD>
-<DT><A NAME="next_button"></A><IMG SRC="../images/next.gif"> or <IMG SRC="../images2/next.gif">Next</DT>
-<DD>Step the program, proceeding through subroutine calls</DD>
-<DT><A NAME="finish_button"></A><IMG SRC="../images/finish.gif"> or <IMG SRC="../images2/finish.gif"> Finish</DT>
-<DD>Execute until the current stack frame returns</DD>
-<DT><A NAME="continue_button"></A><IMG SRC="../images/continue.gif"> or <IMG SRC="../images2/continue.gif"> Continue</DT>
-<DD>Continue the program being debugged, after signal or breakpoint</DD>
-<DT><A NAME="stepi_button"></A><IMG SRC="../images/stepi.gif"> or <IMG SRC="../images2/stepi.gif"> Step Asm Inst</DT>
-<DD>Step one instruction exactly. This function is only available when the
-Source Window is displaying assembler code.</DD>
-<DT><A NAME="nexti_button"></A><IMG SRC="../images/nexti.gif"> or <IMG SRC="../images2/nexti.gif"> Next Asm Inst</DT>
-<DD>Step one instruction, but proceed through subroutine calls. This function
-is only available when the Source Window is displaying assembler code.</DD>
-</DL>
-
-<H4>
-<A NAME="toolbar_window"></A>Window Buttons</H4>
-The Debugger Window buttons give instant access to the Debugger's auxiliary
-windows:
-<DL>
-<DT><A NAME="register_button"></A><IMG SRC="../images/reg.gif"> or <IMG SRC="../images2/reg.gif"> Registers</DT>
-<DD>Open a <A HREF="register.html">Register Window</A></DD>
-<DT><A NAME="memory_button"></A><IMG SRC="../images/memory.gif"> or <IMG SRC="../images2/memory.gif"> Memory</DT>
-<DD>Open a <A HREF="memory.html">Memory Window</A></DD>
-<DT><A NAME="stack_button"></A><IMG SRC="../images/stack.gif"> or <IMG SRC="../images2/stack.gif"> Stack</DT>
-<DD>Open a <A HREF="stack.html">Stack Window</A></DD>
-<DT><A NAME="watch_button"></A><IMG SRC="../images/watch.gif"> or <IMG SRC="../images2/watch.gif"> Watch Expressions</DT>
-<DD>Open a <A HREF="watch.html">Watch Window</A></DD>
-<DT><A NAME="locals_button"></A><IMG SRC="../images/vars.gif"> or <IMG SRC="../images2/vars.gif"> Local Variables</DT>
-<DD>Open a <A HREF="locals.html">Locals Window</A></DD>
-<DT><A NAME="breakpoints_button"></A><IMG SRC="../images/bp.gif"> or <IMG SRC="../images2/bp.gif"> Breakpoints</DT>
-<DD>Open a <A HREF="breakpoint.html">Breakpoint Window</A></DD>
-<DT><A NAME="console_button"></A><IMG SRC="../images/console.gif"> or <IMG SRC="../images2/console.gif"> Console</DT>
-<DD>Open a <A HREF="console.html">Console Window</A></DD>
-</DL>
-
-<H4><A NAME="toolbar_frame"></A>Frame Control</H4>
-The Frame Control area of the toolbar displays information about the PC
-of the current frame, and the frame control buttons may be used to navigate
-through the call stack. Whenever any of these buttons are used, both the
-Source Window Display and the <A HREF="stack.html">Stack Window</A> will
-show the selected frame.
-<DL>
-<DT><IMG SRC="images/frame_info.gif" > Frame Information Display</DT>
-<DD>The left half of the frame information display shows the value of the PC
-in the current frame. The right half shows the line number of the PC in
-the source file, if available.</DD>
-
-<DT><A NAME="up_button"></A><IMG SRC="../images/up.gif"> or <IMG SRC="../images2/up.gif"> Up</DT>
-<DD>Select and view the stack frame that called this one</DD>
-
-<DT><A NAME="down_button"></A><IMG SRC="../images/down.gif"> or <IMG SRC="../images2/down.gif"> Down</DT>
-<DD>Select and view the stack frame called by this one</DD>
-
-<DT><A NAME="bottom_button"></A><IMG SRC="../images/bottom.gif"> or <IMG SRC="../images2/bottom.gif"> Bottom</DT>
-<DD>Select and view the bottom-most stack frame</DD>
-</DL>
-
-<HR>
-
-<H2><A NAME="display"></A>Source Display</H2>
-The Source Display is used for many things: browsing source code, setting
-and clearing breakpoints, and a few other special functions. Executable
-lines (those for which executable code was generated by the compiler) are
-denoted with a marker (a dash, "-") in the first column of the display.
-<P>The debugger highlights the PC in the current frame in either green,
-indicating that the PC is in the bottom-most frame (i.e., it is being executed)
-or gold, indicating that the PC is contained in a frame that is not currently
-executing (because it has called another function). A blue highlight is
-used by the debugger to indicate a browsing position: the PC is contained
-in a frame that is not executing or on the call stack. All highlight colors
-are user selectable in the <A HREF="src_pref.html">Source Preferences</A>.
-
-<BR>
-<H4><A NAME="setting_a_breakpoint"></A>Setting a Breakpoint</H4>
-Moving the mouse pointer over the "hot spot" of an executable line will
-change the mouse cursor to a large dot. Clicking the left mouse button
-will then toggle a breakpoint at this line. If no breakpoint exists, one
-will be installed and the dash in the left margin will change into a red
-breakdot. If a breakpoint exists, it will be removed and the red breakdot
-will revert back to a dash. The executable line marker shows the status
-of each line: an empty marker (the dash) indicates that no breakpoints
-are set at the line. A colored breakdot indicates that a breakpoint exists
-at the line (see <A HREF="#display_popup">Source Pop-up Menus</A> for more
-information on setting different types of breakpoints and their representations
-in the Source Display).
-<P>Black breakdots in the Source Window display indicate that the breakpoint
-has been disabled. To re-enable the breakpoint, click the enable/disable
-checkbox in the Breakpoint Window (see <A HREF="breakpoint.html#display_state">
-Enabling/Disabling Breakpoints</A>).
-
-<BR>
-<H4><A NAME="viewing_breakpoints"></A>Viewing Breakpoints</H4>
-You can find out more information about a breakpoint by moving the cursor
-over a breakpoint. A balloon window will pop up with additional information.
-To get a list of all the active breakpoints, you will need to open a
-<A HREF="breakpoint.html">breakpoint window</A>.
-<IMG SRC="images/src_bp_bal.gif">
-
-<BR>
-<H4><A NAME="display_balloon"></A>Variable Balloons</H4>
-If the program to be debugged has started and is stopped, the display
-will show the value of variables in variable
-balloons. To activate a variable balloon, simply hold the mouse cursor
-over the name of a variable in the Source Display for a second or two:
-the debugger displays the name of the variable, its type, and its value
-in a pop-up balloon.
-<IMG SRC="images/src_bal.gif">
-
-<BR>
-<H4><A NAME="display_popup"></A>Source Pop-up Menus</H4>
-The Source Display has two pop-up menus. One is activated by clicking the
-right mouse button when the mouse cursor is over an executable line marker's
-hot spot. This pop-up menu looks like this:
-<P><IMG SRC="images/src_bpop.gif">
-<DL>
-<DT>Continue to Here</DT>
-<DD>Continue program execution until it reaches this point. All breakpoints
-will be ignored. Be aware that if the program never executes the line you selected,
-it will run until completion.</DD>
-<DT>Set Breakpoint</DT>
-<DD>Set a breakpoint at this line. This has the same effect as left clicking
-on this line. Breakpoints are shown as red breakdots in the Source Window
-Display.</DD>
-<DT>Set Temporary Breakpoint</DT>
-<DD>Set a temporary breakpoint at this line. Temporary breakpoints are shown
-as orange breakdots in the Source Window Display. The remove themselves automatically
-the first time they are hit.</DD>
-<A NAME="thread_bp"></A>
-<DT>Set Breakpoint on Thread(s)...</DT>
-<DD>GDB allows the user to set a breakpoint on a particular thread or threads. This
-menu item will display a dialog with a list of threads. The user can select a list
-of threads that will have breakpoints set at the selected line number. A warning
-will be displayed if there are no active threads.</DD>
-<IMG SRC="images/src_thread.gif">
-</DL>
-
-The other pop-up menu is activated by clicking the right mouse button anywhere
-else in the Source Display. It is only available when a variable or number
-in the display lies below the mouse cursor or is selected (by clicking
-the left mouse button and dragging the mouse to highlight the variable/number).
-The pop-up menu looks like this:
-<P><IMG SRC="images/src_pop.gif">
-<DL>
-<DT><A NAME="add_to_watch"></A>Add <I>expr</I> to Watch</DT>
-<DD>Adds the selected expression to the <A HREF="watch.html">Watch Window</A>,
-opening it, if necessary.</DD>
-<DT>Dump Memory at <I>expr</I></DT>
-<DD>Opens a new <A HREF="memory.html">Memory Window</A> at the selected expression.
-If the expression is a variable, then the Memory Window is opened with
-memory addresses starting at the value of the variable.</DD>
-<DT>Open Another SOurce Window</DT>
-<DD>GDB allows multiple source windows to co-exist. You can, for example, have
-one window in source mode and one in assembly mode. Or you can use one window
-to browse the stack or other files.</DD>
-</DL>
-
-<H4><A NAME="status"></A>Source Window Status Bars</H4>
-The Source Window has two status bars which inform the user of the status
-of the program (the "status bar") and the status of the Source Window.
-<P>The&nbsp;<A NAME="status_bar"></A>Program Status Bar (or simply "Status
-Bar") displays the status of the program. Common messages seen here include:
-<DL>
-<DT>No program loaded.</DT>
-<DD>No program has been loaded into target memory.</DD>
-<DT>Program is ready to run.</DT>
-<DD>A program has been loaded into target memory and may be executed. Start
-the program by hitting <A HREF="#run_button">Run</A>.</DD>
-<DT>Program stopped at <I>line/address</I></DT>
-<DD>The program stopped at line <I>line</I> or address <I>address</I>. Execution
-may continue by hitting any of the <A HREF="#toolbar_exec">execution control
-buttons</A> on the toolbar.</DD>
-<DT>Program terminated. 'Run' will restart.</DT>
-<DD>The program exited. Pressing <A HREF="#run_button">Run</A> will restart
-it.</DD>
-</DL>
-
-The Status Bar also displays some help information. For instance, the Status
-Bar will show the function of a button on the toolbar or the Source Display
-Status Bar as well as any keyboard shortcut for any button in the Source
-Window.
-
-<BR>
-<H4><A NAME="status_mode"></A>Source Display Status Bar</H4>
-<IMG SRC="images/src_stat.gif">
-The Source Display Status Bar shows the current state of the Source Window:
-the name of the file displayed in the Display, the name of the function
-in the Display which contains the PC for the current frame (if any), and
-the display mode.
-<P>The <A NAME="file_selector"></A>Source File Selector is a dropdown
-menu which contains the names of all the files that were compiled into
-the program being debugged.
-<P>Normally, the File Selector displays the name of the file currently
-being viewed, but any file from the dropdown menu may be selected for browsing.
-Simply select the file to view from the available choices (or type it directly
-into the File Selector) and the Source Window will load that file into
-the Display. To return to the PC of the program, simply press the
-<A HREF="#bottom_button">Bottom
-Frame Control Button</A>.
-<P>The <A NAME="function_selector"></A>Source Function Selector displays
-the name of the function containing the Source Window's PC, if one exists,
-but it may be used to browse any function in the current file. Simply type
-the name of the desired function into the Function Selector or select it
-from the dropdown menu. The Source Window's PC is updated to point at this
-function. To return to the PC of the program, simply press the
-<A HREF="#bottom_button">Bottom
-Frame Control Button</A>.
-<P>The <A NAME="mode_selector"></A>Source Display Mode Selector displays
-the viewing mode of the current file/function shown in the Source Window
-Display.
-<P>The function of the "step" keyboard shortcut will differ depending on
-the mode the Source Window Display. "Stepping" in Source Mode (or in the
-Source Pane of SRC+ASM Mode) will cause a source-level step. "Stepping"
-in Assembly or Mixed Mode (or in the Assembly Pane of the SRC+ASM Mode)
-will cause the debugger to step exactly one machine instruction. This also
-applies to the shortcut for "next".
-<P>The Display Mode Selector may be used to change the view of the current
-source file. The available display modes are
-<DL>
-<DT>SOURCE</DT>
-<DD>The contents of the Display are shown as source code. If source code is
-not available (either because no debugging information is available or
-the source file is not found), the Source Window will temporarily set the Display
-Mode to "ASSEMBLY".</DD>
-<DT>ASSEMBLY</DT>
-<DD>A disassembly of the target's memory is shown in the Display. Even assembly
-source files show a disassembly of target memory; to see the assembly source
-code, use the SOURCE mode. Note that the debugger can only display assembly
-code on a function-by-function basis. It cannot display all the instructions
-generated from a single source file.</DD>
-<DT>MIXED</DT>
-<DD>The Display shows source code mixed with the assembler instructions which
-were generated for those lines by the compiler for the current function.
-Note that the addresses of the assembly lines is not necessarily monotonically
-increasing. If the source file associated with the function cannot be found,
-the Source Window will revert to ASSEMBLY mode.</DD>
-<DT>SRC+ASM</DT>
-<DD>The Source Window Display is divided into two panes: an assembly pane and
-a source pane. Breakpoints may be set/cleared in either pane.</DD>
-</DL>
-
-<HR>
-
-<H2><A NAME="search"></A>Search Entry</H2>
-The Search Entry facilitates searching for text in the Source Window Display.
-Simply enter the text to be found into the Search Entry and press the Enter
-key on the keyboard to search forwards in the Source Window Display (hold
-down the Shift key to search backwards). If a match is found, it is highlighted
-in the Source Window and the Program Status Bar displays information about
-where the match was found.
-<P>The Search Entry can also jump the Source Window to a specific line.
-Enter the line number preceded by an "at" sign (@) into the Search Entry
-and press enter. If entered line number is greater than the total number
-of lines in the Source Window Display, the Display will jump to the end
-of the current file.
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/src_pref.html b/gdb/gdbtk/library/help/src_pref.html
deleted file mode 100644
index e8547964653..00000000000
--- a/gdb/gdbtk/library/help/src_pref.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Source Window Preferences Help</TITLE>
-</HEAD>
-<BODY>
-<H1>Source Window Preferences</H1>
-<H3>Overview</H3>
-<P>Not yet done.</P>
-
-<P>Source Preferences topics:
-<UL>
- <LI><UL><A HREF="#">stuff</A>
- <LI><A HREF="#">stuff</A>
- <LI><A HREF="#">stuff</A>
- </UL>
-</UL></P>
-
-<H3><A NAME="">stuff</A></H3>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/stack.html b/gdb/gdbtk/library/help/stack.html
deleted file mode 100644
index 9229c17fa12..00000000000
--- a/gdb/gdbtk/library/help/stack.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<HTML>
- <HEAD>
- <TITLE>Stack Window Help</TITLE>
- </HEAD>
- <BODY>
-
- <CENTER>
- <H2>The Stack Window</H2>
- </CENTER>
-
-
- <BR>The Stack Window allows users to view the call stack and jump between
- levels of the stack.
-
- <UL>
- <LI><A HREF="#display">Stack Display</A></LI>
- <LI><A HREF="#display_nav">Navigating the Stack Window</A></LI>
- <LI><A HREF="#display_lvl">Changing the Stack Level</A></LI>
- </UL>
-
- <H2><A NAME="display">Stack Display</A></H2>
- The Stack Display consists of a listbox which displays levels of the call stack
- on per line. Each line contains the level number (useful when using the
- <A HREF="console.html">Console Window</A>) and a description of the function executing
- in that level. Typically, the function name and either the address of the function
- or the file and line number where the function is defined are displayed. The
- Stack Window may also be used to jump between levels of the stack.
- <BR>
-
- <H2><A NAME="display_nav">Navigating the Stack Window</A></H2>
- Navigation of the Stack Window is accomplished by clicking on the desired level
- with the left mouse button. The <A HREF="source.html#display">Source Window
- Display</A> updates to show the selected frame. All other secondary windows,
- <A HREF="register.html">Registers</A>, <A HREF="watch.html">Watch</A>, and
- <A HREF="locals.html">Locals</A> update their displays for the selected frame.
- <BR>
-
- <H2><A NAME="display_lvl">Changing Stack Levels</A></H2>
- To switch frames, simply click the left mouse button on the desired frame and the
- debugger will switch contexts, updating all windows. The selected frame is highlighted
- (in gold, by default).
-
- <P>As an alternative, changing stack levels may be accomplished via the
- <A HREF="source.html#toolbar_frame">Frame Control Buttons</A> on the Source Window's
- Toolbar. These buttons may be used to change frames one level at a time (either
- immediately up or immediately down) or to jump to the bottom-most stack frame.
- See <A HREF="source.html#toolbar_frame">Source Frame Control Buttons</A> for more
- information.</P>
- </BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/target.html b/gdb/gdbtk/library/help/target.html
deleted file mode 100644
index b56821b0cff..00000000000
--- a/gdb/gdbtk/library/help/target.html
+++ /dev/null
@@ -1,110 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Target Selection Help</TITLE>
-</HEAD>
-<BODY>
-<H1>The Target Selection Dialog</H1>
-<h2>Overview</h2>
-<P>The Target Selection Dialog allows users to specify the debug target,
-the interface used to connect to the target, and some useful run
-options.</P>
-
-<P>
-<h3><A HREF="#select">Selecting a Target</A></h3>
-<UL>
-<LI><A HREF="#select">Specifying a Target</A></LI>
-<LI><A HREF="#select_int">Choosing a Connection Interface</A></LI>
-</UL>
-
-<h3><A HREF="#options">Options</A></h3>
-<UL>
-<LI><A HREF="#options_run_until_main">Run until 'main'</A></LI>
-<LI><A HREF="#options_bp_at_exit">Set breakpoint at 'exit'</A></LI>
-<LI><A HREF="#options_set_bp_at">Set user-specifid breakpoint</A></LI>
-<LI><A HREF="#options_download_dialog">Display Download Dialog</A></LI>
-<LI><A HREF="#options_use_xterm">Use xterm for inferior's tty (unix only)
- </A></LI>
-</UL>
-
-<h3><A HREF="#more_options">More Options</A></h3>
-<UL>
-<LI><A HREF="#more_options_attach">Attach to Target</A></LI>
-<LI><A HREF="#more_options_load">Download Program</A></LI>
-<LI><A HREF="#more_options_run">Run Program</A></LI>
-<LI><A HREF="#more_options_cont">Continue from Last Stop</A></LI>
-</UL></P>
-
-<H3><A NAME="select">Selecting a Target</A></H3>
-Selecting a target involves choosing a target for debugging and setting connection
-interface options for the target.
-
-<P>Common targets include: "Exec" for native debuggers, "Remote/Serial" for establishing
-a connection to a target board via a serial line, "Remote/TCP" for TCP connections,
-and "Simulator" for connections to the simulator. There may be more depending on the
-configuration of the debugger being used.</P>
-
-<P>In general, "remote" targets are always serial connections which require the user
-to specify the serial port and baud rate to be used for the connection and
-"remote/tcp" targets are always TCP connections which require specifying the hostname
-and port number of the machine to which to connect. Depending upon configuration,
-there may be numerous serial- and TCP-based connections. These always follow the
-naming convention <I>target</I>/Serial and <I>target</I>/TCP.</P>
-
-<P>To select a target, choose one of the available targets
-from the dropdown menu in the Connection Frame. Then <A NAME="#select_int">specify
-the interface options</A> for this target: selecting the baudrate and serial port
-from the dropdown menus (serial targets only) or entering the hostname and port number
-(TCP targets only).</P>
-
-<H3><A NAME="options">Options</A></H3>
-Three run options which may be selected include:
-<DL>
- <DT><A NAME="options_run_until_main">Run until 'main'</A>
- <DD>Sets a breakpoint at main()
- <DT><A NAME="options_bp_at_exit">Set breakpoint at 'exit'</A>
- <DD>Sets a breakpoint at exit()
- <DT><A NAME="options_set_bp_at">Set breakpoint at</A>
- <DD>Sets a breakpoint at a user-specified locaiton</A>
- <DT><A NAME="options_download_dialog">Display Download Dialog</A>
- <DD>Displays a dialog showing the progress of the download to
- the target section by section
- <DT><A NAME="options_use_xterm">Use xterm as inferior's tty</A>
- <DD>Causes insight to open a tty for inferior I/O (unix versions
- only)
-</DL>
-<BR>
-<H3><A NAME="more_options">More Options</A></H3>
-Several additional run options may be set for each target from the Target Selection
-Dialog. These options govern the behavior of the debugger's
-<A NAME="source.html#run_button">Run Button</A>. The debugger automatically selects
-default values for these options whenever a target is selected with the dropdown menu
-in the Connection Frame. To modify this default behavior, click the small triangle
-next to "More Options" at the bottom of the dialog. The Run Options for the current
-target are displayed, allowing modification of the actions for the target. When the
-"OK" button is selected, these settings are saved and will be used as the default
-for the target in future sessions.
-
-<DL>
- <DT><A NAME="more_options_attach">Attach to Target</A>
- <DD>Establish a connection to the target board.
- <DT><A NAME="more_options_load">Download Program</A>
- <DD>Download the program to the target board.
- <DT><A NAME="more_options_run">Run Program</A>
- <DD>Run the program on the target board, creating a new
- "process". This option may not be specified along with
- the continue option. See note below.
- <DT><A NAME="more_options_cont">Continue from Last Stop</A>
- <DD>Continue the program on the target board from where
- it last stopped. This option may not be specified
- along with the "run" option. See note below.
-</DL>
-
-<P>Note that all remote targets typically do not "run" programs. Since target
-boards are usually incapable of creating a new "process", these targets
-seldom "Run". The defaults for all remote targets reflect this distinction: they
-are all set to "Continue".</P>
-
-<P>Only one of the options "Run Program" and "Continue from Last Stop" may be used.
-Typically, the default behavior of this setting should not be altered.</P>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/thread.html b/gdb/gdbtk/library/help/thread.html
deleted file mode 100644
index dacc0646125..00000000000
--- a/gdb/gdbtk/library/help/thread.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<HTML>
- <HEAD>
- <TITLE>Thread Window Help</TITLE>
- </HEAD>
- <BODY>
-
- <CENTER>
- <H2>The Thread Window</H2>
- </CENTER>
-
-
- <BR>The Thread Window displays a list of threads and/or processes. The exact
- contents are OS-specific.
-
- <UL>
- <LI><A HREF="#display">Thread Display</A></LI>
- <LI><A HREF="#current">Changing the Current Thread</A></LI>
- <LI><A HREF="#bp">Setting Breakpoints on Thread(s)</A></LI>
- </UL>
-
- <H2><A NAME="display">Thread Display</A></H2>
- The Thread Display consists of a listbox which displays information on
- threads and/or processes that are part of the executable being debugged.
- The first column is the GDB thread number, which is used internally by GDB
- to track the thread. The rest of the columns are OS-dependent. The output is identical
- to the output of the console command "info threads".
- <BR>
-
- <H2><A NAME="current">Changing the Current Thread</A></H2>
- The source window can only display the current location and source for one thread
- at a time. That thread is called the "current thread".
- To change the current thread, simply click the left mouse button on the desired
- line and the
- debugger will switch contexts, updating all windows. The current thread will
- be highlighted.
- <BR>
-
- <H2><A NAME="bp">Setting Breakpoints on Thread(s)</A></H2>
- Normally if you set a breakpoint on a line or function, every thread that hits
- that location will stop execution and return to the debugger. To set a breakpoint
- or a specific thread or threads, you need to use the source window. See
- <A HREF="source.html#thread_bp">Set Breakpoint on Threads</A>
-
-
- </BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/trace/console.html b/gdb/gdbtk/library/help/trace/console.html
deleted file mode 100644
index fdce956afec..00000000000
--- a/gdb/gdbtk/library/help/trace/console.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Console Window Help</TITLE>
-</HEAD>
-<BODY>
-<H1>The Console Window</H1>
-<H3>Overview</H3>
-<P>The Console Window is perhaps the most powerful tool in the debugger. It
-provides functionality equivalent to almost all of the debugger's secondary
-windows, macro definitions, and other more advanced features.</P>
-
-<P>Console Window topics:
-<UL>
- <LI><UL><A HREF="#display">Console Display</A>
- <LI><A HREF="#display_cmd">Executing Commands</A>
- <LI><A HREF="#display_hlp">Getting Help</A>
- </UL>
-</UL></P>
-
-<H3><A NAME="display">Console Display</A></H3>
-The Console Display is simply a scrolled window in which the debugger prompt
-appears. By default, the prompt is set to "(gdb) ", but it may be changed via a
-command line option.
-
-<P>To <A NAME="display_cmd">execute commands</A> in the console window, simply enter
-the command in the display. If the debugger is busy, the message "Error: The
-debugger is busy." appears informing the user that the command was not accepted.</P>
-
-<P>Whenever a command is executed, the debugger's windows will update to display
-any new state information. Any output from the command is also echoed to the Console
-Window for ease of use. If an error occurs, an error message is printed to the Console
-Window. All error messages appear in the Console Window using a red colored typeface.
-</P>
-
-<P>The Console Window responds to special character commands just as a shell window
-does: it has a history mechanism which allows the user to scan previously used commands
-by pressing the up and down arrow keys on the keyboard, jumping to the beginning or
-end of a line by entering Ctrl-A or Ctrl-E, erasing a line by pressing Ctrl-K, and
-more. Users familiar with GNU Emacs will recognize these keys as commonly used
-keystrokes from that editor.</P>
-
-<H3><A NAME="display_hlp">Getting Help</A></H3>
-The Console Window has its own online help system. To access the help system, enter
-"help" at the prompt and follow the on-screen instructions. For more help, please
-consult the <!-- What is this really called? --> <I>GDB User's Guide</I>.
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/trace/gbl_pref.html b/gdb/gdbtk/library/help/trace/gbl_pref.html
deleted file mode 100644
index 2760750c4e9..00000000000
--- a/gdb/gdbtk/library/help/trace/gbl_pref.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Global Preferences Help</TITLE>
-</HEAD>
-<BODY>
-<H1>Global Preferences</H1>
-<H3>Overview</H3>
-<P>Not yet done.</P>
-
-<P>Global Preferences topics:
-<UL>
- <LI><UL><A HREF="#">stuff</A>
- <LI><A HREF="#">stuff</A>
- <LI><A HREF="#">stuff</A>
- </UL>
-</UL></P>
-
-<H3><A NAME="">stuff</A></H3>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/trace/help.html b/gdb/gdbtk/library/help/trace/help.html
deleted file mode 100644
index 3a3640da1a1..00000000000
--- a/gdb/gdbtk/library/help/trace/help.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Help Window Help</TITLE>
-</HEAD>
-<BODY>
-<H1>The Help Window</H1>
-<H2>Overview</H2>
-<P>This is some nice text which describes the help window, its role
-in deugging, and perhaps some of the nifty things people can do with
-this window.</P>
-
-<P>Help Window topics:
-<UL>
- <LI><UL><A HREF="#menus">Menus</A>
- <LI><A HREF="#menus_file">File Menu</A>
- <LI><A HREF="#menus_topics">Topics Menu</A>
- </UL>
- <LI><UL><A HREF="#display">Help Display</A>
- <LI><A HREF="#display_nav">Navigating the Help Window</A>
- <LI><A HREF="#display_link">Definition and Page Links</A>
- </UL>
-</UL></P>
-
-<H2><A NAME="menus">Menus</A></H2>
-<H3><A NAME="menus_file">File Menu</A></H3>
-<H3><A NAME="menus_topics">Topics Menu</A></H3>
-
-<H3><A NAME="display">Help Display</A></H3>
-<H3><A NAME="display_nav">Navigating the Help Window</A></H3>
-<H3><A NAME="display_link">Definition and Page Links</A></H3>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/trace/index.toc b/gdb/gdbtk/library/help/trace/index.toc
deleted file mode 100644
index 3559d66350e..00000000000
--- a/gdb/gdbtk/library/help/trace/index.toc
+++ /dev/null
@@ -1,10 +0,0 @@
-{Source Window} {source.html} {The Source Window}
-{Register Window} {register.html} {The Register Window}
-{Memory Window} {memory.html} {The Memory Window}
-{Locals Window} {locals.html} {The Locals Window}
-{Watch Window} {watch.html} {The Watch Window}
-{Tracepoint Window} {tp.html} {The Tracepoint Window}
-{Console Window} {console.html} {The Console Window}
-{Stack Window} {stack.html} {The Stack Window}
-{TDump Window} {tdump.html} {The Tracepoint Dump Window}
-{GPL} {license.html} {The GNU Public License}
diff --git a/gdb/gdbtk/library/help/trace/license.html b/gdb/gdbtk/library/help/trace/license.html
deleted file mode 100644
index b43da4cb3a4..00000000000
--- a/gdb/gdbtk/library/help/trace/license.html
+++ /dev/null
@@ -1,305 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>GNU General Public License</TITLE>
-</HEAD><BODY>
-<B>The GNU General Public License
-<P></P>
-</B>Version 2, June 1991
-<P></P>
-Copyright © 1989, 1991 Free Software Foundation, Inc.
-<BR>59 Temple Place / Suite 330, Boston, MA 02111-1307, USA
-<P></P>
-Everyone is permitted to copy and distribute verbatim copies of this license
-document, but changing it is not allowed.
-<P></P>
-<B>Preamble
-<P></P>
-</B>The licenses for most software are designed to take away your freedom to share
-and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and
-change free software to make sure the software is free for all its users. This General Public
-License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some
-other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs,
-too.
-<P></P>
-When we speak of free software, we are referring to freedom, not price. Our
-General Public Licenses are designed to make sure that you have the freedom to
-distribute copies of free software (and charge for this service if you wish),
-that you receive source code or can get it if you want it, that you can change the
-software or use pieces of it in new free programs; and that you know you can
-do these things.
-<P></P>
-To protect your rights, we need to make restrictions that forbid anyone to
-deny you these rights or to ask you to surrender the rights. These restrictions
-translate to certain responsibilities for you if you distribute copies of the
-software, or if you modify it.
-<P></P>
-For example, if you distribute copies of such a program, whether gratis or for
-a fee, you must give the recipients all the rights that you have. You must
-make sure that they, too, receive or can get the source code. And you must show
-them these terms so they know their rights.
-<P></P>
-We protect your rights with two steps: (1) copyright the software, and (2)
-offer you this license which gives you legal permission to copy, distribute and/or
-modify the software.
-<P></P>
-Also, for each author's protection and ours, we want to make certain that everyone understands that
-there is no warranty for this free software. If the software is modified by
-someone else and passed on, we want its recipients to know that what they have is
-not the original, so that any problems introduced by others will not reflect on
-the original authors' reputations.
-<P></P>
-Finally, any free program is threatened constantly by software patents. We
-wish to avoid the danger that redistributors of a free program will individually
-obtain patent licenses, in effect making the program proprietary. To prevent
-this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for
-copying, distribution and modification follow.
-<P></P>
-<B>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-<P></P>
-</B>0. This License applies to any program or other work which contains a notice
-placed by the copyright holder saying it may be distributed under the terms of this
-General Public License. The `Program”, below, refers to any such program or work, and a `work based on the Program' means either the Program or any derivative work under copyright law: that is
-to say, a work containing the Program or a portion of it, either verbatim or
-with modifications and/or translated into another language. (Hereinafter,
-translation is included without limitation in the term `modification'.) Each licensee is addressed as `you'.
-<P></P>
-Activities other than copying, distribution and modification are not covered
-by this License; they are outside its scope. The act of running the Program is
-not restricted, and the output from the Program is covered only if its contents
-constitute a work based on the Program (independent of having been made by
-running the Program). Whether that is true depends on what the Program does.
-<P></P>
-<OL><LI> You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this License
-and to the absence of any warranty; and give any other recipients of the Program
-a copy of this License along with the Program.
-<P></P>
-</OL>You may charge a fee for the physical act of transferring a copy, and you may
-at your option offer warranty protection in exchange for a fee.
-<P></P>
-<OL START="2"><LI> You may modify your copy or copies of the Program or any portion of it, thus
-forming a work based on the Program, and copy and distribute such modifications
-or work under the terms of Section 1 above, provided that you also meet all of
-these conditions:
-<P></P>
-</OL>a) You must cause the modified files to carry prominent notices stating that you
-changed the files and the date of any change.
-<P></P>
-b) You must cause any work that you distribute or publish, that in whole or in
-part contains or is derived from the Program or any part thereof, to be licensed
-as a whole at no charge to all third parties under the terms of this License.
-<P></P>
-c) If the modified program normally reads commands interactively when run, you
-must cause it, when started running for such interactive use in the most ordinary
-way, to print or display an announcement including an appropriate copyright
-notice and a notice that there is no warranty (or else, saying that you provide a
-warranty) and that users may redistribute the program under these conditions,
-and telling the user how to view a copy of this License. (Exception: if the
-Program itself is interactive but does not normally print such an announcement,
-your work based on the Program is not required to print an announcement.)
-<P></P>
-These requirements apply to the modified work as a whole. If identifiable
-sections of that work are not derived from the Program, and can be reasonably
-considered independent and separate works in themselves, then this License, and its
-terms, do not apply to those sections when you distribute them as separate
-works. But when you distribute the same sections as part of a whole which is a work
-based on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the entire whole,
-and thus to each and every part regardless of who wrote it.
-<P></P>
-Thus, it is not the intent of this section to claim rights or contest your
-rights to work written entirely by you; rather, the intent is to exercise the
-right to control the distribution of derivative or collective works based on the
-Program.
-<P></P>
-In addition, mere aggregation of another work not based on the Program with
-the Program (or with a work based on the Program) on a volume of a storage or
-distribution medium does not bring the other work under the scope of this License.
-<P></P>
-<OL START="3"><LI> You may copy and distribute the Program (or a work based on it, under Section
-2) in object code or executable form under the terms of Sections 1 and 2 above
-provided that you also do one of the following:
-<P></P>
-</OL>a) Accompany it with the complete corresponding machine-readable source code,
-which must be distributed under the terms of Sections 1 and 2 above on a medium
-customarily used for software interchange; or,
-<P></P>
-b) Accompany it with a written offer, valid for at least three years, to give any
-third party, for a charge no more than your cost of physically performing
-source distribution, a complete machine-readable copy of the corresponding source
-code, to be distributed under the terms of Sections 1 and 2 above on a medium
-customarily used for software interchange; or,
-<P></P>
-c) Accompany it with the information you received as to the offer to distribute
-corresponding source code. (This alternative is allowed only for noncommercial
-distribution and only if you received the program in object code or executable
-form with such an offer, in accord with Subsection b above.)
-<P></P>
-The source code for a work means the preferred form of the work for making
-modifications to it. For an executable work, complete source code means all the
-source code for all modules it contains, plus any associated interface definition
-files, plus the scripts used to control compilation and installation of the
-executable. However, as a special exception, the source code distributed need not
-include anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the operating
-system on which the executable runs, unless that component itself accompanies the
-executable.
-<P></P>
-If distribution of executable or object code is made by offering access to
-copy from a designated place, then offering equivalent access to copy the source
-code from the same place counts as distribution of the source code, even though
-third parties are not compelled to copy the source along with the object code.
-<P></P>
-<OL START="4"><LI> You may not copy, modify, sublicense, or distribute the Program except as
-expressly provided under this License. Any attempt otherwise to copy, modify,
-sublicense or distribute the Program is void, and will automatically terminate your
-rights under this License. However, parties who have received copies, or
-rights, from you under this License will not have their licenses terminated so long
-as such parties remain in full compliance.
-<P></P>
-<LI> You are not required to accept this License, since you have not signed it.
-However, nothing else grants you permission to modify or distribute the Program or
-its derivative works. These actions are prohibited by law if you do not accept
-this License. Therefore, by modifying or distributing the Program (or any work
-based on the Program), you indicate your acceptance of this License to do so,
-and all its terms and conditions for copying, distributing or modifying the
-Program or works based on it.
-<P></P>
-<LI> Each time you redistribute the Program (or any work based on the Program), the
-recipient automatically receives a license from the original licensor to copy,
-distribute or modify the Program subject to these terms and conditions. You
-may not impose any further restrictions on the recipients' exercise of the rights granted herein.
-<P></P>
-</OL>You are not responsible for enforcing compliance by third parties to this
-License.
-<P></P>
-<OL START="7"><LI> If, as a consequence of a court judgment or allegation of patent infringement
-or for any other reason (not limited to patent issues), conditions are imposed
-on you (whether by court order, agreement or otherwise) that contradict the
-conditions of this License, they do not excuse you from the conditions of this
-License. If you cannot distribute so as to satisfy simultaneously your obligations
-under this License and any other pertinent obligations, then as a consequence
-you may not distribute the Program at all. For example, if a patent license
-would not permit royalty-free redistribution of the Program by all those who
-receive copies directly or indirectly through you, then the only way you could
-satisfy both it and this License would be to refrain entirely from distribution of
-the Program.
-<P></P>
-</OL>If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply and the
-section as a whole is intended to apply in other circumstances.
-<P></P>
-It is not the purpose of this section to induce you to infringe any patents or
-other property right claims or to contest validity of any such claims; this
-section has the sole purpose of protecting the integrity of the free software
-distribution system, which is implemented by public license practices. Many people
-have made generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that system; it is up
-to the author/donor to decide if he or she is willing to distribute software
-through any other system and a licensee cannot impose that choice.
-<P></P>
-This section is intended to make thoroughly clear what is believed to be a
-consequence of the rest of this License.
-<P></P>
-<OL START="8"><LI> If the distribution and/or use of the Program is restricted in certain
-countries either by patents or by copyrighted interfaces, the original copyright
-holder who places the Program under this License may add an explicit geographical
-distribution limitation excluding those countries, so that distribution is
-permitted only in or among countries not thus excluded. In such case, this License
-incorporates the limitation as if written in the body of this License.
-<P></P>
-<LI> The Free Software Foundation may publish revised and/or new versions of the
-General Public License from time to time. Such new versions will be similar in
-spirit to the present version, but may differ in detail to address new problems
-or concerns.
-<P></P>
-</OL>Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and `any later version', you have the option of following the terms and conditions either of that
-version or of any later version published by the Free Software Foundation. If the
-Program does not specify a version number of this License, you may choose any
-version ever published by the Free Software Foundation.
-<P></P>
-<OL START="a"><LI> If you wish to incorporate parts of the Program into other free programs whose
-distribution conditions are different, write to the author to ask for
-permission. For software which is copyrighted by the Free Software Foundation, write to
-the Free Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status of all
-derivatives of our free software and of promoting the sharing and reuse of software
-generally.
-<P></P>
-</OL>NO WARRANTY
-<P></P>
-<OL START="b"><LI> BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE
-PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED
-IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM `AS IS' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
-NECESSARY SERVICING, REPAIR OR CORRECTION.
-<P></P>
-<LI> IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY
-COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
-PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
-SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
-INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
-THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
-PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-<P></P>
-</OL>END OF TERMS AND CONDITIONS
-<P></P>
-<B>How to Apply These Terms to Your New Programs
-<P></P>
-</B>If you develop a new program, and you want it to be of the greatest possible
-use to the public, the best way to achieve this is to make it free software
-which everyone can redistribute and change under these terms.
-<P></P>
-To do so, attach the following notices to the program. It is safest to attach
-them to the start of each source file to most effectively convey the exclusion
-of warranty; and each file should have at least the `copyright' line and a pointer to where the full notice is found.
-<P></P>
-<I>one line for the program's name and a brief idea of what it does.
-<BR></I>Copyright (C) 19<I>yy</I> <I>name of author</I>
-<BR>
-<BR>This program is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation; either version 2 of the License, or (at your option) any later
-version.
-<BR>
-<BR>This program is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-<BR>
-<BR>You should have received a copy of the GNU General Public License along with
-this program; if not, write to the Free Software Foundation, Inc., 59 Temple
-Place - Suite 330, Boston, MA 02111-1307, USA.
-<P></P>
-Also add information on how to contact you by electronic and paper mail.
-<P></P>
-If the program is interactive, make it output a short notice like the
-following example when it starts in an interactive mode:
-<P></P>
-Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes
-with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain
-conditions; type `show c' for details.
-<P></P>
-The hypothetical commands <B>show w</B> and <B>show c</B> should show the appropriate parts of the General Public License. Of course,
-the commands you use may be called something other than show w and show c; they can be mouse clicks or menu items—whatever suits your program.
-<P></P>
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a `copyright disclaimer' for the program, if necessary. The following is a sample (when copying, alter
-the names).
-<P></P>
-Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.
-<BR>
-<BR>signature of Ty Coon, 1 April 1989
-<BR>Ty Coon, President of Vice
-<P></P>
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may consider
-it more useful to permit linking proprietary applications with the library. If
-this is what you want to do, use the GNU Library General Public License instead of this License.
-<P></P>
-</BODY>
-</HTML> \ No newline at end of file
diff --git a/gdb/gdbtk/library/help/trace/locals.html b/gdb/gdbtk/library/help/trace/locals.html
deleted file mode 100644
index 05998244d96..00000000000
--- a/gdb/gdbtk/library/help/trace/locals.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Locals Window Help</TITLE>
-</HEAD>
-<BODY>
-<H1>The Locals Window</H1>
-<H2>Overview</H2>
-<P>The Locals Window displays all local variables in scope. It may be used to
-visualize local variables. Local variables need to be collected
-before they can be viewed. See <A HREF="tracedlg.html#t_actions_add">Adding
-an Action</A> in the Tracepoint Dialog for more information.</P>
-
-<P>Locals Window topics:
-<UL>
- <LI><UL><A HREF="#menus">Variable Menu</A>
- <LI><A HREF="#menus_fmt">Format</A>
- </UL>
- <LI><UL><A HREF="#display">Locals Display</A>
- <LI><A HREF="#display_deref">Dereferencing Pointers</A>
- <LI><A HREF="#display_struct">Viewing a Structure or Class</A>
- <LI><A HREF="#display_popup">Locals Pop-up Menu</A>
- </UL>
-</UL></P>
-
-<H3><A NAME="menus">Variable Menu</A></H3>
-The Variable Menu gives on-screen access to the funtions of the Locals Window.
-To use any of these functions, first use the left mouse button to select a
-variable from the display. Then select:
-
-<DL>
- <DT><A NAME="menus_fmt">Format</A>
- <DD>Change the display format of the variable
-</DL>
-
-<H3><A NAME="display">Locals Display</A></H4>
-The Locals Window Display consists of a scrolled listbox which contains all
-local variables, one per line. Locals which were not collected at the current
-tracepoint will display a memory-access error. To use any of the functions of
-the Locals Window, use the left mouse button to select any element from the
-Display.
-
-<P>Pointers, structures, and classes appear in the display with small exapansion
-box before their names. To <A NAME="display_deref">dereference pointers</A> or
-<A NAME="display_struct">view the members of classes or structures</A>, click
-the closed expansion box (which appears as a small plus sign, "+") to "expand"
-the listing. The expansion box changes to a minus sign, "-", indicating that the
-display is now open. Pointers, structures and classes may be expanded recursively
-to allow multiple pointer dereferences and embedded structure viewing.
-
-<P>The Locals Display updates as the trace buffer is navigated, highlighting
-in blue those variables whose values have changed.</P>
-
-<P>The Locals Window will, by default, display all pointers in hexadecimal and all
-other variables in decimal. To change the default display of variables, use the
-"set output-radix" command in the console window. (Type "help set output-radix" in the
-console window for help. To make this change permanent, it must be added to the user's
-init file -- .gdbinit.) To change the display format for a variable,
-select the Format option from either the Variable Menu or the
-<A HREF="#display_popup">Locals Pop-up Menu</A>.
-<BR>
-
-<H4><A NAME="display_popup">Locals Pop-up Menu</A></H4>
-The Locals Pop-up Menu provides quick access to the functions of the Locals Window.
-To use the Locals Pop-up Menu, first select a variable from the Display (by clicking
-the left mouse button on it) and click the right mouse button, choosing from the
-pop-up:
-<DL>
- <DT>Format
- <DD>Change the display format of the variable. The variable may be displayed
- as:
- <DL>
- <DT>Hex
- <DD>hexadecimal (base 16)
- <DT>Decimal
- <DD>decimal (base 10)
- <DT>Binary
- <DD>binary (base 2)
- <DT>Octal
- <DD>octal (base 8)
- </DL>
-</DL>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/trace/memory.html b/gdb/gdbtk/library/help/trace/memory.html
deleted file mode 100644
index ad1cb36b9d1..00000000000
--- a/gdb/gdbtk/library/help/trace/memory.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Memory Window Help</TITLE>
-</HEAD>
-<BODY>
-<H1>The Memory Window</H1>
-<H2>Overview</H2>
-<P>The Memory Window allows users to display the contents of collected
-memory. The Memory Window Preferences controls all of the display
-characteristics of the Memory Window.</P>
-
-<P>Memory Window topics:
-<UL>
- <LI><UL><A HREF="#menus">Address Menu</A>
- <LI><A HREF="#menus_auto">Auto Update</A>
- <LI><A HREF="#menus_now">Update Now</A>
- <LI><A HREF="#menus_prefs">Preferences</A>
- </UL>
- <LI><UL><A HREF="#display">Memory Display</A>
- <LI><A HREF="#display_nav">Navigating the Memory Window</A>
- <LI><A HREF="#display_popup">Memory Pop-up Menu</A>
- </UL>
- <LI><UL><A HREF="#prefs">Memory Window Preferences</A>
- <LI><A HREF="#prefs_size">Size of the Display Cell</A>
- <LI><A HREF="#prefs_fmt">Format of the Display Cell</A>
- <LI><A HREF="#prefs_bytes">Size of the Memory Window</A>
- <LI><A HREF="#prefs_misc">Miscellaneous</A>
- </UL>
-</UL></P>
-
-<H3><A NAME="menus">Address Menu</A></H3>
-<DL>
- <DT><A NAME="menus_auto">Auto Update</A>
- <DD>When selected, casues the Memory Window to update the Display.
- <DT><A NAME="menus_now">Update Now</A>
- <DD>Forces the Memory Window to update the Display.
- <DT><A NAME="menus_prefs">Preferences</A>
- <DD>Opens the Memory Window Preferences dialog.
-</DL>
-
-<H3><A NAME="display">Memory Display</A></H3>
-Like the <A HREF="register.html">Register Window</A>, the Memory Window
-Display is organized into a spreadsheet. The address of any cell in the
-Display can be determined by appeding the row and column headers for the
-cell. Optionally, an ASCII display of the memory appears at the right.
-Any non-ASCII-representable byte in memory will appear in the ASCII Display
-as a control character (a dot, ".", by default). The <A HREF="#pref">Memory
-Preferences Dialog</A> may be used to alter the appearance of the
-Memory Window. Any uncollected memory will appear as "N/A", indicating that
-this memory was not collected when the trace experiment was run.
-
-<P><A NAME="display_nav">To navigate the Memory Window</A>, use the mouse
-and click the cell of interest. As an alternative, pressing the TAB key on
-the keyboard will focus successive cells, from left to right, top to bottom.
-The focus will wrap from the bottom of the Display to the top.</P>
-<BR>
-
-<H4><A NAME="display_popup">Memory Pop-up Menu</A></H4>
-Clicking the right mouse button while the mouse cursor lies within the
-bounds of any cell will allow users to:
-<DL>
- <DT>Auto Update
- <DD>When selected, the Memory Window will track changes in
- memory shown in the Display. Cells in which changes have
- occured will be highlighted. When not selected, the Memory
- Window is "frozen", representing a "snapshot" of memory.
- <DT>Update Now
- <DD>Causes the Memory Window to update all the cells shown.
- <DT>Go To <I>address</I>
- <DD>The Memory Window Display is updated to show memory starting
- at address <I>address</I>.
- <DT>Open New Window at <I>address</I>
- <DD>A new Memory Window is opened, displaying memory at address
- <I>address</I>
- <DT>Memory Preferences...
- <DD>Opens the Memory Window Preferences for editing the appearance
- of the Memory Window Display.
-</DL>
-<BR>
-
-<H3><A NAME="prefs">Memory Window Preferences</A></H3>
-Memory Window Preference Dialog governs the appearance of the Memory Window:
-the total number of bytes displayed, the size of each cell, ASCII control
-character.
-<BR>
-
-<H4><A NAME="prefs_size">Size of the Display Cells</A></H4>
-This attribute controls how many bytes appear in each cell. Valid cell
-sizes in the Memory Window may be:
-<DL>
- <DT>Byte
- <DD>Each cell is exactly one byte
- <DT>Half Word
- <DD>Cells are displayed with two bytes
- <DT>Word
- <DD>Each cell contains four bytes
- <DT>Double Word
- <DD>Cells contain eight bytes
- <DT>Float
- <DD>Each cell contains four bytes, displayed as a floating point
- number
- <DT>Double Float
- <DD>Cells are displayed as floating point, eight bytes each
-</DL>
-<BR>
-
-<H4><A NAME="prefs_fmt">Format of the Display Cells</A></H4>
-The Format option of the Memory Preferences Dialog governs how the debugger
-represents the memory. Possible representations include:
-
-<DL>
- <DT>Binary
- <DD>The values are shown as binary numbers
- <DT>Signed Decimal
- <DD>The values are shown as signed decimal numbers
- <DT>Octal
- <DD>Each cell is represented as an octal number
- <DT>Unsigned Decimal
- <DD>Values are displayed as unsigned decimals
- <DT>Hex
- <DD>Memory is displayed as a hexadecimal number. This is
- the default.
-</DL>
-<BR>
-
-<H4><A NAME="prefs_bytes">Size of the Memory Window</A></H4>
-The size of the memory window determines how much memory is actually
-presented to the user. The total number of bytes shown can either be
-determined by the size of the window, in which case resizing the Memory
-Window will cause more or less memory to be displayed, or fixed at some
-specified number of bytes. By default, the Memory Window shows 128 bytes
-of memory.
-<BR>
-
-<H4><A NAME="prefs_misc">Miscellaneous</A></H4>
-Miscellaneous memory preferences include the option to display the ASCII
-representation of the memory, including what character to use for non-ASCII
-bytes (the "control" character). Additionally, users may specify the number
-of bytes per row, either four, eight, sixteen, or thirty-two. The default is
-sixteen bytes per row.
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/trace/reg_pref.html b/gdb/gdbtk/library/help/trace/reg_pref.html
deleted file mode 100644
index b21a5747df2..00000000000
--- a/gdb/gdbtk/library/help/trace/reg_pref.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Register Window Preferences Help</TITLE>
-</HEAD>
-<BODY>
-<H1>Register Window Preferences</H1>
-<H3>Overview</H3>
-<P>Not yet done.</P>
-
-<P>Register Window Preferences topics:
-<UL>
- <LI><UL><A HREF="#">stuff</A>
- <LI><A HREF="#">stuff</A>
- <LI><A HREF="#">stuff</A>
- </UL>
-</UL></P>
-
-<H3><A NAME="">stuff</A></H3>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/trace/register.html b/gdb/gdbtk/library/help/trace/register.html
deleted file mode 100644
index d0735593a12..00000000000
--- a/gdb/gdbtk/library/help/trace/register.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Register Window Help</TITLE>
-</HEAD>
-<BODY>
-<H1>The Register Window</H1>
-<H2>Overview</H2>
-<P>The Register Window lists all the registers and their contents for
-the selected stack frame. It permits viewing the contents of registers
-in different formats and some display customizations.</P>
-
-<P>Any register that was not collected will be displayed as having a value
-of "0x0". To collect registers, add them to the collection action in the
-<A HREF="tracedlg.html">Tracepoint Dialog</A>.
-
-<P>The Register Window will update the register contents in the display
-to match the stack frame currently being viewed in the <A HREF="source.html">
-Source Window</A> and <A HREF="stack.html">Stack Winodw</A>.</P>
-
-<P>Register Window topics:
-<UL>
- <LI><UL><A HREF="#menus">Register Menu</A>
- <LI><A HREF="#menus_fmt">Format</A>
- <LI><A HREF="#menus_remove">Remove from Display</A>
- <LI><A HREF="#menus_all">Display All Registers</A>
- </UL>
- <LI><UL><A HREF="#display">Register Display</A>
- <LI><A HREF="#display_nav">Navigating the Register Display</A>
- <LI><A HREF="#display_popup">Register Pop-up Menu</A>
- <LI><A HREF="#display_format">Changing the Display Format of
- a Register</A>
- <LI><A HREF="#display_remove">Removing a Register
- from the display</A>
- <LI><A HREF="#display_all">Displaying all Registers</A>
- </UL>
-</UL></P>
-
-<H3><A NAME="menus">Register Menu</A></H3>
-The Register Menu provides on-screen access to the functionality of the
-Register Window. To use any item from this menu, first use the mouse and
-select (click the left mouse button) on any register cell. Users may then
-select:
-<BR>
-<DL>
- <DT><A NAME="menus_fmt"><A HREF="#display_format">Format</A></A>
- <DD>Change the display format of the selected register
- <DT><A NAME="menus_remove"><A HREF="#display_remove">Remove
- from Display</A></A>
- <DD>Remove the selected register from the Register
- Window Display
- <DT><A NAME="menus_all"><A HREF="#display_all">Display All
- Registers</A></A>
- <DD>Display all registers in the Display. This item
- is only available when a register was previously
- removed from the Display.
-</DL>
-
-<H3><A NAME="display">Register Display</A></H3>
-The Register Display contains name and value pairs for each register
-available on the target hardware. These "cells" are layed out as a
-spreadsheet for ease of use.
-
-<P><A NAME="display_nav"></A>To navigate the Register Display, use either
-the mouse and left mouse button or the arrow keys on the keyboard to
-highlight the appropriate cell. Users may then use the <A HREF="#menus">
-Register Menu</A> or use the Register Pop-up Menu to access special display
-options for the Register Window.</P>
-<BR>
-
-<H4><A NAME="display_popup">The Register Pop-up Menu</A></H4>
-All of the special functions of the register window are accessed through
-the Register Pop-up Menu. To use the Menu, simply select a register (see
-<A HREF="#display_nav">Navigating the Register Display</A>) and click the
-right mouse button. The Menu offers:
-<DL>
- <DT><A NAME="display_format">Format</A>
- <DD><DL>Change the display format of the register. Valid display types
- are:
- <DT>Hex
- <DD>The register's contents are displayed in
- hexadecimal (base 16).
- <DT>Decimal
- <DD>The value is shown as
- a decimal number (base 10).
- <DT>Natural
- <DD>The register is displayed in its natural format.
- <DT>Binary
- <DD>The contents of the register are displayed
- as a binary number (base 2).
- <DT>Octal
- <DD>The register's contents are shown in octal (base 8).
- <DT>Raw
- <DD>The raw contents of the register are shown.
- </DL>
- <DT><A NAME="display_remove">Remove</A>
- <DD>Remove the selected register from the display. To display
- the removed register again, select the "Display All Registers"
- option from the Register Menu or the Register Pop-up Menu.
- <DT><A NAME="display_all">Display All Registers</A>
- <DD>Causes the Register Window Display to show all registers,
- including those which were previously "removed". This menu
- item is only available when removed registers exist.
-</DL>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/trace/source.html b/gdb/gdbtk/library/help/trace/source.html
deleted file mode 100644
index 9ec0005227b..00000000000
--- a/gdb/gdbtk/library/help/trace/source.html
+++ /dev/null
@@ -1,371 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Source Window Help</TITLE>
-</HEAD>
-<BODY>
-<CENTER><H1>The Source Window</H1></CENTER>
-<H3>Overview</H3>
-<BR>
-The Source Window is the primary interface between the user and the
-debugger; it is automatically opened when the debugger starts.
-The Source Window displays the status of the trace experiment, controls
-navigation of the trace buffer, and allows visualization of the program
-execution.
-
-<P>Source Window topics:
-<UL>
- <LI><UL><A HREF="#menus">Menus</A>
- <LI><A HREF="#menus_file">File Menu</A>
- <LI><A HREF="#menus_run">Run Menu</A>
- <LI><A HREF="#menus_view">View Menu</A>
- <LI><A HREF="#menus_trace">Trace Menu</A>
- <LI><A HREF="#menus_prefs">Preferences Menu</A>
- </UL>
- <LI><UL><A HREF="#toolbar">Toolbar</A>
- <LI><A HREF="#toolbar_exec">Trace Control Buttons</A>
- <LI><A HREF="#toolbar_window">Window Buttons</A>
- <LI><A HREF="#toolbar_frame">Frame Control</A>
- </UL>
- <LI><UL><A HREF="#display">Source Window Display</A>
- <LI><A HREF="#display_balloon">Variable Balloons</A>
- <LI><A HREF="#display_popup">Source Pop-up Mens</A>
- </UL>
- <LI><UL><A HREF="#status">Source Window Status Bars</A>
- <LI><A HREF="#status_bar">Program Status Bar</A>
- <LI><A HREF="#status_mode">Source Display Status Bar</A>
- </UL>
- <LI><A HREF="#search">Search Entry</A>
-</UL></P>
-
-<H3><A NAME="menus">Menus</A></H3>
-<H4><A NAME="menus_file">File Menu</A></H4>
-The File menu contains the following items:
-<DL>
- <DT>Open
- <DD>Opens a file selection dialog to select the executable to debug
- <DT>Target Settings...
- <DD>Opens the <A HREF="target.html">Target Selection Dialog</A>
- to edit target settings
- <DT>Page Setup
- <DD>(Windows only) Opens the Windows Page Setup dialog to
- configure printing
- <DT>Print
- <DD>(Windows only) Print the contents of the Source Window Display
- <DT>Exit
- <DD>Exits the debugger
-</DL>
-
-<H4><A NAME="menus_run">Run Menu</A></H4>
-The Run menu contains the following items:
-<DL>
- <DT>Connect to target
- <DD>Establish a connection to a target. This option will open
- the <A HREF="target.html">Target Selection Dialog</A> if no
- previous connection has been established in the current
- session.
- <DT>Begin Collection
- <DD>Start collecting trace data on the target
- <DT>End Collection
- <DD>Stop collecting trace data on the target
- <DT>Disconnect
- <DD>Disconnect the debugger from the target
-</DL>
-
-<H4><A NAME="menus_view">View Menu</A></H4>
-The View menu contains the following items:
-<DL>
- <DT>Stack
- <DD>Open a <A HREF="stack.html">Stack Window</A>
- <DT>Registers
- <DD>Open a <A HREF="register.html">Register Window</A>
- <DT>Memory
- <DD>Open a <A HREF="memory.html">Memory Window</A>
- <DT>Watch Expressions
- <DD>Open a <A HREF="watch.html">Watch Window</A>
- <DT>Local Variables
- <DD>Open a <A HREF="locals.html">Locals Window</A>
- <DT>Tracepoints
- <DD>Open a <A HREF="tp.html">Tracepoint Window</A>
- <DT>Tdump
- <DD>Open a <A HREF="tdump.html">Tracepoint Dump Window</A>
- <DT>Console
- <DD>Open a <A HREF="console.html">Console Window</A>
-</DL>
-
-<H4><A NAME="menus_trace">Trace Menu</A></H4>
-The Trace Menu contains the following items:
-<DL>
- <DT>Next Hit
- <DD>Update all displays with the next tracepoint in the
- tracepoint buffer
- <DT>Previous Hit
- <DD>Go to the previous tracepoint in the buffer
- <DT>First Hit
- <DD>View the first tracepoint in the buffer
- <DT>Next Line Hit
- <DD>Go to the next tracepoint in the buffer in the same
- frame as the current tracepoint
- <DT>Next Hit Here
- <DD>Jump to the next reference of the current tracepoint
- in the buffer
- <DT>Tfind Line...
- <DD>Opens a dialog allowing the user to specify which source
- line to inpect in the tracepoint buffer
- <DT>Tfind PC...
- <DD>Opens a dialog allowing the user to specify the PC of the
- tracepoint to view
- <DT>Tfind Tracepoint...
- <DD>Opens a dialog allowing the user to specify which tracepoint
- to view (by number). This option is most commonly used in
- conjunction with the <A HREF="console.html">Console Window</A>.
-</DL>
-
-<H4><A NAME="menus_prefs">Preferences Menu</A></H4>
-The Preferences menu contains the following items:
-<DL>
- <DT>Global
- <DD>Opens the <A HREF="gbl_pref.html">Global Preferences Dialog</A>
- and allows editing of global settings
- <DT>Source
- <DD>Opens the <A HREF="src_pref.html">Source Preferences Dialog</A>
- and allows editing of Source Window settings
- <DT>Register
- <DD>Opens the <A HREF="reg_pref.html">Register Preferences Dialog</A>
- and allows editing of Register Window settings
-</DL>
-
-<H3><A NAME="toolbar">Toolbar</A></H3>
-The Source Window toolbar consists of three functional sections: trace
-control buttons, debugger window buttons, and stack frame control buttons.
-<BR>
-
-<H4><A NAME="toolbar_exec">Tracing Control Buttons</A></H4>
-These convenience buttons provide on-screen access to the most important
-debugger tracing control functions:
-<DL>
- <DT><A NAME="run_button"><IMG SRC="%run"> TStart</A> or
- <A NAME="stop_button"><IMG SRC="%stop"></A> TStop
- <DD>The TStart Button causes the target to start collecting trace data
- <DD>The TStop Button causes the target to stop collecting trace data
- <DT>Next Hit
- <DD>Update all displays with the next tracepoint in the
- tracepoint buffer
- <DT>Previous Hit
- <DD>Go to the previous tracepoint in the buffer
- <DT>First Hit
- <DD>View the first tracepoint in the buffer
- <DT>Next Line Hit
- <DD>Go to the next tracepoint in the buffer in the same
- frame as the current tracepoint
- <DT>Next Hit Here
- <DD>Jump to the next reference of the current tracepoint
- in the buffer
-</DL>
-
-<H4><A NAME="toolbar_window">Window Buttons</A></H4>
-The Debugger Window buttons give instant access to the Debugger's
-auxillary windows:
-<DL>
- <DT><A NAME="register_button"><IMG SRC="%register"></A> Registers
- <DD>Open a <A HREF="register.html">Register Window</A>
- <DT><A NAME="memory_button"><IMG SRC="%memory"></A> Memory
- <DD>Open a <A HREF="memory.html">Memory Window</A>
- <DT><A NAME="stack_button"><IMG SRC="%stack"></A> Stack
- <DD>Open a <A HREF="stack.html">Stack Window</A>
- <DT><A NAME="watch_button"><IMG SRC="%watch"></A> Watch Expressions
- <DD>Open a <A HREF="watch.html">Watch Window</A>
- <DT><A NAME="locals_button"><IMG SRC="%locals"></A> Local Variables
- <DD>Open a <A HREF="locals.html">Locals Window</A>
- <DT><A NAME="tracepoints_button">Tracepoints</A>
- <DD>Open a <A HREF="tp.html">Tracepoint Window</A>
- <DT>Tracepoint Dump Window
- <DD>Open a <A HREF="tdump.html">Tdump Window</A>
- <DT><A NAME="console_button"><IMG SRC="%console"></A> Console
- <DD>Open a <A HREF="console.html">Console Window</A>
-</DL>
-
-<H4><A NAME="toolbar_frame">Frame Control</A></H4>
-The Frame Control area of the toolbar displays information about the PC of
-the current frame, and the frame control buttons may be used to navigate
-through the call stack. Whenever any of these buttons are used, both the
-Source Window Display and the <A HREF="stack.html">Stack Window</A> will
-show the selected frame. In order to use the Stack Window in tracing mode,
-the stack pointer must be collected.
-<DL>
- <!-- is this a problem for windows? no file join? -->
- <DT><IMG SRC="images/frame_info.gif"> Frame Information Display
- <DD>The left half of the frame information display shows the
- value of the PC in the current frame. The right half shows
- the line number of the PC in the source file, if available.
- <DT><A NAME="up_button"><IMG SRC="%up"></A> Up
- <DD>Select and view the stack frame that called this one
- <DT><A NAME="down_button"><IMG SRC="%down"></A> Down
- <DD>Select and view the stack frame called by this one
- <DT><A NAME="bottom_button"><IMG SRC="%bottom"></A> Bottom
- <DD>Select and view the bottom-most stack frame
-</DL>
-
-<H3><A NAME="display">Source Display</A></H3>
-The Source Display is used for many things: browsing source code, setting,
-editing, and deleting tracepoints, and a few other special functions.
-Executable lines (those for which executable code was generated by the
-compiler) are denoted with a marker (a dash, "-") in the first column of
-the display.
-
-<P>The debugger highlights the PC in the current frame in either green,
-indicating that the PC is in the current tracepoint, or gold, indicating
-that the PC is contained in a frame that is not the current tracepoint, i.e.,
-as part of a stack backtrace. A blue highlight is used by the debugger to
-indicate a browsing position. All highlight colors
-are user-selectable in the <A HREF="src_pref.html">Source Preferences</A>.</P>
-<BR>
-
-<H4><A NAME="setting_a_tracepoint">Setting a Tracepoint</A></H4>
-Moving the mouse pointer over the "hot spot" of an executable line will change
-the mouse cursor to a large dot. Clicking the left mouse button will then allow
-tracepoint to be inserted at this line. If no tracepoint exists, the
-<A HREF="tracedlg.html">Add Tracepoint Dialog</A> will appear. If a tracepoint
-is installed, the dash in the left margin will change into a magenta breakdot.
-If a tracepoint exists, the <A HREF="tracedlg.html">Edit Tracepoint Dialog</A>
-appears, allowing either modification of the tracepoint or deletion of the
-tracepoint. If the tracepoint is deleted, the breakdot will revert to a dash.</P>
-
-<P>The executable line marker shows the status of each line: an empty marker
-(the dash) indicates that no tracepoint is set at the line. A colored breakdot
-indicates that a tracepoint exists at the line.</P>
-
-<P>The display will attempt to show the value of variables in
-<A NAME="display_balloon">variable balloons</A>. To activate a
-variable balloon, simply hold the mouse cursor over the name of
-a variable in the Source Display for a second or two: the debugger displays the
-name of the variable, its type, and its value in a pop-up balloon. If the
-variable was not collected, the Variable Balloon will show a memory-access error.</P>
-<BR>
-
-<H4><A NAME="display_popup">Source Pop-up Menus</A></H4>
-The Source Display has two pop-up menus. One is activated by clicking the
-right mouse button when the mouse cursor is over an executable line marker's
-hot spot. This pop-up menu provides access to:
-<DL>
- <DT>Set Tracepoint
- <DD>Opens the <A HREF="#tracedlg">Add/Edit Tracepoint Dialog</A>,
- which allows new tracepoints to be set and modification and
- deletion of existing tracepoints.
-</DL>
-
-<P>The other pop-up menu is activated by clicking the right mouse button
-anywhere else in the Source Display. It is only available when a variable
-or number in the display lies below the mouse cursor or is selected
-(by clicking the left mouse button and dragging the mouse to highlight
-the variable/number). The pop-up menu allows users to:
-<DL>
- <DT><A NAME="add_to_watch">Add <I>expr</I> to Watch</A>
- <DD>Adds the selected expression to the <A HREF="watch.html">Watch
- Window</A>, opening it, if necessary.
- <DT>Dump Memory at <I>expr</I>
- <DD>Opens a new <A HREF="memory.html">Memory Window</A> at the
- selected expression. If the expression is a variable, then
- the Memory Window is opened with memory addresses starting
- at the value of the variable.
- <DT>Set Tracepoint Range
- <DD>This option is only available when a range of lines is highlighted
- in the Source Display. It allows tracepoints with the same
- properties to be set at every executable line in the range. If
- any tracepoints exist in the range already, the debugger will
- ask if the properties of the existing tracepoint should be
- replaced with the properties of the range.
-</DL>
-</P>
-
-<H4><A NAME="status">Source Window Status Bars</A></H4>
-The Source Window has two status bars which inform the user of the
-status of the program (the "status bar") and the status of the Source
-Window.
-
-<P>The <A NAME="status_bar">Program Status Bar</A> (or simply "Status Bar")
-displays the status of the program. Common messages seen here include:
-<DL>
- <DT>No program loaded.
- <DD>No program has been loaded into target memory.
- <DT>Inspecting trace at <I>line/address</I>
- <DD>The debugger is inspecting the tracepoint at line
- <I>line</I> or address <I>address</I>. Use the
- <A HREF="#toolbar_exec">Tracing Control Buttons</A>
- to navigate through the trace buffer.
-</DL>
-<P>The Status Bar also displays some help information. For instance,
-the Status Bar will show the function of a button on the toolbar or
-the Source Display Status Bar as well as any keyboard shortcut for this
-button.</P>
-<BR>
-
-<H4><A NAME="status_mode">Source Display Status Bar</A></H4>
-current state of the Source Window: the name of the file displayed in
-the Display, the name of the function in the Display which contains
-the PC for the current frame (if any), and the display mode.
-
-<P>The <A NAME="file_selector">Source File Selector</A> is a dropdown
-menu which contains the names of all the files that were compiled into
-the program being debugged.</P>
-
-<P>Normally, the File Selector displays the name of the file currently being
-viewed, but any file from the dropdown menu may be selected for browsing.
-Simply select the file to view from the available choices (or type it directly
-into the File Selector) and the Source Window will load that file into
-the Display. To return to the current tracepoint, simply press the
-<A HREF="#bottom_button">Bottom Frame Control Button</A>.</P>
-
-<P>The <A NAME="function_selector">Source Function Selector</A> displays the
-name of the function containing the Source Window's PC, if one exists, but it
-may be used to browse any function in the current file. Simply type the name
-of the desired function into the Function Selector or select it from the
-dropdown menu. The Source Window's PC is updated to point at this function.
-To return to the current tracepoint, simply press the
-<A HREF="#bottom_button">Bottom Frame Control Button</A>.</P>
-
-<P>The <A NAME="mode_selector">Source Display Mode Selector</A> displays
-the viewing mode of the current file/function shown in the Source
-Window Display.</P>
-
-<P>The Display Mode Selector may be used to change the view of the current
-source file. The available display modes are
-<DL>
- <DT>SOURCE
- <DD>The contents of the Display are shown as source code.
- If source code is not available (either because no debugging
- information is available or the source file is not found),
- the Source Window will revert the Display Mode to "ASSEMBLY".
- <DT>ASSEMBLY
- <DD>A disassembly of the target's memory is shown in the Display.
- Even assembly source files show a disassembly of target memory;
- to see the assembly source code, use the SOURCE mode. Note that the
- debugger can only display assmebly code on a function-by-function
- basis. It cannot display all the instructions generated from a single
- source file.
- <DT>MIXED
- <DD>The Display shows source code mixed with the assembler
- instructions which were generated for those lines by the
- compiler for the current funtion. Note that the addresses
- of the assembly lines is not necessarily monotonically
- increasing. If the source file associated with the function
- cannot be found, the Source Window will revert to ASSEMBLY mode.
- <DT>SRC+ASM
- <DD>The Source Window Display is divided into two panes: an
- assembly pane and a source pane. Tracepoints may be set/cleared
- in either pane.
-</DL>
-<BR>
-
-<H3><A NAME="search">Search Entry</A></H3>
-The Search Entry facilitates searching for text in the Source Window Display. Simply enter the
-text to be found into the Search Entry and press the Enter key on the keyboard to search
-forwards in the Source Window Display (hold down ths Shift key to search backwards). If
-a match is found, it is highlighted in the Source Window and the Program Status Bar
-displays information about where the match was found.
-
-<P>The Search Entry can also jump the Source Window to a specific line. Enter the line
-number preceeded by an at-sign (@) into the Search Entry and press enter. If entered
-line number is greater than the total number of lines in the Source Window Display,
-the Display will jump to the end of the current file.</P>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/trace/src_pref.html b/gdb/gdbtk/library/help/trace/src_pref.html
deleted file mode 100644
index e8547964653..00000000000
--- a/gdb/gdbtk/library/help/trace/src_pref.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Source Window Preferences Help</TITLE>
-</HEAD>
-<BODY>
-<H1>Source Window Preferences</H1>
-<H3>Overview</H3>
-<P>Not yet done.</P>
-
-<P>Source Preferences topics:
-<UL>
- <LI><UL><A HREF="#">stuff</A>
- <LI><A HREF="#">stuff</A>
- <LI><A HREF="#">stuff</A>
- </UL>
-</UL></P>
-
-<H3><A NAME="">stuff</A></H3>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/trace/stack.html b/gdb/gdbtk/library/help/trace/stack.html
deleted file mode 100644
index 25bbf0b54f4..00000000000
--- a/gdb/gdbtk/library/help/trace/stack.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Stack Window Help</TITLE>
-</HEAD>
-<BODY>
-<H1>The Stack Window</H1>
-<H3>Overview</H3>
-<P>The Stack Window allows users to view the call stack and jump between
-levels of the stack. To use the Stack Window in tracepoint mode, the
-stack pointer must be collected. See
-<A HREF="tracedlg.html#t_actions_add">Adding an Action</A> in the Tracepoint
-Dialog for more information on collecting registers.</P>
-
-<P>Stack Window topics:
-<UL>
- <LI><UL><A HREF="#display">Stack Display</A>
- <LI><A HREF="#display_nav">Navigating the Stack Window</A>
- <LI><A HREF="#display_lvl">Changing the Stack Level</A>
- </UL>
-</UL></P>
-
-<H3><A NAME="display">Stack Display</A></H3>
-The Stack Display consists of a listbox which displays levels of the call stack
-one per line. Each line contains the level number (useful when using the <A
-HREF="console.html">Console Window</A>) and a description of the function executing
-in that level. Typically, the function name and either the address of the function
-or the file and line number where the function is defined are displayed. The
-Stack Window may also be used to jump between levels of the stack.
-<BR>
-
-<H4><A NAME="display_nav">Navigating the Stack Window</A></H4>
-Navigation of the Stack Window is accomplished by clicking on the desired level
-with the left mouse button. The <A HREF="source.html#display">Source Window
-Display</A> updates to show the selected frame. All other secondary windows,
-<A HREF="register.html">Registers</A>, <A HREF="watch.html">Watch</A>, and
-<A HREF="locals.html">Locals</A> update their displays for the selected frame.
-<BR>
-
-<H4><A NAME="display_lvl">Changing Stack Levels</A></H4>
-To switch frames, simply click the left mouse button on the desired frame and the
-debugger will switch contexts, updating all windows. The selected frame is highlighted
-(in gold, by default).
-
-<P>As an alternative, changing stack levels may be accomplished via the
-<A HREF="source.html#toolbar_frame">Frame Control Buttons</A> on the Source Window's
-Toolbar. These buttons may be used to change frames one level at a time (either
-immediately up or immediately down) or to jump to the bottom-most stack frame.
-See <A HREF="source.html#toolbar_frame">Source Frame Control Buttons</A> for more
-information.</P>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/trace/target.html b/gdb/gdbtk/library/help/trace/target.html
deleted file mode 100644
index 83c6420a138..00000000000
--- a/gdb/gdbtk/library/help/trace/target.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Target Selection Help</TITLE>
-</HEAD>
-<BODY>
-<H1>The Target Selection Dialog</H1>
-<H3>Overview</H3>
-<P>The Target Selection Dialog allows users to specify the debug target,
-the interface used to connect to the target, and some useful run
-options.</P>
-
-<P>Target Selection topics:
-<UL>
- <LI><UL><A HREF="#select">Selecting a Target</A>
- <LI><A HREF="#select_tar">Specifying a Target</A>
- <LI><A HREF="#select_int">Choosing a Connection Interface</A>
- </UL>
- <LI><UL><A HREF="#options">Run Options</A>
- <LI><A HREF="#options_run_until_main">Run until 'main'</A>
- <LI><A HREF="#options_bp_at_exit">Set breakpoint at 'exit'</A>
- <LI><A HREF="#options_download_dialog">Display Download Dialog</A>
- <LI><A HREF="#options_compare_to_remote_executable">Compare to
- remote executable</A>
- </UL>
-</UL></P>
-
-<H3><A NAME="select">Selecting a Target</A></H3>
-Selecting a target involves choosing a target for debugging and setting connection
-interface options for the target.
-
-<P>Common targets include: "exec" for native debuggers, "remote" for establishing
-a connection to a target board via a serial line, "remotetcp" for TCP connections,
-and "sim" for connections to the simulator. There may be more depending on the
-configuration of the debugger being used.</P>
-
-<P>In general, "remote" targets are always serial connections which require the user
-to specify the serial port and baud rate to be used for the connection and
-"remotetcp" targets are always TCP connections which require specifying the hostname
-and port number of the machine to which to connect. Depending upon configuration,
-there may be numerous serial- and TCP-based connections. These always follow the
-naming convention <I>target</I> and <I>target</I>tcp.</P>
-
-<P>To <A NAME="select_tar"> select a target</A>, choose one of the available targets
-from the dropdown menu in the Connection Frame. Then <A NAME="#select_int">specify
-the interface options</A> for this target: selecting the baudrate and serial port
-from the dropdown menus (serial targets only) or entering the hostname and port number
-(TCP targets only).</P>
-
-<H3><A NAME="options">Run Options</A></H3>
-Three run options which may be selected include:
-<DL>
- <DT><A NAME="options_run_until_main">Run until 'main'
- <DD>Sets a breakpoint at main(). This has no effect when using
- GDB in tracing mode.
- <DT><A NAME="options_bp_at_exit">Set breakpoint at 'exit'
- <DD>Sets a breakpoint at exit(). This has no effect when using
- GDB in tracing mode.
- <DT><A NAME="options_download_dialog">Display Download Dialog
- <DD>Displays a dialog showing the progress of the download to
- the target section by section. This has no effect when using
- GDB in tracing mode.
- <DT><A NAME="options_compare_to_remote_executable">
- Compare to remote executable</A>
- <DD>When attaching to a tracing target, compare the host's and target's
- executable by computing the checksum of each loadable section.
-</DL>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/trace/tdump.html b/gdb/gdbtk/library/help/trace/tdump.html
deleted file mode 100644
index 1850cb00373..00000000000
--- a/gdb/gdbtk/library/help/trace/tdump.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Trace Dump Window Help</TITLE>
-</HEAD>
-<BODY>
-<H1>The TDump Window</H1>
-<H3>Overview</H3>
-<P>The Tdump Window displays all of the information contained in the
-trace buffer for the current tracepoint. To view the contents of the
-trace buffer for a specific tracepoint, use the <A HREF="source.html#toolbar_exec">
-Tracing Control Buttons</A> on the <A HREF="source.html#toolbar">Source Window Toolbar
-</A>, or jump to the tracepoint using one of the Tfind Dialogs accessible
-through the Source Window's <A HREF="source.html#menus_trace">Trace Menu</A>.
-</P>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/trace/tp.html b/gdb/gdbtk/library/help/trace/tp.html
deleted file mode 100644
index 471e1d545e9..00000000000
--- a/gdb/gdbtk/library/help/trace/tp.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Tracepoint Window Help</TITLE>
-</HEAD>
-<BODY>
-<H1>The Tracepoint Window</H1>
-<H3>Overview</H3>
-<P>The Tracepoint Window lists all the various tracepoints that exist in
-the program. It facilitates modifying tracepoints (make them
-temporary or normal, disabled or enabled) and removing tracepoints.</P>
-
-<P>Tracepoint Window topics:
-<UL>
- <LI><UL><A HREF="#menus">Menus</A>
- <LI><A HREF="#menus_bp">Tracepoint Menu</A>
- <LI><A HREF="#menus_global">Global Menu</A>
- </UL>
- <LI><UL><A HREF="#display">Tracepoint Display</A>
- <LI><A HREF="#display_state">Enabling/Disabling Tracepoints</A>
- <LI><A HREF="#display_remove">Removing Tracepoints</A>
- <LI><A HREF="#display_popup">Tracepoint Pop-up Menu</A>
- </UL>
-</UL></P>
-
-<H3><A NAME="menus">Menus</A></H3>
-The Tracepoint Window contains two menus, one which deals specifically with
-the individual tracepoints selected in the window, and one whose commands
-affect all tracepoints.
-<BR>
-
-<H4><A NAME="menus_bp">Tracepoint Menu</A></H4>
-The Tracepoint Menu operates on the selected tracepoint only. The
-state of a tracepoint may be changed by selecting the desired state
-from the menu:
-<DL>
- <DT>Actions
- <DD><A HREF="tracedlg.html">Display the Tracepoint Dialog</A> for
- this tracepoint.
- <DT>Enabled
- <DD>The tracepoint is active and will stop the debugger
- when it is hit.
- <DT>Disabled
- <DD>The tracepoint is being ignored. A disabled tracepoint
- will never get hit.
- <DT>Remove
- <DD>Deletes the tracepoint
-</DL>
-<BR>
-
-<H4><A NAME="menus_global">Global Menu</A></H4>
-Items on the Global Menu affect all defined tracepoints. Users may:
-<DL>
- <DT>Enable All
- <DD>Enable all tracepoints
- <DT>Disable All
- <DD>Disable all tracepoints
- <DT>Remove All
- <DD>Delete all tracepoints
-</DL>
-<BR>
-
-<H4><A NAME="display">Tracepoint Display</A></H4>
-The Tracepoint Display is a table of tracepoints. The first column of the
-table (unlabeled) shows a checkbutton, indicating whether the tracepoint
-is enabled (checked) or disabled (unchecked). Disabled tracepoints are
-ignored and will not cause any actions to be performed on the target.
-
-<P>To use the Tracepoint Menu or the Tracepoint Pop-up Menu, first use
-the left mouse button to select a tracepoint from the list, then make the
-menu selection.</P>
-
-<H3>Modifying Tracepoints</H3>
-To <A NAME="display_state">enable</A> a tracepoint, simply click the
-checkbutton in the first column of the desired tracepoint so that it is
-selected (checked). To disable a tracepoint, "uncheck" the checkbutton.
-
-<P>To remove a <A NAME="display_remove">tracepoint</A>, use the left mouse
-button to select the tracepoint to remove and use either the tracepoint Menu
-or the Tracepoint Pop-up Menu to select "remove". To re-install a tracepoint,
-use the <A HREF="source.html#setting_a_tracepoint">Source Window Display</A>.
-</P>
-<BR>
-
-<H4><A NAME="display_popup">Tracepoint Pop-up Menu</A></H4>
-The Tracepoint Pop-up Menu is accessed by using the mouse cursor to select
-a tracepoint from the Tracepoint Display and then clicking the right button
-on the mouse. The Pop-up allows expert users quicker access to the functions
-of the Tracepoint Menu:
-<DL>
- <DT>Actions
- <DD>Display the <A HREF="tracedlg.html">Tracepoint Dialog</A> for
- the selected tracepoint. This allows the tracepoint's actions
- to viewed or edited.
- <DT>Enabled
- <DD>The tracepoint is active and will causes actions to be
- performed on the target when it is hit
- <DT>Disabled
- <DD>The tracepoint is being ignored. A disabled tracepoint
- will never perform any actions or be recorded in the trace
- buffer.
- <DT>Remove
- <DD>Deletes the tracepoint
- <DT>Global, Enable All
- <DD>Enable all tracepoints
- <DT>Global, Disable All
- <DD>Disable all tracepoints
- <DT>Global, Remove All
- <DD>Delete all tracepoints
-</DL>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/trace/tracedlg.html b/gdb/gdbtk/library/help/trace/tracedlg.html
deleted file mode 100644
index 0ad9504471b..00000000000
--- a/gdb/gdbtk/library/help/trace/tracedlg.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Tracepoint Dialogs Help</TITLE>
-</HEAD>
-<BODY>
-<H1>Tracepoint Dialogs</H1>
-<H3>Overview</H3>
-<P>There are two Tracepoint Dialogs which help users set tracepoints:
-The Tracepoint Dialog is used to view and add actions and The Actions
-Dialog is used to edit a particular action specified in the
-tracepoint's Action List.</P>
-
-<P>Tracepoint Dialogs topics:
-<UL>
- <LI><A HREF="#tracedlg">The Tracepoint Dialog</A>
- <UL>
- <LI><A HREF="#t_experiment">Experiment Frame</A>
- <LI><A HREF="#t_actions">Actions Frame</A>
- <UL>
- <LI><A HREF="#t_actions_passcount">Number of Passes</A>
- <LI><A HREF="#t_actions_add">Adding Actions</A>
- <LI><A HREF="#t_actions_modify">Modifying Actions</A>
- </UL>
- </UL>
- <LI><A HREF="#actionsdlg">The Actions Dialog</A>
- <UL>
- <LI><A HREF="#a_variables">Variables List</A>
- <LI><A HREF="#a_collect">Collection List</A>
- <LI><A HREF="#a_other">Other Entry</A>
- </UL>
-</UL></P>
-
-<H3><A NAME="tracedlg">The Tracepoint Dialog</H3>
-The Tracepoint Dialog is the gateway to viewing and editing
-the properties of any tracepoint. The same dialog is used
-to add new tracepoints and edit and delete existing tracepoints,
-for both single tracepoints and ranges of tracepoints.
-
-<H4><A NAME="t_experiment">Experiment Frame</A></H4>
-The Experiment Frame displays information about the tracepoint's
-location in the program and its status. Specifically,
-<DL>
- <DT>Number
- <DD>The internal number for this tracepoint. New tracepoints
- all have the number "-1". This number may be used to
- refer to specific tracepoints when using the
- <A HREF="console.html">Console Window</A>
- <DT>Hit Count
- <DD>The number of times the tracepoint has been hit
- <DT>Thread
- <DD>The thread in which the tracepoint exists. This
- feature is not currently implemented.
- <DT>Function
- <DD>The function in which the tracepoint is set
- <DT>File
- <DD>The file in which the tracepoint is set
- <DT>Line(s)
- <DD>The line at which the tracepoint is set or the
- lines which the tracepoint range affects
-</DL>
-<BR>
-
-<H4><A NAME="t_actions">Actions Frame</A></H4>
-The Actions Frame displays the user-settable properties of the
-tracepoint, including all actions and a pass count.
-
-<P>A pass count specifies the number of times that the tracepoint
-can be hit on the target before the tracing experiment ceases. A
-pass count of five means that this tracepoint will issue a silent
-"tstop" when it is hit the fifth time (after it has performed all
-it actions). A pass count of zero (0) means that the tracepoint
-will never causes the trace experiment to terminate on the target.</P>
-
-<P>To <A NAME="t_actions_add">add an action</A> for the tracepoint,
-select the appropriate action from the Action ComboBox and click
-"Add". The <A HREF="#actionsdlg">Action Dialog</A> appears to
-allow editing the action's properties.</P>
-
-<P>Currently, there are two actions: collect and while-stepping.
-Any number of collect actions may be added to specify that the
-target should collect variables, registers, and memory when
-it is hit. The while-stepping action may be used to collect
-data for a specified number of machine instructions. Only one
-while-stepping action may be specified for any tracepoint.</P>
-
-<P>To <A NAME="t_actions_modify">modify the actions</A> associated
-with a tracepoint, double-click the left mouse button on the action
-listed in the Action Frame, and the <A HREF="#actionsdlg">Actions
-Dialog</A> will appear.</P>
-
-<P>To accept the tracepoint as displayed, click the OK button. To abort
-installing or editing the tracepoint, click the CANCEL button. To delete
-the tracepoint (if it is not a new tracepoint), click the DELETE button.</P>
-
-<H3><A NAME="actionsdlg">The Actions Dialog</A></H3>
-The Actions Dialog is used to edit an action for the tracepoint. It
-consists of two lists, one containing all (uncollected) local variables
-(including function arguments) and registers, and one containing everything
-being collected.
-
-<P>The <A NAME="#a_variables">Variables List</A> lists all uncollected local variables,
-function arguments, and registers and may also display the special indentifiers
-"All Locals", "All Arguments", and "All Registers". Global variables (and file static
-variables) do not appear on the Variable List.</P>
-
-<P>To move a variable from the Variables List to the Collection List, double-click
-the variable in the Variables List or select the variable in the Variable
-List and press the "<<< Collect" button. To specify a range of variables to be
-collected, select them in the Variables list and click the "<<< Collect" button.</P>
-
-<P><A NAME="a_collect">The Collection List displays all data being collected
-by the action, including the special types "All Locals", "All Registers", and
-"All Arguments", which specify that every local variable, every register, and
-every function argument will be collected, respectively. Specifying a local
-variable, for example, and "All Locals" will cause only the special identifier
-"All Locals" to be sent to the target. Analogously, "All Registers" and "All
-Arguments" also override any register or function argument specifically listed
-in the Collection List.</P>
-
-<P>To remove data from the Collection List, double-click any of the entries listed
-in the List, or select a range of data to be removed and press the "Ignore >>>"
-button. All local variables, function arguments, registers, and special identifiers
-will be returned to the Variable List, while any expression (memory ranges, globals)
-will simply "disappear". To add these again, use the <A HREF="#a_other">Other Entry</A>
-at the bottom of the display.</P>
-
-<P>The <A NAME="#a_other">Other Entry</A> can be used to move any variable listed in
-either the Collection List or the Variable List to the other list. It can also
-be used to specify expressions for collection, such as memory ranges and global variables.
-Simply enter the name of the global variable or the expression and press the enter key on
-the keyboard. If the expression is valid, it will be added/removed from the Collection
-List.</P>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/trace/watch.html b/gdb/gdbtk/library/help/trace/watch.html
deleted file mode 100644
index d980327ed74..00000000000
--- a/gdb/gdbtk/library/help/trace/watch.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Watch Window Help</TITLE>
-</HEAD>
-<BODY>
-<H1>The Watch Window</H1>
-<H3>Overview</H3>
-<P>The Watch Window may be used to inspect any collected expression, including
-global variables, static variables, local variables, function arguments,
-and registers.</P>
-
-<P>Watch Window topics:
-<UL>
- <LI><UL><A HREF="#menus">Watch Menu</A>
- <LI><A HREF="#menus_fmt">Format</A>
- <LI><A HREF="#menus_remove">Remove</A>
- </UL>
- <LI><UL><A HREF="#new">Adding Watch Expressions</A>
- <LI><A HREF="#new_ent">In the Watch Window</A>
- <LI><A HREF="#new_src">In the Source Window</A>
- <LI><A HREF="#new_cast">Casting Pointers</A>
- </UL>
- <LI><UL><A HREF="#display">Watch Display</A>
- <LI><A HREF="#display_deref">Dereferencing Pointers</A>
- <LI><A HREF="#display_struct">Viewing a Structure or Class</A>
- <LI><A HREF="#display_popup">Watch Pop-up Menu</A>
- </UL>
-</UL></P>
-
-<H3><A NAME="menus">Watch Menu</A></H3>
-The Watch Menu gives on-screen access to the funtions of the Watch Window.
-To use any of these functions, first use the left mouse button to select an
-expression from the display. Then select:
-
-<DL>
- <DT><A NAME="menus_fmt">Format</A>
- <DD>Change the display format of the expression
- <DT><A NAME="menus_remove">Remove</A>
- <DD>Remove the expression from the Watch Window
-</DL>
-
-<H3><A NAME="new">Adding Watch Expressions</A></H3>
-<A NAME="new_ent">To add an expression to the Watch Window</A>, simply enter
-the expression into the entry at the bottom of the window and press return
-or click the "Add Watch" button. The expression is validated and added to the
-Watch Window Display.
-
-<P><A NAME="new_src">To add an expression to the Watch Window from the
-<A HREF="source.html">Source Window</A></A>, use the
-"<A HREF="source.html#add_to_watch">Add to Watch</A>" option of the
-<A HREF="source.html#display_popup">Source Window Pop-up Menu</A>.</P>
-
-<P>Any legal expression may be added to the Watch Window, which will
-evaluate each of its expressions everytime the program runs. Be cautious
-adding expressions which cause assignments, such as "<CODE>i++</CODE>".</P>
-
-<P>Adding a register to the Watch Window can be advantages when debugging
-via a slow serial line. In this case, keeping the entire Register Window open
-may be inefficient. Consider adding the register to the Watch Window. Simply
-enter the name of the register preceded with a dollar sign ($) into the
-Entry. For example, to watch the PC register, enter "<CODE>$pc</CODE>" into
-the Watch Window Entry. The program counter is added to the Display.</P>
-
-<P><A NAME="new_cast">To cast pointers</A>, simply enter the cast into the
-Watch Window Entry at the bottom of the window. Use the same syntax for the
-cast that the source file uses. If the source file uses C, the a simple
-cast of "<CODE>ptr</CODE>" of type "<CODE>void *</CODE>" can be cast to type
-"<CODE>my_struct</CODE>" by entering "<CODE>(my_struct *) ptr</CODE>" into
-the Entry.</P>
-
-<H3><A NAME="display">Watch Display</A></H3>
-The Watch Window Display consists of a scrolled listbox which contains all
-watch expressions, one per line. To use any of the functions of the Watch
-Window, use the left mouse button to select any element from the Display.
-
-<P>Pointers, structures, and classes appear in the display with a small
-exapansion box before their names. To <A NAME="display_deref">dereference
-pointers</A> or <A NAME="display_struct">view the members of classes or
-structures</A>, click the closed expansion box (which appears as a small
-plus sign, "+") to "expand" the listing. The expansion box changes to a
-minus sign, "-", indicating that the display is now open. Pointers,
-structures and classes may be expanded recursively to allow multiple pointer
-dereferences and embedded structure viewing.
-
-<P>The Locals Display updates as the trace buffer is navigated, highlighting
-in blue those variables whose values have changed.</P>
-
-<P>The Watch Window will, by default, display all pointers in hexadecimal and all
-other variables in decimal. To change the default display of variables, use the
-"set output-radix" command in the console window. (Type "help set output-radix" in the
-console window for help. To make this change permanent, it must be added to the user's
-init file -- .gdbinit.) To change the display
-format for a variable, select the Format option from either the Variable Menu or the
-<A HREF="#display_popup">Watch Pop-up Menu</A>.
-<BR>
-
-<H4><A NAME="display_popup">Watch Pop-up Menu</A></H4>
-The Watch Pop-up Menu provides quick access to the functions of the Watch Window.
-To use the Locals Pop-up Menu, first select an expression from the Display (by
-clicking the left mouse button on it) and click the right mouse button, choosing
-from the pop-up:
-<DL>
- <DT>Format
- <DD>Change the display format of the expression. The expression may be
- displayed as:
- <DL>
- <DT>Hex
- <DD>hexadecimal (base 16)
- <DT>Decimal
- <DD>decimal (base 10)
- <DT>Binary
- <DD>binary (base 2)
- <DT>Octal
- <DD>octal (base 8)
- </DL>
-</DL>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/help/watch.html b/gdb/gdbtk/library/help/watch.html
deleted file mode 100644
index 01e253b1883..00000000000
--- a/gdb/gdbtk/library/help/watch.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Watch Window Help</TITLE>
-</HEAD>
-<BODY>
-<H1>The Watch Window</H1>
-<img src="images/watch.png" alt="Watch Window Image" width=545 height=308 border=0>
-<H2>Overview</H2>
-
-<P>The Watch Window may be used to inspect and edit any expression, including
-global variables, static variables, local variables, function arguments,
-and registers. All expressions in scope are displayed with the expression in
-blue, the expression type in red, and the expression value in black. When an
-expression value changes, it is displayed in green. Expressions that are not
-in scope are all gray.</P>
-
-
-<H3>Adding Watch Expressions</H3>
-<p>To add an expression to the Watch Window, simply enter
-the expression into the entry at the bottom of the window and press return
-or click the "Add Watch" button. The expression is validated and added to the
-Watch Window Display.</p>
-
-<P>To add an expression to the Watch Window from the
-<A HREF="source.html">Source Window</A>, use the
-"<A HREF="source.html#add_to_watch">Add to Watch</A>" option of the
-<A HREF="source.html#display_popup">Source Window Pop-up Menu</A>.</P>
-
-<P>Any legal expression may be added to the Watch Window, which will
-evaluate each of its expressions everytime the program runs. Be cautious
-adding expressions which cause assignments, such as "<CODE>i++</CODE>".</P>
-
-<P>Adding a register to the Watch Window can be advantages when debugging
-via a slow serial line. In this case, keeping the entire Register Window open
-may be inefficient. Consider adding the register to the Watch Window. Simply
-enter the name of the register preceded with a dollar sign ($) into the
-Entry. For example, to watch the PC register, enter "<CODE>$pc</CODE>" into
-the Watch Window Entry. The program counter is added to the Display.</P>
-
-<P>To cast pointers, simply enter the cast into the
-Watch Window Entry at the bottom of the window. Use the same syntax for the
-cast that the source file uses. If the source file uses C, the a simple
-cast of "<CODE>ptr</CODE>" of type "<CODE>void *</CODE>" can be cast to type
-"<CODE>my_struct</CODE>" by entering "<CODE>(my_struct *) ptr</CODE>" into
-the Entry.</P>
-
-<H3>Watch Display</H3>
-<p>The Watch Window Display consists of a scrolled listbox which contains all
-watch expressions, one per line. To use any of the functions of the Watch
-Window, use the left mouse button to select any element from the Display.</p>
-
-<P>Pointers, structures, and classes appear in the display with a small
-exapansion box before their names. To dereference
-pointers or view the members of classes or
-structures, click the closed expansion box (which appears as a small
-plus sign, "+") to "expand" the listing. The expansion box changes to a
-minus sign, "-", indicating that the display is now open. Pointers,
-structures and classes may be expanded recursively to allow multiple pointer
-derefernces and embedded structure viewing.</P>
-
-<P>The Watch Display updates after every execution of the program and
-highlights in green those expressions whose values have changed.</P>
-
-<P>The Watch Window will, by default, display all pointers and registers in
-hexadecimal and all other expressions in decimal. To change the display
-format for an expression, select the Format option from the pop-up menu.</P>
-
-<H3>Editing an Expression</H3>
-<p>To edit an expression, either double-click the left mouse button on the expression
-in the Display or select the Edit option from the popup-menu. To abort editing
-an expression's value, simply press
-the escape key on the keyboard. The expression's original value is restored.</p>
-
-<H3>Watch Pop-up Menu</H3>
-<p>The pop-up menu provides quick access to the functions of the Watch Window.
-To use the pop-up menu, click the right mouse button while over a variable.</p>
-<DL>
- <dt>Format<dd>Change the display format of the variable.</dd></dt>
- <dt>Edit<dd>Edit the variable's value.</dd></dt>
- <dt>Delete<dd>Remove the variable from the display.</dd></dt>
- <dt>Dump Memory<dd>Open a Memory Window with the variable's value as an aaddress.</dd></dt>
- <dt>Help<dd>Open this help page.</dd></dt>
- <dt>Close<dd>Close the Local Variables Window.</dd></dt>
-</DL>
-</BODY>
-</HTML>
diff --git a/gdb/gdbtk/library/helpviewer.tcl b/gdb/gdbtk/library/helpviewer.tcl
deleted file mode 100644
index 8597f5d5eba..00000000000
--- a/gdb/gdbtk/library/helpviewer.tcl
+++ /dev/null
@@ -1,98 +0,0 @@
-# Open a viewer for HTML help info
-# Copyright (C) 2002, Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# ------------------------------------------------------------------------------
-# NAME: public proc open_help
-# SYNOPSIS: open_help file
-# DESC: Opens html help file using an appropriate
-# browser.
-# ------------------------------------------------------------------------------
-
-proc open_help {hfile} {
- debug $hfile
- # create full pathname link
- set link file://[file join $::GDBTK_LIBRARY help $hfile]
-
- # windows is easy
- if {$::tcl_platform(platform) == "windows"} {
- ide_shell_execute open $link
- return
- }
-
- #
- # for Unix, we never know what is installed
- #
-
- # set list of viewer apps to try
- switch [pref get gdb/compat] {
- "KDE" {
- set apps {htmlview khelpcenter firefox opera mozilla}
- }
- "GNOME" {
- set apps {htmlview firefox opera mozilla gnome-help khelpcenter}
- }
- default {
- set apps {htmlview firefox opera mozilla gnome-help khelpcenter netscape}
- }
- }
-
- # If the user has previously entered a browser name, append it
- # to the list. Should it go first or last?
- set bname [pref get gdb/help/browsername]
- if {$bname != ""} {
- lappend apps $bname
- }
-
- # now loop through list checking each application
- foreach app $apps {
- debug "app=$app"
- if {[catch "exec $app $link &" result]} {
- debug "$app failed: $result"
- } else {
- return
- }
- }
-
- # if we reached here, nothing worked, so prompt for a name
- set text "No help browser was found on your system.\n\
-Please enter the name of an HTML viewer application."
- while {[set app [prompt_helpname $text]] != "0"} {
- if {$app != ""} {
- if {[catch "exec $app $link &" result]} {
- dbug W "$app failed: $result"
- set text "Could not run application $app.\n\
-Please enter the name of an HTML viewer application."
- } else {
- pref set gdb/help/browsername $app
- return
- }
- }
- }
-}
-
-# displays an entry dialog and asks for the name of an application
-# returns 0 on cancel
-# name on success
-proc prompt_helpname {text} {
- iwidgets::promptdialog .pd -title "Browser Query" -modality application \
- -labeltext $text
- if {[.pd activate]} {
- set app [string trim [.pd get]]
- destroy .pd
- return $app
- }
- destroy .pd
- debug "cancelled"
- return 0
-}
-
diff --git a/gdb/gdbtk/library/images/Movie_off.gif b/gdb/gdbtk/library/images/Movie_off.gif
deleted file mode 100644
index 7fce569189e..00000000000
--- a/gdb/gdbtk/library/images/Movie_off.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/Movie_on.gif b/gdb/gdbtk/library/images/Movie_on.gif
deleted file mode 100644
index 51e29d679b2..00000000000
--- a/gdb/gdbtk/library/images/Movie_on.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/bottom.gif b/gdb/gdbtk/library/images/bottom.gif
deleted file mode 100644
index 82fe7ab0d2a..00000000000
--- a/gdb/gdbtk/library/images/bottom.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/bp.gif b/gdb/gdbtk/library/images/bp.gif
deleted file mode 100644
index 55a153d3e94..00000000000
--- a/gdb/gdbtk/library/images/bp.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/check.gif b/gdb/gdbtk/library/images/check.gif
deleted file mode 100644
index 37ff7d3ce81..00000000000
--- a/gdb/gdbtk/library/images/check.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/console.gif b/gdb/gdbtk/library/images/console.gif
deleted file mode 100644
index e9412b20540..00000000000
--- a/gdb/gdbtk/library/images/console.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/continue.gif b/gdb/gdbtk/library/images/continue.gif
deleted file mode 100644
index c3babce52ee..00000000000
--- a/gdb/gdbtk/library/images/continue.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/down.gif b/gdb/gdbtk/library/images/down.gif
deleted file mode 100644
index 0a591f4ac29..00000000000
--- a/gdb/gdbtk/library/images/down.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/edit.gif b/gdb/gdbtk/library/images/edit.gif
deleted file mode 100644
index bc033dbc066..00000000000
--- a/gdb/gdbtk/library/images/edit.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/finish.gif b/gdb/gdbtk/library/images/finish.gif
deleted file mode 100644
index d717238c335..00000000000
--- a/gdb/gdbtk/library/images/finish.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/gdbtk_icon.gif b/gdb/gdbtk/library/images/gdbtk_icon.gif
deleted file mode 100644
index 46f69e62852..00000000000
--- a/gdb/gdbtk/library/images/gdbtk_icon.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/help.gif b/gdb/gdbtk/library/images/help.gif
deleted file mode 100644
index 061e2c600cc..00000000000
--- a/gdb/gdbtk/library/images/help.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/home.gif b/gdb/gdbtk/library/images/home.gif
deleted file mode 100644
index ac71cd53388..00000000000
--- a/gdb/gdbtk/library/images/home.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/icons.txt b/gdb/gdbtk/library/images/icons.txt
deleted file mode 100644
index 2a15b5b4994..00000000000
--- a/gdb/gdbtk/library/images/icons.txt
+++ /dev/null
@@ -1 +0,0 @@
-Basic Icon Set
diff --git a/gdb/gdbtk/library/images/insight.gif b/gdb/gdbtk/library/images/insight.gif
deleted file mode 100644
index fa5cfe19617..00000000000
--- a/gdb/gdbtk/library/images/insight.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/less.gif b/gdb/gdbtk/library/images/less.gif
deleted file mode 100644
index 045025a8062..00000000000
--- a/gdb/gdbtk/library/images/less.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/memory.gif b/gdb/gdbtk/library/images/memory.gif
deleted file mode 100644
index 1f62949d7d5..00000000000
--- a/gdb/gdbtk/library/images/memory.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/more.gif b/gdb/gdbtk/library/images/more.gif
deleted file mode 100644
index 67cb020014e..00000000000
--- a/gdb/gdbtk/library/images/more.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/next.gif b/gdb/gdbtk/library/images/next.gif
deleted file mode 100644
index 99d1ea62ea7..00000000000
--- a/gdb/gdbtk/library/images/next.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/next_check.gif b/gdb/gdbtk/library/images/next_check.gif
deleted file mode 100644
index 4488f04c76b..00000000000
--- a/gdb/gdbtk/library/images/next_check.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/next_frame.gif b/gdb/gdbtk/library/images/next_frame.gif
deleted file mode 100644
index 1bbc97932c5..00000000000
--- a/gdb/gdbtk/library/images/next_frame.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/next_hit.gif b/gdb/gdbtk/library/images/next_hit.gif
deleted file mode 100644
index d65295c099a..00000000000
--- a/gdb/gdbtk/library/images/next_hit.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/next_line.gif b/gdb/gdbtk/library/images/next_line.gif
deleted file mode 100644
index 96b374f65e3..00000000000
--- a/gdb/gdbtk/library/images/next_line.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/nexti.gif b/gdb/gdbtk/library/images/nexti.gif
deleted file mode 100644
index d2b65d4a551..00000000000
--- a/gdb/gdbtk/library/images/nexti.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/open.gif b/gdb/gdbtk/library/images/open.gif
deleted file mode 100644
index 173290a2b9d..00000000000
--- a/gdb/gdbtk/library/images/open.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/prev_hit.gif b/gdb/gdbtk/library/images/prev_hit.gif
deleted file mode 100644
index 17ed5686ff9..00000000000
--- a/gdb/gdbtk/library/images/prev_hit.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/reg.gif b/gdb/gdbtk/library/images/reg.gif
deleted file mode 100644
index 8efac2fd28f..00000000000
--- a/gdb/gdbtk/library/images/reg.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/rewind.gif b/gdb/gdbtk/library/images/rewind.gif
deleted file mode 100644
index 60b3d6135b1..00000000000
--- a/gdb/gdbtk/library/images/rewind.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/run.gif b/gdb/gdbtk/library/images/run.gif
deleted file mode 100644
index 6f45f3a2a4d..00000000000
--- a/gdb/gdbtk/library/images/run.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/run_expt.gif b/gdb/gdbtk/library/images/run_expt.gif
deleted file mode 100644
index 1c5c37cbef3..00000000000
--- a/gdb/gdbtk/library/images/run_expt.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/src.gif b/gdb/gdbtk/library/images/src.gif
deleted file mode 100644
index a1890ef8759..00000000000
--- a/gdb/gdbtk/library/images/src.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/stack.gif b/gdb/gdbtk/library/images/stack.gif
deleted file mode 100644
index e17824a3592..00000000000
--- a/gdb/gdbtk/library/images/stack.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/step.gif b/gdb/gdbtk/library/images/step.gif
deleted file mode 100644
index 776c8c3466a..00000000000
--- a/gdb/gdbtk/library/images/step.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/stepi.gif b/gdb/gdbtk/library/images/stepi.gif
deleted file mode 100644
index d721c13e548..00000000000
--- a/gdb/gdbtk/library/images/stepi.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/stop.gif b/gdb/gdbtk/library/images/stop.gif
deleted file mode 100644
index d863aba7859..00000000000
--- a/gdb/gdbtk/library/images/stop.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/tdump.gif b/gdb/gdbtk/library/images/tdump.gif
deleted file mode 100644
index 87db34c06c6..00000000000
--- a/gdb/gdbtk/library/images/tdump.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/tp.gif b/gdb/gdbtk/library/images/tp.gif
deleted file mode 100644
index 6ddf743a3fa..00000000000
--- a/gdb/gdbtk/library/images/tp.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/up.gif b/gdb/gdbtk/library/images/up.gif
deleted file mode 100644
index df280098ebd..00000000000
--- a/gdb/gdbtk/library/images/up.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/vars.gif b/gdb/gdbtk/library/images/vars.gif
deleted file mode 100644
index 608fa9337b8..00000000000
--- a/gdb/gdbtk/library/images/vars.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/watch.gif b/gdb/gdbtk/library/images/watch.gif
deleted file mode 100644
index 077444d5fe1..00000000000
--- a/gdb/gdbtk/library/images/watch.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images/watch_movie.gif b/gdb/gdbtk/library/images/watch_movie.gif
deleted file mode 100644
index 855f703ac3f..00000000000
--- a/gdb/gdbtk/library/images/watch_movie.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/Movie_off.gif b/gdb/gdbtk/library/images2/Movie_off.gif
deleted file mode 100644
index 7fce569189e..00000000000
--- a/gdb/gdbtk/library/images2/Movie_off.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/Movie_on.gif b/gdb/gdbtk/library/images2/Movie_on.gif
deleted file mode 100644
index 51e29d679b2..00000000000
--- a/gdb/gdbtk/library/images2/Movie_on.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/bottom.gif b/gdb/gdbtk/library/images2/bottom.gif
deleted file mode 100644
index 1190cd2d2ad..00000000000
--- a/gdb/gdbtk/library/images2/bottom.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/bp.gif b/gdb/gdbtk/library/images2/bp.gif
deleted file mode 100644
index 55a153d3e94..00000000000
--- a/gdb/gdbtk/library/images2/bp.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/check.gif b/gdb/gdbtk/library/images2/check.gif
deleted file mode 100644
index 37ff7d3ce81..00000000000
--- a/gdb/gdbtk/library/images2/check.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/console.gif b/gdb/gdbtk/library/images2/console.gif
deleted file mode 100644
index e9412b20540..00000000000
--- a/gdb/gdbtk/library/images2/console.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/continue.gif b/gdb/gdbtk/library/images2/continue.gif
deleted file mode 100644
index 99c0673cdec..00000000000
--- a/gdb/gdbtk/library/images2/continue.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/down.gif b/gdb/gdbtk/library/images2/down.gif
deleted file mode 100644
index 09ae742f225..00000000000
--- a/gdb/gdbtk/library/images2/down.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/edit.gif b/gdb/gdbtk/library/images2/edit.gif
deleted file mode 100644
index 6ff9082861e..00000000000
--- a/gdb/gdbtk/library/images2/edit.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/finish.gif b/gdb/gdbtk/library/images2/finish.gif
deleted file mode 100644
index 3e4a077185c..00000000000
--- a/gdb/gdbtk/library/images2/finish.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/function.gif b/gdb/gdbtk/library/images2/function.gif
deleted file mode 100644
index c61f38a2724..00000000000
--- a/gdb/gdbtk/library/images2/function.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/gdbtk_icon.gif b/gdb/gdbtk/library/images2/gdbtk_icon.gif
deleted file mode 100644
index 46f69e62852..00000000000
--- a/gdb/gdbtk/library/images2/gdbtk_icon.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/help.gif b/gdb/gdbtk/library/images2/help.gif
deleted file mode 100644
index 1e127d6c0bb..00000000000
--- a/gdb/gdbtk/library/images2/help.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/home.gif b/gdb/gdbtk/library/images2/home.gif
deleted file mode 100644
index ac71cd53388..00000000000
--- a/gdb/gdbtk/library/images2/home.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/icons.txt b/gdb/gdbtk/library/images2/icons.txt
deleted file mode 100644
index eefb6d2c6e3..00000000000
--- a/gdb/gdbtk/library/images2/icons.txt
+++ /dev/null
@@ -1 +0,0 @@
-Windows-style Icon Set
diff --git a/gdb/gdbtk/library/images2/insight.gif b/gdb/gdbtk/library/images2/insight.gif
deleted file mode 100644
index fa5cfe19617..00000000000
--- a/gdb/gdbtk/library/images2/insight.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/less.gif b/gdb/gdbtk/library/images2/less.gif
deleted file mode 100644
index 045025a8062..00000000000
--- a/gdb/gdbtk/library/images2/less.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/memory.gif b/gdb/gdbtk/library/images2/memory.gif
deleted file mode 100644
index 1f62949d7d5..00000000000
--- a/gdb/gdbtk/library/images2/memory.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/more.gif b/gdb/gdbtk/library/images2/more.gif
deleted file mode 100644
index 67cb020014e..00000000000
--- a/gdb/gdbtk/library/images2/more.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/next.gif b/gdb/gdbtk/library/images2/next.gif
deleted file mode 100644
index 9675812ce9c..00000000000
--- a/gdb/gdbtk/library/images2/next.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/next_check.gif b/gdb/gdbtk/library/images2/next_check.gif
deleted file mode 100644
index 4488f04c76b..00000000000
--- a/gdb/gdbtk/library/images2/next_check.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/next_frame.gif b/gdb/gdbtk/library/images2/next_frame.gif
deleted file mode 100644
index 1bbc97932c5..00000000000
--- a/gdb/gdbtk/library/images2/next_frame.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/next_hit.gif b/gdb/gdbtk/library/images2/next_hit.gif
deleted file mode 100644
index d65295c099a..00000000000
--- a/gdb/gdbtk/library/images2/next_hit.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/next_line.gif b/gdb/gdbtk/library/images2/next_line.gif
deleted file mode 100644
index 96b374f65e3..00000000000
--- a/gdb/gdbtk/library/images2/next_line.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/nexti.gif b/gdb/gdbtk/library/images2/nexti.gif
deleted file mode 100644
index d05248fc6e1..00000000000
--- a/gdb/gdbtk/library/images2/nexti.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/open.gif b/gdb/gdbtk/library/images2/open.gif
deleted file mode 100644
index 173290a2b9d..00000000000
--- a/gdb/gdbtk/library/images2/open.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/prev_hit.gif b/gdb/gdbtk/library/images2/prev_hit.gif
deleted file mode 100644
index 17ed5686ff9..00000000000
--- a/gdb/gdbtk/library/images2/prev_hit.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/reg.gif b/gdb/gdbtk/library/images2/reg.gif
deleted file mode 100644
index 9f314a9bcf8..00000000000
--- a/gdb/gdbtk/library/images2/reg.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/rewind.gif b/gdb/gdbtk/library/images2/rewind.gif
deleted file mode 100644
index 60b3d6135b1..00000000000
--- a/gdb/gdbtk/library/images2/rewind.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/run.gif b/gdb/gdbtk/library/images2/run.gif
deleted file mode 100644
index 3a91e8efd37..00000000000
--- a/gdb/gdbtk/library/images2/run.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/run_expt.gif b/gdb/gdbtk/library/images2/run_expt.gif
deleted file mode 100644
index 1c5c37cbef3..00000000000
--- a/gdb/gdbtk/library/images2/run_expt.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/src.gif b/gdb/gdbtk/library/images2/src.gif
deleted file mode 100644
index 2b78909b2e9..00000000000
--- a/gdb/gdbtk/library/images2/src.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/stack.gif b/gdb/gdbtk/library/images2/stack.gif
deleted file mode 100644
index e17824a3592..00000000000
--- a/gdb/gdbtk/library/images2/stack.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/step.gif b/gdb/gdbtk/library/images2/step.gif
deleted file mode 100644
index 00caaf8fccd..00000000000
--- a/gdb/gdbtk/library/images2/step.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/stepi.gif b/gdb/gdbtk/library/images2/stepi.gif
deleted file mode 100644
index a7217659018..00000000000
--- a/gdb/gdbtk/library/images2/stepi.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/stop.gif b/gdb/gdbtk/library/images2/stop.gif
deleted file mode 100644
index 92ce1afa7d8..00000000000
--- a/gdb/gdbtk/library/images2/stop.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/target.gif b/gdb/gdbtk/library/images2/target.gif
deleted file mode 100644
index 9aa9c3ac25c..00000000000
--- a/gdb/gdbtk/library/images2/target.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/tdump.gif b/gdb/gdbtk/library/images2/tdump.gif
deleted file mode 100644
index 87db34c06c6..00000000000
--- a/gdb/gdbtk/library/images2/tdump.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/tp.gif b/gdb/gdbtk/library/images2/tp.gif
deleted file mode 100644
index 6ddf743a3fa..00000000000
--- a/gdb/gdbtk/library/images2/tp.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/up.gif b/gdb/gdbtk/library/images2/up.gif
deleted file mode 100644
index 262dbbf21c8..00000000000
--- a/gdb/gdbtk/library/images2/up.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/vars.gif b/gdb/gdbtk/library/images2/vars.gif
deleted file mode 100644
index 608fa9337b8..00000000000
--- a/gdb/gdbtk/library/images2/vars.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/watch.gif b/gdb/gdbtk/library/images2/watch.gif
deleted file mode 100644
index 077444d5fe1..00000000000
--- a/gdb/gdbtk/library/images2/watch.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/images2/watch_movie.gif b/gdb/gdbtk/library/images2/watch_movie.gif
deleted file mode 100644
index 855f703ac3f..00000000000
--- a/gdb/gdbtk/library/images2/watch_movie.gif
+++ /dev/null
Binary files differ
diff --git a/gdb/gdbtk/library/interface.tcl b/gdb/gdbtk/library/interface.tcl
deleted file mode 100644
index e9093f70e44..00000000000
--- a/gdb/gdbtk/library/interface.tcl
+++ /dev/null
@@ -1,1829 +0,0 @@
-# Interface between GDB and Insight.
-# Copyright (C) 1997, 1998, 1999, 2001, 2002, 2004 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# This variable is reserved for this module. Ensure it is an array.
-global gdbtk_state
-set gdbtk_state(busyCount) 0
-
-# *** DEPRECATED: Use GDBEventHandler::breakpoint instead.
-# This is run when a breakpoint changes. The arguments are the
-# action, the breakpoint number, and the breakpoint info.
-#define_hook gdb_breakpoint_change_hook
-
-# *** DEPRECATED: Use GDBEventHandler::set_variable instead.
-# This is run when a `set' command successfully completes in gdb. The
-# first argument is the gdb variable name (as a Tcl list). The second
-# argument is the new value.
-#define_hook gdb_set_hook
-
-# ------------------------------------------------------------
-# PROC: gdbtk_tcl_set_variable - A "set" command was issued
-# in gdb to change an internal variable. Notify
-# gui.
-# ------------------------------------------------------------
-proc gdbtk_tcl_set_variable {var val} {
- set e [SetVariableEvent \#auto -variable $var -value $val]
- GDBEventHandler::dispatch $e
- delete object $e
-}
-
-####################################################################
-# #
-# GUI STATE HOOKS #
-# #
-####################################################################
-# !!!!! NOTE !!!!!
-# For debugging purposes, please put debug statements at the very
-# beginning and ends of all GUI state hooks.
-
-# *** DEPRECATED: Use GDBEventHandler::busy instead.
-# GDB_BUSY_HOOK
-# This hook is used to register a callback when the UI should
-# be disabled because the debugger is either busy or talking
-# to the target.
-#
-# All callbacks should disable ALL user input which could cause
-# any state changes in either the target or the debugger.
-#define_hook gdb_busy_hook
-
-# *** DEPRECATED: Use GDBEventHandler::idle instead.
-# GDB_IDLE_HOOK
-# This hook is used to register a callback when the UI should
-# be enabled because the debugger is no longer busy.
-#
-# All callbacks should enable user input. These callbacks
-# should also be as fast as possible to avoid any significant
-# time delays when enabling the UI.
-define_hook gdb_idle_hook
-
-# *** DEPRECATED: Use GDBEventHandler::update instead.
-# GDB_UPDATE_HOOK
-# This hook is used to register a callback to update the widget
-# when debugger state has changed.
-#define_hook gdb_update_hook
-
-# GDB_NO_INFERIOR_HOOK
-# This hook is used to register a callback which should be invoked
-# whenever there is no inferior (either at startup time or when
-# an inferior is killed).
-#
-# All callbacks should reset their windows to a known, "startup"
-# state.
-define_hook gdb_no_inferior_hook
-
-# GDB_DISPLAY_CHANGE_HOOK
-# This is run when a display changes. The arguments are the action,
-# the breakpoint number, and (optionally) the value.
-define_hook gdb_display_change_hook
-
-# GDB_TRACE_FIND_HOOK
-# This hook is run by the trace find command. It is used to switch
-# from control to browse mode when the user runs tfind commands...
-#
-define_hook gdb_trace_find_hook
-
-# ------------------------------------------------------------------
-# gdbtk_tcl_preloop - This function is called after gdb is initialized
-# but before the mainloop is started. It sets the app name, and
-# opens the first source window.
-# ------------------------------------------------------------------
-
-proc gdbtk_tcl_preloop { } {
- global gdb_exe_name gdb_current_directory
-
- set_baud
-
- tk appname gdbtk
- # If there was an error loading an executible specified on the command line
- # then we will have called pre_add_symbol, which would set us to busy,
- # but not the corresponding post_add_symbol. Do this here just in case...
- after idle gdbtk_idle
- ManagedWin::startup
-
- if {$gdb_exe_name != ""} {
- # At startup, file_changed_hook is called too late for us, so we
- # must notice the initial session by hand. If the arguments exist
- # -- if the user used `gdb --args' -- then we want the new
- # arguments and pwd to override what is set in the session.
- set current_args [gdb_get_inferior_args]
- set current_dir $gdb_current_directory
- Session::notice_file_change
- set_baud
- if {[string length $current_args] > 0} {
- gdb_set_inferior_args $current_args
- gdb_cmd "cd $current_dir"
- }
- }
-
- gdbtk_update
-}
-
-
-# ------------------------------------------------------------------
-# PROCEDURE: gdbtk_busy - Dispatch a busy event
-#
-# Use this procedure from within GUI code to indicate that
-# the debugger is busy, either running the inferior or
-# talking to the target.
-# ------------------------------------------------------------------
-proc gdbtk_busy {} {
-
- set e [BusyEvent \#auto]
- GDBEventHandler::dispatch $e
- delete object $e
-
- # Force the screen to update
- update
-}
-
-# ------------------------------------------------------------------
-# PROCEDURE: gdbtk_update - run all update hooks
-#
-# Use this procedure to force all widgets to update
-# themselves. This hook is usually run after command
-# that could change target state.
-# ------------------------------------------------------------------
-proc gdbtk_update {} {
-
- set e [UpdateEvent \#auto]
- GDBEventHandler::dispatch $e
- delete object $e
-
- # Force the screen to update
- update
-}
-
-# ------------------------------------------------------------------
-# PROCEDURE: gdbtk_update_safe - run all update hooks in a safe way
-#
-# Use this procedure to force all widgets to update
-# themselves. This hook is usually run after command
-# that could change target state.
-# Like gdbtk_update but safe to be used in "after idle"
-# which is used in update hooks.
-# ------------------------------------------------------------------
-proc gdbtk_update_safe {} {
- global gdb_running
-
- # Fencepost: Do not update if we are running the target
- # We get here because script commands may have changed memory or
- # registers and "after idle" events registered as a consequence
- # If we try to update while the target is running we are doomed.
- if {!$gdb_running} {
- gdbtk_update
- }
-}
-
-# ------------------------------------------------------------------
-# PROCEDURE: gdbtk_idle - dispatch IdleEvent
-#
-# Use this procedure to free the UI for more user input.
-# This should only be run AFTER all communication with
-# the target has halted, otherwise the risk of two (or
-# more) widgets talking to the target arises.
-# ------------------------------------------------------------------
-proc gdbtk_idle {} {
- global gdb_running
-
- # Put the unfiltered hook back in place, just in case
- # somebody swapped it out, and then died before they
- # could replace it.
- gdb_restore_fputs
-
- set err [catch {run_hooks gdb_idle_hook}]
- if {$err} {
- dbug E "Error running gdb_idle_hook: $::errorInfo"
- }
-
- set e [IdleEvent \#auto]
- GDBEventHandler::dispatch $e
- delete object $e
-
- if {!$gdb_running} {
- set err [catch {run_hooks gdb_no_inferior_hook} txt]
- if {$err} {
- dbug E "no_inferior_hook error: $txt"
- }
- }
-
- # Force the screen to update
- update
-}
-
-define_hook download_progress_hook
-
-# ------------------------------------------------------------------
-# PROCEDURE: gdbtk_quit_check - Ask if the user really wants to quit.
-# ------------------------------------------------------------------
-proc gdbtk_quit_check {} {
- global gdb_downloading gdb_running gdb_exe_name
-
- if {$gdb_downloading} {
- set msg "Downloading to target,\n really close the debugger?"
- if {![gdbtk_tcl_query $msg no]} {
- return 0
- }
- } elseif {$gdb_running} {
- # While we are running the inferior, gdb_cmd is fenceposted and
- # returns immediately. Therefore, we need to ask here. Do we need
- # to stop the target, too?
- set msg "A debugging session is active.\n"
- append msg "Do you still want to close the debugger?"
- if {![gdbtk_tcl_query $msg no]} {
- return 0
- }
- }
-
- return 1
-}
-
-# ------------------------------------------------------------------
-# PROCEDURE: gdbtk_quit - Quit the debugger
-# Call this procedure anywhere the user can request to quit.
-# This procedure will ask all the right questions before
-# exiting.
-# ------------------------------------------------------------------
-proc gdbtk_quit {} {
- if {[gdbtk_quit_check]} {
- gdbtk_force_quit
- }
-}
-
-# ------------------------------------------------------------------
-# PROCEDURE: gdbtk_force_quit - Quit the debugger immediately
-# ------------------------------------------------------------------
-proc gdbtk_force_quit {} {
- # If we don't delete source windows, GDB hooks will
- # try to update them as we exit
- foreach win [ManagedWin::find SrcWin] {
- delete object $win
- }
- # Calling gdb_force_quit is probably not necessary here
- # because it should have been called when the source window(s)
- # were deleted, but just in case...
- gdb_force_quit
-}
-
-# ------------------------------------------------------------------
-# PROCEDURE: gdbtk_cleanup - called by GDB immediately
-# before exiting. Last chance to cleanup!
-# ------------------------------------------------------------------
-proc gdbtk_cleanup {} {
- global gdb_exe_name
-
- # Save the session
- if {$gdb_exe_name != ""} {
- Session::save
- }
-
- # This is a sign that it is too late to be doing updates, etc...
- set ::gdb_shutting_down 1
-
- # Shutdown the window manager and save all preferences
- # This way a "quit" in the console window will cause
- # preferences to be saved.
- ManagedWin::shutdown
- pref_save
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_query -
-# ------------------------------------------------------------------
-proc gdbtk_tcl_query {message {default yes}} {
- global gdb_checking_for_exit gdbtk_state tcl_platform
-
- # FIXME We really want a Help button here. But Tk's brain-damaged
- # modal dialogs won't really allow it. Should have async dialog
- # here.
-
- set title "GDB"
- set modal "task"
-
- # If we are checking whether to exit gdb, we want a system modal
- # box. Otherwise it may be hidden by some other program, and the
- # user will have no idea what is going on.
- if {[info exists gdb_checking_for_exit] && $gdb_checking_for_exit} {
- set modal "system"
- }
-
- if {$tcl_platform(platform) == "windows"} {
- # On Windows, we want to only ask each question once.
- # If we're already asking the question, just wait for the answer
- # to come back.
- set ans [list answer $message]
- set pending [list pending $message]
-
- if {[info exists gdbtk_state($pending)]} {
- incr gdbtk_state($pending)
- } else {
- set gdbtk_state($pending) 1
- set gdbtk_state($ans) {}
-
- ide_messageBox [list set gdbtk_state($ans)] -icon warning \
- -default $default -message $message -title $title \
- -type yesno -modal $modal -parent .
- }
-
- vwait gdbtk_state($ans)
- set r $gdbtk_state($ans)
- if {[incr gdbtk_state($pending) -1] == 0} {
- # Last call waiting for this answer, so clear it.
- unset gdbtk_state($pending)
- unset gdbtk_state($ans)
- }
- } else {
- # On Unix, apparently it doesn't matter how many times we ask a
- # question.
- set r [tk_messageBox -icon warning -default $default \
- -message $message -title $title \
- -type yesno -parent .]
- }
-
- update idletasks
- return [expr {$r == "yes"}]
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_warning -
-# ------------------------------------------------------------------
-proc gdbtk_tcl_warning {message} {
- debug "$message"
-
-# ADD a warning message here if the gui must NOT display it
-# add the message at the beginning of the switch followed by -
-
- switch -regexp $message {
- "Unable to find dynamic linker breakpoint function.*" {return}
- "Internal error.*" { gdbtk_tcl_fputs_error $message }
- "incomplete CFI.*" { gdbtk_tcl_fputs_error $message }
- "RTTI symbol not found for class.*" { gdbtk_tcl_fputs_error $message }
- default {show_warning $message}
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: show_warning -
-# ------------------------------------------------------------------
-proc show_warning {message} {
- global tcl_platform
-
- # FIXME We really want a Help button here. But Tk's brain-damaged
- # modal dialogs won't really allow it. Should have async dialog
- # here.
- set title "GDB"
- set modal "task"
-
-# On Windows, we use ide_messageBox which runs the Win32 MessageBox function
-# in another thread. This permits a program which handles IDE requests from
-# other programs to not return from the request until the MessageBox completes.
-# This is not possible without using another thread, since the MessageBox
-# function call will be running its own event loop, and will be higher on the
-# stack than the IDE request.
-#
-# On Unix tk_messageBox runs in the regular Tk event loop, so
-# another thread is not required.
-
-
- if {$tcl_platform(platform) == "windows"} {
- ide_messageBox [list set r] -icon warning \
- -default ok -message $message -title $title \
- -type ok -modal $modal -parent .
- } else {
- set r [tk_messageBox -icon warning -default ok \
- -message $message -title $title \
- -type ok -parent .]
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_ignorable_warning -
-# ------------------------------------------------------------------
-proc gdbtk_tcl_ignorable_warning {class message} {
- catch {ManagedWin::open WarningDlg -center -transient \
- -message [list $message] -ignorable $class}
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_fputs -
-# ------------------------------------------------------------------
-proc gdbtk_tcl_fputs {message} {
- global gdbtk_state
- # Restore the fputs hook, in case anyone forgot to put it back...
- gdb_restore_fputs
-
- if {[info exists gdbtk_state(console)] && $gdbtk_state(console) != ""} {
- $gdbtk_state(console) insert $message
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: echo -
-# ------------------------------------------------------------------
-proc echo {args} {
- gdbtk_tcl_fputs [concat $args]\n
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_fputs_error - write an error message
-# ------------------------------------------------------------------
-proc gdbtk_tcl_fputs_error {message} {
- if {[info exists ::gdbtk_state(console)] && $::gdbtk_state(console) != ""} {
- $::gdbtk_state(console) insert $message err_tag
- update
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_fputs_log - write a log message
-# ------------------------------------------------------------------
-proc gdbtk_tcl_fputs_log {message} {
- if {[info exists ::gdbtk_state(console)] && $::gdbtk_state(console) != ""} {
- $::gdbtk_state(console) insert $message log_tag
- update
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_fputs_target - write target output
-# ------------------------------------------------------------------
-proc gdbtk_tcl_fputs_target {message} {
- if {$::gdbtk_state(console) == ""} {
- ManagedWin::open Console -force
- }
- $::gdbtk_state(console) insert $message target_tag
- update
-}
-
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_fputs_target_err - write target error output
-# ------------------------------------------------------------------
-proc gdbtk_tcl_fputs_target_err {message} {
- if {$::gdbtk_state(console) == ""} {
- ManagedWin::open Console -force
- }
- $::gdbtk_state(console) insert $message err_tag
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_flush -
-# ------------------------------------------------------------------
-proc gdbtk_tcl_flush {} {
- debug [info level 0]
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_start_variable_annotation -
-# ------------------------------------------------------------------
-proc gdbtk_tcl_start_variable_annotation {valaddr ref_type stor_cl
- cum_expr field type_cast} {
- debug [info level 0]
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_end_variable_annotation -
-# ------------------------------------------------------------------
-proc gdbtk_tcl_end_variable_annotation {} {
- debug [info level 0]
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_breakpoint - A breakpoint was changed -- notify
-# gui.
-# ------------------------------------------------------------------
-proc gdbtk_tcl_breakpoint {action bpnum} {
-# debug "BREAKPOINT: $action $bpnum"
- set e [BreakpointEvent \#auto -action $action -number $bpnum]
- GDBEventHandler::dispatch $e
- delete object $e
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_tracepoint - A tracepoint was changed -- notify
-# gui.
-# ------------------------------------------------------------------
-proc gdbtk_tcl_tracepoint {action tpnum} {
-# debug "TRACEPOINT: $action $tpnum"
- set e [TracepointEvent \#auto -action $action -number $tpnum]
- GDBEventHandler::dispatch $e
- delete object $e
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_trace_find_hook -
-# ------------------------------------------------------------------
-proc gdbtk_tcl_trace_find_hook {arg from_tty} {
-# debug "$arg $from_tty"
- run_hooks gdb_trace_find_hook $arg $from_tty
-}
-
-################################################################
-#
-# Handle `readline' interface.
-#
-
-# Run a command that is known to use the "readline" interface. We set
-# up the appropriate buffer, and then run the actual command via
-# gdb_cmd. Calls into the "readline" callbacks just return values
-# from our list.
-
-# ------------------------------------------------------------------
-# PROC: gdb_run_readline_command -
-# ------------------------------------------------------------------
-proc gdb_run_readline_command {command args} {
- global gdbtk_state
- debug "$command $args"
- set gdbtk_state(readlineArgs) $args
- set gdbtk_state(readlineShowUser) 1
- gdb_cmd $command
-}
-
-# ------------------------------------------------------------------
-# PROC: gdb_run_readline_command_no_output
-# Run a readline command, but don't show the commands to the user.
-# ------------------------------------------------------------------
-proc gdb_run_readline_command_no_output {command args} {
- global gdbtk_state
- debug "$command $args"
- set gdbtk_state(readlineArgs) $args
- set gdbtk_state(readlineShowUser) 0
- gdb_cmd $command
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_readline_begin -
-# ------------------------------------------------------------------
-proc gdbtk_tcl_readline_begin {message} {
- global gdbtk_state
-# debug
- set gdbtk_state(readline) 0
- if {$gdbtk_state(console) != "" && $gdbtk_state(readlineShowUser)} {
- $gdbtk_state(console) insert $message
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_readline -
-# ------------------------------------------------------------------
-proc gdbtk_tcl_readline {prompt} {
- global gdbtk_state
-# debug "prompt=$prompt"
- if {[info exists gdbtk_state(readlineArgs)]} {
- # Not interactive, so pop the list, and print element.
- set cmd [lvarpop gdbtk_state(readlineArgs)]
- if {$gdbtk_state(console) != "" && $gdbtk_state(readlineShowUser)} {
- $gdbtk_state(console) insert $cmd
- }
- } else {
- # Interactive.
-# debug "interactive"
- set gdbtk_state(readline) 1
- $gdbtk_state(console) activate $prompt
- vwait gdbtk_state(readline_response)
- set cmd $gdbtk_state(readline_response)
-# debug "got response: $cmd"
- unset gdbtk_state(readline_response)
- set gdbtk_state(readline) 0
- }
- return $cmd
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_readline_end -
-# ------------------------------------------------------------------
-proc gdbtk_tcl_readline_end {} {
- global gdbtk_state
-# debug
- catch {unset gdbtk_state(readlineArgs)}
- catch {unset gdbtk_state(readlineActive)}
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_busy - this is called immediately before gdb
-# executes a command.
-#
-# ------------------------------------------------------------------
-proc gdbtk_tcl_busy {} {
- global gdbtk_state
- if {[incr gdbtk_state(busyCount)] == 1} {
- gdbtk_busy
- }
-}
-
-################################################################
-#
-#
-#
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_idle - this is called immediately after gdb
-# executes a command.
-# ------------------------------------------------------------------
-proc gdbtk_tcl_idle {} {
- global gdbtk_state
- if {$gdbtk_state(busyCount) > 0
- && [incr gdbtk_state(busyCount) -1] == 0} {
- gdbtk_update
- gdbtk_idle
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_tstart -
-# ------------------------------------------------------------------
-proc gdbtk_tcl_tstart {} {
- set srcwin [lindex [manage find src] 0]
- $srcwin.toolbar do_tstop 0
-
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_tstop -
-# ------------------------------------------------------------------
-proc gdbtk_tcl_tstop {} {
- set srcwin [lindex [manage find src] 0]
- $srcwin.toolbar do_tstop 0
-
-}
-
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_tcl_display -
-#
-# A display changed. ACTION is `enable', `disable', `delete',
-# `create', or `update'. VALUE is only meaningful in the `update'
-# case.
-# ------------------------------------------------------------------
-proc gdbtk_tcl_display {action number {value {}}} {
- # Handle create explicitly.
- if {$action == "create"} {
- manage create_if_never data
- }
- run_hooks gdb_display_change_hook $action $number $value
-}
-
-# ------------------------------------------------------------------
-# PROCEDURE: gdbtk_register_changed
-# This hook is called from value_assign to inform us that
-# the user has changed the contents of a register.
-# ------------------------------------------------------------------
-proc gdbtk_register_changed {} {
- after idle gdbtk_update_safe
-}
-
-# ------------------------------------------------------------------
-# PROCEDURE: gdbtk_memory_changed
-# This hook is called from value_assign to inform us that
-# the user has changed the contents of memory (including
-# the program's variables).
-# ------------------------------------------------------------------
-proc gdbtk_memory_changed {} {
- after idle gdbtk_update_safe
-}
-
-####################################################################
-# #
-# FILE HOOKS #
-# #
-# There are a number of hooks that are installed in gdb to #
-# aid with file-like commands (selecting an exectuable and #
-# loading symbols): #
-# - exec_file_display_hook #
-# Called in exec_file_command. The tcl hook is #
-# "gdbtk_tcl_exec_file_display" #
-# - file_changed_hook #
-# Called in file_command. The tcl hook is #
-# "gdbtk_tcl_file_changed" #
-# - deprecated_pre_add_symbol_hook #
-# Called in symbol_file_add before loading. The tcl #
-# hook is "gdbtk_tcl_pre_add_symbol" #
-# - deprecated_post_add_symbol_hook #
-# Called in symbol_file_add when finished loading #
-# a symbol file. The tcl hook is #
-# "gdbtk_tcl_post_add_symbol" #
-# #
-# Together, these hooks should give the gui enough information #
-# to cover the two most common uses of file commands: #
-# 1. executable with symbols #
-# 2. separate executable and symbol file(s) #
-# #
-####################################################################
-define_hook file_changed_hook
-
-# ------------------------------------------------------------------
-# PROCEDURE: gdbtk_tcl_pre_add_symbol
-# This hook is called before any symbol files
-# are loaded so that we can inform the user.
-# ------------------------------------------------------------------
-proc gdbtk_tcl_pre_add_symbol {file} {
-
- gdbtk_busy
-
- # Display some feedback to the user
- set srcs [ManagedWin::find SrcWin]
- foreach w $srcs {
- $w set_status "Reading symbols from $file..."
- }
- update idletasks
-}
-
-# ------------------------------------------------------------------
-# PROCEDURE: gdbtk_tcl_post_add_symbol
-# This hook is called after we finish reading a symbol
-# file, so the source windows' combo boxes need filling.
-# ------------------------------------------------------------------
-proc gdbtk_tcl_post_add_symbol {} {
-
- set srcs [ManagedWin::find SrcWin]
- foreach w $srcs {
- $w fillNameCB
- }
- gdbtk_idle
-}
-
-# ------------------------------------------------------------------
-# PROCEDURE: gdbtk_tcl_file_changed
-# This hook is called whenever the exec file changes.
-# This is called AFTER symbol reading, so it is
-# ok to point to main when we get called.
-# ------------------------------------------------------------------
-proc gdbtk_tcl_file_changed {filename} {
-
- if {$filename == ""} {
- gdb_clear_file
- catch {run_hooks gdb_clear_file_hook}
- set ::gdb_exe_name ""
- set ::gdb_loaded 0
- set ::gdb_running 0
- gdbtk_update
- } else {
- SrcWin::point_to_main
- run_hooks file_changed_hook
- }
-}
-
-# ------------------------------------------------------------------
-# PROCEDURE: gdbtk_tcl_exec_file_display
-# This hook is called from exec_file_command. It's purpose
-# is to setup the gui for a new file. Note that we cannot
-# look for main, since this hook is called BEFORE we
-# read symbols. If the user used the "file" command,
-# gdbtk_tcl_file_changed will set the source window to
-# look at main. If the user used "exec-file" and "add-symbol"
-# commands, then we cannot look for main.
-# ------------------------------------------------------------------
-proc gdbtk_tcl_exec_file_display {filename} {
- global gdb_exe_changed
-
- # DO NOT CALL set_exe here!
-
- # Clear out the GUI, don't do it if filename is "" so that
- # you avoid distracting flashes in the source window.
-
- if {$filename != ""} {
- gdbtk_clear_file
- }
-
- # set_exe calls file command with the filename in
- # quotes, so we need to strip them here.
- # We need to make sure that we turn filename into
- # an absolute path or sessions won't work.
- if {[file tail $filename] == $filename} {
- # want full pathname
- set filename [file join $::gdb_current_directory $filename]
- }
- set_exe_name $filename
- set gdb_exe_changed 0
-
- SrcWin::point_to_main
-}
-
-# ------------------------------------------------------------------
-# PROCEDURE: gdbtk_locate_main
-# This proc tries to locate a suitable main function from
-# a list of names defined in the gdb/main_names preference;
-# returns the linespec (see below) if found, or a null string
-# if not.
-#
-# The return linespec looks like this:
-# 0: basename of the file
-# 1: function name
-# 2: full filename
-# 3: source line number
-# 4: address
-# 5: current PC - which will often be the same as address, but not when
-# we are browsing, or walking the stack.
-# 6: shared library name if the pc is in a shared lib
-#
-# ------------------------------------------------------------------
-proc gdbtk_locate_main {{init ""}} {
- global _main_cache gdb_exe_name
- debug
-
- if {$init == "" && $_main_cache != ""} {
- #debug "returning $_main_cache from cache"
- return $_main_cache
- }
- set _main_cache {}
-
- set main_names [pref get gdb/main_names]
- foreach main $main_names {
- if {![catch {gdb_loc $main} linespec]} {
- set _main_cache $linespec
- break
- }
- }
- if {$_main_cache == {}
- && ![catch gdb_entry_point entry_point]
- && ![catch {gdb_loc "*$entry_point"} linespec]} {
- set _main_cache $linespec
- }
-
- # need to see if result is valid
- lassign $_main_cache file func ffile line addr rest
- if {$addr == 0x0 && $func == {}} { set _main_cache {} }
-
- #debug "returning $_main_cache"
- return $_main_cache
-}
-
-##############################################
-# The rest of this file is an assortment of Tcl wrappers
-# for various bits of gdb functionality.
-#
-#############################################
-
-# ------------------------------------------------------------------
-# PROC: set_exe_name - Update the executable name
-# ------------------------------------------------------------------
-proc set_exe_name {exe} {
- global gdb_exe_name gdb_exe_changed
- #debug "exe=$exe gdb_exe_name=$gdb_exe_name"
-
- set gdb_exe_name $exe
- set gdb_exe_changed 1
-}
-
-
-# ------------------------------------------------------------------
-# PROC: set_exe -
-# ------------------------------------------------------------------
-proc set_exe {} {
- global gdb_exe_name gdb_exe_changed gdb_target_changed gdb_loaded file_done
-# debug "gdb_exe_changed=$gdb_exe_changed gdb_exe_name=$gdb_exe_name"
- if {$gdb_exe_changed} {
- set gdb_exe_changed 0
- if {$gdb_exe_name == ""} { return }
- set err [catch {gdb_cmd "file '$gdb_exe_name'" 1} msg]
- if {$err} {
- dbug E "$msg"
- set l [split $msg :]
- set errtxt [join [lrange $l 1 end] :]
- set msg "Error loading \"$gdb_exe_name\":\n"
- append msg $errtxt
- tk_messageBox -title "Error" -message $msg -icon error \
- -type ok
- set gdb_exe_name {}
- set file_done 0
- return
- } elseif {[string match {*no debugging symbols found*} $msg]} {
- tk_messageBox -icon error -default ok \
- -title "GDB" -type ok \
- -message "This executable has no debugging information."
- }
-
- # force new target command
- set gdb_target_changed 1
- set gdb_loaded 0
- set file_done 1
- }
-}
-
-# ------------------------------------------------------------------
-# _open_file - open a file dialog to select a file for debugging.
-# If filename is not "", then open this file.
-# ------------------------------------------------------------------
-
-proc _open_file {{file ""}} {
- global gdb_running gdb_downloading tcl_platform
-
- if {$gdb_running || $gdb_downloading} {
- # We are already running/downloading something..
- if {$gdb_running} {
- set msg "A debugging session is active.\nAbort session and load new file?"
- } else {
- set msg "A download is in progress.\nAbort download and load new file?"
- }
- if {![gdbtk_tcl_query $msg no]} {
- return 0
- }
- }
-
- if {[string compare $file ""] == 0} {
- set curFocus [focus]
-
- # Make sure that this is really a modal dialog...
- # FIXME: Add a disable_all to ide_grab_support.
-
- ide_grab_support disable_except {}
-
- set file [tk_getOpenFile -parent . -title "Load New Executable"]
-
- ide_grab_support enable_all
-
- # If no one had the focus before, leave it that way (since I
- # am not sure how this could happen... Also, the vwait in
- # tk_getOpenFile could have allowed the curFocus window to actually
- # be destroyed, so make sure it is still around.
-
- if {$curFocus != "" && [winfo exists $curFocus]} {
- raise [winfo toplevel $curFocus]
- focus $curFocus
- }
- } elseif {![file exists $file]} {
- tk_messageBox -message "File \"$file\" does not exist"
- return 0
- }
-
-
- if {$file == ""} {
- return 0
- }
- # Add the base dir for this file to the source search path.
- set root [file dirname $file]
- if {$tcl_platform(platform) == "windows"} {
- set root [ide_cygwin_path to_posix $root]
- set file [ide_cygwin_path to_posix $file]
- }
-
- catch {gdb_cmd "cd $root"}
-
- # Clear out gdb's internal state, so that it will allow us
- # (the gui) to ask the user questions.
- gdb_clear_file
-
- # The gui needs to set this...
- set_exe_name $file
-
- # set_exe needs to be called anywhere the gui does a file_command...
- if {[set_exe] == "cancel"} {
- gdbtk_update
- gdbtk_idle
- return 0
- }
-
- return 1
-}
-
-# ------------------------------------------------------------------
-# _close_file - close the current executable and prepare for
-# another executable.
-# ------------------------------------------------------------------
-proc _close_file {} {
-
- # If there is already an inferior, ask him if he wants to close
- # the file. If there is already an exec file loaded (and not run)
- # also ask, but don't ask twice.
- set okay 1
- if {[gdb_target_has_execution]} {
- set okay [gdbtk_tcl_query "Program is already running.\nClose file anyway?"]
- } elseif {$::gdb_exe_name != ""} {
- set okay [gdbtk_tcl_query "Program already loaded.\nClose file anyway?"]
- } else {
- # No exec file yet
- return
- }
-
- if {$okay} {
- Session::save
- gdb_clear_file
- gdbtk_tcl_file_changed ""
-
- # Print out a little message to all console windows
- foreach cw [ManagedWin::find Console] {
- $cw insert "No executable file now.\n"
- }
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: set_target_name - Update the target name.
-#
-# This function will prompt for a new target and update
-# all variables.
-#
-# If $prompt is 0 it will just update gdb_target_cmd from gdb_target.
-#
-# RETURN:
-# 1 if successful,
-# 0 if the not (the user canceled the target selection dialog)
-# ------------------------------------------------------------------
-proc set_target_name {{prompt 1}} {
- global gdb_target_name gdb_target_changed gdb_exe_changed
- global gdb_target_cmd gdb_pretty_name
-# debug
- set cmd_tmp $gdb_target_cmd
- set name_tmp $gdb_target_name
-
-# debug "gdb_target_name=$gdb_target_name; name_tmp=$name_tmp"
- if {$prompt} {
- set win [ManagedWin::open TargetSelection -exportcancel 1 -center \
- -transient]
- # need to call update here so the target selection dialog can take over
- update idletasks
- }
-
-# debug "gdb_target_name=$gdb_target_name"
- if {$gdb_target_name == "CANCEL"} {
- set gdb_target_cmd $cmd_tmp
- set gdb_target_name $name_tmp
- return 0
- }
- set target $gdb_target_name
- set targ [TargetSelection::getname $target cmd]
- set gdb_target_cmd $cmd_tmp
- set gdb_pretty_name [TargetSelection::getname $target pretty-name]
-
-# debug "target=$target pretty_name=$gdb_pretty_name"
- set targ_opts ""
- switch -regexp -- $gdb_target_name {
- sim|ice {
- set targ $gdb_target_name
- set targ_opts [pref getd gdb/load/${gdb_target_name}-opts]
- }
- default {
- set port [pref getd gdb/load/$target-port]
- if {$port == ""} {
- set port [pref get gdb/load/default-port]
- }
- set portnum [pref getd gdb/load/$target-portname]
- if {$portnum == ""} {
- set portnum [pref get gdb/load/default-portname]
- }
- set hostname [pref getd gdb/load/$target-hostname]
- if {$hostname == ""} {
- set hostname [pref getd gdb/load/default-hostname]
- }
- # replace "com1" with the real port name
- set targ [lrep $targ "com1" $port]
- # replace "tcpX" with hostname:portnum
- set targ [lrep $targ "tcpX" ${hostname}:${portnum}]
- # replace "ethX" with hostname
- set targ [lrep $targ "ethX" e=${hostname}]
- }
- }
-
-# debug "targ=$targ gdb_target_cmd=$gdb_target_cmd"
- if {$gdb_target_cmd != $targ || $gdb_target_changed} {
- set gdb_target_changed 1
- set gdb_target_cmd "$targ $targ_opts"
- }
- return 1
-}
-
-# ------------------------------------------------------------------
-# PROC: set_target - Change the target
-# ------------------------------------------------------------------
-proc set_target {} {
- global gdb_target_cmd gdb_target_changed gdb_pretty_name gdb_target_name
- #debug "gdb_target_changed=$gdb_target_changed gdb_target_cmd=\"$gdb_target_cmd\""
- #debug "gdb_target_name=$gdb_target_name"
- if {$gdb_target_cmd == "" && ![TargetSelection::native_debugging]} {
- if {$gdb_target_name == ""} {
- set prompt 1
-
- # get the default
- #set gdb_target_name [pref getd gdb/load/target]
- } else {
- set prompt 0
- }
- if {![set_target_name $prompt]} {
- set gdb_target_name ""
- return CANCELED
- }
- }
-
- if {$gdb_target_changed} {
- set srcWin [lindex [ManagedWin::find SrcWin] 0]
-
- $srcWin set_status "Trying to communicate with target $gdb_pretty_name" 1
- update
- catch {gdb_cmd "detach"}
- debug "CONNECTING TO TARGET: $gdb_target_cmd"
- gdbtk_busy
- set err [catch {gdb_immediate "target $gdb_target_cmd"} msg ]
- $srcWin set_status
- gdbtk_idle
-
- if {$err} {
- if {[string first "Program not killed" $msg] != -1} {
- return CANCELED
- }
- update
- set dialog_title "GDB"
- set debugger_name "GDB"
- tk_messageBox -icon error -title $dialog_title -type ok \
- -message "$msg\n\n$debugger_name cannot connect to the target board\
-using [lindex $gdb_target_cmd 1].\nVerify that the board is securely connected and, if\
-necessary,\nmodify the port setting with the debugger preferences."
- return ERROR
- }
-
- if {![catch {pref get gdb/load/$gdb_target_name-after_attaching} aa] && $aa != ""} {
- if {[catch {gdb_cmd $aa} err]} {
- catch {[ManagedWin::find Console] insert $err err_tag}
- }
- }
- set gdb_target_changed 0
- return TARGET_CHANGED
- }
- return TARGET_UNCHANGED
-}
-
-# ------------------------------------------------------------------
-# PROC: run_executable -
-#
-# This procedure is used to run an executable. It is called when the
-# run button is used.
-# ------------------------------------------------------------------
-proc run_executable { {auto_start 1} } {
- global gdb_loaded gdb_downloading gdb_target_name
- global gdb_exe_changed gdb_target_changed gdb_program_has_run
- global gdb_running gdb_exe_name tcl_platform
-
-# debug "auto_start=$auto_start gdb_target_name=$gdb_target_name"
-
- set gdb_running_saved $gdb_running
- set gdb_running 0
-
- # No executable was specified. Prompt the user for one.
- if {$gdb_exe_name == ""} {
- if {[_open_file]} {
- run_executable $auto_start
- return
- } else {
- # The user canceled the load of a new executable.
- return
- }
- }
-
- if {$gdb_downloading} { return }
- if {[pref get gdb/control_target]} {
- # Breakpoint mode
- set_exe
-
- # Attach
- if {$gdb_target_name == "" || [pref get gdb/src/run_attach]} {
- set r [gdbtk_attach_remote]
- if {$r == "ATTACH_CANCELED" || $r == "ATTACH_ERROR"} {
- return
- }
- }
-
- # Download
- if {[pref get gdb/src/run_load] && $gdb_target_name != "exec"} {
- debug "Downloading..."
- set gdb_loaded 0
-
- # if the app has not been downloaded or the app has already
- # started, we need to redownload before running
- if {!$gdb_loaded} {
- if {[Download::download_it]} {
- # user cancelled the command
-# debug "user cancelled the command $gdb_running"
- set gdb_loaded 0
- gdbtk_update
- gdbtk_idle
- }
- if {!$gdb_loaded} {
- # The user cancelled the download after it started
-# debug "User cancelled the download after it started $gdb_running"
- gdbtk_update
- gdbtk_idle
- return
- }
- }
- }
-
- # _Now_ set/clear breakpoints
- if {[pref get gdb/load/exit] && ![TargetSelection::native_debugging]} {
- debug "Setting new BP at exit"
- catch {gdb_cmd "clear exit"}
- catch {gdb_cmd "break exit"}
- }
-
- if {[pref get gdb/load/main]} {
- set main "main"
- if {[set linespec [gdbtk_locate_main]] != ""} {
- set main [lindex $linespec 1]
- }
- debug "Setting new BP at $main"
- catch {gdb_cmd "clear $main"}
- catch {gdb_cmd "break $main"}
- }
-
- # set BP at user-specified function
- if {[pref get gdb/load/bp_at_func]} {
- foreach bp [pref get gdb/load/bp_func] {
- debug "Setting BP at $bp"
- catch {gdb_cmd "clear $bp"}
- catch {gdb_cmd "break $bp"}
- }
- }
-
- # This is a hack. If the target is "sim" the opts are appended
- # to the target command. Otherwise they are assumed to be command line
- # args. What about simulators that accept command line args?
- if {$gdb_target_name != "sim"} {
- # set args
- set gdb_args [pref getd gdb/load/$gdb_target_name-opts]
- if { $gdb_args != ""} {
- debug "set args $gdb_args"
- gdb_set_inferior_args $gdb_args
- }
- }
-
- # If the user requested it, start an xterm for use as the
- # inferior's tty.
- if {$tcl_platform(platform) != "windows"
- && [pref getd gdb/process/xtermtty] == "yes"} {
- tty::create
- }
-
- #
- # Run
-
- if {$auto_start} {
- if {[pref get gdb/src/run_run]} {
- debug "Runnning target..."
- set run run
- } else {
- debug "Continuing target..."
- set run cont
- }
- if {$gdb_target_name == "exec"} {
- set run run
- }
- if {[catch {gdb_immediate $run} msg]} {
- dbug W "msg=$msg"
- gdbtk_idle
- if {[string match "*help target*" $msg]} {
- set_target_name
- run_executable $auto_start
- return
- }
- if {[string match "No executable*" $msg]} {
- # No executable was specified. Prompt the user for one.
- if {[_open_file]} {
- run_executable $auto_start
- } else {
- debug "CANCELLED"
- }
- return
- }
- set gdb_running $gdb_running_saved
- } else {
- debug RUNNING
- set gdb_running 1
- }
- } else {
- SrcWin::point_to_main
- }
-
- gdbtk_update
- gdbtk_idle
- } elseif {[pref get gdb/mode]} {
- # tracepoint -- need to tstart
- set gdb_running 1
- tstart
- }
- return
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_attach_remote - attach to the target
-# This proc returns the following status messages:
-#
-# ATTACH_ERROR: An error occurred connecting to target.
-# ATTACH_CANCELED: The attach was canceled.
-# ATTACH_TARGET_CHANGED: Successfully attached, target changed.
-# ATTACH_TARGET_UNCHANGED: Successfully attached, target unchanged.
-# UNKNOWN: An unknown error occurred.
-# ------------------------------------------------------------------
-proc gdbtk_attach_remote {} {
- global gdb_loaded
-
- debug "Attaching...."
- set r UNKNOWN
- while {1} {
-
- switch [set_target] {
-
- ERROR {
- # target command failed, ask for a new target name
- if {![set_target_name]} {
- # canceled again
- set r ATTACH_ERROR
- break
- }
- }
-
- TARGET_CHANGED {
- # success -- target changed
- set gdb_loaded 0
- set r ATTACH_TARGET_CHANGED
- break
- }
-
- CANCELED {
- # command cancelled by user
- set r ATTACH_CANCELED
- break
- }
-
- TARGET_UNCHANGED {
- # success -- target NOT changed (i.e., rerun)
- set r ATTACH_TARGET_UNCHANGED
- break
- }
- }
- }
-
-# debug "Attach returning: \"$r\""
- return $r
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_connect: connect to a remote target
-# in asynch mode if async is 1
-# ------------------------------------------------------------------
-proc gdbtk_connect {{async 0}} {
- global file_done
-
- debug "async=$async"
-
- gdbtk_busy
-
- set result [gdbtk_attach_remote]
- switch $result {
- ATTACH_ERROR {
- set successful 0
- }
-
- ATTACH_TARGET_CHANGED {
- if {[pref get gdb/load/check] && $file_done} {
- set err [catch {gdb_cmd "compare-sections"} errTxt]
- if {$err} {
- set successful 0
- tk_messageBox -title "Error" -message $errTxt \
- -icon error -type ok
- break
- }
- }
-
- tk_messageBox -title "GDB" -message "Successfully connected" \
- -icon info -type ok
- set successful 1
- }
-
- ATTACH_CANCELED {
- tk_messageBox -title "GDB" -message "Connection Canceled" -icon info \
- -type ok
- set successful 0
- }
-
- ATTACH_TARGET_UNCHANGED {
- tk_messageBox -title "GDB" -message "Successfully connected" \
- -icon info -type ok
- set successful 1
- }
-
- default {
- dbug E "Unhandled response from gdbtk_attach_remote: \"$result\""
- set successful 0
- }
- }
-
- gdbtk_idle
-
- # Whenever we attach, we need to do an update
- if {$successful} {
- gdbtk_attached
- }
- return $successful
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_step - step the target
-# ------------------------------------------------------------------
-proc gdbtk_step {} {
- catch {gdb_immediate step}
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_next
-# ------------------------------------------------------------------
-proc gdbtk_next {} {
- catch {gdb_immediate next}
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_finish
-# ------------------------------------------------------------------
-proc gdbtk_finish {} {
- catch {gdb_immediate finish}
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_continue
-# ------------------------------------------------------------------
-proc gdbtk_continue {} {
- catch {gdb_immediate continue}
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_stepi
-# ------------------------------------------------------------------
-proc gdbtk_stepi {} {
- catch {gdb_immediate stepi}
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_nexti
-# ------------------------------------------------------------------
-proc gdbtk_nexti {} {
- catch {gdb_immediate nexti}
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_attached
-# ------------------------------------------------------------------
-#
-# This is called AFTER gdb has successfully done an attach. Use it to
-# bring the GUI up to a current state...
-proc gdbtk_attached {} {
- gdbtk_update
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_detached
-# ------------------------------------------------------------------
-#
-# This is called AFTER gdb has successfully done an detach. Use it to
-# bring the GUI up to a current state...
-proc gdbtk_detached {} {
- if {!$::gdb_shutting_down} {
- run_hooks gdb_no_inferior_hook
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_stop
-# ------------------------------------------------------------------
-#
-# The stop button is tricky. In order to use the stop button,
-# the debugger must be able to keep gui alive while target_wait is
-# blocking (so that the user can interrupt or detach from it).
-#
-# The best solution for this is to capture gdb deep down where it can
-# block. For _any_ target board, this will be in either serial or
-# socket code. These places call deprecated_ui_loop_hook to keep us
-# alive. For native unix, we use an interval timer. Simulators either
-# call deprecated_ui_loop_hook directly (older sims, at least) or they
-# call gdb's os_poll_quit callback, where we insert a call to
-# deprecated_ui_loop_hook. Some targets (like v850ice and windows
-# native) require a call to deprecated_ui_loop_hook directly in
-# target_wait. See comments before gdb_stop and x_event to find out
-# more about how this is accomplished.
-#
-# The stop button's behavior:
-# Pressing the stop button should attempt to stop the target. If, after
-# some time (like 3 seconds), gdb fails to fall out of target_wait (i.e.,
-# the gui's idle hooks are run), then open a dialog asking the user if
-# he'd like to detach.
-proc gdbtk_stop {} {
- global _gdbtk_stop
-
- if {$_gdbtk_stop(timer) == ""} {
- add_hook gdb_idle_hook gdbtk_stop_idle_callback
- set _gdbtk_stop(timer) [after 15000 gdbtk_detach]
- catch {gdb_stop}
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_stop_idle_callback
-# ------------------------------------------------------------------
-# This callback normally does nothing. When the stop button has
-# been pressed, though, and gdb has successfully stopped the target,
-# this callback will clean up after gdbtk_stop, removing the "Detach"
-# dialog (if it's open) and gettingg rid of any outstanding timers
-# and hooks.
-proc gdbtk_stop_idle_callback {} {
- global _gdbtk_stop gdbtk_state
-
- # Check if the dialog asking if user wants to detach is open
- # and unpost it if it exists.
- if {$_gdbtk_stop(msg) != ""} {
- set ans [list answer $_gdbtk_stop(msg)]
- set gdbtk_state($ans) no
- }
-
- if {$_gdbtk_stop(timer) != ""} {
- # Cancel the timer callback
- after cancel $_gdbtk_stop(timer)
- set _gdbtk_stop(timer) ""
- catch {remove_hook gdb_idle_hook gdbtk_stop_idle_callback}
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_detach
-# ------------------------------------------------------------------
-# This proc is installed as a timer event when the stop button
-# is pressed. If target_wait doesn't return (we were unable to stop
-# the target), then this proc is called.
-#
-# Open a dialog box asking if the user would like to detach. If so,
-# try to detach. If not, do nothing and go away.
-proc gdbtk_detach {} {
- global _gdbtk_stop
-
- set _gdbtk_stop(msg) "No response from target. Detach from target\n(and stop debugging it)?"
- if {[gdbtk_tcl_query $_gdbtk_stop(msg) no]} {
- catch {gdb_stop detach}
- }
-
- set _gdbtk_stop(timer) ""
- set _gdbtk_stop(msg) ""
- remove_hook gdb_idle_hook gdbtk_stop_idle_callback
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_run
-# ------------------------------------------------------------------
-proc gdbtk_run {} {
- if {$::gdb_running == 1} {
- set msg "A program is currently being debugged.\n"
- append msg "Do you want to restart?"
- if {![gdbtk_tcl_query $msg no]} {
- # NO
- return
- }
- }
- run_executable
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_attach_native: attach to a running target
-# ------------------------------------------------------------------
-proc gdbtk_attach_native {} {
- ManagedWin::open_dlg AttachDlg ;#-transient
-
- debug "ManagedWin got [AttachDlg::last_button] [AttachDlg::pid]"
-
- if {[AttachDlg::last_button]} {
- set pid [AttachDlg::pid]
- set symbol_file [AttachDlg::symbol_file]
- if {$symbol_file != "" && ![_open_file $symbol_file]} {
- ManagedWin::open WarningDlg -transient \
- -message "Could not load symbols from $symbol_file."
- return
- }
-
- if {[catch {gdb_cmd "attach $pid"} result]} {
- ManagedWin::open WarningDlg -transient \
- -message [list "Could not attach to $pid:\n$result"]
- return
- }
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: set_baud - Tell GDB the baud rate.
-# ------------------------------------------------------------------
-proc set_baud {} {
- global gdb_target_name
- #set target [ide_property get target-internal-name]
- set baud [pref getd gdb/load/${gdb_target_name}-baud]
- if {$baud == ""} {
- set baud [pref get gdb/load/baud]
- }
-# debug "setting baud to $baud"
- catch {gdb_cmd "set remotebaud $baud"}
-}
-
-# ------------------------------------------------------------------
-# PROC: do_state_hook -
-# ------------------------------------------------------------------
-proc do_state_hook {varname ind op} {
- run_hooks state_hook $varname
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_disconnect -
-# ------------------------------------------------------------------
-proc gdbtk_disconnect {{async 0}} {
- global gdb_loaded gdb_target_changed
- catch {gdb_cmd "detach"}
- # force a new target command to do something
- set gdb_loaded 0
- set gdb_target_changed 1
- set gdb_running 0
- gdbtk_idle
- gdbtk_update
- }
-
-# ------------------------------------------------------------------
-# PROC: tstart -
-# ------------------------------------------------------------------
-proc tstart {} {
- if {[catch {gdb_cmd "tstart"} errTxt]} {
- tk_messageBox -title "Error" -message $errTxt -icon error \
- -type ok
- gdbtk_idle
- return 0
- }
- return 1
-}
-
-# ------------------------------------------------------------------
-# PROC: tstop -
-# ------------------------------------------------------------------
-proc tstop {} {
-
- if {[catch {gdb_cmd "tstop"} errTxt]} {
- tk_messageBox -title "Error" -message $errTxt -icon error \
- -type ok
- gdbtk_idle
- return 0
- }
- return 1
- }
-
-# ------------------------------------------------------------------
-# PROC: source_file -
-# ------------------------------------------------------------------
-proc source_file {} {
- set file_name [tk_getOpenFile -title "Choose GDB Command file"]
- if {$file_name != ""} {
- gdb_cmd "source $file_name"
- }
-}
-
-
-# -----------------------------------------------------------------------------
-# NAME: gdbtk_signal
-#
-# SYNOPSIS: gdbtk_signal {name longname}
-#
-# DESC: This procedure is called from GDB when a signal
-# is generated, for example, a SIGSEGV.
-#
-# ARGS: name - The name of the signal, as returned by
-# target_signal_to_name().
-# longname - A description of the signal.
-# -----------------------------------------------------------------------------
-proc gdbtk_signal {name {longname ""}} {
- dbug W "caught signal $name $longname"
- set longname
- set message "Program received signal $name, $longname"
- set srcs [ManagedWin::find SrcWin]
- foreach w $srcs {
- $w set_status $message
- }
- gdbtk_tcl_ignorable_warning signal $message
- update idletasks
-}
-
-# Hook for clearing out executable state. Widgets should register a callback
-# for this hook if they have anything that may need cleaning if the user
-# requests to re-load an executable.
-define_hook gdb_clear_file_hook
-
-# -----------------------------------------------------------------------------
-# NAME: gdbtk_clear_file
-#
-# SYNOPSIS: gdbtk_clear_file
-#
-# DESC: This procedure is called when the user requests a new exec
-# file load. It runs the gdb_clear_file_hook, which tells
-# all widgets to clear state. It CANNOT call gdb_clear_file,
-# since this hook runs AFTER we load a new exec file (i.e.,
-# gdb_clear_file would clear the file name).
-#
-# ARGS: none
-# -----------------------------------------------------------------------------
-proc gdbtk_clear_file {} {
- global gdb_target_name
-
- debug
- # Give widgets a chance to clean up
- catch {run_hooks gdb_clear_file_hook}
-
- # Save the target name in case the user has already selected a
- # target. No need to force the user to select it again.
- set old_target $gdb_target_name
-
- # Finally, reset our state
- initialize_gdbtk
-
- set gdb_target_name $old_target
-}
-
-# ------------------------------------------------------------------
-# PROC: intialize_gdbtk - (re)initialize gdbtk's state
-# ------------------------------------------------------------------
-proc initialize_gdbtk {} {
- global gdb_exe_changed gdb_target_changed gdb_running gdb_downloading \
- gdb_loaded gdb_program_has_run file_done gdb_pretty_name gdb_exec \
- gdb_target_cmd download_dialog gdb_pretty_name gdb_exe_name _gdbtk_stop \
- gdb_target_name gdb_target_changed gdbtk_state gdb_kod_cmd gdb_shutting_down
-
- # initialize state variables
- set gdb_exe_changed 0
- set gdb_target_changed 0
- set gdb_running 0
- set gdb_downloading 0
- set gdb_loaded 0
- set gdb_program_has_run 0
- set file_done 0
- set gdb_pretty_name {}
- set gdb_exec {}
- set gdb_target_cmd ""
- set gdb_running 0
- set gdb_shutting_down 0
-
- set download_dialog ""
-
- # gdb_pretty_name is the name of the GDB target as it should be
- # displayed to the user.
- set gdb_pretty_name ""
-
- # gdb_exe_name is the name of the executable we are debugging.
- set gdb_exe_name ""
-
- # Initialize readline
- if {![info exists gdbtk_state(readline)]} {
- # Only do this once...
- set gdbtk_state(readline) 0
- set gdbtk_state(console) ""
- set gdbtk_state(readlineShowUser) 1
- }
-
- # flush cache for gdbtk_locate_main
- gdbtk_locate_main 1
-
- # check for existence of a kod command and get it's name and
- # text for menu entry
- set gdb_kod_cmd ""
- set msg ""
- if {![catch {gdb_cmd "show os"} msg] && ($msg != "")} {
- set line1 [string range $msg 0 [expr [string first \n $msg] -1]]
- if {[regexp -- \"(.*)\" $line1 dummy cmd]} {
- set gdb_kod_cmd $cmd
- }
- }
-# debug "kod_cmd=$gdb_kod_cmd"
-
- # setup stop button
- set _gdbtk_stop(timer) ""
- set _gdbtk_stop(msg) ""
-
- # gdb_target_name is the name of the GDB target; that is, the argument
- # to the GDB target command.
- set gdb_target_name ""
-
- # By setting gdb_target_changed, we force a target dialog
- # to be displayed on the first "run"
- set gdb_target_changed 1
-}
-
-# The architecture changed. Inform the UI.
-proc gdbtk_tcl_architecture_changed {} {
- set e [ArchChangedEvent \#auto]
- GDBEventHandler::dispatch $e
- delete object $e
-}
-
-proc gdbtk_console_read {} {
- if {$::gdbtk_state(console) == ""} {
- ManagedWin::open Console -force
- } else {
- raise [namespace tail $::gdbtk_state(console)]
- }
- set result [$::gdbtk_state(console) gets]
- debug "result=$result"
- return $result
-}
diff --git a/gdb/gdbtk/library/ipc.tcl b/gdb/gdbtk/library/ipc.tcl
deleted file mode 100755
index 10ce7765907..00000000000
--- a/gdb/gdbtk/library/ipc.tcl
+++ /dev/null
@@ -1,135 +0,0 @@
-# ipc.tcl
-# Copyright (C) 2004 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# ----------------------------------------------------------------------
-# Implements IPC for multiple Insight instances, allowing any Insight
-# to send commands to all other Insights on the same host.
-#
-# PUBLIC METHODS:
-#
-# send $cmd - sends $cmd to all Insights
-#
-# ----------------------------------------------------------------------
-
-itcl::class Iipc {
-
- private variable socklist
- private variable portnum 9909
- private variable serversock
-
- constructor {} {
- init
- }
-
- destructor {
- debug
- foreach sock $socklist {
- catch {::close $sock}
- }
-
- if {$serversock != "0"} {
- catch {::close $serversock}
- }
- set ::iipc 0
- }
-
- private method init {} {
- debug "iipc init"
- set socklist {}
- set serversock 0
- set portnum [pref get gdb/ipc/port]
- if {[catch {socket -server [code $this accept] $portnum} serversock]} {
- debug "server already exists. Connecting to it."
- set socklist [socket localhost $portnum]
- fconfigure $socklist -buffering line -blocking 0
- fileevent $socklist readable [code $this read $socklist]
- }
- set ::iipc 1
- }
-
- # accept new connection to server
- private method accept {sock addr port} {
- debug "accepting connecting from $sock -> $addr:$port"
- fconfigure $sock -buffering line -blocking 0
- lappend socklist $sock
- fileevent $sock readable [code $this sread $sock]
- }
-
- private method read {s} {
- if [eof $s] {
- debug "The server died on $s!!"
- catch {::close $s}
- init
- return
- }
- gets $s res
- debug "Server: $res"
- switch $res {
- quit { gdb_force_quit }
- stop { gdbtk_stop }
- run { gdbtk_run }
- default {
- catch {gdb_immediate "$res"}
- }
- }
- }
-
- # server read method. Reads data then forwards
- # it to all listening sockets.
- private method sread {s} {
- if [eof $s] {
- close $s
- return
- }
- gets $s res
- if {$res != ""} {
- debug "Got: $res"
- foreach sock $socklist {
- if {$s != $sock} {
- if {[catch {puts $sock $res}]} {
- close $sock
- }
- }
- }
- switch $res {
- quit { gdb_force_quit }
- stop { gdbtk_stop }
- run { gdbtk_run }
- default {
- catch {gdb_immediate "$res"}
- }
- }
- }
- }
-
- # send data to all sockets.
- public method send {cmd} {
- debug "send $cmd"
- foreach sock $socklist {
- if {[catch {puts $sock $cmd}]} {
- close $sock
- }
- }
- }
-
- private method close {s} {
- debug "closing socket $s"
- set socklist [lremove $socklist $s]
- catch {::close $s}
- }
-}
-
-
-
-
-
diff --git a/gdb/gdbtk/library/ipcpref.itb b/gdb/gdbtk/library/ipcpref.itb
deleted file mode 100644
index 6906b9ba47a..00000000000
--- a/gdb/gdbtk/library/ipcpref.itb
+++ /dev/null
@@ -1,135 +0,0 @@
-# IPC preferences dialog for Insight.
-# Copyright (C) 2004 Red Hat
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ------------------------------------------------------------------
-# CONSTRUCTOR - create new IPC preferences window
-# ------------------------------------------------------------------
-itcl::body IPCPref::constructor {args} {
- window_name "Insight IPC Preferences"
- _init_var
- _build_win
-}
-
-# ------------------------------------------------------------------
-# METHOD: init_var - initialize preference variables
-# ------------------------------------------------------------------
-itcl::body IPCPref::_init_var {} {
- set vlist [list gdb/ipc/enabled gdb/ipc/port gdb/ipc/step_button gdb/ipc/stop_button \
- gdb/ipc/cont_button gdb/ipc/exit gdb/ipc/run_button]
-
- foreach var $vlist {
- set _saved($var) [pref get $var]
- set _new($var) $_saved($var)
- }
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: build_win - build the dialog
-# ------------------------------------------------------------------
-itcl::body IPCPref::_build_win {} {
- frame $itk_interior.f
- frame $itk_interior.f.a
- frame $itk_interior.f.b
- set f $itk_interior.f.a
-
- # Description frame
- set d [labelframe $f.desc -text "Description"]
- label $d.txt -justify left -wraplength 6i -background $::Colors(textbg) \
- -text "Some multiprocessor systems use multiple instances of Insight \
-for debugging different CPUs. In these cases it may be desirable to have \
-all the instances stop, start, or continue at the same time. The IPC \
-feature can do that and more.\n\nThe IPC uses local TCP connections to the\
-port number specified below."
-
- pack $d.txt -side top
-
- checkbutton $f.enabled -text "Enable IPC" -variable [scope _new(gdb/ipc/enabled)]
- frame $f.port
- spinbox $f.port.box -from 0 -to 65535 -wrap 0\
- -width 6 -textvariable [scope _new(gdb/ipc/port)] -validate key \
- -vcmd {string is integer %P}
- label $f.port.label -text "TCP Port Number"
- pack $f.desc -expand yes -fill both
- pack $f.enabled -anchor w -pady 10
- pack $f.port.box $f.port.label -side left -pady 10
- pack $f.port -anchor w -pady 10
-
- set w [labelframe $f.buttons -text "Enable IPC on these buttons"]
- checkbutton $w.0 -text "Run" -variable [scope _new(gdb/ipc/run_button)]
- checkbutton $w.1 -text "Stop" -variable [scope _new(gdb/ipc/stop_button)]
- checkbutton $w.2 -text "Continue" -variable [scope _new(gdb/ipc/cont_button)]
- checkbutton $w.3 -text "Step" -variable [scope _new(gdb/ipc/step_button)]
- checkbutton $w.4 -text "Exit" -variable [scope _new(gdb/ipc/exit)]
- grid $w.0 $w.1 -padx 10 -pady 10 -sticky w
- grid $w.2 $w.3 -padx 10 -pady 10 -sticky w
- grid $w.4 -padx 10 -pady 10 -sticky w
- pack $w -fill both -expand yes
- pack $f.buttons -fill both -expand yes
-
- button $itk_interior.f.b.ok -text OK -width 7 -underline 0 -command [code $this _save]
- button $itk_interior.f.b.quit -text Cancel -width 7 -underline 0 -command [code $this _cancel]
- standard_button_box $itk_interior.f.b
- pack $itk_interior.f.a $itk_interior.f.b $itk_interior.f -expand yes -fill both -padx 5 -pady 5
-}
-
-# ------------------------------------------------------------------
-# METHOD: apply - apply changes
-# ------------------------------------------------------------------
-itcl::body IPCPref::_apply {} {
- set enable_changed 0
- if {[pref get gdb/ipc/enabled] != $_new(gdb/ipc/enabled)} {
- set enable_changed 1
- }
- if {$_new(gdb/ipc/enabled) && [pref get gdb/ipc/port] != $_new(gdb/ipc/port)} {
- set enable_changed 1
- }
-
- foreach var [array names _new] {
- if {$_new($var) != [pref get $var]} {
- pref set $var $_new($var)
- }
- }
-
- if {$enable_changed} {
- if {$_new(gdb/ipc/enabled)} {
- # must start up ipc
- catch {delete object $::insight_ipc}
- set ::insight_ipc [Iipc \#auto]
- } else {
- delete object $::insight_ipc
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: _cancel
-# ------------------------------------------------------------------
-itcl::body IPCPref::_cancel {} {
- foreach elem [array names _saved] {
- set cur_val [pref get $elem]
- if {[string compare $cur_val $_saved($elem)] != 0} {
- pref set $elem $_saved($elem)
- }
- }
- unpost
-}
-
-# ------------------------------------------------------------------
-# METHOD: save - apply changes and quit
-# ------------------------------------------------------------------
-itcl::body IPCPref::_save {} {
- _apply
- unpost
-}
diff --git a/gdb/gdbtk/library/ipcpref.ith b/gdb/gdbtk/library/ipcpref.ith
deleted file mode 100644
index b973c8905aa..00000000000
--- a/gdb/gdbtk/library/ipcpref.ith
+++ /dev/null
@@ -1,33 +0,0 @@
-# IPC preferences dialog class definition for Insight.
-# Copyright (C) 2004, Red Hat Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class IPCPref {
- inherit ManagedWin ModalDialog
-
- private {
- variable _saved ;# These are the saved values...
- variable _new ;# These are the changed values
- variable w
- method _apply {}
- method _build_win {}
- method _cancel {}
- method _init_var {}
- method _save {}
- }
-
- public {
- method constructor {args}
- method reconfig {}
- }
-}
diff --git a/gdb/gdbtk/library/kod.itb b/gdb/gdbtk/library/kod.itb
deleted file mode 100644
index 3140733d483..00000000000
--- a/gdb/gdbtk/library/kod.itb
+++ /dev/null
@@ -1,474 +0,0 @@
-# Kernel Object Display Window for Insight.
-# Copyright (C) 1998, 1999, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# AUTHOR: Fernando Nasser <fnasser@cygnus.com>
-#
-
-
-# ------------------------------------------------------------------
-# CONSTRUCTOR - create new process window
-# ------------------------------------------------------------------
-itcl::body KodWin::constructor {args} {
- #
- # Create a window with the same name as this object
- #
- global gdb_kod_cmd
-
- # initialize local variables
- set LevelCmd(0) "info $gdb_kod_cmd "
- debug "Level 0 kod command is $LevelCmd(0)"
-
- gdbtk_busy
- build_win
- gdbtk_idle
-}
-
-# ------------------------------------------------------------------
-# METHOD: build_win - build the main KOD window
-# ------------------------------------------------------------------
-itcl::body KodWin::build_win {} {
- # FIXME: rename this variable.
- global kodActivePane
-
- debug "Will build KOD window"
-
- cyg::PanedWindow $itk_interior.pw -orient horizontal
- $itk_interior.pw add titlepane
- # We would like to use a fixed pane for the buttons. However,
- # this feature of PanedWindow doesn't work.
- # $itk_interior.pw add buttonpane -resizable 0
- $itk_interior.pw add pane1
- $itk_interior.pw add pane2
-
- # Now a frame for what is being listed, headers and list
- set tp [$itk_interior.pw childsite titlepane]
- Labelledframe $tp.tf -text "No Kernel Objects Known" \
- -anchor nw
- set titl $tp.tf
- set lf [$tp.tf get_frame]
-
- set p1 [$itk_interior.pw childsite pane1]
- set p2 [$itk_interior.pw childsite pane2]
- $p1 configure -height 120 -bd 2
- $p2 configure -height 120 -bd 2
- Labelledframe $p1.d1 -text "Details" -anchor nw
- Labelledframe $p2.d2 -text "Details" -anchor nw
- set d1 [$p1.d1 get_frame]
- set d2 [$p2.d2 get_frame]
- pack $p1.d1 $p2.d2 -side top -expand yes -fill both -padx 5 -pady 5
- set pl1 $p1.d1
- set pl2 $p2.d2
-
- # Setup the button box
- set bf [frame $tp.bf]
- set BTop [button $bf.top -height 1 -text Top -command [code $this top]]
- set BUp [button $bf.up -height 1 -text Up -command [code $this up]]
- set BClear [button $bf.clear -height 1 -text Clear \
- -command [code $this clear]]
- set BDisplay [button $bf.display -height 1 -text Display \
- -command [code $this display]]
- set kodActivePane pane1
- set BPane1 [radiobutton $bf.pane1 -variable kodActivePane \
- -height 1 -text "Pane 1" -value pane1]
- set BPane2 [radiobutton $bf.pane2 -variable kodActivePane \
- -height 1 -text "Pane 2" -value pane2]
- balloon register $bf.top "Return to List of Kernel Objects"
- balloon register $bf.up "Return to previous List of Objects"
- balloon register $bf.clear "Clear Object Detail Panes\nand Active setting"
- balloon register $bf.display \
- "Display Object or\nList of Objects of this type"
- balloon register $bf.pane1 "Make Pane 1 Active"
- balloon register $bf.pane2 "Make Pane 2 Active"
- pack $bf.top $bf.up -side left -padx 5
- pack $bf.display $bf.clear -side right -padx 5
- pack $bf.pane2 $bf.pane1 -side bottom -padx 5 -fill both
-
- # The list of objects
- table $lf.s -titlerows 1 \
- -colstretch last -rowstretch last -selectmode single \
- -selecttype row -variable $this \
- -yscrollcommand "$lf.sb set" -resizeborders none \
- -state disabled
- scrollbar $lf.sb -orient vertical -command "$lf.s yview"
- bind $lf.s <Double-1> [code $this display]
- $lf.s tag configure coltag -anchor nw
-
- grid $lf.s -row 0 -column 0 -sticky nsew
- grid $lf.sb -row 0 -column 1 -sticky nsw
- grid columnconfigure $lf 0 -weight 1
- grid rowconfigure $lf 0 -weight 1
-
- # Areas to display object details
- set t1 [table $d1.t1 -titlerows 1 -colstretch last -rowstretch last \
- -selectmode single -selecttype row -variable $this-pane1 \
- -yscrollcommand "$d1.s1 set" -resizeborders none \
- -rows 1 -cols 1 -state disabled]
- scrollbar $d1.s1 -orient vertical -command "$d1.t1 yview"
- set t2 [table $d2.t2 -titlerows 1 -colstretch last -rowstretch last \
- -selectmode single -selecttype row -variable $this-pane2 \
- -yscrollcommand "$d2.s2 set" -resizeborders none \
- -rows 1 -cols 1 -state disabled]
- scrollbar $d2.s2 -orient vertical -command "$d2.t2 yview"
-
- grid $d1.t1 -row 0 -column 0 -sticky nsew
- grid $d1.s1 -row 0 -column 1 -sticky nsw
- grid columnconfigure $d1 0 -weight 1
- grid rowconfigure $d1 0 -weight 1
- grid $d2.t2 -row 0 -column 0 -sticky nsew
- grid $d2.s2 -row 0 -column 1 -sticky nsw
- grid columnconfigure $d2 0 -weight 1
- grid rowconfigure $d2 0 -weight 1
-
- debug "Will pack KOD window"
- pack $tp.tf -side top -expand yes -fill both -padx 5 -pady 5
- pack $tp.bf -side top -expand no -fill x -padx 5 -pady 5
- pack $itk_interior.pw -side bottom -expand yes -fill both
- wm minsize $_top 450 500
-
- # Initialize button state variables for idle (called before update)
- set BState(BDisplay) disabled
- set BState(BClear) disabled
- set BState(BTop) disabled
- set BState(BUp) disabled
-
- # window_name "Kernel Objects"
-
- update dummy
-}
-
-# ------------------------------------------------------------------
-# METHOD: update - update widget when something changes
-# ------------------------------------------------------------------
-itcl::body KodWin::update {event} {
-
- debug "updating kod window"
-
- _disable_buttons
-
- display_list
- display_object
-
- _restore_buttons
-
-}
-
-# ------------------------------------------------------------------
-# METHOD: display - update the display based on the selection
-# it can be a list or an actual object
-# We get here from a press on the Display button or
-# from a <Double-1> on a line of the list of objects
-# ------------------------------------------------------------------
-itcl::body KodWin::display {} {
- upvar \#0 $this table_vals
- if {!$Running && [$lf.s cget -rows] > 1} {
- gdbtk_busy
- set linenum [$lf.s index active row]
- set object $table_vals($linenum,0)
- debug "display selection on line $linenum $object"
- incr level
- set LevelCmd($level) $LevelCmd([expr $level-1])
- append LevelCmd($level) $object
- debug "kod command for level $level is now: $LevelCmd($level)"
- update dummy
- # Run idle hooks and cause all other widgets to update
- gdbtk_idle
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: display_list - display list of objects
-# ------------------------------------------------------------------
-itcl::body KodWin::display_list {} {
- upvar \#0 $this table_vals
-
- debug "displaying list of objects"
-
- $lf.s configure -state normal
- set cmd $LevelCmd($level)
- debug "new kod command is $cmd"
- if {[catch "gdb_cmd \"$cmd\"" objects]} {
- # failed. leave window blank
- $titl configure -text "Kernel Object Display Failed"
- $lf.s delete rows 0 [$lf.s index end row]
- $lf.s configure -state disabled
- set BState(BDisplay) disabled
- return
- }
-
- debug "KodWin update: \n$objects"
- if {[llength $objects] == 0} {
- $titl configure -text "No Kernel Objects Known"
- # no objects listed.
- $lf.s delete rows 0 [$lf.s index end row]
- $lf.s configure -state disabled
- set BState(BDisplay) disabled
- return
- }
-
- # insert each line one at a time
- set num_lines -1
- foreach line [split $objects \n] {
- if {$num_lines == -1} {
- if {![string match List* $line]} {
- if {($level > 0)} {
- display_object $cmd objects
- incr level -1
- $lf.s configure -state disabled
- return
- } else {
- # if level 0 first line does not start with List ignore it
- $titl configure -text "List of Kernel Objects"
- }
- } else {
- $titl configure -text $line
- }
- # Clear listbox and headers to get new stuff.
- $lf.s delete rows 0 [$lf.s index end row]
- } elseif {$line == ""} {
- break
- } else {
- set col 0
- set list [split [string trim $line] \t]
- if {$num_lines == 0} {
- $lf.s configure -cols [llength $list] -titlerows 1
- }
- foreach item $list {
- debug "inserting $item at $num_lines,$col"
- set table_vals($num_lines,$col) $item
- incr col
- }
- }
- incr num_lines
- }
- $lf.s configure -rows [expr {$num_lines + 1}]
-
- if {$num_lines > 0} {
- set BState(BDisplay) active
- }
-
- if {$level == 0} {
- set BState(BTop) disabled
- set BState(BUp) disabled
- } else {
- set BState(BTop) active
- set BState(BUp) active
- }
-
- $lf.s configure -state disabled
- $lf.s see 0,0
- $lf.s activate 1,0
-
- _restore_buttons
-}
-
-# ------------------------------------------------------------------
-# METHOD: display_object - display information about an object
-# When called from update we have to reissue the gdb
-# command to get fresh data
-# ------------------------------------------------------------------
-itcl::body KodWin::display_object {{cmd ""} {obj ""}} {
- debug "Displaying object details..."
- upvar $obj objects
- global kodActivePane
- debug "Active Pane is $kodActivePane"
-
- # Determine which frame to use
- if {$kodActivePane == "pane2"} {
- set curpan $t2
- upvar \#0 $this-pane2 pane_values
- if {$cmd != ""} {
- # save command for update
- set pane2command $cmd
- } else {
- # reuse saved command
- set cmd $pane2command
- }
- } else {
- set curpan $t1
- upvar \#0 $this-pane1 pane_values
- if {$cmd != ""} {
- # save command for update
- set pane1command $cmd
- } else {
- # reuse saved command
- set cmd $pane1command
- }
- }
- debug "curpan $curpan"
-
- # here we must take care of the case where the user has activated a window
- # but it does not have been filled yet. We just return.
- if {$cmd == ""} {
- return
- }
-
- $curpan configure -state normal
- $curpan delete rows 0 [$curpan index end row]
- if {$obj == ""} {
- debug "pane kod command is $cmd"
- if {[catch "gdb_cmd \"$cmd\"" objects]
- || $objects == ""} {
- # Failed. Tell user object no longer there.
- $curpan configure -state disabled
- return
- }
- }
-
- set num_lin 0
- foreach line [split $objects \n] {
- set col 0
- set list [split [string trim $line] \t]
- if {$num_lin == 0} {
- $curpan configure -cols [llength $list]
- }
- foreach item $list {
- set pane_values($num_lin,$col) $item
- incr col
- }
- incr num_lin
- }
- $curpan configure -rows $num_lin -state disabled
-}
-
-# ------------------------------------------------------------------
-# METHOD: clear - clear detail panes and reset pane selection
-# ------------------------------------------------------------------
-itcl::body KodWin::clear {} {
- debug "going to clear detail panes and pane selection"
- $t1 configure -state normal
- $t2 configure -state normal
- $t1 delete rows 0 [$t1 index end row]
- $t2 delete rows 0 [$t2 index end row]
- $t1 configure -state disabled
- $t2 configure -state disabled
- # Default to pane 1 again.
- global kodActivePane
- set kodActivePane pane1
- set pane1command ""
- set pane2command ""
-}
-
-# ------------------------------------------------------------------
-# METHOD: top - go to the list of types of objects (top level)
-# ------------------------------------------------------------------
-itcl::body KodWin::top {} {
- debug "going to top from level $level"
- if {$level > 0} {
- set level 0
- update dummy
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: up - go to the list of objects which led to the current one
-# ------------------------------------------------------------------
-itcl::body KodWin::up {} {
- debug "going up from level $level..."
- if {$level > 0} {
- incr level -1
- debug "...to level $level"
- update dummy
- }
-}
-
-# ------------------------------------------------------------------
-# DESTRUCTOR - destroy window containing widget
-# ------------------------------------------------------------------
-itcl::body KodWin::destructor {} {
- upvar \#0 $this table_vals $this-pane1 pane1_vals $this-pane2 pane2_vals
- global kodActivePane
-
- catch {unset table_vals}
- catch {unset pane1_vals}
- catch {unset pane2_vals}
- catch {unset kodActivePane}
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: set_variable - called when user runs `set os'
-# command
-# ------------------------------------------------------------------
-itcl::body KodWin::set_variable {event} {
-
- set value [$event get value]
- if {[$event get variable] == "os" && $value != ""} {
- set LevelCmd(0) "info $value "
- set level 0
- update dummy
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: reconfig - used when preferences change
-# ------------------------------------------------------------------
-itcl::body KodWin::reconfig {} {
- destroy $itk_interior.bf
- destroy $titl
- build_win
-}
-
-# ------------------------------------------------------------------
-# METHOD: busy - BusyEvent handler
-#
-# This method should accomplish blocking
-# - clicks in the window
-# - change mouse pointer
-# ------------------------------------------------------------------
-itcl::body KodWin::busy {event} {
- set Running 1
- _disable_buttons
- cursor watch
-}
-
-# ------------------------------------------------------------------
-# METHOD: idle - idle event handler. Run when the target is not
-# running
-# ------------------------------------------------------------------
-itcl::body KodWin::idle {event} {
- set Running 0
- _restore_buttons
- cursor {}
-}
-
-# ------------------------------------------------------------------
-# METHOD: cursor - set the window cursor
-# This is a convenience method which simply sets the mouse
-# pointer to the given glyph.
-# ------------------------------------------------------------------
-itcl::body KodWin::cursor {glyph} {
- $_top configure -cursor $glyph
-}
-
-# ------------------------------------------------------------------
-# PRIVATE METHOD: _disable_buttons - disable all buttons
-# Used when we are busy and can't take another event
-# ------------------------------------------------------------------
-itcl::body KodWin::_disable_buttons {} {
- $BTop configure -state disabled
- $BUp configure -state disabled
- $BDisplay configure -state disabled
- $BClear configure -state disabled
-}
-
-# ------------------------------------------------------------------
-# PRIVATE METHOD: _restore_buttons - restore all buttons to their
-# previous states.
-# Used when we are busy and can't take another event
-# ------------------------------------------------------------------
-itcl::body KodWin::_restore_buttons {} {
- $BTop configure -state $BState(BTop)
- $BUp configure -state $BState(BUp)
- $BDisplay configure -state $BState(BDisplay)
- # CLEAR is always active, except when busy
- $BClear configure -state active
-}
diff --git a/gdb/gdbtk/library/kod.ith b/gdb/gdbtk/library/kod.ith
deleted file mode 100644
index f2dfefb3cdf..00000000000
--- a/gdb/gdbtk/library/kod.ith
+++ /dev/null
@@ -1,63 +0,0 @@
-# Kernel Object Display Window definition for Insight.
-# Copyright (C) 1999, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-itcl::class KodWin {
- inherit EmbeddedWin GDBWin
-
- private {
- variable bf
- variable lf
- variable titl
- variable BTop
- variable BUp
- variable BClear
- variable BDisplay
- variable lb
- variable t1
- variable t2
- variable pl1
- variable pl2
- variable pane1command ""
- variable pane2command ""
- variable BPane1
- variable BPane2
- variable level 0
- common LevelCmd
- variable BState
- variable Running 0
- method build_win {}
- method display {}
- method display_list {}
- method display_object {{cmd ""} {obj ""}}
- method clear {}
- method top {}
- method up {}
- method cursor {glyph}
- method _disable_buttons {}
- method _restore_buttons {}
- }
-
- public {
- method constructor {args}
- method destructor {}
- method reconfig {}
-
- #
- # Gdb Events
- #
- method set_variable {event}
- method busy {event}
- method idle {event}
- method update {event}
- }
-}
diff --git a/gdb/gdbtk/library/locals.tcl b/gdb/gdbtk/library/locals.tcl
deleted file mode 100644
index 8d7fde949a4..00000000000
--- a/gdb/gdbtk/library/locals.tcl
+++ /dev/null
@@ -1,170 +0,0 @@
-# Local Variable Window for Insight.
-# Copyright (C) 2002, 2003, 2006 Red Hat
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ----------------------------------------------------------------------
-# Implements local variables windows for gdb.
-# ----------------------------------------------------------------------
-
-itcl::class LocalsWin {
- inherit EmbeddedWin GDBWin
- # ------------------------------------------------------------------
- # CONSTRUCTOR - create new locals window
- # ------------------------------------------------------------------
- constructor {args} {
- debug
-
- gdbtk_busy
- build_win $itk_interior
- gdbtk_idle
-
- add_hook gdb_no_inferior_hook "$this no_inferior"
- add_hook gdb_clear_file_hook [code $this clear_file]
- add_hook file_changed_hook [code $this clear_file]
-
- update dummy
- }
-
-
- # ------------------------------------------------------------------
- # PUBLIC METHOD: busy - BusyEvent handler
- # Disable all ui elements that could affect gdb's state
- # ------------------------------------------------------------------
- method busy {event} {
- debug
- cursor watch
- }
-
- # Re-enable the UI
- method idle {event} {
- debug
- cursor {}
- }
-
- # ------------------------------------------------------------------
- # METHOD: no_inferior
- # Reset this object.
- # ------------------------------------------------------------------
- method no_inferior {} {
- debug
- cursor {}
- catch {delete object $_frame}
- set _frame {}
- $tree remove all
- }
-
- # ------------------------------------------------------------------
- # METHOD: cursor - change the toplevel's cursor
- # ------------------------------------------------------------------
- method cursor {what} {
- [winfo toplevel [namespace tail $this]] configure -cursor $what
- ::update idletasks
- }
-
-
- # ------------------------------------------------------------------
- # METHOD: build_win - build window for variables.
- # ------------------------------------------------------------------
- method build_win {f} {
- #debug "$f"
-
- set tree [VarTree $f.tree -type "local"]
- pack $f.tree -expand yes -fill both
- pack $f -expand yes -fill both
-
- window_name "Local Variables"
- ::update idletasks
- }
-
-
- # ------------------------------------------------------------------
- # METHOD: clear_file - Clear out state so that a new executable
- # can be loaded. For LocalWins, this means doing
- # everything that no_inferior does.
- # ------------------------------------------------------------------
- method clear_file {} {
- no_inferior
- }
-
- # ------------------------------------------------------------------
- # DESTRUCTOR - delete locals window
- # ------------------------------------------------------------------
- destructor {
- debug
- set tree {}
-
- # Remove this window and all hooks
- remove_hook gdb_no_inferior_hook "$this no_inferior"
- remove_hook gdb_clear_file_hook [code $this clear_file]
- remove_hook file_changed_hook [code $this clear_file]
- }
-
- method context_switch {} {
- debug
-
- set err [catch {gdb_selected_frame} current_frame]
- #debug "1: err=$err; _frame=\"$_frame\"; current_frame=\"$current_frame\""
-
- if {$err && $_frame != ""} {
- # No current frame
- debug "no current frame"
- catch {delete object $_frame}
- set _frame {}
- return 1
- } elseif {$current_frame == "" && $_frame == ""} {
- #debug "2"
- return 0
- } elseif {$_frame == "" || $current_frame != [$_frame address]} {
- # We've changed frames. If we knew something about
- # the stack layout, we could be more intelligent about
- # destroying variables, but we don't know that here (yet).
- debug "switching to frame at $current_frame"
-
- # Destroy the old frame and create the new one
- catch {destroy $_frame}
- set _frame [Frame ::\#auto $current_frame]
- debug "created new frame: $_frame at [$_frame address]"
- return 1
- }
-
- # Nothing changed
- #debug "3"
- return 0
- }
-
-
- method update {event} {
- debug
-
- # Check that a context switch has not occured
- if {[context_switch]} {
- debug "CONTEXT SWITCH"
-
- # delete variables in tree
- $tree remove all
-
- if {$_frame != ""} {
- $tree add [$_frame variables]
- }
- } else {
- if {$_frame == ""} {return}
- # check for any new variables in the same frame
- $tree add [$_frame new]
- }
- after idle [code $tree update]
- }
-
- protected variable Entry
- protected variable tree
- protected variable _frame {}
-}
diff --git a/gdb/gdbtk/library/main.tcl b/gdb/gdbtk/library/main.tcl
deleted file mode 100644
index d8bd5cabacb..00000000000
--- a/gdb/gdbtk/library/main.tcl
+++ /dev/null
@@ -1,191 +0,0 @@
-# GDBtk (Insight) entry point
-# Copyright (C) 1997, 1998, 1999, 2002, 2003, 2004 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# State is controlled by 5 global boolean variables.
-#
-# gdb_target_changed
-# gdb_exe_changed
-# gdb_running
-# gdb_downloading
-# gdb_loaded
-
-################### Initialization code #########################
-
-# If GDBtk fails to start at all, you might want to uncomment one or
-# both of these.
-#set tcl_traceExec 2
-#set tcl_traceCompile 1
-
-# Add gdb's Tcl library directory to the end of the auto-load search path, if
-# it isn't already on the path.
-# Also, add the plugins directory if it exists.
-# Note: GDBTK_LIBRARY will be set in tcl_findLibrary before main.tcl is called.
-
-set gdb_plugins ""
-if {[info exists auto_path]} {
- if {[lsearch -exact $auto_path $GDBTK_LIBRARY] < 0} {
- lappend auto_path $GDBTK_LIBRARY
- }
-
- # Add default plugins directory, which will be [name of exe]/../../lib/insight1.0
- set exename [info nameofexecutable]
- set dir [file join [file dirname [file dirname $exename]] lib insight1.0]
- if {[file exists $dir]} {
- lappend gdb_plugins $dir
- lappend auto_path $dir
- }
- # Add any user-specified plugins directories
- if {[info exists env(INSIGHT_PLUGINS)]} {
- set dirs [split $env(INSIGHT_PLUGINS) :]
- lappend gdb_plugins $dirs
- lappend auto_path $dirs
- }
-}
-
-
-# Require the packages we need. Most are loaded already, but this will catch
-# any odd errors... :
-
-foreach p {{Tcl 8.0} {Tk 8.0} {Itcl 3.0} {Itk 3.0} {Gdbtk 1.0} {combobox 2.2} {debug 1.0}} {
- if {[catch {package require [lindex $p 0] [lindex $p 1]} msg]} {
- if {![info exists ::env(GDBTK_TEST_RUNNING)] || $::env(GDBTK_TEST_RUNNING) == 0} {
- if {$::tcl_platform(platform) != "windows"} {
- puts stderr "Error: $msg"
- }
- catch {tk_messageBox -title Error -message $msg -icon error -type ok}
- }
- exit -1
- } else {
- #puts "Loaded [lindex $p 0] $msg"
- }
-}
-
-namespace import itcl::*
-namespace import debug::*
-
-# Finally, load Iwidgets
-if {[info exists IWIDGETS_LIBRARY]} {
- lappend auto_path $IWIDGETS_LIBRARY
-}
-if {[catch {package require Iwidgets} msg]} {
- if {![info exists ::env(GDBTK_TEST_RUNNING)] || $::env(GDBTK_TEST_RUNNING) == 0} {
- if {$::tcl_platform(platform) != "windows"} {
- puts stderr "Error: $msg"
- }
- catch {tk_messageBox -title Error -message $msg -icon error -type ok}
- }
- exit -1
-}
-
-
-# Environment variables controlling debugging:
-# GDBTK_TRACE
-# unset or 0 no tracing
-# 1 tracing initialized but not started
-# 2 tracing initialized and started
-#
-# GDBTK_DEBUGFILE - filename to write debugging messages and
-# trace information (if tracing is enabled).
-#
-if {[info exists env(GDBTK_TRACE)] && $env(GDBTK_TRACE) != 0} {
- # WARNING: the tracing code must not trace into itself or
- # infinite recursion will result. As currently configured
- # the tracing code will not trace basic tcl functions or anything defined
- # before debug::init. For this reason we must source the DebugWin
- # code before debug::init is called.
- source [file join $GDBTK_LIBRARY debugwin.ith]
- source [file join $GDBTK_LIBRARY debugwin.itb]
-
- # Calling this installs our hooks for tracing and profiling.
- # This WILL slow things down.
- ::debug::init
-
- if {$env(GDBTK_TRACE) == 2} {
- ::debug::trace_start
- }
-}
-
-if {[info exists env(GDBTK_DEBUG)] && $env(GDBTK_DEBUG) != 0} {
- if {[info exists env(GDBTK_DEBUGFILE)]} {
- ::debug::logfile $env(GDBTK_DEBUGFILE)
- } else {
- ::debug::logfile "insight.log"
- }
-}
-
-# For testing
-set _test(interactive) 0
-
-# set traces on state variables
-trace variable gdb_running w do_state_hook
-trace variable gdb_downloading w do_state_hook
-trace variable gdb_loaded w do_state_hook
-define_hook state_hook
-
-# set up preferences
-pref init
-
-# let libgui tell us how to feel
-standard_look_and_feel
-
-# now let GDB set its default preferences
-pref_set_defaults
-
-# read in preferences
-pref_read
-
-init_disassembly_flavor
-
-# initialize state variables
-initialize_gdbtk
-
-# Arrange for session code to notice when file changes.
-add_hook file_changed_hook Session::notice_file_change
-
-ManagedWin::init
-
-# This stuff will help us play nice with WindowMaker's AppIcons.
-# Can't do the first bit yet, since we don't get this from gdb...
-# wm command . [concat $argv0 $argv]
-wm group . .
-
-# some initial commands to get gdb in the right mode
-gdb_cmd {set height 0}
-gdb_cmd {set width 0}
-
-if {[info exists env(GDBTK_TEST_RUNNING)] && $env(GDBTK_TEST_RUNNING)} {
- set gdb_target_name "exec"
-} else {
- # gdb_target_name is the name of the GDB target; that is, the argument
- # to the GDB target command.
- set gdb_target_name ""
- # By setting gdb_target_changed, we force a target dialog
- # to be displayed on the first "run"
- set gdb_target_changed 1
-}
-
-update
-
-# Uncomment the next line if you want a splash screen at startup...
-# ManagedWin::open About -transient -expire 5000
-
-# initialize IPC to enable multiple Insight's to communicate
-# with each other.
-set iipc 0
-if {[pref get gdb/ipc/enabled]} {
- set ::insight_ipc [Iipc \#auto]
-}
-
-gdbtk_idle
-
diff --git a/gdb/gdbtk/library/managedwin.itb b/gdb/gdbtk/library/managedwin.itb
deleted file mode 100644
index e1c75669324..00000000000
--- a/gdb/gdbtk/library/managedwin.itb
+++ /dev/null
@@ -1,419 +0,0 @@
-# Managed window for Insight.
-# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ------------------------------------------------------------
-# PUBLIC METHOD: constructor
-# ------------------------------------------------------------
-itcl::body ManagedWin::constructor {args} {
- #debug "$this args=$args"
- set _top [winfo toplevel $itk_interior]
-}
-
-# ------------------------------------------------------------
-# PUBLIC METHOD: destructor
-# ------------------------------------------------------------
-itcl::body ManagedWin::destructor {} {
- # If no toplevels remain, quit. However, check the quit_if_last
- # flag since we might be doing something like displaying a
- # splash screen at startup...
-
- if {!$numTopWins && [quit_if_last]} {
- if {$::iipc && [pref get gdb/ipc/exit]} {
- $::insight_ipc send quit
- }
- gdb_force_quit
- } else {
- destroy_toplevel
- }
-}
-
-# ------------------------------------------------------------
-# PUBLIC METHOD: window_name - Set the name of the window
-# (and optionally its icon's name).
-# ------------------------------------------------------------
-itcl::body ManagedWin::window_name {wname {iname ""}} {
-
- if {$wname != ""} {
- set _wname $wname
- } else {
- set wname $_wname
- }
- if {$iname != ""} {
- set _iname $iname
- } else {
- set iname $_iname
- }
-
- if {$win_instance != ""} {
- append wname " \[$win_instance\]"
- if {$iname != ""} {
- append iname " \[$win_instance\]"
- }
- }
- wm title $_top $wname
- if {$iname != ""} {
- wm iconname $_top $iname
- } else {
- wm iconname $_top $wname
- }
-}
-
-# ------------------------------------------------------------
-# PUBLIC METHOD: window_instance - Set the string to be
-# appended to each window title for this instance of Insight
-# ------------------------------------------------------------
-itcl::body ManagedWin::window_instance {ins} {
- set win_instance $ins
- foreach obj [itcl_info objects -isa ManagedWin] {
- debug "$obj ManagedWin::_wname"
- $obj window_name ""
- }
-}
-
-# ------------------------------------------------------------
-# PUBLIC METHOD: pickle - This is the base class pickle
-# method. It returns a command that can be used to recreate
-# this particular window.
-# ------------------------------------------------------------
-itcl::body ManagedWin::pickle {} {
- return [list ManagedWin::open [namespace tail [info class]]]
-}
-
-# ------------------------------------------------------------
-# PUBLIC METHOD: reveal
-# ------------------------------------------------------------
-itcl::body ManagedWin::reveal {} {
- # Do this update to flush all changes before deiconifying the window.
- update idletasks
-
- raise $_top
- wm deiconify $_top
-
- # Some window managers (on unix) fail to honor the geometry unless
- # the window is visible.
- if {[info exists ::$_top._init_geometry]} {
- upvar ::$_top._init_geometry gm
- if {$::tcl_platform(platform) == "unix"} {
- wm geometry $_top $gm
- }
- unset ::$_top._init_geometry
- }
-
- # There used to be a `focus -force' here, but using -force is
- # unfriendly, so it was removed. It was then replaced with a simple
- # `focus $top'. However, this has no useful effect -- it just
- # resets the subwindow of $top which has the `potential' focus.
- # This can actually be confusing to the user.
-
- # NOT for Windows, though. Without the focus, we get, eg. a
- # register window on top of the source window, but the source window
- # will have the focus. This is not the proper model for Windows.
- if {$::tcl_platform(platform) == "windows"} {
- focus -force [focus -lastfor $_top]
- }
-}
-
-# ------------------------------------------------------------
-# PUBLIC PROC: restart
-# ------------------------------------------------------------
-itcl::body ManagedWin::restart {} {
- # This is needed in case we've called "gdbtk_busy" before the restart.
- # This will configure the stop/run button as necessary
- after idle gdbtk_idle
-
- # call the reconfig method for each object
- foreach obj [itcl_info objects -isa ManagedWin] {
- if {[catch {$obj reconfig} msg]} {
- dbug W "reconfig failed for $obj - $msg"
- }
- }
-}
-
-# ------------------------------------------------------------------
-# PUBLIC PROC: shutdown - This writes all the active windows to
-# the preferences file, so they can be restored at startup.
-# FIXME: Currently assumes only ONE window per type...
-# ------------------------------------------------------------------
-itcl::body ManagedWin::shutdown {} {
- set activeWins {}
- foreach win [itcl_info objects -isa ManagedWin] {
- if {![$win isa ModalDialog] && ![$win _ignore_on_save]} {
- set g [wm geometry [winfo toplevel [namespace tail $win]]]
- pref setd gdb/geometry/[namespace tail $win] $g
- lappend activeWins [$win pickle]
- }
- }
- pref set gdb/window/active $activeWins
-}
-
-# ------------------------------------------------------------------
-# PUBLIC PROC: startup - This restores all the windows that were
-# opened at shutdown.
-# FIXME: Currently assumes only ONE window per type...
-# ------------------------------------------------------------------
-itcl::body ManagedWin::startup {} {
- debug "Got active list [pref get gdb/window/active]"
-
- foreach cmd [pref get gdb/window/active] {
- eval $cmd
- }
- # If we open the source window, and a source window already exists,
- # then we end up raising it twice during startup. This yields an
- # annoying effect for the user: if the user tries the bury the
- # source window during startup, it will raise itself again. This
- # explains why we first check to see if a source window exists
- # before trying to create it -- raising the window is an inevitable
- # side effect of the creation process.
- if {[llength [find SrcWin]] == 0} {
- ManagedWin::open SrcWin
- }
-}
-
-# ------------------------------------------------------------
-# PUBLIC PROC: open_dlg
-# ------------------------------------------------------------
-itcl::body ManagedWin::open_dlg {class args} {
-
- set newwin [eval _open $class $args]
- if {$newwin != ""} {
- $newwin reveal
- $newwin post
- }
-}
-
-# ------------------------------------------------------------
-# PUBLIC PROC: open
-# ------------------------------------------------------------
-itcl::body ManagedWin::open {class args} {
-
- set newwin [eval _open $class $args]
- if {$newwin != ""} {
- if {[$newwin isa ModalDialog]} {
- parse_args [list {expire 0}]
- after idle "$newwin reveal; $newwin post 0 $expire"
- } else {
- after idle "$newwin reveal"
- }
- }
-
- return $newwin
-}
-
-# ------------------------------------------------------------
-# PRIVATE PROC: _open
-# ------------------------------------------------------------
-itcl::body ManagedWin::_open { class args } {
- debug "$class $args"
-
- parse_args force
-
- if {!$force} {
- # check all windows for one of this type
- foreach obj [itcl_info objects -isa ManagedWin] {
- if {[$obj isa $class]} {
- $obj reveal
- return $obj
- }
- }
-
- }
- # need to create a new window
- return [eval _create $class $args]
-}
-
-# ------------------------------------------------------------
-# PRIVATE PROC: _create
-# ------------------------------------------------------------
-itcl::body ManagedWin::_create { class args } {
-
- set win [string tolower $class]
- debug "win=$win args=$args"
-
- parse_args {center transient {over ""}}
-
- # increment window numbers until we get an unused one
- set i 0
- while {[winfo exists .$win$i]} { incr i }
-
- while { 1 } {
- set top [toplevel .$win$i]
- wm withdraw $top
- wm protocol $top WM_DELETE_WINDOW "destroy $top"
- wm group $top .
- set newwin $top.$win
- if {[catch {uplevel \#0 eval $class $newwin $args} msg]} {
- dbug E "object creation of $class failed: $msg"
- dbug E $::errorInfo
- if {[string first "object already exists" $msg] != -1} {
- # sometimes an object is still really around even though
- # [winfo exists] said it didn't exist. Check for this case
- # and increment the window number again.
- catch {destroy $top}
- incr i
- } else {
- return ""
- }
- } else {
- break
- }
- }
-
- if {[catch {pack $newwin -expand yes -fill both}]} {
- dbug W "packing of $newwin failed: $::errorInfo"
- return ""
- }
-
- wm maxsize $top $_screenwidth $_screenheight
- wm minsize $top 20 20
- update idletasks
-
- if {$over != ""} {
- # center new window
- center_window $top -over [winfo toplevel [namespace tail $over]]
- } elseif {$center} {
- center_window $top
- }
-
- if {$transient} {
- wm resizable $top 0 0
-
- # If a SrcWin is around, use its toplevel as the master for
- # the transient. Otherwise use ".". (The splash screen will
- # need ".", for example.)
- set srcs [ManagedWin::find SrcWin]
- if {[llength $srcs] > 0} {
- set w [winfo toplevel [namespace tail [lindex $srcs 0]]]
- } else {
- set w .
- }
- wm transient $top $w
- } elseif {$::tcl_platform(platform) == "unix"} {
- # Modal dialogs DONT get Icons...
- if {[pref get gdb/use_icons] && ![$newwin isa ModalDialog]} {
- set icon [_make_icon_window ${top}_icon]
- wm iconwindow $top $icon
- bind $icon <Double-1> "$newwin reveal"
- }
- }
-
- if {[info exists ::env(GDBTK_TEST_RUNNING)] && $::env(GDBTK_TEST_RUNNING)} {
- set g "+100+100"
- wm geometry $top $g
- wm positionfrom $top user
- } else {
- set g [pref getd gdb/geometry/$newwin]
- if {$g == "1x1+0+0"} {
- dbug E "bad geometry"
- set g ""
- }
- if {$g != ""} {
- # OK. We have a requested geometry. We know that it fits on the screen
- # because we set the maxsize. Now we have to make sure it will not be
- # displayed off the screen.
- set w 0; set h 0; set x 0; set y 0
- if {![catch {scan $g "%dx%d%d%d" w h x y} res]} {
- if {$x < 0} {
- set x [expr $_screenwidth + $x]
- }
- if {$y < 0} {
- set y [expr $_screenheight + $y]
- }
-
- # If the window is transient, then don't reset its size, since
- # the user didn't set this anyway, and in some cases where the
- # size can change dynamically, like the Global Preferences
- # dialog, this can hide parts of the dialog with no recourse...
-
- # if dont_remember_size is true, don't set size, just like
- # transients
-
- if {$transient || [dont_remember_size]} {
- set g "+${x}+${y}"
- } else {
- set g "${w}x${h}+${x}+${y}"
- }
- if {[expr $x+50] < $_screenwidth && [expr $y+20] < $_screenheight} {
- wm positionfrom $top user
- wm geometry $top $g
- set ::$top._init_geometry $g
- }
- }
- }
- }
-
- bind $top <Alt-F4> [list delete object $newwin]
-
- return $newwin
-}
-
-# ------------------------------------------------------------
-# PUBLIC PROC: find
-# ------------------------------------------------------------
-itcl::body ManagedWin::find { win } {
- debug "$win"
- set res ""
- foreach obj [itcl_info objects -isa ManagedWin] {
- if {[$obj isa $win]} {
- lappend res $obj
- }
- }
- return $res
-}
-
-# ------------------------------------------------------------
-# PUBLIC PROC: init
-# ------------------------------------------------------------
-itcl::body ManagedWin::init {} {
- wm withdraw .
- set _screenheight [winfo screenheight .]
- set _screenwidth [winfo screenwidth .]
-}
-
-# ------------------------------------------------------------
-# PUBLIC METHOD: destroy_toplevel
-# ------------------------------------------------------------
-itcl::body ManagedWin::destroy_toplevel {} {
- after idle "update idletasks;destroy $_top"
-}
-
-# ------------------------------------------------------------
-# PROTECTED METHOD: _freeze_me
-# ------------------------------------------------------------
-itcl::body ManagedWin::_freeze_me {} {
- $_top configure -cursor watch
- ::update idletasks
-}
-
-# ------------------------------------------------------------
-# PROTECTED METHOD: _thaw_me
-# ------------------------------------------------------------
-itcl::body ManagedWin::_thaw_me {} {
-
- $_top configure -cursor {}
- ::update idletasks
-}
-
-# ------------------------------------------------------------------
-# PRIVATE PROC: _make_icon_window - create a small window with an
-# icon in it for use by certain Unix window managers.
-# ------------------------------------------------------------------
-itcl::body ManagedWin::_make_icon_window {name {file "gdbtk_icon"}} {
- if {![winfo exists $name]} {
- toplevel $name
- label $name.im -image \
- [image create photo icon_photo -file [file join $::gdb_ImageDir $file.gif]]
- }
- pack $name.im
- return $name
-}
diff --git a/gdb/gdbtk/library/managedwin.ith b/gdb/gdbtk/library/managedwin.ith
deleted file mode 100644
index aae0a676108..00000000000
--- a/gdb/gdbtk/library/managedwin.ith
+++ /dev/null
@@ -1,72 +0,0 @@
-# Managed window class definition for GDBtk.
-# Copyright (C) 1998, 1999, 2000, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class ManagedWin {
- inherit itk::Widget
-
- public {
- method constructor {args}
- method destructor {}
-
- method reconfig {} {}
- method destroy_toplevel {}
- method quit_if_last {} {return 1}
- method pickle {}
- method reveal {}
- method window_name {wname {iname ""}}
- proc window_instance {ins}
-
- proc find {win}
- proc open {class args}
- proc open_dlg {class args}
- proc init {}
- proc restart {}
- proc startup {}
- proc shutdown {}
-
- common win_instance ""
- }
-
- protected {
- # The Tk's toplevel window for this ManagedWin
- variable _top
-
- # Variable which holds the geometry of this window
- variable _geometry {}
-
- # this is the counter of TopLevelWins open
- # when it hits 0, exit.
- common numTopWins 0
-
- common _screenwidth
- common _screenheight
-
- method _freeze_me {}
- method _thaw_me {}
-
- # Should this window be reopened when we startup?
- method _ignore_on_save {} { return 0 }
-
- # Should this window's size be remembered?
- proc dont_remember_size {} { return 0 }
- }
-
- private {
- proc _create {class args}
- proc _open {class args}
- proc _make_icon_window {name {file "gdbtk_icon"}}
- variable _wname {}
- variable _iname {}
- }
-}
diff --git a/gdb/gdbtk/library/mempref.itb b/gdb/gdbtk/library/mempref.itb
deleted file mode 100644
index 85937c7aabd..00000000000
--- a/gdb/gdbtk/library/mempref.itb
+++ /dev/null
@@ -1,424 +0,0 @@
-# Memory display preferences window for Insight.
-# Copyright (C) 1998, 1999, 2002, 2003, 2006 Red Hat
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ------------------------------------------------------------------
-# METHOD: constructor - build the dialog
-# ------------------------------------------------------------------
-itcl::body MemPref::constructor {args} {
-
- window_name "Memory Preferences"
-
- eval itk_initialize $args
-
- if {$float_size == ""} {
- set float_size [gdb_eval sizeof(float)]
- set double_size [gdb_eval sizeof(double)]
- }
-
- if {[string compare $format f] == 0} {
- set gformat x
- set format_disabled 1
- if {$size == $float_size} {
- set gsize 3
- } elseif {$size == $double_size} {
- set gsize 5
- }
- } else {
- set gsize $size
- set gformat $format
- }
-
- set gnumbytes $numbytes
- set gbpr $bpr
- set gbprlist [list 4 8 16 32 64 128]
- set gascii $ascii
- set gascii_char $ascii_char
-
- build_win
-
- if {$format_disabled} {
- set format_disabled 0
- disable_format
- }
-
- wm resizable [winfo toplevel $itk_interior] 0 0
-}
-
-# ------------------------------------------------------------------
-# METHOD: destructor - destroy the dialog
-# ------------------------------------------------------------------
-itcl::body MemPref::destructor {} {
- trace vdelete [scope gnumbytes] w [code $this check_numbytes]
-}
-
-# ------------------------------------------------------------------
-# METHOD: build_win - build the dialog
-# ------------------------------------------------------------------
-itcl::body MemPref::build_win {} {
-
- frame $itk_interior.f
- set f [frame $itk_interior.f.a]
- frame $itk_interior.f.b
-
- # SIZE
- Labelledframe $f.f1 -anchor nw -text Size
- set fr [$f.f1 get_frame]
-
- set Widgets(rb-Byte) [radiobutton $fr.1 -variable [scope gsize] -text Byte \
- -value 1 -command [code $this enable_format]]
- set Widgets(rb-half_word) [radiobutton $fr.2 -variable [scope gsize] -text "Half Word" \
- -value 2 -command [code $this enable_format]]
- set Widgets(rb-word) [radiobutton $fr.4 -variable [scope gsize] -text Word \
- -value 4 -command [code $this enable_format]]
- set Widgets(rb-d_word) [radiobutton $fr.8 -variable [scope gsize] -text "Double Word" \
- -value 8 -command [code $this enable_format]]
- set Widgets(rb-float) [radiobutton $fr.f -variable [scope gsize] -text Float \
- -value 3 -command [code $this disable_format]]
- set Widgets(rb-d_float) [radiobutton $fr.d -variable [scope gsize] -text "Double Float" \
- -value 5 -command [code $this disable_format]]
- grid $fr.1 $fr.4 $fr.f -sticky w -padx 4
- grid $fr.2 $fr.8 $fr.d -sticky w -padx 4
-
- # FORMAT
- Labelledframe $f.f2 -anchor nw -text Format
- set fr [$f.f2 get_frame]
- set Widgets(rb-binary) [radiobutton $fr.1 -variable [scope gformat] \
- -text Binary -value t]
- set Widgets(rb-octal) [radiobutton $fr.2 -variable [scope gformat] \
- -text Octal -value o]
- set Widgets(rb-hex) [radiobutton $fr.3 -variable [scope gformat] \
- -text Hex -value x]
- set Widgets(rb-signed_dec) [radiobutton $fr.4 -variable [scope gformat] \
- -text "Signed Decimal" -value d]
- set Widgets(rb-unsign_dec) [radiobutton $fr.5 -variable [scope gformat] \
- -text "Unsigned Decimal" -value u]
-
- grid $fr.1 $fr.2 $fr.3 -sticky w -padx 4
- grid $fr.4 $fr.5 x -sticky w -padx 4
-
- # TOTAL BYTES
- Labelledframe $f.fx -anchor nw -text "Number of Bytes"
-
- if {$gnumbytes == 0} {
- set gnumbytes $default_numbytes
- set gvar 0
- } else {
- set gvar 1
- }
-
- set fr [$f.fx get_frame]
- set Widgets(rb-win_size) [radiobutton $fr.1 -variable [scope gvar] -text "Depends on window size" \
- -value 0 -command [code $this toggle_size_control]]
- frame $fr.2
- set Widgets(rb-fixed) [radiobutton $fr.2.b -variable [scope gvar] -text Fixed \
- -value 1 -command [code $this toggle_size_control]]
-
- set old_numbytes $default_numbytes
- set Widgets(e-numbytes) [entry $fr.2.e -textvariable [scope gnumbytes] -width 3]
- set normal_background [$Widgets(e-numbytes) cget -background]
-
- #
- # Trace gnumbytes so it will always be a +'ve integer... Have to set this
- # trace AFTER the widget's textvariable is set so this trace will fire
- # BEFORE the widget's trace.
- #
-
- trace variable [scope gnumbytes] w [code $this check_numbytes]
-
- label $fr.2.l -text bytes
- grid $fr.2.b $fr.2.e $fr.2.l -sticky we
- grid $fr.1 x -sticky w -padx 4
- grid $fr.2 x -sticky w -padx 4
- grid columnconfigure $fr 1 -weight 1
-
- # MISC
- Labelledframe $f.1 -anchor nw -text "Miscellaneous"
- set fr [$f.1 get_frame]
- frame $fr.1
- label $fr.1.plabel -height 1 -width 1 -bg $color -relief raised
- set Widgets(b-color) [button $fr.1.pc -text "Change color..." \
- -command [code $this pick $fr.1.plabel]]
- grid $fr.1.plabel $fr.1.pc
- frame $fr.2
- label $fr.2.l -text "Bytes Per Row "
- set Widgets(b-bytes_per_row) [::combobox::combobox $fr.2.c \
- -command [code $this set_bytes_per_row] \
- -width 4 -editable 1 -font global/fixed \
- -bg $::Colors(textbg)]
- foreach item $gbprlist {
- $fr.2.c list insert end $item
- }
- $fr.2.c configure -value $gbpr
-
- pack $fr.2.l -side left -anchor e
- pack $fr.2.c -side right
-
- set Widgets(cb-display_ascii) [checkbutton $fr.3 -variable [scope gascii] -text "Display ASCII"]
- frame $fr.4
- set Widgets(e-ascii_char) [entry $fr.4.e -textvariable [scope gascii_char] -width 1]
- label $fr.4.l -text "Control Char"
- grid $fr.4.e $fr.4.l -sticky we
- grid $fr.2 x $fr.3 -sticky w -padx 4
- grid $fr.4 -sticky w -padx 4
- grid columnconfigure $fr 1 -weight 1
-
- grid $f.f1 -padx 5 -pady 6 -sticky news
- grid $f.f2 -padx 5 -pady 6 -sticky news
- grid $f.fx -padx 5 -pady 6 -sticky news
- grid $f.1 -padx 5 -pady 6 -sticky we
-
-
- set Widgets(b-ok) [button $itk_interior.f.b.ok -text OK -command [code $this ok] -width 7 -default active]
- focus $Widgets(b-ok)
-
- # If there is an OK button, set Return in the entry field to invoke it...
-
- bind $Widgets(e-numbytes) <KeyPress-Return> "$Widgets(b-ok) flash ; $Widgets(b-ok) invoke"
-
- set Widgets(b-cancel) [button $itk_interior.f.b.quit -text Cancel -command [code $this cancel] -width 7]
- set Widgets(b-apply) [button $itk_interior.f.b.apply -text Apply -command [code $this apply] -width 7]
- standard_button_box $itk_interior.f.b
-
- grid $itk_interior.f.a
- grid $itk_interior.f.b -sticky news
- grid $itk_interior.f
-
- #
- # Set the state of the window size entry here...
- #
- toggle_size_control
-
-}
-
-# ------------------------------------------------------------------
-# METHOD: busy - make the widget unusable
-# ------------------------------------------------------------------
-itcl::body MemPref::busy {} {
- set top [winfo toplevel $itk_interior]
- $top configure -cursor watch
-
- # Disable all the radiobuttons and what not
- foreach w [array names Widgets] {
- set WidgetState($w) [$Widgets($w) cget -state]
- }
- foreach w [array names Widgets] {
- $Widgets($w) configure -state disabled
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: idle - make the widget useable
-# ------------------------------------------------------------------
-itcl::body MemPref::idle {} {
- set top [winfo toplevel $itk_interior]
- $top configure -cursor {}
-
- # Re-enable all widgets
- foreach w [array names Widgets] {
- $Widgets($w) configure -state $WidgetState($w)
- }
-}
-# ------------------------------------------------------------------
-# METHOD: ok - apply and quit
-# ------------------------------------------------------------------
-itcl::body MemPref::ok {} {
- apply
- unpost
-}
-
-# ------------------------------------------------------------------
-# METHOD: cancel - just close the dialog w/o saving changes
-# ------------------------------------------------------------------
-itcl::body MemPref::cancel {} {
- unpost
-}
-
-# ------------------------------------------------------------------
-# METHOD: check_numbytes - a trace to make sure gnumbytes is an int > 0
-# ------------------------------------------------------------------
-itcl::body MemPref::check_numbytes {var index mode} {
- upvar \#0 $var true
- if {($true != "") && ([catch {expr {(int($true) != double($true)) || $true <= 0}} val]
- || $val)} {
- bell
- set true $old_numbytes
- } else {
- set old_numbytes $true
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: set_bytes_per_row - combobox callback to set the bytes per row
-# ------------------------------------------------------------------
-itcl::body MemPref::set_bytes_per_row {w value} {
- if {[string is integer -strict $value] && [expr {$value != 0}]} {
- # The input is a value number.
- set gbpr $value
- set gbpr [string trim $gbpr]
-
- # Too high a number will cause a Segmentation fault.
- if {[expr {$gbpr > 150}]} {set gbpr 150}
-
- # Insert the value into the combo box list, if it isn't there already.
- set found [lsearch $gbprlist $gbpr]
-
- if {$found == -1} {
- lappend gbprlist $gbpr
- $Widgets(b-bytes_per_row) list insert end $gbpr
- }
-
- set s $gsize
- if {$s == 3} {set s 4}
- if {$s == 5} {set s 8}
- set rem [expr {$gbpr % $s}]
- if {$rem != 0} {
- # The bytes-per-row is not a multiple of the size.
- set gbpr [expr {$gbpr + ($s - $rem)}]
- }
- }
-
- # Set the display to the new value. This may be different if the input
- # was zero or not a number, or if the user entered any whitespace.
- $Widgets(b-bytes_per_row) delete 0 end
- $Widgets(b-bytes_per_row) insert end $gbpr
-}
-
-# ------------------------------------------------------------------
-# METHOD: toggle_size_control - toggle the state of the entry box as the
-# control method changes
-# ------------------------------------------------------------------
-itcl::body MemPref::toggle_size_control {} {
-
- if {$gvar} {
- $Widgets(e-numbytes) configure -state normal \
- -background $normal_background
- } else {
- $Widgets(e-numbytes) configure -state disabled -background lightgray
- if {[info exists Widgets(b-ok)]} {
- focus $Widgets(b-ok)
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: apply - apply changes to the parent window
-# ------------------------------------------------------------------
-itcl::body MemPref::apply {} {
-
- busy
- gdbtk_busy
-
- if {$gvar == 0} {
- set numbytes 0
- } elseif {$gnumbytes == "" || $gnumbytes == 0} {
- # Protect against the case where someone sets the
- # entry field to an empty string, or pastes in a 0...
- bell
- set gnumbytes $default_numbytes
- set numbytes $gnumbytes
- } else {
- set numbytes $gnumbytes
- }
- switch $gsize {
- 3 {
- set size $float_size
- set format f
- }
- 5 {
- set size $double_size
- set format f
- }
- default {
- set size $gsize
- set format $gformat
- }
- }
-
- # Ensure the value has been read from the text field.
- set_bytes_per_row "" [$Widgets(b-bytes_per_row) get]
-
- # pass all the changed values back to parent
- debug "$win configChange -size $size -numbytes $numbytes \
- -format $format -ascii $gascii \
- -ascii_char $gascii_char -bytes_per_row $gbpr \
- -color $color"
- eval $win configure -size $size -numbytes $numbytes \
- -format $format -ascii $gascii \
- -ascii_char $gascii_char -bytes_per_row $gbpr \
- -color $color
-
- $win reconfig
-
- gdbtk_idle
- idle
-}
-
-# ------------------------------------------------------------------
-# METHOD: enable_format - turn on the format radio buttons
-# ------------------------------------------------------------------
-itcl::body MemPref::enable_format {} {
- # First ensure bytes per row is a multiple of the size.
- # Use the value of the widget, not $gbpr to ensure the typed value is kept.
- set_bytes_per_row "" [$Widgets(b-bytes_per_row) get]
-
- if {!$format_disabled} {
- return
- }
-
- foreach widget {rb-binary rb-octal rb-hex rb-signed_dec rb-unsign_dec} {
- $Widgets($widget) configure -state normal
- }
- set format_disabled 0
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: disable_format - turn off the format radio buttons
-# ------------------------------------------------------------------
-itcl::body MemPref::disable_format {} {
- # First ensure bytes per row is a multiple of the size.
- # Use the value of the widget, not $gbpr to ensure the typed value is kept.
- set_bytes_per_row "" [$Widgets(b-bytes_per_row) get]
-
- if {$format_disabled} {
- return
- }
-
- foreach widget {rb-binary rb-octal rb-hex rb-signed_dec rb-unsign_dec} {
- $Widgets($widget) configure -state disabled
- }
- set format_disabled 1
-}
-
-# ------------------------------------------------------------------
-# METHOD: pick - pick colors
-# ------------------------------------------------------------------
-itcl::body MemPref::pick {lab} {
- set new_color [tk_chooseColor -initialcolor $color -title "Choose color"]
- if {$new_color != $color && $new_color != ""} {
- set color $new_color
- $lab configure -bg $color
- }
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: reconfig - used when preferences change
-# ------------------------------------------------------------------
-itcl::body MemPref::reconfig {} {
- # for now, just delete and recreate
- destroy $itk_interior.f
- build_win
-}
-
diff --git a/gdb/gdbtk/library/mempref.ith b/gdb/gdbtk/library/mempref.ith
deleted file mode 100644
index d1f5f723949..00000000000
--- a/gdb/gdbtk/library/mempref.ith
+++ /dev/null
@@ -1,70 +0,0 @@
-# Memory display preferences window class definition for GDBtk.
-# Copyright (C) 1998, 1999 Cygnus Solutions
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class MemPref {
- inherit ModalDialog ManagedWin
-
- public {
- variable win
- variable size
- variable format
- variable numbytes
- variable bpr
- variable ascii
- variable ascii_char
- variable color
-
- method constructor {args}
- method destructor {}
- method busy {}
- method idle {}
- method cancel {}
- method set_bytes_per_row {w value}
- method check_numbytes {var index mode}
- method toggle_size_control {}
- method apply {}
- method enable_format {}
- method disable_format {}
- method pick {lab}
- method reconfig {}
- }
-
- private {
- # The next seven variables are all used in the radio-buttons
- # and checkbuttons of the display.
- variable gsize
- variable gformat
- variable gnumbytes
- variable gbpr
- variable gbprlist
- variable gascii
- variable gascii_char
- variable gvar
-
- variable Widgets
- variable WidgetState
- variable format_disabled 0
- variable old_numbytes
- variable normal_background
- method build_win {}
- method ok {}
- }
-
- protected {
- common float_size ""
- common double_size ""
- common default_numbytes 128
- }
-
-}
diff --git a/gdb/gdbtk/library/memwin.itb b/gdb/gdbtk/library/memwin.itb
deleted file mode 100644
index 006c4fa9d36..00000000000
--- a/gdb/gdbtk/library/memwin.itb
+++ /dev/null
@@ -1,776 +0,0 @@
-# Memory display window class definition for Insight.
-# Copyright (C) 1998, 1999, 2001, 2002, 2005 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# ------------------------------------------------------------------
-# METHOD: constructor - build the dialog
-# ------------------------------------------------------------------
-itcl::body MemWin::constructor {args} {
- global _mem
- debug $args
- eval itk_initialize $args
-
- set top [winfo toplevel $itk_interior]
- gdbtk_busy
-
- set _mem($this,enabled) 1
-
- if {![info exists type(1)]} {
- set type(1) char
- set type(2) short
- set type(4) int
- set type(8) "long long"
- }
-
- if {[pref getd gdb/mem/menu] != ""} {
- set mbar 0
- }
-
- # Load defaults from preferences.
- set size [pref getd gdb/mem/size]
- set numbytes [pref getd gdb/mem/numbytes]
- set format [pref getd gdb/mem/format]
- set ascii [pref getd gdb/mem/ascii]
- set ascii_char [pref getd gdb/mem/ascii_char]
- set bytes_per_row [pref getd gdb/mem/bytes_per_row]
- set color [pref getd gdb/mem/color]
-
- init_addr_exp
- build_win
- gdbtk_idle
-}
-
-# ------------------------------------------------------------------
-# METHOD: destructor - destroy the dialog
-# ------------------------------------------------------------------
-itcl::body MemWin::destructor {} {
- if {[winfo exists $prefs_win]} {
- $prefs_win cancel
- }
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: build_win - build the main memory window
-# ------------------------------------------------------------------
-itcl::body MemWin::build_win {} {
- global tcl_platform gdb_ImageDir _mem ${this}_memval
-
- set maxlen 0
- set maxalen 0
- set saved_value ""
-
- if { $mbar } {
- menu $itk_interior.m -tearoff 0
- $top configure -menu $itk_interior.m
- $itk_interior.m add cascade -menu $itk_interior.m.addr \
- -label "Addresses" -underline 0
- set m [menu $itk_interior.m.addr]
- $m add check -label " Auto Update" -variable _mem($this,enabled) \
- -underline 1 -command "after idle $this toggle_enabled"
- $m add command -label " Update Now" -underline 1 \
- -command [code $this _update_address 1] -accelerator {Ctrl+U}
- $m add separator
- $m add command -label " Preferences..." -underline 1 \
- -command "$this create_prefs"
- }
-
- # Numcols = number of columns of data
- # numcols = number of columns in table (data plus headings plus ASCII)
- # if numbytes are 0, then use window size to determine how many to read
- if {$numbytes == 0} {
- set Numrows 8
- } else {
- set Numrows [expr {$numbytes / $bytes_per_row}]
- }
- set numrows [expr {$Numrows + 1}]
-
- set Numcols [expr {$bytes_per_row / $size}]
- if {$ascii} {
- set numcols [expr {$Numcols + 2}]
- } else {
- set numcols [expr {$Numcols + 1}]
- }
-
- itk_component add table {
- ::table $itk_interior.t -titlerows 1 -titlecols 1 -variable ${this}_memval \
- -roworigin -1 -colorigin -1 -bg $::Colors(textbg) -fg $::Colors(textfg) \
- -browsecmd "$this changed_cell %s %S" -font global/fixed\
- -colstretch unset -rowstretch unset -selectmode single \
- -xscrollcommand "$itk_interior.sx set" -resizeborders none \
- -cols $numcols -rows $numrows -autoclear 1
- } {
- keep -foreground
- keep -insertbackground
- keep -highlightcolor
- keep -highlightbackground
- }
-
- if {$numbytes} {
- $itk_component(table) configure -yscrollcommand "$itk_interior.sy set"
- scrollbar $itk_interior.sy -command [list $itk_component(table) yview]
- } else {
- $itk_component(table) configure -rowstretchmode none
- }
- scrollbar $itk_interior.sx -command [list $itk_component(table) xview] -orient horizontal
- $itk_component(table) tag config sel -bg [$itk_component(table) cget -bg] -relief sunken
- $itk_component(table) tag config active -relief sunken -wrap 0 \
- -bg $::Colors(sbg) -fg $::Colors(sfg)
- $itk_component(table) tag config title -bg $::Colors(bg) -fg $::Colors(fg)
-
- # rebind all events that use tkTableMoveCell to our local version
- # because we don't want to move into the ASCII column if it exists
- bind $itk_component(table) <Up> "$this memMoveCell %W -1 0; break"
- bind $itk_component(table) <Down> "$this memMoveCell %W 1 0; break"
- bind $itk_component(table) <Left> "$this memMoveCell %W 0 -1; break"
- bind $itk_component(table) <Right> "$this memMoveCell %W 0 1; break"
- bind $itk_component(table) <Return> "$this memMoveCell %W 0 1; break"
- bind $itk_component(table) <KP_Enter> "$this memMoveCell %W 0 1; break"
-
- # bind button 3 to popup
- bind $itk_component(table) <3> "$this do_popup %X %Y"
-
- # bind Paste and button2 to the paste function
- # this is necessary because we want to not just paste the
- # data into the cell, but we also have to write it
- # out to real memory
- bind $itk_component(table) <ButtonRelease-2> [format {after idle %s paste %s %s} $this %x %y]
- bind $itk_component(table) <<Paste>> [format {after idle %s paste %s %s} $this %x %y]
-
- menu $itk_component(table).menu -tearoff 0
- bind_plain_key $top Control-u [code $this _update_address 1]
-
- # bind resize events
- bind $itk_interior <Configure> "$this newsize %h"
-
- frame $itk_interior.f
- iwidgets::spinint $itk_interior.f.cntl -labeltext " Address " -width 20 \
- -command "after idle $this update_address_cb" \
- -increment "after idle $this incr_addr -1" \
- -decrement "after idle $this incr_addr 1" -foreground $::Colors(textfg) \
- -validate {} -textbackground $::Colors(textbg)
- $itk_interior.f.cntl delete 0 end
- $itk_interior.f.cntl insert end $addr_exp
-
- label $itk_interior.f.endian -text "Target is [gdbtk_endian] endian"
-
- balloon register [$itk_interior.f.cntl childsite].uparrow \
- "Scroll Up (Decrement Address)"
- balloon register [$itk_interior.f.cntl childsite].downarrow \
- "Scroll Down (Increment Address)"
- if {!$mbar} {
- button $itk_interior.f.upd -command [code $this _update_address 1] \
- -image [image create photo -file [::file join $gdb_ImageDir check.gif]]
- balloon register $itk_interior.f.upd "Update Now"
- checkbutton $itk_interior.cb -variable _mem($this,enabled) -command "$this toggle_enabled"
- balloon register $itk_interior.cb "Toggles Automatic Display Updates"
- grid $itk_interior.f.upd $itk_interior.f.cntl $itk_interior.f.endian -sticky ew -padx 5
- } else {
- grid $itk_interior.f.cntl x $itk_interior.f.endian -sticky e
- grid columnconfigure $itk_interior.f 1 -weight 1
- }
-
- # draw top border
- set col 0
- for {set i 0} {$i < $bytes_per_row} { incr i $size} {
- set ${this}_memval(-1,$col) [format " %X" $i]
- incr col
- }
-
- if {$ascii} {
- set ${this}_memval(-1,$col) ASCII
- }
-
- # fill initial display
- if {$nb} {
- _update_address 0
- }
-
- if {!$mbar} {
- grid $itk_interior.f x -row 0 -column 0 -sticky nws
- grid $itk_interior.cb -row 0 -column 1 -sticky news
- } else {
- grid $itk_interior.f -row 0 -column 0 -sticky news
- }
- grid $itk_component(table) -row 1 -column 0 -sticky news
- if {$numbytes} { grid $itk_interior.sy -row 1 -column 1 -sticky ns }
- grid $itk_interior.sx -sticky ew
- grid columnconfig $itk_interior 0 -weight 1
- grid rowconfig $itk_interior 1 -weight 1
- focus $itk_interior.f.cntl
-
- window_name "Memory"
-}
-
-# ------------------------------------------------------------------
-# METHOD: paste - paste callback. Update cell contents after paste
-# ------------------------------------------------------------------
-itcl::body MemWin::paste {x y} {
- edit [$itk_component(table) index @$x,$y]
-}
-
-# ------------------------------------------------------------------
-# METHOD: validate - because the control widget wants this
-# ------------------------------------------------------------------
-itcl::body MemWin::validate {val} {
- return $val
-}
-
-# ------------------------------------------------------------------
-# METHOD: create_prefs - create memory preferences dialog
-# ------------------------------------------------------------------
-itcl::body MemWin::create_prefs {} {
- if {$Running} { return }
-
- # make sure row height is set
- if {$rheight == ""} {
- set rheight [lindex [$itk_component(table) bbox 0,0] 3]
- }
-
- set prefs_win [ManagedWin::open MemPref -force -over $this\
- -transient -win $this \
- -size $size -format $format -numbytes $numbytes \
- -bpr $bytes_per_row -ascii $ascii \
- -ascii_char $ascii_char -color $color]
-}
-
-# ------------------------------------------------------------------
-# METHOD: changed_cell - called when moving from one cell to another
-# ------------------------------------------------------------------
-itcl::body MemWin::changed_cell {from to} {
- #debug "moved from $from to $to"
- #debug "value = [$itk_component(table) get $from]"
- if {$saved_value != ""} {
- if {$saved_value != [$itk_component(table) get $from]} {
- edit $from
- }
- }
- set saved_value [$itk_component(table) get $to]
-}
-
-# ------------------------------------------------------------------
-# METHOD: edit - edit a cell
-# ------------------------------------------------------------------
-itcl::body MemWin::edit { cell } {
- global _mem ${this}_memval
-
- #debug "edit $cell"
-
- if {$Running || $cell == ""} { return }
- set rc [split $cell ,]
- set row [lindex $rc 0]
- set col [lindex $rc 1]
- set val [$itk_component(table) get $cell]
-
- if {$col == $Numcols} {
- # editing the ASCII field
- set addr [gdb_incr_addr $current_addr [expr {$bytes_per_row * $row}]]
- set start_addr $addr
-
- # calculate number of rows to modify
- set len [string length $val]
- set rows 0
- while {$len > 0} {
- incr rows
- set len [expr {$len - $bytes_per_row}]
- }
- set nb [expr {$rows * $bytes_per_row}]
-
- # now process each char, one at a time
- foreach c [split $val ""] {
- if {$c != $ascii_char} {
- scan $c %c char
- if {[catch {gdb_set_mem $addr [format %02x $char] 1} res]} {
- error_dialog $res
-
- # reset value
- set ${this}_memval($row,$col) $saved_value
- return
- }
- }
- set addr [gdb_incr_addr $addr]
- }
- set addr $start_addr
- set nextval 0
- # now read back the data and update the widget
- catch {gdb_update_mem ${this}_memval $addr $format $size $nb $bytes_per_row $ascii_char} vals
- return
- }
-
- # calculate address based on row and column
- set addr [gdb_incr_addr $current_addr [expr {$bytes_per_row * $row + $size * $col}]]
- #debug " edit $row,$col $addr = $val"
-
- # Pad the value with zeros, if necessary
- set s [expr {$size * 2}]
- set val [format "0x%0${s}x" $val]
-
- # set memory
- #debug "set_mem $addr $val $size"
- if {[catch {gdb_set_mem $addr $val $size} res]} {
- error_dialog $res
-
- # reset value
- set ${this}_memval($row,$col) $saved_value
- return
- }
-
- # read it back
- # FIXME - HACK ALERT - This call causes trouble with remotes on Windows.
- # This routine is in fact called from within an idle handler triggered by
- # memMoveCell. Something evil happens in that handler that causes gdb to
- # start writing this changed value into all the visible cells...
- # I have not figured out the cause of this, so for now I commented this
- # line out. It will only matter if the write did not succeed, and this was
- # not a very good way to tell the user about that anyway...
- #
- # catch {gdb_update_mem $addr $format $size $size $size ""} val
- # delete whitespace in response
- set val [string trimright $val]
- set val [string trimleft $val]
- set ${this}_memval($row,$col) $val
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: toggle_enabled - called when enable is toggled
-# ------------------------------------------------------------------
-itcl::body MemWin::toggle_enabled {} {
- global _mem
-
- if {$Running} { return }
- if {$_mem($this,enabled)} {
- _update_address 1
- set state normal
- set bg $::Colors(textbg)
- } else {
- set bg $::Colors(bg)
- set state disabled
- }
- $itk_component(table) config -background $bg -state $state
-}
-
-# ------------------------------------------------------------------
-# METHOD: update - update widget after every PC change
-# ------------------------------------------------------------------
-itcl::body MemWin::update {event} {
- global _mem
- if {$_mem($this,enabled)} {
- _update_address 0
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: idle - memory window is idle, so enable menus
-# ------------------------------------------------------------------
-itcl::body MemWin::idle {event} {
- # Fencepost
- set Running 0
-
- # Cursor
- cursor {}
-
- if {[winfo exists $itk_interior.m.addr]} {
- # Enable menus
- if {$mbar} {
- for {set i 0} {$i <= [$itk_interior.m.addr index last]} {incr i} {
- if {[$itk_interior.m.addr type $i] != "separator"} {
- $itk_interior.m.addr entryconfigure $i -state normal
- }
- }
- }
-
- # Enable control
- $itk_interior.f.cntl configure -state normal
- }
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: busy - BusyEvent handler
-# Disable menus 'cause we're busy updating things.
-# ------------------------------------------------------------------
-itcl::body MemWin::busy {event} {
- # Fencepost
- set Running 1
-
- # cursor
- cursor watch
-
- # go away if window is not finished drawing
- if {![winfo exists $itk_interior.f.cntl]} { return }
-
- # Disable menus
- if {$mbar} {
- for {set i 0} {$i <= [$itk_interior.m.addr index last]} {incr i} {
- if {[$itk_interior.m.addr type $i] != "separator"} {
- $itk_interior.m.addr entryconfigure $i -state disabled
- }
- }
- }
-
- # Disable control
- $itk_interior.f.cntl configure -state disabled
-}
-
-# ------------------------------------------------------------------
-# METHOD: newsize - calculate how many rows to display when the
-# window is resized.
-# ------------------------------------------------------------------
-itcl::body MemWin::newsize {height} {
-
- if {$dont_size || $Running} {
- return
- }
-
- # only add rows if numbytes is zero
- if {$numbytes == 0} {
- ::update idletasks
-
- # make sure row height is set
- if {$rheight == ""} {
- set rheight [lindex [$itk_component(table) bbox 0,0] 3]
- }
-
- set theight [winfo height $itk_component(table)]
- set Numrows [expr {$theight / $rheight}]
- $itk_component(table) configure -rows $Numrows
- _update_address 1
- }
-}
-
-itcl::body MemWin::_update_address {make_busy} {
- if {$make_busy} {
- gdbtk_busy
- }
- update_address [string trimleft [$itk_interior.f.cntl get]]
- if {$make_busy} {
- gdbtk_idle
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: update_address_cb - address entry widget callback
-# ------------------------------------------------------------------
-itcl::body MemWin::update_address_cb {} {
- set new_entry 1
- _update_address 1
-}
-
-# ------------------------------------------------------------------
-# METHOD: update_address - update address and data displayed
-# ------------------------------------------------------------------
-itcl::body MemWin::update_address {addr} {
-
- set bad_expr 0
- set saved_addr $current_addr
- if {[string match {[a-zA-Z_&0-9\*]*} $addr]} {
- # Looks like an expression
- set retVal [catch {gdb_eval "$addr" x} current_addr]
- #debug "retVal=$retVal current_addr=$current_addr"
- if {$retVal || [string match "No symbol*" $current_addr] || \
- [string match "Invalid *" $current_addr]} {
- BadExpr $current_addr
- return
- }
- if {[string match {\{*} $current_addr]} {
- set current_addr [lindex $current_addr 1]
- if {$current_addr == ""} {
- return
- }
- }
- } elseif {[regexp {\$[a-zA-Z_]} $addr]} {
- # Looks like a local variable
- set retVal [catch {gdb_eval "$addr" x} current_addr]
- #debug "retVal=$retVal current_addr=$current_addr"
- if {$retVal} {
- BadExpr $current_addr
- return
- }
- if {$current_addr == "void"} {
- BadExpr "No Local Variable Named \"$addr\""
- return
- }
- } else {
- # something really strange, like "0.1" or ""
- BadExpr "Can't Evaluate \"$addr\""
- return
- }
-
- # Check for spaces - this can happen with gdb_eval and $pc, for example.
- set index [string first \ $current_addr]
- if {$index != -1} {
- incr index -1
- set current_addr [string range $current_addr 0 $index]
- }
-
- set addr_exp $addr
-
- # set table background
- $itk_component(table) config -bg $::Colors(textbg) -state normal
- catch {update_addr}
-}
-
-# ------------------------------------------------------------------
-# METHOD: BadExpr - handle a bad expression
-# ------------------------------------------------------------------
-itcl::body MemWin::BadExpr {errTxt} {
- if {$new_entry} {
- tk_messageBox -type ok -icon error -message $errTxt
- set new_entry 0
- }
- # set table background to gray
- $itk_component(table) config -bg $::Colors(bg) -state disabled
- set current_addr $saved_addr
- set saved_addr ""
- set bad_expr 1
-}
-
-# ------------------------------------------------------------------
-# METHOD: incr_addr - callback from control widget to increment
-# the current address.
-# ------------------------------------------------------------------
-itcl::body MemWin::incr_addr {num} {
- if {$current_addr == ""} {
- return
- }
- set old_addr $current_addr
- set current_addr [gdb_incr_addr $current_addr [expr {$bytes_per_row * $num}]]
-
- # A memory address less than zero is probably not a good thing...
- #
-
- if {($num < 0 && [gdb_eval "$current_addr > $old_addr"]) \
- ||($num > 0 && [gdb_eval "$current_addr < $old_addr"]) } {
- bell
- set current_addr $old_addr
- return
- }
- $itk_component(table) config -bg $::Colors(textbg) -state normal
- $itk_interior.f.cntl clear
- $itk_interior.f.cntl insert 0 $current_addr
- _update_address 1
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: update_addr - read in data starting at $current_addr
-# This is just a helper function for update_address.
-# ------------------------------------------------------------------
-itcl::body MemWin::update_addr {} {
- global _mem ${this}_memval
-
- set row 0
-
- if {$numbytes == 0} {
- set nb [expr {$Numrows * $bytes_per_row}]
- } else {
- set nb $numbytes
- }
- if {$ascii} {
- set retVal [catch {gdb_update_mem ${this}_memval $current_addr $format $size $nb $bytes_per_row $ascii_char} vals]
-
- } else {
- set retVal [catch {gdb_update_mem ${this}_memval $current_addr $format $size $nb $bytes_per_row} vals]
- }
-
-
- if {$retVal || [llength $vals] != 3} {
- BadExpr "Couldn't get memory at address: \"$addr\""
- debug "gdb_update_mem returned return code: $retVal and value: \"$vals\""
- return
- }
- # set default column width to the max in the data columns
- $itk_component(table) configure -colwidth [lindex $vals 1]
-
- # set border column width
- $itk_component(table) width -1 [lindex $vals 0]
-
- # set ascii column width
- if {$ascii} {
- $itk_component(table) width $Numcols [lindex $vals 2]
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: hidemb - hide the menubar. NOT CURRENTLY USED
-# ------------------------------------------------------------------
-itcl::body MemWin::hidemb {} {
- set mbar 0
- reconfig
-}
-
-# ------------------------------------------------------------------
-# METHOD: reconfig - used when preferences change
-# ------------------------------------------------------------------
-itcl::body MemWin::reconfig {} {
- debug
- set addr_exp [string trimright [string trimleft $addr_exp]]
- set wh [winfo height $top]
-
- if [winfo exists $itk_interior.m] { destroy $itk_interior.m }
- if [winfo exists $itk_interior.cb] { destroy $itk_interior.cb }
- if [winfo exists $itk_interior.f.upd] { destroy $itk_interior.f.upd }
- if [winfo exists $itk_interior.sy] { destroy $itk_interior.sy }
- destroy $itk_interior.f.cntl $itk_interior.f $itk_component(table) \
- $itk_interior.sx
-
- set dont_size 1
-
- # If the fonts change, then you will need to recompute the
- # row height. Ditto for switch from fixed number of rows to
- # depends on size.
-
- set rheight ""
-
- # Update preferences to reflect new reality
- pref setd gdb/mem/size $size
- pref setd gdb/mem/numbytes $numbytes
- pref setd gdb/mem/format $format
- pref setd gdb/mem/ascii $ascii
- pref setd gdb/mem/ascii_char $ascii_char
- pref setd gdb/mem/bytes_per_row $bytes_per_row
- pref setd gdb/mem/color $color
-
- build_win
- set dont_size 0
- ::update
-
- if {$numbytes == 0} {
- newsize $wh
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: do_popup - Display popup menu
-# ------------------------------------------------------------------
-itcl::body MemWin::do_popup {X Y} {
- if {$Running} { return }
- $itk_component(table).menu delete 0 end
- $itk_component(table).menu add check -label "Auto Update" -variable _mem($this,enabled) \
- -underline 0 -command "$this toggle_enabled"
- $itk_component(table).menu add command -label "Update Now" -underline 0 \
- -command [code $this _update_address 1]
- $itk_component(table).menu add command -label "Go To [$itk_component(table) curvalue]" -underline 0 \
- -command "$this goto [$itk_component(table) curvalue]"
- $itk_component(table).menu add command -label "Open New Window at [$itk_component(table) curvalue]" -underline 0 \
- -command [list ManagedWin::open MemWin -force -addr_exp [$itk_component(table) curvalue]]
- $itk_component(table).menu add separator
- $itk_component(table).menu add command -label "Preferences..." -underline 0 \
- -command "$this create_prefs"
- tk_popup $itk_component(table).menu $X $Y
-}
-
-# ------------------------------------------------------------------
-# METHOD: goto - change the address of the current memory window
-# ------------------------------------------------------------------
-itcl::body MemWin::goto { addr } {
- set current_addr $addr
- $itk_interior.f.cntl delete 0 end
- $itk_interior.f.cntl insert end $addr
- _update_address 1
-}
-
-# ------------------------------------------------------------------
-# METHOD: init_addr_exp - initialize address expression
-# On startup, if the public variable "addr_exp" was not set,
-# then set it to the start of ".data" if found, otherwise "$pc"
-# ------------------------------------------------------------------
-itcl::body MemWin::init_addr_exp {} {
- if {$addr_exp == ""} {
- set err [catch {gdb_cmd "info file"} result]
- if {!$err} {
- foreach line [split [string trim $result] \n] {
- if {[scan $line {%x - %x is %s} start stop section] == 3} {
- if {$section == ".data"} {
- set addr_exp [format "%#08x" $start]
- break
- }
- }
- }
- }
- if {$addr_exp == ""} {
- set addr_exp \$pc
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: cursor - set the cursor
-# ------------------------------------------------------------------
-itcl::body MemWin::cursor {glyph} {
- # Set cursor for all labels
- # for {set i 0} {$i < $bytes_per_row} {incr i $size} {
- # $itk_component(table).h.$i configure -cursor $glyph
- # }
- $top configure -cursor $glyph
-}
-
-# memMoveCell --
-#
-# Moves the location cursor (active element) by the specified number
-# of cells and changes the selection if we're in browse or extended
-# selection mode.
-#
-# Don't allow movement into the ASCII column.
-#
-# Arguments:
-# w - The table widget.
-# x - +1 to move down one cell, -1 to move up one cell.
-# y - +1 to move right one cell, -1 to move left one cell.
-
-itcl::body MemWin::memMoveCell {w x y} {
- if {[catch {$w index active row} r]} return
- set c [$w index active col]
- if {$ascii && ($c == $Numcols)} {
- # we're in the ASCII column so behave differently
- if {$y == 1} {set x 1}
- if {$y == -1} {set x -1}
- incr r $x
- } else {
- incr r $x
- incr c $y
- if { $c < 0 } {
- if {$r == 0} {
- set c 0
- } else {
- set c [expr {$Numcols - 1}]
- incr r -1
- }
- } elseif { $c >= $Numcols } {
- if {$r >= [expr {$Numrows - 1}]} {
- set c [expr {$Numcols - 1}]
- } else {
- set c 0
- incr r
- }
- }
- }
- if { $r < 0 } { set r 0 }
- $w activate $r,$c
- $w see active
-}
-
-# ------------------------------------------------------------
-# PUBLIC METHOD: error_dialog - Open and error dialog.
-# Arguments:
-# msg - The message to display in the dialog
-# modality - The dialog modailty. Default: task
-# type - The dialog type (tk_messageBox).
-# Default: ok
-# ------------------------------------------------------------
-itcl::body MemWin::error_dialog {msg {modality task} {type ok}} {
- set parent [winfo toplevel [namespace tail $this]]
- tk_messageBox -icon error -title Error -type $type \
- -message $msg -parent $parent
-}
-
diff --git a/gdb/gdbtk/library/memwin.ith b/gdb/gdbtk/library/memwin.ith
deleted file mode 100644
index c7ec92d17c9..00000000000
--- a/gdb/gdbtk/library/memwin.ith
+++ /dev/null
@@ -1,85 +0,0 @@
-# Memory display window class definition for Insight.
-# Copyright (C) 1998, 1999, 2001, 2002 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class MemWin {
- inherit EmbeddedWin GDBWin
-
- private {
- variable saved_addr ""
- variable bad_expr 0
- variable current_addr ""
- variable dont_size 0
- variable mbar 1
- variable bg
- variable top
- variable nb 128
- variable prefs_win ""
- variable Running 0
- variable Numrows 0
- variable Numcols 0
- variable saved_value
- variable maxlen
- variable maxalen
- variable rheight ""
- variable new_entry 0
-
- method build_win {}
- method init_addr_exp {}
- method cursor {glyph}
- method _update_address {make_busy}
- }
-
- public {
- variable addr_exp ""
- variable size 4
- variable format x
- variable bytes_per_row 16
- variable numbytes 0
- variable ascii 1
- variable ascii_char "."
- variable color green
- }
-
- protected common type
-
- public {
- method constructor {args}
- method destructor {}
- method paste {x y}
- method validate {val}
- method create_prefs {}
- method changed_cell {from to}
- method edit {cell}
- method toggle_enabled {}
- method newsize {height}
- method update_address_cb {}
- method update_address {addr_exp}
- method BadExpr {errTxt}
- method incr_addr {num}
- method update_addr
- method hidemb {}
- method reconfig {}
- method do_popup {x y}
- method goto {addr}
- method memMoveCell {w x y}
- method error_dialog {msg {modality task} {type ok}}
-
- #
- # GDB Events
- #
- method busy {event}
- method idle {event}
- method update {event}
- }
-}
diff --git a/gdb/gdbtk/library/modal.tcl b/gdb/gdbtk/library/modal.tcl
deleted file mode 100644
index ecaafe6928a..00000000000
--- a/gdb/gdbtk/library/modal.tcl
+++ /dev/null
@@ -1,105 +0,0 @@
-# Modal dialog class for GDBtk.
-# Copyright (C) 1998, 1999 Cygnus Solutions
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ----------------------------------------------------------------------
-# Implements the post and unpost behavior of a Modal Dialog.
-#
-# For now the point behind this is to control calling
-# ide_grab_support. If you call disable all the windows of an
-# application but one, destroy that window, THEN re-enable the
-# windows, Windows brings the last enabled window in the last
-# active application to the foreground (Doh!).
-#
-# ----------------------------------------------------------------------
-
-itcl::class ModalDialog {
- # This is the variable we vwait on when the dialog is posted.
- # It is set to 1 in the unpost method, and to -1 in the destructor.
-
- private variable unpost_notification 0
-
- destructor {
- debug " UNPOST $this"
- set unpost_notification -1
- }
-
- # ------------------------------------------------------------------
- # METHOD: unpost - unposts the dialog box...
- # ------------------------------------------------------------------
- public method unpost {} {
- after idle [list set [scope unpost_notification] 1]
- }
-
- # ------------------------------------------------------------------
- # METHOD: cancel - This just unposts the dialog box...
- # If you want to programatically cancel a dialog
- # selection, for instance if the app is going away
- # use this rather than unpost. That way a sub-class
- # that actually has to do some work can override it.
- # ------------------------------------------------------------------
- public method cancel {} {
- ModalDialog::unpost
- }
-
-
- # ------------------------------------------------------------------
- # METHOD: post - posts the dialog box...
- # ------------------------------------------------------------------
- public method post {{on_top 0} {expire 0}} {
-
- debug "POST $this"
- set top [winfo toplevel [namespace tail $this]]
- wm protocol $top WM_DELETE_WINDOW [code $this cancel]
-
- if {$on_top} {
- after 500 keep_raised $top
- }
-
- ide_grab_support disable_except $top
- focus $top
- grab set $top
-
- if {$expire > 0} {
- set afterID [after $expire [code $this cancel]]
- }
-
- vwait [scope unpost_notification]
-
- if {$afterID != ""} {
- after cancel $afterID
- set afterID ""
- }
-
- grab release $top
-
- # Enable all the windows in the application BEFORE
- # you destroy this one, or Windows will bring another
- # app to the foreground.
-
- ide_grab_support enable_all
-
- # We can get here either by someone calling unpost (if an OK button
- # is clicked or whatever), or by someone destroying the dialog (for
- # instance by using the Window Manager.) Only delete the object if
- # we are not already in the process of doing this.
-
- if {$unpost_notification == 1} {
- ::delete object $this
- }
- }
-
- public variable expire -1 ;# If this is set to a number > 0, the
- # dialog will time out after this interval.
- private variable afterID ""; # The id for the expiration after event.
-}
diff --git a/gdb/gdbtk/library/pluginwin.itcl b/gdb/gdbtk/library/pluginwin.itcl
deleted file mode 100644
index 57ecbc2ada8..00000000000
--- a/gdb/gdbtk/library/pluginwin.itcl
+++ /dev/null
@@ -1,185 +0,0 @@
-# PluginWindow
-# Copyright (C) 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# ----------------------------------------------------------------------
-# Implements a menu and a toolbar that are attached to a source window.
-#
-# PUBLIC ATTRIBUTES:
-#
-#
-# METHODS:
-#
-# configure ....... used to change public attributes
-#
-# PRIVATE METHODS
-#
-# X11 OPTION DATABASE ATTRIBUTES
-#
-#
-# ----------------------------------------------------------------------
-
-itcl::class PluginWindow {
- inherit ManagedWin GDBEventHandler
-
- # ------------------------------------------------------------------
- # CONSTRUCTOR - create widget
- # ------------------------------------------------------------------
- constructor {args} {
-
- # Create a menu widget for the plug-in window
- set menubar [GDBMenuBar $itk_interior.menubar]
-
- # Create a toolbar widget for the plug-in window
- set toolbar [GDBToolBar $itk_interior.toolbar]
-
- # Pack the toolbar
- pack $toolbar -expand 1 -fill both
-
- # Create a frame for the subclass to use
- set child [frame $itk_interior.child]
-
- # Pack the childsite
- pack $child -expand 1 -fill both
-
- eval itk_initialize $args
- add_hook gdb_no_inferior_hook [code $this no_inferior]
- }
-
- # ------------------------------------------------------------------
- # DESTRUCTOR - destroy window containing widget
- # ------------------------------------------------------------------
- destructor {
- remove_hook gdb_no_inferior_hook [code $this no_inferior]
-
- #destroy $this
- }
-
- # ------------------------------------------------------------------
- # ACCESSOR METHOD - Retrieve childsite
- # ------------------------------------------------------------------
- public method childsite {} {
- return $child
- }
-
- # Don't automatically reload plugins.
- protected method _ignore_on_save {} { return 1 }
-
- ####################################################################
- #
- # State control methods used by both the menu and the toolbar
- #
- ####################################################################
-
- # ------------------------------------------------------------------
- # METHOD: idle - handle IdleEvent
- # ------------------------------------------------------------------
- protected method idle {event} {
- debug "PluginWindow::idle"
- enable_ui 1
- }
-
- # ------------------------------------------------------------------
- # METHOD: busy - BusyEvent handler
- # Invoked when gdb is going to run the inferior
- # ------------------------------------------------------------------
- public method busy {event} {
- debug "PluginWindow::busy"
- enable_ui 0
- }
-
- # ------------------------------------------------------------------
- # METHOD: no_inferior
- # Invoked when gdb detects the inferior is gone
- # ------------------------------------------------------------------
- protected method no_inferior {} {
- debug
- enable_ui 2
- }
-
- ####################################################################
- # The following method enables/disables both menus and buttons.
- ####################################################################
-
- # ------------------------------------------------------------------
- # METHOD: enable_ui - enable/disable the appropriate buttons and menus
- # Called from the busy, idle, and no_inferior hooks.
- #
- # on must be:
- # value Control Other State
- # 0 off off gdb is busy
- # 1 on on gdb has inferior, and is idle
- # 2 off on gdb has no inferior, and is idle
- # ------------------------------------------------------------------
- public method enable_ui {on} {
- global tcl_platform
- debug "$on"
-
- # Do the enabling so that all the disabling happens first, this way if a
- # button belongs to two groups, enabling takes precedence, which is
- # probably right.
-
- switch $on {
- 0 {
- # Busy
- set enable_list {Control disabled \
- Other disabled}
- }
- 1 {
- # Idle, with inferior
- set enable_list {Control normal \
- Other normal}
- }
- 2 {
- # Idle, no inferior
- set enable_list {Control disabled \
- Other normal}
- }
- default {
- debug "Unknown type: $on in enable_ui"
- return
- }
- }
-
- $menubar set_class_state $enable_list
- $toolbar set_class_state $enable_list
- }
-
- ####################################################################
- #
- # PRIVATE DATA
- #
- ####################################################################
-
- # The childsite
- private variable child
-
- ####################################################################
- #
- # PROTECTED DATA
- #
- ####################################################################
-
- # The GdbMenuBar component
- protected variable menubar
-
- # The GdbToolBar component
- protected variable toolbar
-
- ####################################################################
- #
- # PUBLIC DATA
- #
- ####################################################################
-
- # None.
-}
diff --git a/gdb/gdbtk/library/prefs.tcl b/gdb/gdbtk/library/prefs.tcl
deleted file mode 100644
index c2e9964d0d1..00000000000
--- a/gdb/gdbtk/library/prefs.tcl
+++ /dev/null
@@ -1,764 +0,0 @@
-# Local preferences functions for Insight.
-# Copyright (C) 1997, 1998, 1999, 2002, 2003, 2004 Red Hat
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# On STARTUP:
-# 1. Options database (.Xdefaults on Unix or ? on Windows) is read
-# 2. GDB prefs file is read ("gdbtk.ini" on Windows; ".gdbtkinit" on Unix)
-# 3. GDB init script is read
-#
-# Normally all preferences will be set in the prefs file, which is
-# a generated file. Hand-editing, if necessary, should be done to the
-# GDB init script.
-#
-# when "save options" is selected, the contents of the
-# preferences array is written out to the GDB prefs file.
-#
-# Usage:
-# pref_save
-# pref_read
-# ----------------------------------------------------------------------
-#
-
-proc pref_read {} {
- global prefs_init_filename env gdb_ImageDir GDBTK_LIBRARY GDBStartup
- global tcl_platform
-
- if {[info exists env(HOME)]} {
- if {$tcl_platform(platform) == "windows"} {
- set home [ide_cygwin_path to_win32 $env(HOME)]
- } else {
- set home $env(HOME)
- }
- } else {
- set home ""
- }
-
- if {$tcl_platform(platform) == "windows"} {
- set prefs_init_filename "gdbtk.ini"
- } else {
- set prefs_init_filename ".gdbtkinit"
- }
-
- if {!$GDBStartup(inhibit_prefs) \
- || [info exists env(INSIGHT_FORCE_READ_PREFERENCES)]} {
- set file_opened 0
- if {[file exists $prefs_init_filename]} {
- if {[catch {open $prefs_init_filename r} fd]} {
- dbug E "$fd"
- return
- }
- set file_opened 1
- } elseif {$home != ""} {
- set name [file join $home $prefs_init_filename]
- if {[file exists $name]} {
- if {[catch {open $name r} fd]} {
- dbug E "$fd"
- return
- }
- set prefs_init_filename $name
- set file_opened 1
- }
- }
-
- if {$file_opened == "1"} {
- set section gdb
- set version 0
- while {[gets $fd line] >= 0} {
- switch -regexp -- $line {
- {^[ \t\n]*#.*} {
- # Comment. We recognize one magic comment that includes
- # the version number.
- if {[regexp -- "^# GDBtkInitVersion: (\[0-9\]+)\$" $line \
- dummy v]} {
- set version $v
- }
- }
-
- {^[ \t\n]*$} {
- ;# empty line; ignore it
- }
-
- {^[ \t\n]*\[.*\]} {
- regexp {\[(.*)\]} $line match section
- }
-
- {^[ \t\n]*option.*} {
- set line [string trimleft $line]
- eval $line
- }
-
- default {
- set a ""
- set name ""
- set val ""
- regexp "\[ \t\n\]*\(.+\)=\(.+\)" $line a name val
- if {$a == "" || $name == ""} {
- dbug W "Cannot parse line: $line"
- } else {
- # Must unescape equal signs in val
- set val [unescape_value $val $version]
- if {$section == "gdb"} {
- pref setd gdb/$name $val
- } elseif {$section == "global" && [regexp "^font/" $name]} {
- set name [split $name /]
- set f global/
- append f [join [lrange $name 1 end] /]
- if {[lsearch [font names] $f] == -1} {
- # new font
- eval define_font $f $val
- } else {
- # existing font
- pref set global/font/[join [lrange $name 1 end] /] $val
- }
- } elseif {$section == "global"} {
- pref setd $section/$name $val
- } else {
- # backwards compatibility. recognize old src-font name
- if {$val == "src-font"} {set val "global/fixed"}
- pref setd gdb/$section/$name $val
- }
- }
- }
- }
- }
- close $fd
- } elseif {$home != ""} {
- set prefs_init_filename [file join $home $prefs_init_filename]
- }
-
- # now set global options
- set gdb_ImageDir [file join $GDBTK_LIBRARY [pref get gdb/ImageDir]]
-
- }
-
- # finally set colors, from system if possible
- if {[pref get gdb/use_color_schemes] != "1"} {
- pref_set_colors $home
- } else {
- global Colors
- # These colors are the same for all schemes
- set Colors(textfg) black
- set Colors(fg) black
- set Colors(sbg) \#4c59a5
- set Colors(sfg) white
- set_bg_colors
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: pref_save - save preferences to a file and delete window
-# ------------------------------------------------------------------
-proc pref_save {{win {}}} {
- global prefs_init_filename GDBStartup env
-
- if {!$GDBStartup(inhibit_prefs)
- || [info exists env(INSIGHT_FORCE_READ_PREFERENCES)]} {
- debug "pref_save $prefs_init_filename"
-
- if {[catch {open $prefs_init_filename w} fd]} {
- debug "ERROR: $fd"
- return
- }
-
- puts $fd "\# GDBtk Init file"
- puts $fd {# GDBtkInitVersion: 1}
-
- set plist [pref list]
- # write out global options
- puts $fd "\[global\]"
- foreach var $plist {
- set t [split $var /]
- if {[lindex $t 0] == "global"} {
- set x [join [lrange $t 1 end] /]
- set v [escape_value [pref get $var]]
-
- if {$x != "" && $v != ""} {
- puts $fd "\t$x=$v"
- }
- }
- }
-
- # write out gdb-global options
- puts $fd "\[gdb\]"
- foreach var $plist {
- set t [split $var /]
- # We use the funny join/lreplace code because the session code
- # can generate a key where [lindex $t 2] is empty but there is
- # still stuff after that. This happens because the session code
- # uses filenames, which can start with `/'.
- if {[lindex $t 0] == "gdb"
- && [string compare [join [lreplace $t 0 1] /] ""] == 0} {
- set x [lindex $t 1]
- set v [escape_value [pref get $var]]
- if {$x != "" && $v != ""} {
- puts $fd "\t$x=$v"
- }
- }
- }
-
- # now loop through all sections writing out values
- # FIXME: this is broken. We should discover the list
- # dynamically.
- lappend secs load console src reg stack locals watch bp search \
- process geometry help browser kod window session mem bg ipc
-
- foreach section $secs {
- puts $fd "\[$section\]"
- foreach var $plist {
- set t [split $var /]
- if {[lindex $t 0] == "gdb" && [lindex $t 1] == $section} {
- set x [join [lrange $t 2 end] /]
- set v [escape_value [pref get $var]]
- if {$x != "" && $v != ""} {
- puts $fd "\t$x=$v"
- }
- }
- }
- }
- close $fd
- }
-
- if {$win != ""} {
- $win delete
- }
-}
-
-# -------------------------------------------------------
-# PROC: escape_value - escape all equal signs for saving
-# prefs to a file
-# -------------------------------------------------------
-proc escape_value {val} {
- # We use a URL-style quoting. We encode `=', `%', the `[]'
- # characters and newlines. We use a cute trick here: we regsub in
- # command expressions which we then expand using subst.
- if {[info tclversion] >= 8.1} {
- set expr {([\[\]=%\n])}
- } else {
- set expr "(\[\]\[=%\n\])"
- }
- regsub -all -- $expr $val \
- {[format "%%%02x" [scan {\1} %c x; set x]]} newval
- return [subst -nobackslashes -novariables $newval]
-}
-
-# -------------------------------------------------------
-# PROC: unescape_value - unescape all equal signs for
-# reading prefs from a file. VERSION is the version
-# number of the encoding.
-# version 0 only encoded `='.
-# version 1 correctly encoded more values
-# -------------------------------------------------------
-proc unescape_value {val version} {
- switch -exact -- $version {
- 0 {
- # Old-style encoding.
- if {[regsub -all -- {!%} $val = newval]} {
- return $newval
- }
- }
-
- 1 {
- # Version 1 uses URL encoding.
- regsub -all -- "%(..)" $val \
- {[format %c 0x\1]} newval
- return [subst -nobackslashes -novariables $newval]
- }
-
- default {
- error "Unknown encoding version $version"
- }
- }
-
- return $val
-}
-
-# ------------------------------------------------------------------
-# PROC: pref_set_defaults - set up default values
-# ------------------------------------------------------------------
-proc pref_set_defaults {} {
- global GDBTK_LIBRARY tcl_platform gdb_ImageDir
- debug
-
- # Gdb global defaults
- pref define gdb/ImageDir images2
- set gdb_ImageDir [file join $GDBTK_LIBRARY [pref get gdb/ImageDir]]
- pref define gdb/font_cache ""
- pref define gdb/mode 0; # 0 no tracing, 1 tracing enabled
- pref define gdb/control_target 1; # 0 can't control target (EMC), 1 can
- pref define gdb/B1_behavior 1; # 0 means set/clear breakpoints,
- # 1 means set/clear tracepoints.
- pref define gdb/use_icons 1; # For Unix, use gdbtk_icon.gif as an icon
- # some window managers can't deal with it.
-
- # OS compatibility. Valid values are "Windows", "GNOME", "KDE", and "default"
- if {$tcl_platform(platform) == "windows"} {
- pref define gdb/compat "Windows"
- } elseif {$tcl_platform(platform) == "unix"} {
- pref define gdb/compat "GNOME"
- } else {
- pref define gdb/compat "default"
- }
-
- # set download and execution options
- pref define gdb/load/verbose 0
- pref define gdb/load/main 1
- pref define gdb/load/exit 1
- pref define gdb/load/check 0
- pref define gdb/load/bp_at_func 0
- pref define gdb/load/bp_func ""
- pref define gdb/load/baud 38400
- if {$tcl_platform(platform) == "windows"} {
- pref define gdb/load/port com1
- } else {
- pref define gdb/load/port "/dev/ttyS0"
- }
-
- # The list of active windows:
- pref define gdb/window/active {}
-
- # Console defaults
- pref define gdb/console/prompt "(gdb) "
- pref define gdb/console/deleteLeft 1
- pref define gdb/console/wrap 0
- pref define gdb/console/prompt_fg DarkGreen
- pref define gdb/console/error_fg red
- pref define gdb/console/log_fg green
- pref define gdb/console/target_fg blue
- pref define gdb/console/font global/fixed
-
- # Source window defaults
- pref define gdb/src/PC_TAG green
- pref define gdb/src/STACK_TAG gold
- pref define gdb/src/BROWSE_TAG \#9595e2
- pref define gdb/src/handlebg red
- pref define gdb/src/bp_fg red
- pref define gdb/src/temp_bp_fg orange
- pref define gdb/src/disabled_fg black
- pref define gdb/src/font global/fixed
- pref define gdb/src/break_fg black
- pref define gdb/src/source2_fg navy
- pref define gdb/src/variableBalloons 1
- pref define gdb/src/trace_fg magenta
- pref define gdb/src/tab_size 8
- pref define gdb/src/linenums 1
- pref define gdb/src/thread_fg pink
- pref define gdb/src/top_control 1; # 1 srctextwin controls on top, 0 bottom
-
- # Define the run button's functions. These are defined here in case
- # we do a "run" with an exec target (which never causes target.tcl to
- # source)...
- pref define gdb/src/run_attach 0
- pref define gdb/src/run_load 0
- pref define gdb/src/run_run 1
- pref define gdb/src/run_cont 0
-
- # This is the disassembly flavor. For now this is only supported on x86
- # machines.
-
- pref define gdb/src/disassembly-flavor ""
-
- # Variable Window defaults
- pref define gdb/variable/font global/fixed
- pref define gdb/variable/disabled_fg gray
-
- # Stack Window
- pref define gdb/stack/font global/fixed
-
- # Register Window
- pref define gdb/reg/rows 16
-
- # Global Prefs Dialogs
- pref define gdb/global_prefs/save_fg red
- pref define gdb/global_prefs/message_fg white
- pref define gdb/global_prefs/message_bg red
-
- # Browser Window Search
- pref define gdb/search/last_symbol ""
- pref define gdb/search/filter_mode "starts with"
-
- pref define gdb/browser/hide_h 0
- pref define gdb/browser/layout 2
-
- # BP (breakpoint)
- pref define gdb/bp/show_threads 0
-
- # Help
- pref define gdb/help/browsername ""
-
- # Kernel Objects (kod)
- pref define gdb/kod/show_icon 0
-
- # Various possible "main" functions. What's for Java?
- pref define gdb/main_names [list main MAIN___ MAIN__ cyg_user_start cyg_start ]
-
- # These are the classes of warning dialogs, and whether the user plans
- # to ignore them.
- pref define gdb/warnings/signal 0
-
- # Memory window.
- pref define gdb/mem/size 4
- pref define gdb/mem/numbytes 0
- pref define gdb/mem/format x
- pref define gdb/mem/ascii 1
- pref define gdb/mem/ascii_char .
- pref define gdb/mem/bytes_per_row 16
- pref define gdb/mem/color green
-
- # External editor.
- pref define gdb/editor ""
-
- # background colors
- set ::gdb_bg_num 0
- pref define gdb/use_color_schemes 1
- pref define gdb/bg/0 \#ffffff
- pref define gdb/bg/1 \#ffffd0
- pref define gdb/bg/2 \#ffd0ff
- pref define gdb/bg/3 \#ffd0d0
- pref define gdb/bg/4 \#d0ffff
- pref define gdb/bg/5 \#d0ffd0
- pref define gdb/bg/6 \#d0d0ff
- pref define gdb/bg/7 \#d0d0d0
- pref define gdb/bg/8 \#ffffb0
- pref define gdb/bg/9 \#ffb0ff
- pref define gdb/bg/10 \#ffb0b0
- pref define gdb/bg/11 \#b0ffff
- pref define gdb/bg/12 \#b0ffb0
- pref define gdb/bg/13 \#b0b0ff
- pref define gdb/bg/14 \#b0b0b0
- pref define gdb/bg/15 \#d0b0d0
-
- # IPC prefs
- # set prefs based on GDB version?
- #set vers [lindex [split [lindex [split [gdb_cmd "show version"]] end-1 ] \"] 1]
- pref define gdb/ipc/enabled 0
- pref define gdb/ipc/port 9909
- pref define gdb/ipc/stop_button 1
- pref define gdb/ipc/step_button 1
- pref define gdb/ipc/cont_button 1
- pref define gdb/ipc/run_button 1
- pref define gdb/ipc/exit 1
-}
-
-
-##########################################################################
-#
-# Everything below this point is code to try to determine the current OS
-# color scheme and use that. It mostly works, but is not very compatible
-# with the use of multiple color schemes for different instances of Insight.
-#
-##########################################################################
-proc pref_set_colors {home} {
- # set color palette
-
- # In the past, tk widgets got their color information from Windows or
- # the X resource database. Unfortunately Insight is a mixture of widgets
- # from all over and was coded first in tcl and later in itcl. So lots of
- # color inheritance is broken or wrong. And Insight has some special color
- # requirements. We also have to deal with new Unix desktops that don't use the Xrdb.
- # To enable us to fix that without hardcoding colors, we create a color
- # array here and use it as needed to force widgets to the correct colors.
-
- global Colors tcl_platform
- debug
-
- # UNIX colors
-
- # For KDE3 (and probably earlier versions) when the user sets
- # a color scheme from the KDE control center, the appropriate color
- # information is set in the X resource database. Well, most of it
- # is there but it is missing some settings, so we will carefully
- # adjust things.
- #
- # For GNOME, we read .gtkrc or .gtkrc-1.2-gnome2 and parse it
- # for the color information. We cannot really get this right,
- # but with luck we can read enough to get the colors to mostly match.
-
- # If there is no information, we provide reasonable defaults.
-
- # If some theme sets the text foreground and background to something unusual
- # then Insight won't be able to display sources and highlight things properly.
- # Therefore we will not change the textfg and textbg.
-
- switch [pref get gdb/compat] {
-
- "Windows" {
- debug "loading OS colors for Windows"
- set Colors(fg) SystemButtonText
- set Colors(bg) SystemButtonFace
- #set Colors(textfg) SystemWindowText
- #set Colors(textbg) SystemWindow
- set Colors(textfg) black
- set Colors(textbg) white
- set Colors(sfg) SystemHighlightText
- set Colors(sbg) SystemHighlight
- pref_set_option_db 0
- }
-
- "KDE" {
- debug "loading OS colors for KDE"
-
- pref_load_default
- # try loading "~/.gtkrc-kde"
- if {[pref_load_gnome $home [list .gtkrc-kde]]} {
- debug "loaded gnome file"
- pref_set_option_db 0
- debug "loaded option file"
- } else {
- # no .gtkrc-kde so assume X defaults have been set
-
- # create an empty entry widget so we can query its colors
- entry .e
-
- # text background
- # set Colors(textbg) [option get .e background {}]
- set Colors(textbg) white
-
- # text foreground
- #set Colors(textfg) [option get .e foreground {}]
- set Colors(textfg) black
-
- # background
- set Colors(bg) [option get . background {}]
- if {$Colors(bg) == ""} {set Colors(bg) lightgray}
-
- # foreground
- set Colors(fg) [option get . foreground {}]
- if {$Colors(fg) == ""} {set Colors(fg) black}
-
- # selectBackground
- set Colors(sbg) [option get .e selectBackground {}]
- if {$Colors(sbg) == ""} {set Colors(sbg) blue}
-
- # selectForeground
- set Colors(sfg) [option get .e selectForeground {}]
- if {$Colors(sfg) == ""} {set Colors(sfg) white}
-
- destroy .e
- pref_set_option_db 1
- }
- }
-
- "GNOME" {
- pref_load_default
- pref_load_gnome $home
- pref_set_option_db 0
- }
-
- "default" {
- pref_load_default
- pref_set_option_db 1
- }
- }
-}
-
-proc pref_load_default {} {
- global Colors
- debug "loading default colors"
-
- set Colors(textbg) white
- set Colors(textfg) black
- set Colors(bg) lightgray
- set Colors(fg) black
-
- # selectBackground
- set Colors(sbg) blue
-
- # selectForeground
- set Colors(sfg) white
-}
-
-
-# load GNOME colors and fonts, if possible.
-proc pref_load_gnome {home {possible_names {}}} {
- debug "loading OS colors for GNOME"
-
- if {$possible_names == ""} {
- set possible_names {.gtkrc .gtkrc-1.2-gnome2}
- }
-
- set found 0
- foreach name $possible_names {
- debug "home=$home name=$name"
- set fname [file join $home $name]
- debug "fname=$fname"
- if {[file exists $fname]} {
- if {[catch {open $fname r} fd]} {
- dbug W "cannot open $fname: $fd"
- return 0
- }
- set found 1
- break
- }
- }
- if {$found} {
- set found [load_gnome_file $fd]
- close $fd
- }
- return $found
-}
-
-proc load_gnome_file {fd} {
- global Colors
- set found 0
-
- while {[gets $fd line] >= 0} {
- if {[regexp {include \"([^\"]*)} $line foo incname]} {
- debug "include $incname $found"
- if {$found == 0 && [file exists $incname]} {
- if {[catch {open $incname r} fd2]} {
- dbug W "cannot open $incname: $fd2"
- } else {
- set found [load_gnome_file $fd2]
- close $fd2
- if {$found} {
- return $found
- }
- }
- }
- continue
- } elseif {[regexp "\[ \t\n\]*\(.+\) = \(.+\)" $line a name val] == 0} {
- continue
- }
-
- if {[regexp "\"#......\"" $val a] == 1} {
- set val [lindex $a 0]
- } else {
- set res [scan $val "\{ %f, %f, %f \}" r g b]
- if {$res != 3} {
- continue
- }
- set r [expr int($r*255)]
- set g [expr int($g*255)]
- set b [expr int($b*255)]
- set val [format "\#%02x%02x%02x" $r $g $b]
- }
-
- debug "name=\"$name\" val=\"$val\""
-
- # This is a bit of a hack and probably only
- # works for trivial cases. Scan for colors and
- # use the first one found.
- switch [string trimright $name] {
- {bg[NORMAL]} {
- set found 1
- if {![info exists new(bg)]} {
- debug "setting bg to $val"
- set new(bg) $val
- }
- }
- {base[NORMAL]} {
- #if {![info exists new(textbg)]} {
- # set new(textbg) $val
- #}
- }
- {text[NORMAL]} {
- #if {![info exists new(textfg)]} {
- # set new(textfg) $val
- #}
- }
- {fg[NORMAL]} {
- if {![info exists new(fg)]} {
- set new(fg) $val
- }
- }
- {fg[ACTIVE]} {
- if {![info exists new(afg)]} {
- set new(afg) $val
- }
- }
- {bg[SELECTED]} {
- if {![info exists new(sbg)]} {
- set new(sbg) $val
- }
- }
- {base[SELECTED]} {
- if {![info exists new(sbg)]} {
- set new(sbg) $val
- }
- }
- {fg[SELECTED]} {
- if {![info exists new(sfg)]} {
- set new(sfg) $val
- }
- }
- {fg[INSENSITIVE]} {
- if {![info exists new(dfg)]} {
- set new(dfg) $val
- }
- }
- {bg[PRELIGHT]} {
- set Colors(prelight) $val
- }
- {base[PRELIGHT]} {
- set Colors(prelight) $val
- }
- }
- }
-
- foreach c {fg bg sfg sbg dfg} {
- if {[info exists new($c)]} {
- set Colors($c) $new($c)
- }
- }
- return 1
-}
-
-
-# load the colors into the tcl option database
-proc pref_set_option_db {makebg} {
- global Colors
-
- # The color of text that indicates changed items
- # We standardize on one color here so that changed
- # items don't blend into any OS color scheme
- set Colors(change) "green"
-
- option add *background $Colors(bg)
- option add *buttonBackground $Colors(bg)
- option add *Text*background $Colors(textbg)
- option add *Entry*background $Colors(textbg)
- option add *foreground $Colors(fg)
- option add *Text*foreground $Colors(textfg)
- option add *Entry*foreground $Colors(textfg)
-
- option add *highlightBackground $Colors(bg)
- option add *selectBackground $Colors(sbg)
-
- if {$::tcl_platform(platform) == "unix"} {
- option add *activeBackground $Colors(sbg)
- }
-
- option add *selectForeground $Colors(sfg)
- option add *Menu*activeForeground $Colors(sfg)
-
- if {[info exists Colors(prelight)]} {
- option add *Button*activeBackground $Colors(prelight)
- }
- if {[info exists Colors(dfg)]} {
- option add *disabledForeground $Colors(dfg)
- }
-
- if {$makebg} {
- # calculate trough and activebackground as 90% of background
- set dbg [recolor $::Colors(bg) 90]
- option add *activeBackground $dbg
- option add *troughColor $dbg
- }
-
- # Change the default select color for checkbuttons, etc to match
- # selectBackground.
- if {$::tcl_platform(platform) == "unix"} {
- option add *selectColor $Colors(sbg)
- }
-}
diff --git a/gdb/gdbtk/library/process.itb b/gdb/gdbtk/library/process.itb
deleted file mode 100644
index 8340996ab11..00000000000
--- a/gdb/gdbtk/library/process.itb
+++ /dev/null
@@ -1,162 +0,0 @@
-# Process window for Insight.
-# Copyright (C) 1998, 1999, 2001, 2002 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ----------------------------------------------------------------------
-# Implements a process window with a list of threads, tasks, and/or
-# processes to debug.
-#
-# ----------------------------------------------------------------------
-
-itcl::body ProcessWin::constructor {args} {
-
- window_name "Processes"
- gdbtk_busy
- build_win
- gdbtk_idle
-
- # Add hooks for this object
- add_hook gdb_no_inferior_hook [code $this idle]
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: build_win - build the main process window
-# ------------------------------------------------------------------
-itcl::body ProcessWin::build_win {} {
- global tcl_platform
-
- itk_component add slbox {
- iwidgets::scrolledlistbox $itk_interior.slbox \
- -background $::Colors(bg) \
- -selectbackground $::Colors(sbg) -selectforeground $::Colors(sfg) \
- -textfont global/fixed \
- -exportselection false \
- -selectioncommand [code $this change_context]
- } {}
- [$itk_component(slbox) component listbox] configure \
- -bg $::Colors(textbg) -fg $::Colors(textfg)
- update dummy
-
- pack $itk_component(slbox) -side left -expand yes -fill both
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: update - update widget when something changes
-# ------------------------------------------------------------------
-itcl::body ProcessWin::update {event} {
- if {!$protect_me} {
-
- $itk_component(slbox) delete 0 end
- if {[catch {gdb_cmd "info thread"} threads]} {
- # failed. leave window blank
- return
- }
-
- set threads [split $threads \n]
- debug "processWin update: \n$threads"
- if {[llength $threads] == 0} {
- # no processes/threads listed.
- return
- }
-
- # insert each line one at a time
- set active -1
- set num_threads 0
- foreach line $threads {
- # Active line starts with "*"
- if {[string index $line 0] == "*"} {
- # strip off leading "*"
- set line " [string trimleft $line "*"]"
- set active $num_threads
- }
- # scan for GDB ID number at start of line
- if {[scan $line "%d" id($num_threads)] == 1} {
- $itk_component(slbox) insert end $line
- incr num_threads
- }
- }
-
- # highlight the active thread
- if {$active >= 0} {
- set active_thread $id($active)
- $itk_component(slbox) selection set $active
- $itk_component(slbox) see $active
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: change_context - change the current context (active thread)
-# This method is currently ONLY called from the mouse binding
-# ------------------------------------------------------------------
-itcl::body ProcessWin::change_context {} {
- if {!$Running && [$itk_component(slbox) size] != 0} {
- gdbtk_busy
- set sel [$itk_component(slbox) curselection]
- set idnum $id($sel)
- #debug "change_context to line $sel id=$idnum"
- catch {gdb_cmd "thread $idnum"}
- # Run idle hooks and cause all widgets to update
- set protect_me 1
- gdbtk_update
- set protect_me 0
- gdbtk_idle
- }
-}
-
-# ------------------------------------------------------------------
-# DESTRUCTOR - destroy window containing widget
-# ------------------------------------------------------------------
-itcl::body ProcessWin::destructor {} {
- remove_hook gdb_no_inferior_hook [code $this no_inferior]
-}
-
-# ------------------------------------------------------------------
-# METHOD: reconfig - used when preferences change
-# ------------------------------------------------------------------
-itcl::body ProcessWin::reconfig {} {
- destroy $itk_interior.s
- if {[winfo exists $itk_interior.slbox]} { destroy $itk_interior.slbox }
- build_win
-}
-
-# ------------------------------------------------------------------
-# METHOD: busy - BusyEvent handler
-#
-# This method should accomplish blocking
-# - clicks in the window
-# - change mouse pointer
-# ------------------------------------------------------------------
-itcl::body ProcessWin::busy {event} {
- set Running 1
- cursor watch
-}
-
-# ------------------------------------------------------------------
-# METHOD: idle - handle IdleEvent
-# ------------------------------------------------------------------
-itcl::body ProcessWin::idle {event} {
- set Running 0
- cursor {}
-}
-
-# ------------------------------------------------------------------
-# METHOD: cursor - set the window cursor
-# This is a convenience method which simply sets the mouse
-# pointer to the given glyph.
-# ------------------------------------------------------------------
-itcl::body ProcessWin::cursor {glyph} {
- $_top configure -cursor $glyph
-}
diff --git a/gdb/gdbtk/library/process.ith b/gdb/gdbtk/library/process.ith
deleted file mode 100644
index 5e1106ac92f..00000000000
--- a/gdb/gdbtk/library/process.ith
+++ /dev/null
@@ -1,41 +0,0 @@
-# Process window class definition for Insight.
-# Copyright (C) 1998, 1999, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class ProcessWin {
- inherit EmbeddedWin GDBWin
-
- private {
- variable id
- variable Running 0
- variable protect_me 0
-
-
- method build_win {}
- method change_context {}
- method cursor {glyph}
- }
-
- public {
- method reconfig {}
- method constructor {args}
- method destructor {}
-
- #
- # GDB Events
- #
- method busy {event}
- method idle {event}
- method update {event}
- }
-}
diff --git a/gdb/gdbtk/library/regwin.itb b/gdb/gdbtk/library/regwin.itb
deleted file mode 100644
index 5b0ef46fca3..00000000000
--- a/gdb/gdbtk/library/regwin.itb
+++ /dev/null
@@ -1,1050 +0,0 @@
-# Register display window for Insight.
-# Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004 Red Hat, Inc.
-#
-# Written by Keith Seitz (keiths@redhat.com)
-# and Martin Hunt (hunt@redhat.com)
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# TODO
-#
-# Must fix:
-# o Edit menus -- weirdo interaction with tkTable. Seems okay on windows.
-# Needs more testing on unix (popup edit menu item).
-#
-# Want really badly:
-# o Multiple selections
-# o Multiple displays
-# o Better resizing
-# o Register groups (gdb and user-defined)
-# o format register values before inserting into table?
-# (Instead of displaying "0x0", we should use "0x00000000" on
-# machines with 32-bit regs, "0x0000000000000000" on machines
-# with 64-bit regs, etc. Maybe user-defined formats, i.e.,
-# "0x0000 0000 0000 0000 0000 0000"?)
-
-# ------------------------------------------------------------------
-# NAME: RegWin::constructor
-# DESCRIPTION: Create a new register window
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-itcl::body RegWin::constructor {args} {
-
- eval itk_initialize $args
-
- gdbtk_busy
-
- window_name "Registers" "Regs"
- _build_win
- _layout_table
-
- # Clear gdb's changed list
- catch {gdb_reginfo changed}
-
- gdbtk_idle
-}
-
-# ------------------------------------------------------------------
-# NAME: RegWin::destructor
-# DESCRIPTION: Destroys the register window
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-itcl::body RegWin::destructor {} {
- debug
-}
-
-# ------------------------------------------------------------------
-# NAME: RegWin::_load_prefs
-# DESCRIPTION: Load register preferences
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-itcl::body RegWin::_load_prefs {} {
- debug
-
- # Find out largest register name length.
- set _max_label_width 0; # for reg labels
- set _reg_display_list {}
- set _register(hidden) {}
-
- set regs [gdb_reginfo group $_group]
- foreach r [gdb_reginfo name -numbers $regs] {
- set nm [lindex $r 0]
- set rn [lindex $r 1]
- set size [string length $nm]
- if {$size > $_max_label_width} {
- set _max_label_width $size
- }
-
- # Set type from prefs or default to first in list of types
- set _types($rn) [gdb_reginfo type $rn]
- set tp [pref getd gdb/reg/${nm}-type]
- set _type($rn,name) ""
- if {$tp != ""} {
- foreach t $_types($rn) {
- if {[lindex $t 0] == $tp} {
- set _type($rn,name) $tp
- set _type($rn,addr) [lindex $t 1]
- set _type($rn,code) [lindex $t 2]
- break
- }
- }
- }
- if {$_type($rn,name) == ""} {
- # either not set or couldn't find it in list of types
- set _type($rn,name) [lindex [lindex $_types($rn) 0] 0]
- set _type($rn,addr) [lindex [lindex $_types($rn) 0] 1]
- set _type($rn,code) [lindex [lindex $_types($rn) 0] 2]
- }
-
- # Check preferences for format
- set _format($rn) [pref getd gdb/reg/${nm}-format]
- if {$_format($rn) == ""} {
- # no preference set. Set it to hex or float
- if {$_type($rn,code) == "int"} {
- set _format($rn) "x"
- } else {
- set _format($rn) "f"
- }
- pref setd gdb/reg/${nm}-format $_format($rn)
- }
-
- gdb_reginfo format $rn $_type($rn,addr) $_format($rn)
-
- # Check if the user prefers not to show this register
- if {[pref getd gdb/reg/$nm] == "no"} {
- set _cell($rn) hidden
- lappend _register(hidden) $rn
- } else {
- lappend _reg_display_list $rn
- }
-
- # assume editable, for now
- set _editable($rn) 1
- }
-
- incr _max_label_width 2; # padding
-}
-
-
-#
-# Table layout/display methods
-#
-
-# ------------------------------------------------------------------
-# NAME: private method RegWin::_build_win
-# DESCRIPTION: Builds the register window from widgets
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-#
-# NOTES: This method should only be called once for
-# each RegWin. To change the layout of the table
-# in the window, use RegWin::_layout_table.
-# ------------------------------------------------------------------
-itcl::body RegWin::_build_win {} {
-
- # Create scrollbars and table
- itk_component add vscroll {
- scrollbar $itk_interior.vs -orient vertical
- }
- itk_component add hscroll {
- scrollbar $itk_interior.hs -orient horizontal
- }
-
- itk_component add table {
- ::table $itk_interior.tbl -variable [scope _data] \
- -browsecmd [code $this _select_cell %S] -font global/fixed \
- -colstretch unset -rowstretch unset -selectmode single \
- -resizeborders none -multiline false -colwidth 18 \
- -autoclear 0 -bg $::Colors(bg) \
- -padx 5 -xscrollcommand [code $itk_component(hscroll) set] \
- -yscrollcommand [code $itk_component(vscroll) set]
- } {
- keep -foreground
- keep -insertbackground
- keep -highlightcolor
- keep -highlightbackground
- }
- bind $itk_component(table) <Up> \
- [format "%s; break" [code $this _move up]]
- bind $itk_component(table) <Down> \
- [format "%s; break" [code $this _move down]]
- bind $itk_component(table) <Left> \
- [format "%s; break" [code $this _move left]]
- bind $itk_component(table) <Right> \
- [format "%s; break" [code $this _move right]]
- bind $itk_component(table) <3> \
- [code $this _but3 %x %y %X %Y]
- bind $itk_component(table) <Double-1> break
- bind $itk_component(table) <1> \
- [code $this _edit %x %y]
- bind $itk_component(table) <Return> \
- [format "%s; break" [code $this _accept_edit]]
- bind $itk_component(table) <KP_Enter> \
- [format "%s; break" [code $this _accept_edit]]
- bind $itk_component(table) <Escape> \
- [code $this _unedit]
-
- $itk_component(hscroll) configure -command [code $itk_component(table) xview]
- $itk_component(vscroll) configure -command [code $itk_component(table) yview]
-
-
- # Create/configure tags for various display styles
- # normal - the "normal" display style
- # highlight - changed registers are highlighted
- # sel - the selection fg/bg should conform to standard
- # header - used on the register name cells and empty cells
- # edit - used on a cell being edited
- $itk_component(table) tag configure normal \
- -state disabled -bg $::Colors(textbg) -fg $::Colors(textfg)
- $itk_component(table) tag configure sel -bg $::Colors(sbg) -fg $::Colors(sfg)
- $itk_component(table) tag configure highlight -bg $::Colors(change) -fg black
- $itk_component(table) tag raise highlight
- $itk_component(table) tag configure header \
- -anchor w -state disabled -relief raised
- $itk_component(table) tag configure disabled \
- -state disabled
- $itk_component(table) tag raise active
- $itk_component(table) tag configure edit \
- -state normal
- $itk_component(table) tag raise edit
- $itk_component(table) tag raise sel
-
- itk_component add frame {
- frame $itk_interior.m
- }
- iwidgets::optionmenu $itk_component(frame).opt -labeltext "Group:" \
- -labelpos w -command [code $this _select_group]
- eval $itk_component(frame).opt insert end [gdb_reginfo grouplist]
- $itk_component(frame).opt select "all"
-
- pack $itk_component(frame).opt -anchor nw
- grid $itk_component(frame) -row 0 -columnspan 2 -sticky news
- grid $itk_component(table) -row 1 -column 0 -sticky news
- grid $itk_component(vscroll) -row 1 -column 1 -sticky ns
- grid $itk_component(hscroll) -row 2 -column 0 -sticky ew
- grid columnconfigure $itk_interior 0 -weight 1
- grid rowconfigure $itk_interior 0 -weight 0
- grid rowconfigure $itk_interior 1 -weight 1
-
- # Add popup menu - we populate it in the event handler
- itk_component add popup {
- menu $itk_interior.pop -tearoff 0
- } {}
-}
-
-# ------------------------------------------------------------------
-# NAME: private method RegWin::_layout_table
-# DESCRIPTION: Configures and lays out the table
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-#
-# NOTES: Uses preferences to determine if/how a register
-# is displayed
-# ------------------------------------------------------------------
-itcl::body RegWin::_layout_table {} {
- debug
-
- if {[info exists _cell]} {
- unset _cell
- unset _register
- }
- # Clear any column spans
- foreach span [$itk_component(table) spans] {
- $itk_component(table) spans $span 0,0
- }
-
- _load_prefs
-
- # Fill data array with register names.
- #
- # The table is indexed by (row,col). All odd columns will contain
- # register values and all even columns will contain the labels.
- #
- set x 0
- set y 0
-
- # get register list
- set regs [gdb_reginfo name -numbers $_reg_display_list]
-
- # Set table dimensions
- set num [llength $regs]
- set _rows [pref get gdb/reg/rows]
- set _cols [expr $num / $_rows]
- if {[expr $num % $_rows] != 0} { incr _cols }
- set _cols [expr 2 * $_cols]
- $itk_component(table) configure -cols $_cols -rows $_rows
-
- # get values
- if {[catch {gdb_reginfo value $_reg_display_list} values]} {
- dbug W "values=$values"
- set values ""
- }
- set i 0
-
- # now build table
- foreach r $regs {
- set name [lindex $r 0]
- set rn [lindex $r 1]
-
- set _cell($rn) "$y,[expr {$x+1}]"
- set _register($_cell($rn)) $rn
- set _data($y,$x) $name
- set _data($_cell($rn)) [lindex $values $i]
- incr i
-
- # Go to next row/column
- incr y
- if {$y == $_rows} {
- set _col_size([expr {$x+1}]) 0
-
- # Size the column
- if {$::gdb_running} {
- _size_column [expr {$x+1}] 1
- }
-
- $itk_component(table) width $x $_max_label_width
- $itk_component(table) tag col header $x
- $itk_component(table) tag col normal [expr {$x+1}]
-
- set y 0
- incr x 2
- }
- }
-
- # Mark empty cells
- while {$y != $_rows && $x != $_cols} {
- set _data($y,$x) ""
- set _data($y,[expr {$x+1}]) ""
- $itk_component(table) spans $y,$x 0,1
- $itk_component(table) tag cell header $y,$x
- set _col_size([expr {$x+1}]) 0
-
- incr y
- if {$y == $_rows} {
- # Size the column
- if {$::gdb_running} {
- _size_column [expr {$x+1}] 1
- }
- $itk_component(table) width $x $_max_label_width
- $itk_component(table) tag col header $x
- $itk_component(table) tag col normal [expr {$x+1}]
-
- set y 0
- incr x 2
- }
- }
-}
-
-# ------------------------------------------------------------------
-# NAME: private method RegWin::_size_cell_column
-# DESCRIPTION: Resize the column for a given cell.
-#
-# ARGUMENTS:
-# cell - the cell whose column is to be resized
-# down - whether the resizing should size the column
-# down or just up.
-# RETURNS: Nothing
-#
-# NOTES: See _size_column for the reasoning for the "down"
-# option.
-# ------------------------------------------------------------------
-itcl::body RegWin::_size_cell_column {cell down} {
-
- set col [string trim [lindex [split $cell ,] 1] ()]
- _size_column $col $down
-}
-
-# ------------------------------------------------------------------
-# NAME: private method RegWin::_size_column
-# DESCRIPTION: Resize the given column
-#
-# ARGUMENTS:
-# col - the column to be resized
-# down - whether the resizing should size the column
-# RETURNS: down or just up.
-#
-# NOTES: The down option allows column sizes to change down
-# as well as up. For most cases, this is what is
-# wanted. However, when the user is stepping, it is
-# really annoying to see the column sizes changing.
-# It's bad enough we must size up, but going down
-# is just too much. Consequently, when updating the
-# contents of the table, we specify that the columns
-# should not downsize. This helps mitigate the
-# annoyance.
-# ------------------------------------------------------------------
-itcl::body RegWin::_size_column {col down} {
-
- set max 0
- foreach cell [array names _data *,$col] {
- set len [string length $_data($cell)]
- if {$len > $max} { set max $len }
- }
-
- if {($down && $max != $_col_size($col))
- || (!$down && $max > $_col_size($col))} {
- set _col_size($col) $max
- $itk_component(table) width $col [expr {$max + 2}]
-
- # Force the table to update itself
- after idle event generate $itk_component(table) <Configure> \
- -width [winfo width $itk_component(table)]
- }
-}
-
-# ------------------------------------------------------------------
-# NAME: private method RegWin::reconfig
-# DESCRIPTION: Reconfigures register window when a preference
-# changes.
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-#
-# ------------------------------------------------------------------
-itcl::body RegWin::reconfig {} {
- $itk_component(table) tag configure normal \
- -state disabled -bg $::Colors(textbg) -fg $::Colors(textfg)
-}
-
-
-#
-# Table event handlers and related methods
-#
-
-# ------------------------------------------------------------------
-# NAME: private method RegWin::_accept_edit
-# DESCRIPTION: Change a register's value
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-#
-# NOTES: Event handler for <Enter> and <KP_Enter>
-# in table
-# ------------------------------------------------------------------
-itcl::body RegWin::_accept_edit {} {
- debug
- set cell [$itk_component(table) tag cell edit]
- if {[llength $cell] == 1 && [info exists _register($cell)]} {
- # Select the same cell again. This forces the table
- # to keep this value. Otherwise, we'll never see it...
- _select_cell $cell
- set rn $_register($cell)
- set n [gdb_reginfo name $rn]
- if {[llength $_types($rn)] > 1} {
- append n ".$_type($rn,name)"
- }
- set v [string trim [$itk_component(table) curvalue] \ \r\n]
- debug "n=$n v=$v"
- if {$v != ""} {
- if {[catch {gdb_cmd "set \$${n}=$v"} result]} {
- tk_messageBox -icon error -type ok -message $result \
- -title "Error in Expression" -parent $_top
- }
- }
-
- # Always update the register, even for error conditions. This
- # will ensure that the cell's old value is restored to the table.
- _update_register $_register($cell)
- _size_cell_column $cell 1
- }
-
- _unedit
-}
-
-# ------------------------------------------------------------------
-# NAME: private method RegWin::_add_to_watch
-# DESCRIPTION: Add a register to the watch window
-#
-# ARGUMENTS: rn - the register number to add to the WatchWin
-# RETURNS: Nothing
-#
-# NOTES: Only works with one WatchWin...
-# ------------------------------------------------------------------
-itcl::body RegWin::_add_to_watch {rn} {
- [ManagedWin::open WatchWin] add "\$[gdb_reginfo name $rn]"
-}
-
-# ------------------------------------------------------------------
-# NAME: private method RegWin::_add_to_watch
-# DESCRIPTION: Add a register to the watch window
-#
-# ARGUMENTS: rn - the register number to add to the WatchWin
-# RETURNS: Nothing
-#
-# NOTES: Only works with one WatchWin...
-# ------------------------------------------------------------------
-itcl::body RegWin::_open_memory {rn} {
- ManagedWin::open MemWin -force -addr_exp $_data($_cell($rn))
-}
-
-# ------------------------------------------------------------------
-# NAME: private method RegWin::_but3
-# DESCRIPTION: Configure the popup menu before posting it
-#
-# ARGUMENTS: x - x-coordinate of buttonpress
-# y - y-coordinate
-# X - x-root coordinate
-# Y - y-root coordinate
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-itcl::body RegWin::_but3 {x y X Y} {
-
- # Only post the menu when we're not executing the inferior,
- # the inferior is in a runnable state, and we're not in a disabled
- # cell.
- if {!$_running && $::gdb_running} {
-
- # Select the register
- set cell [_select_cell [$itk_component(table) index @$x,$y]]
- if {[info exists _register($cell)]} {
- set rn $_register($cell)
- set name [gdb_reginfo name $rn]
- $itk_component(popup) delete 0 end
- $itk_component(popup) add command -label $name -state disabled
- $itk_component(popup) add separator
- if {[llength $_types($rn)] > 1} {
- foreach t $_types($rn) {
- $itk_component(popup) add radio -label [lindex $t 0] \
- -variable [scope _type($rn,addr)] \
- -value [lindex $t 1] \
- -command [code $this _change_format $rn [lindex $t 0]]
- }
- $itk_component(popup) add separator
- }
-
- $itk_component(popup) add radio -label "Hex" \
- -variable [scope _format($rn)] -value x \
- -command [code $this _change_format $rn]
-
- if {$_type($rn,code) == "int"} {
- $itk_component(popup) add radio -label "Decimal" \
- -variable [scope _format($rn)] -value d \
- -command [code $this _change_format $rn]
- $itk_component(popup) add radio -label "Unsigned" \
- -variable [scope _format($rn)] -value u \
- -command [code $this _change_format $rn]
- } elseif {$_type($rn,code) == "float"} {
- $itk_component(popup) add radio -label "Floating Point" \
- -variable [scope _format($rn)] -value f \
- -command [code $this _change_format $rn]
- }
- $itk_component(popup) add separator
-
- if {$_editable($rn)} {
- set state normal
- } else {
- set state disabled
- }
-
- if {$_type($rn,code) == "int"} {
- $itk_component(popup) add command \
- -label "Open Memory Window" -command [code $this _open_memory $rn]
- }
- $itk_component(popup) add command \
- -label "Add to Watch" -command [code $this _add_to_watch $rn]
- $itk_component(popup) add separator
- $itk_component(popup) add command \
- -label "Remove from Display" \
- -command [code $this _delete_from_display $rn]
- if {[llength $_register(hidden)] != 0} {
- $itk_component(popup) add command -label "Display all Registers" \
- -command [code $this _display_all]
- }
-
- # Help
- $itk_component(popup) add separator
- $itk_component(popup) add command \
- -label "Help" -command {open_help register.html}
-
- # Close
- $itk_component(popup) add separator
- $itk_component(popup) add command -label "Close" \
- -underline 0 -command [code delete object $this]
-
- tk_popup $itk_component(popup) $X $Y
- }
- }
-}
-
-# ------------------------------------------------------------------
-# NAME: private method RegWin::_delete_from_display
-# DESCRIPTION: Remove a register from the display
-#
-# ARGUMENTS: rn - the register number to remove
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-itcl::body RegWin::_delete_from_display {rn} {
-
- # Mark the cell as hidden
- set index [lsearch $_reg_display_list $rn]
- if {$index != -1} {
- pref setd gdb/reg/[gdb_reginfo name $rn] no
- set _reg_display_list [lreplace $_reg_display_list $index $index]
-
- # Relayout table
- _layout_table
- }
-}
-
-# ------------------------------------------------------------------
-# NAME: private method RegWin::_display_all
-# DESCRIPTION: Display all registers in the window
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-itcl::body RegWin::_display_all {} {
-
- # Unhide all hidden registers
- foreach r $_register(hidden) {
- pref setd gdb/reg/[gdb_reginfo name $r] {}
- }
-
- # Note which register is active and restore it
- if {[catch {$itk_component(table) index active} cell]} {
- set active {}
- } else {
- set active $_register($cell)
- }
- _layout_table
- if {$active != ""} {
- $itk_component(table) activate $_cell($active)
- }
-}
-
-# ------------------------------------------------------------------
-# NAME: private method RegWin::_edit
-# DESCRIPTION: Enables a cell for editing
-#
-# ARGUMENTS:
-# x - the x coordinate of the button press
-# y - the y coordinate of the button press
-# RETURNS: Nothing
-#
-# NOTES: Event handler for <1> in table.
-#
-# ------------------------------------------------------------------
-itcl::body RegWin::_edit {x y} {
- _select_cell [$itk_component(table) index @$x,$y]
-}
-
-
-# ------------------------------------------------------------------
-# NAME: private method _move
-# DESCRIPTION: Handle arrow key events in table
-#
-# ARGUMENTS: direction - "up", "down", "left", "right"
-# RETURNS: Nothing
-#
-# NOTES: Event handler for <Up>, <Down>, <Left>, <Right>
-# in table. This is needed because the table
-# has some rather strange bindings for moving
-# the insertion cursor when editing a cell.
-# This method will move to the next cell when
-# we're not editing, or it will move the icursor
-# if we are editing.
-# ------------------------------------------------------------------
-itcl::body RegWin::_move {direction} {
-
- debug $direction
-
- # If there is no active cell, the table will call error
- if {[catch {$itk_component(table) index active row} row]} {
- return
- }
-
- if {[$itk_component(table) tag cell edit] != ""} {
- # Editing
-
- switch $direction {
- up {
- # Go to beginning
- $itk_component(table) icursor 0
- }
-
- down {
- # Go to end
- $itk_component(table) icursor end
- }
-
- left {
- # Go left one character
- set ic [$itk_component(table) icursor]
- if {$ic > 0} {
- $itk_component(table) icursor [expr {$ic - 1}]
- }
- }
-
- right {
- # Go right one character
- set ic [$itk_component(table) icursor]
- if {$ic < [$itk_component(table) icursor end] } {
- $itk_component(table) icursor [expr {$ic + 1}]
- }
- }
- }
-
- } else {
- # Not editing
-
- set col [$itk_component(table) index active col]
-
- switch $direction {
- up {
- incr row -1
- if {$row < 0} {
- # go to bottom
- set row $_rows
- }
- }
-
- down {
- incr row 1
- if {$row == $_rows} {
- # go to top
- set row 0
- }
- }
-
- left {
- incr col -2
- if {$col < 0} {
- # go to right
- set col [expr {$_cols -1}]
- }
- }
-
- right {
- incr col 2
- if {$col > $_cols} {
- # go to left
- set col 0
- }
- }
- }
-
- # clear the selection
- # FIXME: multiple selections?
- $itk_component(table) selection clear all
-
- _select_cell $row,$col
- }
-}
-
-
-# ------------------------------------------------------------------
-# NAME: private method RegWin::_select_cell
-# DESCRIPTION: Selects a given cell in the table
-#
-# ARGUMENTS:
-# cell - the table index to select
-# RETURNS: The actual cell selected
-#
-# NOTES: Adjusts the cell index so that it always
-# selects the value cell for a register
-# ------------------------------------------------------------------
-itcl::body RegWin::_select_cell {cell} {
-
- # Abort an edit
- _unedit
-
- # check if going to label. If so, highlight next
- set row [lindex [split $cell ,] 0]
- set col [lindex [split $cell ,] 1]
- if {[expr {$col % 2}] == 0} {
- # going onto a label
- incr col 1
- }
- set cell "$row,$col"
-
- # Make the selected cell the active one
- $itk_component(table) activate $row,$col
- $itk_component(table) see active
-
- # Select this cell and its label
- # FIXME: multiple selections?
- $itk_component(table) selection clear all
- $itk_component(table) selection set $cell $row,[expr {$col-1}]
-
- # Now mark the cell as being edited.
- if {$::gdb_running && [info exists _register($cell)]} {
- $itk_component(table) tag cell edit $cell
- }
-
- focus $itk_component(table)
-
- return $cell
-}
-
-# ------------------------------------------------------------------
-# NAME: private method RegWin::_unedit
-# DESCRIPTION: Cancels an edit
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-itcl::body RegWin::_unedit {} {
-
- # clear the tag
- set cell [$itk_component(table) tag cell edit]
-
- if {$cell != ""} {
- $itk_component(table) selection clear all
- $itk_component(table) tag cell normal $cell
- focus $itk_component(table)
- }
-}
-
-#
-# Register operations
-#
-
-# ------------------------------------------------------------------
-# NAME: private method RegWin::_get_value
-# DESCRIPTION: Get the value of a register
-#
-# ARGUMENTS: rn - the register number whose value should be
-# fetched
-# RETURNS: The register's value or ""
-#
-# NOTES:
-# ------------------------------------------------------------------
-itcl::body RegWin::_get_value {rn} {
- if {[catch {gdb_reginfo value $rn} value]} {
- dbug W "\"gdb_reginfo value $rn\" returned $value"
- set value ""
- } else {
- set value [string trim $value \ ]
- }
- return $value
-}
-
-# ------------------------------------------------------------------
-# NAME: private method RegWin::_change_format
-# DESCRIPTION: Change the display format of the register
-#
-# ARGUMENTS: rn - the register number to change
-# newtype - type name (optional if just format changed)
-#
-# RETURNS: Nothing
-#
-# NOTES:
-# ------------------------------------------------------------------
-itcl::body RegWin::_change_format {rn {newtype {}}} {
-
- set name [gdb_reginfo name $rn]
-
- if {$newtype != ""} {
- set _type($rn,name) $newtype
- pref setd gdb/reg/${name}-type $newtype
- }
-
- gdb_reginfo format $rn $_type($rn,addr) $_format($rn)
-
- # Set the new format in prefs.
- pref setd gdb/reg/${name}-format $_format($rn)
-
- _update_register $rn
- _size_cell_column $_cell($rn) 1
-
- # Show the active cell in case it's moved as a result
- # of resizing the columns.
- $itk_component(table) see active
-}
-
-# ------------------------------------------------------------------
-# NAME: private_method RegWin::_update_register
-# DESCRIPTION: Updates the value of a register and refreshes
-# the table
-#
-# ARGUMENTS:
-# rn - the register number to update
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-itcl::body RegWin::_update_register {rn} {
- set _data($_cell($rn)) [_get_value $rn]
-}
-
-# ------------------------------------------------------------------
-# NAME: private_method RegWin::_select_group
-# DESCRIPTION: Changes the register group. Callback
-#
-# ARGUMENTS:
-#
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-itcl::body RegWin::_select_group {} {
- set gr [$itk_component(frame).opt get]
- debug $gr
- if {$gr == ""} {
- return
- }
-
- # Change anything on the old change list back to normal
- foreach r $_change_list {
- if {[info exists _cell($r)] && $_cell($r) != "hidden"} {
- $itk_component(table) tag cell normal $_cell($r)
- }
- }
-
- set _group $gr
- _layout_table
-
- # highlight changed registers if they still exist in the new group
- foreach r $_change_list {
- if {[info exists _cell($r)] && $_cell($r) != "hidden" && $_data($_cell($r)) != ""} {
- $itk_component(table) tag cell highlight $_cell($r)
- }
- }
-
- # Clear gdb's change list
- catch {gdb_reginfo changed}
-}
-
-
-#
-# Gdb Events
-#
-
-# ------------------------------------------------------------------
-# NAME: public method RegWin::arch_changed
-# DESCRIPTION: ArchChangedEvent handler
-#
-# ARGUMENTS: event - the ArchChangedEvent (not used)
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-itcl::body RegWin::arch_changed {event} {
-
- # When the arch changes, gdb will callback into gdbtk-register.c
- # to swap out the old register set, so we need only redraw the
- # window, updating the register names and numbers.
- _layout_table
-
- # Clear gdb's change list
- catch {gdb_reginfo changed}
-}
-
-# ------------------------------------------------------------------
-# NAME: public method RegWin::busy
-# DESCRIPTION: BusyEvent handler
-#
-# ARGUMENTS: event - the BusyEvent (not used)
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-itcl::body RegWin::busy {event} {
-
- # Abort any edit. Need to check if the table is constructed,
- # since we call gdbtk_busy when we're created...
- if {[info exists itk_component(table)]} {
- _unedit
- }
-
- # Set fencepost
- set _running 1
-
- # Set cursor
- $_top configure -cursor watch
-}
-
-# ------------------------------------------------------------------
-# NAME: public method RegWin::idle
-# DESCRIPTION: IdleEvent handler
-#
-# ARGUMENTS: event - the IdleEvent (not used)
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-itcl::body RegWin::idle {event} {
-
- # Clear fencepost
- set _running 0
-
- # Reset cursor
- $_top configure -cursor {}
-}
-
-# ------------------------------------------------------------------
-# NAME: public method RegWin::set_variable
-# DESCRIPTION: SetVariableEvent handler
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-itcl::body RegWin::set_variable {event} {
- switch [$event get variable] {
- disassembly-flavor {
- _layout_table
- }
- }
-}
-
-# ------------------------------------------------------------------
-# NAME: public method RegWin::update
-# DESCRIPTION: UpdateEvent handler
-#
-# ARGUMENTS: event - the UpdateEvent (not used)
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-itcl::body RegWin::update {event} {
- debug
-
- # Change anything on the old change list back to normal
- foreach r $_change_list {
- if {[info exists _cell($r)] && $_cell($r) != "hidden"} {
- $itk_component(table) tag cell normal $_cell($r)
- }
- }
-
- # Now update and highlight the newly changed values
- set _change_list {}
- if {![catch {gdb_reginfo changed $_reg_display_list} changed]} {
- set _change_list $changed
- }
-
- # Problem: if the register was invalid (i.e, we were not running),
- # its old value will probably be "0x0". Now if we run and its real
- # value is "0x0", then it will appear as a blank in the register
- # window. Safegaurd against that here by adding any such register
- # which is not already in the change list.
- foreach r $_reg_display_list {
- if {$_data($_cell($r)) == "" && [lsearch $_change_list $r] == -1} {
- lappend _change_list $r
- }
- }
-
- # Tag the changed cells and resize the columns
- set cols {}
- foreach r $_change_list {
- _update_register $r
-
- if {$_data($_cell($r)) != ""} {
- $itk_component(table) tag cell highlight $_cell($r)
- }
- set col [lindex [split $_cell($r) ,] 1]
- if {[lsearch $cols $col] == -1} {
- lappend cols $col
- }
- }
-
- foreach col $cols {
- set col [string trim $col ()]
- _size_column $col 0
- }
-
- debug "END REGISTER UPDATE CALLBACK"
-}
diff --git a/gdb/gdbtk/library/regwin.ith b/gdb/gdbtk/library/regwin.ith
deleted file mode 100644
index 4a7faf81125..00000000000
--- a/gdb/gdbtk/library/regwin.ith
+++ /dev/null
@@ -1,103 +0,0 @@
-# Register display window class definition for Insight.
-# Copyright (C) 1998, 1999, 2001 Red Hat, Inc.
-#
-# Written by Keith Seitz (keiths@redhat.com)
-# based on work by Martin Hunt (hunt@redhat.com)
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class RegWin {
- inherit EmbeddedWin GDBWin
-
- private {
- variable _change_list {}
- variable _menuitems
-
- # Display data for the table
- variable _data
-
- # Mapping of table cell index to register number
- variable _register
-
- # the register group that is displayed
- variable _group "all"
-
- # Mapping of register number to table cell index. "hidden" if
- # the register was "removed" from the display.
- variable _cell
-
- # Is REGNUM editable?
- variable _editable
-
- # List of possible display types for the registers (indexed by regnum)
- variable _types
- # The display type to use for each register (indexed by regnum)
- variable _type
- # The display format to use for each register (indexed by regnum)
- variable _format
-
- # The list of registers we're displaying
- variable _reg_display_list {}
-
- # Size of columns
- variable _col_size
- variable _max_label_width
-
- # Dimensions
- variable _rows
- variable _cols
-
- # Fencepost
- variable _running 0
-
-
- # Table layout/display methods
- method _build_win {}
- method _layout_table {}
- method _load_prefs {}
- method _size_cell_column {cell down}
- method _size_column {col down}
-
- # Table event handlers and related methods
- method _accept_edit {}
- method _add_to_watch {rn}
- method _but3 {x y X Y}
- method _delete_from_display {rn}
- method _display_all {}
- method _edit {x y}
- method _move {direction}
- method _open_memory {rn}
- method _select_group {}
- method _select_cell {cell}
- method _unedit {}
-
- # Register operations
- method _get_value {rn}
- method _change_format {rn {t {}}}
- method _update_register {rn}
- }
-
- public {
- method constructor {args}
- method destructor {}
-
- #
- # Gdb Events
- #
- method busy {event}
- method idle {event}
- method set_variable {event}
- method update {event}
- method arch_changed {event}
- method reconfig {}
- }
-}
diff --git a/gdb/gdbtk/library/session.tcl b/gdb/gdbtk/library/session.tcl
deleted file mode 100644
index 9a4b80f45cd..00000000000
--- a/gdb/gdbtk/library/session.tcl
+++ /dev/null
@@ -1,336 +0,0 @@
-# Local preferences functions for Insight.
-# Copyright (C) 2000, 2001, 2002, 2004 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-namespace eval Session {
- namespace export save load notice_file_change delete list_names
-
- # An internal function for canonicalizing path names. This probably
- # should use `realpath', but that is more work. So for now we neglect
- # the possibility of symlinks.
- proc _exe_name {path} {
- global tcl_platform
-
- # Get real directory.
- if {[string compare $tcl_platform(platform) "windows"] == 0} {
- set path [ide_cygwin_path to_win32 $path]
- }
- set save [pwd]
- cd [file dirname $path]
- set dir [pwd]
- cd $save
- return [file join $dir [file tail $path]]
- }
-
- # An internal function used when saving sessions. Returns a string
- # that can be used to recreate all pertinent breakpoint state.
- proc _serialize_bps {} {
- set result {}
-
- # HACK. When debugging gdb with itself in the build
- # directory, there is a ".gdbinit" file that will set
- # breakpoints on internal_error() and info_command().
- # If we then save and set them, they will accumulate.
- # Possible fixes are to modify GDB so we can tell which
- # breakpoints were set from .gdbinit, or modify
- # _recreate_bps to record which breakpoints were
- # set before it was called. For now, we simply detect the
- # most common case and fix it.
- set basename [string tolower [file tail $::gdb_exe_name]]
- if {[string match "gdb*" $basename]
- || [string match "insight*" $basename]} {
- set debugging_gdb 1
- } else {
- set debugging_gdb 0
- }
-
- foreach bp_num [gdb_get_breakpoint_list] {
- lassign [gdb_get_breakpoint_info $bp_num] file function line_number \
- address type enabled disposition ignore_count command_list \
- condition thread hit_count user_specification
-
- # These breakpoints are set when debugging GDB with itself.
- # Ignore them so they don't accumulate. They get set again
- # by .gdbinit anyway.
- if {$debugging_gdb} {
- if {$function == "internal_error" || $function == "info_command"} {
- continue
- }
- }
-
- switch -glob -- $type {
- "breakpoint" -
- "hw breakpoint" {
- if {$disposition == "delete"} {
- set cmd tbreak
- } else {
- set cmd break
- }
-
- append cmd " "
- if {$user_specification != ""} {
- append cmd "$user_specification"
- } elseif {$file != ""} {
- # BpWin::bp_store uses file tail here, but I think that is
- # wrong.
- append cmd "$file:$line_number"
- } else {
- append cmd "*$address"
- }
- }
- "watchpoint" -
- "hw watchpoint" {
- set cmd watch
- if {$user_specification != ""} {
- append cmd " $user_specification"
- } else {
- # There's nothing sensible to do.
- continue
- }
- }
-
- "catch*" {
- # FIXME: Don't know what to do.
- continue
- }
-
- default {
- # Can't serialize anything other than those listed above.
- continue
- }
- }
-
- lappend result [list $cmd $enabled $condition $command_list]
- }
-
- return $result
- }
-
- # An internal function used when loading sessions. It takes a
- # breakpoint string and recreates all the breakpoints.
- proc _recreate_bps {specs} {
- foreach spec $specs {
- lassign $spec create enabled condition commands
-
- # Create the breakpoint
- if {[catch {gdb_cmd $create} txt]} {
- dbug W $txt
- }
-
- # Below we use `\$bpnum'. This means we don't have to figure out
- # the number of the breakpoint when doing further manipulations.
-
- if {! $enabled} {
- gdb_cmd "disable \$bpnum"
- }
-
- if {$condition != ""} {
- gdb_cmd "cond \$bpnum $condition"
- }
-
- if {[llength $commands]} {
- lappend commands end
- eval gdb_run_readline_command_no_output [list "commands \$bpnum"] \
- $commands
- }
- }
- }
-
- #
- # This procedure decides what makes up a gdb `session'. Roughly a
- # session is whatever the user found useful when debugging a certain
- # executable.
- #
- # Eventually we should expand this procedure to know how to save
- # window placement and contents. That requires more work.
- #
- proc save {} {
- global gdb_exe_name gdb_target_name
- global gdb_current_directory gdb_source_path
-
- # gdb sessions are named after the executable.
- set name [_exe_name $gdb_exe_name]
- set key gdb/session/$name
-
- # We fill a hash and then use that to set the actual preferences.
-
- # Always set the exe. name in case we later decide to change the
- # interpretation of the session key. Use the full path to the
- # executable.
- set values(executable) $name
-
- # Some simple state the user wants.
- set values(args) [gdb_get_inferior_args]
- set values(dirs) $gdb_source_path
- set values(pwd) $gdb_current_directory
- set values(target) $gdb_target_name
- set values(hostname) [pref getd gdb/load/$gdb_target_name-hostname]
- set values(port) [pref getd gdb/load/$gdb_target_name-portname]
- set values(target_cmd) $::gdb_target_cmd
- set values(bg) $::gdb_bg_num
-
- # these prefs need to be made session-dependent
- set values(run_attach) [pref get gdb/src/run_attach]
- set values(run_load) [pref get gdb/src/run_load]
- set values(run_run) [pref get gdb/src/run_run]
- set values(run_cont) [pref get gdb/src/run_cont]
-
- # Breakpoints.
- set values(breakpoints) [_serialize_bps]
-
- # Recompute list of recent sessions. Trim to no more than 20 sessions.
- set recent [concat [list $name] \
- [lremove [pref getd gdb/recent-projects] $name]]
- if {[llength $recent] > 20} {
- set recent [lreplace $recent 20 end]
- }
- pref setd gdb/recent-projects $recent
-
- foreach k [array names values] {
- pref setd $key/$k $values($k)
- }
- pref setd $key/all-keys [array names values]
- }
-
- #
- # Load a session saved with Session::save. NAME is the pretty name of
- # the session, as returned by Session::list_names.
- #
- proc load {name} {
- # gdb sessions are named after the executable.
- set key gdb/session/$name
-
- # Fetch all keys for this session into an array.
- foreach k [pref getd $key/all-keys] {
- set values($k) [pref getd $key/$k]
- }
-
- if {[info exists values(executable)]} {
- gdb_clear_file
- set_exe_name $values(executable)
- set_exe
- }
- }
-
- #
- # This is called from file_changed_hook. It does all the work of
- # loading a session, if one exists with the same name as the current
- # executable.
- #
- proc notice_file_change {} {
- global gdb_exe_name gdb_target_name
-
- debug "noticed file change event for $gdb_exe_name"
-
- # gdb sessions are named after the executable.
- set name [_exe_name $gdb_exe_name]
- set key gdb/session/$name
-
- # Fetch all keys for this session into an array.
- foreach k [pref getd $key/all-keys] {
- set values($k) [pref getd $key/$k]
- }
-
- # reset these back to their defaults
- pref set gdb/src/run_attach 0
- pref set gdb/src/run_load 0
- pref set gdb/src/run_run 1
- pref set gdb/src/run_cont 0
-
- if {! [info exists values(executable)] || $values(executable) != $name} {
- # No such session.
- return
- }
-
- debug "reloading session for $name"
-
- if {[info exists values(dirs)]} {
- # FIXME: short-circuit confirmation.
- gdb_cmd "directory"
- gdb_cmd "directory $values(dirs)"
- }
-
- if {[info exists values(pwd)]} {
- catch {gdb_cmd "cd $values(pwd)"}
- }
-
- if {[info exists values(args)]} {
- gdb_set_inferior_args $values(args)
- }
-
- if {[info exists values(breakpoints)]} {
- _recreate_bps $values(breakpoints)
- }
-
- if {[info exists values(target)]} {
- #debug "Restoring Target: $values(target)"
- set gdb_target_name $values(target)
-
- if {[info exists values(hostname)]} {
- pref setd gdb/load/$gdb_target_name-hostname $values(hostname)
- #debug "Restoring Hostname: $values(hostname)"
- }
-
- if {[info exists values(port)]} {
- pref setd gdb/load/$gdb_target_name-portname $values(port)
- #debug "Restoring Port: $values(port)"
- }
-
- #debug "Restoring Target_Cmd: $values(target_cmd)"
- set ::gdb_target_cmd $values(target_cmd)
- set_baud
- }
-
- if {[info exists values(run_attach)]} {
- pref set gdb/src/run_attach $values(run_attach)
- pref set gdb/src/run_load $values(run_load)
- pref set gdb/src/run_run $values(run_run)
- pref set gdb/src/run_cont $values(run_cont)
- }
-
- if {[info exists values(bg)] && [pref get gdb/use_color_schemes]} {
- set_bg_colors $values(bg)
- }
- }
-
- #
- # Delete a session. NAME is the internal name of the session.
- #
- proc delete {name} {
- # FIXME: we can't yet fully define this because the libgui
- # preference code doesn't supply a delete method.
- set recent [lremove [pref getd gdb/recent-projects] $name]
- pref setd gdb/recent-projects $recent
- }
-
- #
- # Return a list of all known sessions. This returns the `pretty name'
- # of the session -- something suitable for a menu.
- #
- proc list_names {} {
- set newlist {}
- set result {}
- foreach name [pref getd gdb/recent-projects] {
- set exe [pref getd gdb/session/$name/executable]
- # Take this opportunity to prune the list.
- if {[file exists $exe]} then {
- lappend newlist $name
- lappend result $exe
- } else {
- # FIXME: if we could delete keys we would delete all keys
- # associated with NAME now.
- }
- }
- pref setd gdb/recent-projects $newlist
- return $result
- }
-}
diff --git a/gdb/gdbtk/library/srcbar.itcl b/gdb/gdbtk/library/srcbar.itcl
deleted file mode 100644
index b191ddb4d83..00000000000
--- a/gdb/gdbtk/library/srcbar.itcl
+++ /dev/null
@@ -1,1246 +0,0 @@
-# SrcBar
-# Copyright (C) 2001, 2002, 2004 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# ----------------------------------------------------------------------
-# Implements a menu and a toolbar that are attached to a source window.
-#
-# PUBLIC ATTRIBUTES:
-#
-#
-# METHODS:
-#
-# configure ....... used to change public attributes
-#
-# PRIVATE METHODS
-#
-# X11 OPTION DATABASE ATTRIBUTES
-#
-#
-# ----------------------------------------------------------------------
-
-itcl::class SrcBar {
- inherit itk::Widget GDBEventHandler
-
- # ------------------------------------------------------------------
- # CONSTRUCTOR - create widget
- # ------------------------------------------------------------------
- constructor {src args} {
- set source $src
-
- # Load the images to be used in toolbar buttons
- _load_images
- _load_src_images
-
- # Create a menu widget for the Source Window
- set Menu [GDBMenuBar $itk_interior.menubar]
-
- # Fill it with the initial set of entries
- if {! [create_menu_items]} {
- destroy $this
- } else {
- # We do not pack the menu, but make it the menu of the toplevel window
- $Menu show
- }
-
- # Create a toolbar widget for the Source Window
- set Tool [GDBToolBar $itk_interior.toolbar]
-
- # Now create the Source Window initial set of toolbar buttons
- # First give the necessary info about each button and their position
- create_buttons
- # Then effectively create the tollbar widget
- $Tool show
-
- # Pack the toolbar
- pack $Tool -expand 1 -fill both
-
- # Set the srcbar's initial state
- enable_ui 2
-
- eval itk_initialize $args
- add_hook gdb_no_inferior_hook "$this enable_ui 2"
- add_hook gdb_trace_find_hook "$this handle_trace_find_hook"
- }
-
- # ------------------------------------------------------------------
- # DESTRUCTOR - destroy window containing widget
- # ------------------------------------------------------------------
- destructor {
- global GDBSrcBar_state
-
- unset GDBSrcBar_state($this)
- remove_hook gdb_no_inferior_hook "$this enable_ui 2"
- remove_hook gdb_trace_find_hook "$this handle_trace_find_hook"
-
- #destroy $this
- }
-
- # ------------------------------------------------------------------
- # NAME: private method SrcBar::_post
- # DESCRIPTION: Post the given menu
- #
- # ARGUMENTS:
- # what - which menu to post
- # RETURNS: Nothing
- # ------------------------------------------------------------------
- private method _post {what} {
-
- switch $what {
- file {
- _update_file_menu
- }
- }
- }
-
-
- ####################################################################
- # The next set of functions create the common menu groupings that
- # are used in gdb menus.
- # Private. Used at contruction time.
- # These were previously at the GDBToolBar...
- ####################################################################
-
- # ------------------------------------------------------------------
- # METHOD: create_menu_items - Add some menu items to the menubar.
- # Returns 1 if any items added.
- # ------------------------------------------------------------------
- private method create_menu_items {} {
-
- create_file_menu
-
- create_run_menu
-
- create_view_menu
-
- if {[pref get gdb/control_target]} {
- create_control_menu
- }
-
- if {[pref get gdb/mode]} {
- create_trace_menu
- }
-
- create_plugin_menu
-
- create_pref_menu
-
- create_help_menu
-
- return 1
- }
-
- # ------------------------------------------------------------------
- # PRIVATE METHOD: _update_file_menu - update the file menu
- # Used really only to update the session list.
- # ------------------------------------------------------------------
- private method _update_file_menu {} {
- global enable_external_editor tcl_platform gdb_exe_name
-
- # Clear the File menu
- $Menu clear file
-
- if {[info exists enable_external_editor] && $enable_external_editor} {
- $Menu add command None "Edit Source" \
- [code $source edit]
- }
-
- $Menu add command Other "Open..." \
- "_open_file" -underline 0 -accelerator "Ctrl+O"
-
- if {$gdb_exe_name == ""} {
- set state disabled
- } else {
- set state normal
- }
- $Menu add command Other "Close" \
- "_close_file" -underline 0 -accelerator "Ctrl+W" -state $state
-
- $Menu add command Other "Source..." \
- "source_file" -underline 0
-
- set sessions [Session::list_names]
- if {[llength $sessions]} {
- $Menu add separator
- set i 1
- foreach item $sessions {
- $Menu add command Other "$i $item" \
- [list Session::load $item] \
- -underline 0
- incr i
- }
- }
-
- $Menu add separator
-
- if {$tcl_platform(platform) == "windows"} {
- $Menu add command None "Page Setup..." \
- [format {
- set top %s
- ide_winprint page_setup -parent $top
- } [winfo toplevel [namespace tail $this]]] \
- -underline 8
- }
-
- $Menu add command None "Print Source..." \
- [code $source print] \
- -underline 0 -accelerator "Ctrl+P"
-
- $Menu add separator
-
- $Menu add command Other "Target Settings..." \
- "set_target_name" -underline 0
-
- $Menu add separator
-
- $Menu add command None "Exit" gdbtk_quit -underline 1
- }
-
- # ------------------------------------------------------------------
- # METHOD: create_file_menu - Creates the standard file menu.
- # ------------------------------------------------------------------
-
- private method create_file_menu {} {
-
- $Menu add menubutton file "File" 0 -postcommand [code $this _post file]
- _update_file_menu
- }
-
- # ------------------------------------------------------------------
- # METHOD: create_run_menu - Creates the standard run menu,
- # or reconfigures it if it already exists.
- # ------------------------------------------------------------------
-
- private method create_run_menu {} {
-
- if {![$Menu exists Run]} {
- set run_menu [$Menu add menubutton run "Run" 0]
- } else {
- set run_menu [$Menu clear Run]
- }
-
- set is_native [TargetSelection::native_debugging]
-
- # If we are on a Unix target, put in the attach options. "ps" doesn't
- # give me the Windows PID yet, and the attach also seems flakey, so
- # I will hold off on the Windows implementation for now.
-
- if {$is_native} {
- if {[string compare $::tcl_platform(platform) windows] != 0} {
- $Menu add command Attach "Attach to process" \
- [code $this do_attach $run_menu] \
- -underline 0 -accelerator "Ctrl+A"
- }
- } else {
- $Menu add command Other "Connect to target" \
- "$this do_connect $run_menu" -underline 0
- }
-
- if {[pref get gdb/control_target]} {
- if {!$is_native} {
- $Menu add command Other "Download" Download::download_it \
- -underline 0 -accelerator "Ctrl+D"
- }
- $Menu add command Other "Run" [code $source inferior run] \
- -underline 0 -accelerator R
- }
-
- if {$is_native} {
- if {[string compare $::tcl_platform(platform) windows] != 0} {
- $Menu add command Detach "Detach" \
- [code $this do_detach $run_menu] \
- -underline 0 -state disabled
- }
- } else {
- $Menu add command Other "Disconnect" \
- [code $this do_disconnect $run_menu] -underline 0 -state disabled
- }
-
- if {$is_native} {
- $Menu add separator
- $Menu add command Control "Kill" \
- [code $this do_kill $run_menu] \
- -underline 0 -state disabled
- }
-
- if { [pref get gdb/mode] } {
- $Menu add separator
-
- $Menu add command Other "Start collection" "$this do_tstop" \
- -underline 0 -accelerator "Ctrl+B"
-
- $Menu add command Other "Stop collection" "$this do_tstop" \
- -underline 0 -accelerator "Ctrl+E" -state disabled
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: create_view_menu - Creates the standard view menu
- # ------------------------------------------------------------------
-
- private method create_view_menu {} {
-
- $Menu add menubutton view "View" 0
-
- $Menu add command Other "Stack" {ManagedWin::open StackWin} \
- -underline 0 -accelerator "Ctrl+S"
-
- $Menu add command Other "Registers" {ManagedWin::open RegWin} \
- -underline 0 -accelerator "Ctrl+R"
-
- $Menu add command Other "Memory" {ManagedWin::open MemWin} \
- -underline 0 -accelerator "Ctrl+M"
-
- $Menu add command Other "Watch Expressions" \
- {ManagedWin::open WatchWin} \
- -underline 0 -accelerator "Ctrl+T"
- $Menu add command Other "Local Variables" \
- {ManagedWin::open LocalsWin} \
- -underline 0 -accelerator "Ctrl+L"
-
- if {[pref get gdb/control_target]} {
- $Menu add command Other "Breakpoints" \
- {ManagedWin::open BpWin -tracepoints 0} \
- -underline 0 -accelerator "Ctrl+B"
- }
-
- if {[pref get gdb/mode]} {
- $Menu add command Other "Tracepoints" \
- {ManagedWin::open BpWin -tracepoints 1} \
- -underline 0 -accelerator "Ctrl+T"
- $Menu add command Other "Tdump" {ManagedWin::open TdumpWin} \
- -underline 2 -accelerator "Ctrl+U"
- }
-
- $Menu add command Other "Console" {ManagedWin::open Console} \
- -underline 2 -accelerator "Ctrl+N"
-
- $Menu add command Other "Function Browser" \
- {ManagedWin::open BrowserWin} \
- -underline 1 -accelerator "Ctrl+F"
- $Menu add command Other "Thread List" \
- {ManagedWin::open ProcessWin} \
- -underline 0 -accelerator "Ctrl+H"
- if {[info exists ::env(GDBTK_DEBUG)] && $::env(GDBTK_DEBUG)} {
- $Menu add separator
- $Menu add command Other "Debug Window" \
- {ManagedWin::open DebugWin} \
- -underline 3 -accelerator "Ctrl+U"
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: create_control_menu - Creates the standard control menu
- # ------------------------------------------------------------------
-
- private method create_control_menu {} {
-
- $Menu add menubutton cntrl "Control" 0
-
- $Menu add command Control "Step" [code $source inferior step] \
- -underline 0 -accelerator S
-
- $Menu add command Control "Next" [code $source inferior next] \
- -underline 0 -accelerator N
-
- $Menu add command Control "Finish" \
- [code $source inferior finish] \
- -underline 0 -accelerator F
-
- $Menu add command Control "Continue" \
- [code $source inferior continue] \
- -underline 0 -accelerator C
-
- $Menu add separator
- $Menu add command Control "Step Asm Inst" \
- [code $source inferior stepi] \
- -underline 1 -accelerator S
-
- $Menu add command Control "Next Asm Inst" \
- [code $source inferior nexti] \
- -underline 1 -accelerator N
-
- # $Menu add separator
- # $Menu add command Other "Automatic Step" auto_step
- }
-
- # ------------------------------------------------------------------
- # METHOD: create_trace_menu - Creates the standard trace menu
- # ------------------------------------------------------------------
-
- private method create_trace_menu {} {
-
- $Menu add menubutton trace "Trace" 0
-
- $Menu add command Other "Save Trace Commands..." \
- "save_trace_commands" \
- -underline 0
-
- $Menu add separator
-
- $Menu add command Trace "Next Hit" {tfind_cmd tfind} \
- -underline 0 -accelerator N
-
- $Menu add command Trace "Previous Hit" {tfind_cmd "tfind -"} \
- -underline 0 -accelerator P
-
- $Menu add command Trace "First Hit" {tfind_cmd "tfind start"} \
- -underline 0 -accelerator F
-
- $Menu add command Trace "Next Line Hit" \
- {tfind_cmd "tfind line"} \
- -underline 5 -accelerator L
-
- $Menu add command Trace "Next Hit Here" \
- {tfind_cmd "tfind tracepoint"} \
- -underline 9 -accelerator H
-
- $Menu add separator
- $Menu add command Trace "Tfind Line..." \
- "ManagedWin::open TfindArgs -Type LN" \
- -underline 9 -accelerator E
-
- $Menu add command Trace "Tfind PC..." \
- "ManagedWin::open TfindArgs -Type PC" \
- -underline 7 -accelerator C
-
- $Menu add command Trace "Tfind Tracepoint..." \
- "ManagedWin::open TfindArgs -Type TP" \
- -underline 6 -accelerator T
-
- $Menu add command Trace "Tfind Frame..." \
- "ManagedWin::open TfindArgs -Type FR" \
- -underline 6 -accelerator F
- }
-
- # ------------------------------------------------------------------
- # METHOD: create_plugin_menu - Creates the optional plugin menu
- # ------------------------------------------------------------------
- private method create_plugin_menu {} {
- global gdb_plugins
-
- $Menu add menubutton plugin "PlugIn" 4
- set plugins_available 0
- foreach plugin_dir $gdb_plugins {
- if {[catch {source [file join $plugin_dir plugins.tcl]} txt]} {
- dbug E $txt
- }
- }
-
- if {! $plugins_available} {
- # No plugins are available for this configuration,
- # so remove the menu
- debug "No plugins configured, go remove the PlugIn menu..."
- $Menu delete plugin
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: create_pref_menu - Creates the standard preferences menu
- # ------------------------------------------------------------------
- private method create_pref_menu {} {
-
- $Menu add menubutton pref "Preferences" 0
-
- $Menu add command Other "Global..." \
- "ManagedWin::open GlobalPref -transient" -underline 0
-
- $Menu add command Other "Source..." \
- "ManagedWin::open SrcPref -transient" -underline 0
-
- set save_menu [$Menu menubar_get_current_menu]
-
- set advanced_menu [$Menu add cascade adv Advanced "Advanced" 0]
-
- $advanced_menu add command -label "Edit Color Schemes..." -underline 0 \
- -command "ManagedWin::open CSPref -transient" -underline 0
-
- $advanced_menu add command -label "IPC Support..." -underline 0 \
- -command "ManagedWin::open IPCPref -transient" -underline 0
-
- $Menu menubar_set_current_menu $save_menu
-
- $Menu add separator
-
- set color_menu [$Menu add cascade use_cs Color "Use Color Scheme" 0]
- for {set i 0} {$i < 16} {incr i} {
- set dbg [recolor [pref get gdb/bg/$i] 80]
- $color_menu add command -label $i -background [pref get gdb/bg/$i] \
- -activebackground $dbg -command "set_bg_colors $i" -underline 0
- }
-
- if {[pref get gdb/use_color_schemes] == "1"} {
- set cs_state normal
- } else {
- set cs_state disabled
- }
- $Menu set_class_state "Color $cs_state"
- }
-
- # ------------------------------------------------------------------
- # METHOD: create_help_menu - Creates the standard help menu
- # ------------------------------------------------------------------
- private method create_help_menu {} {
- # KDE and GNOME like the help menu to be the last item in the menubar.
- # The default Unix behavior is to be at the far right of the menubar.
- set os [pref get gdb/compat]
- if {$os == "KDE" || $os == "GNOME"} {
- set helpmenu "_help"
- } else {
- set helpmenu "help"
- }
- $Menu add menubutton $helpmenu "Help" 0
- $Menu add command Other "Help Topics" {open_help index.html} \
- -underline 0
- $Menu add separator
- $Menu add command Other "About GDB..." \
- {ManagedWin::open About -transient} \
- -underline 0
- }
-
- ####################################################################
- # The next set of functions are the generic button groups that gdb uses.
- # Private. Used at contruction time.
- # These were previously at the GDBToolBar...
- ####################################################################
-
- # ------------------------------------------------------------------
- # METHOD: create_buttons - Add some buttons to the toolbar.
- # Returns list of buttons in form acceptable
- # to standard_toolbar.
- # ------------------------------------------------------------------
- private method create_buttons {} {
- global enable_external_editor
-
- $Tool add button stop None {} {}
- _set_runstop
-
- if {[pref get gdb/mode]} {
- $Tool add button tstop Control \
- [list $this do_tstop] "Start Collection" \
- -image Movie_on_img
-
- $Tool add button view Other [list $this set_control_mode 1] \
- "Switch to Browse Mode" -image watch_movie_img
-
- $Tool add separator
-
- }
-
- if {[pref get gdb/control_target]} {
- create_control_buttons
- if {[pref get gdb/mode]} {
- create_trace_buttons 0
- }
- } elseif {[get pref gdb/mode]} {
-
- #
- # If we don't control the target, then we might as well
- # put a copy of the trace controls on the source window.
- #
- create_trace_buttons 1
- }
-
- $Tool add separator
-
- create_window_buttons
-
- # Random bits of obscurity...
- $Tool itembind reg <Button-3> "ManagedWin::open RegWin -force"
- $Tool itembind mem <Button-3> "ManagedWin::open MemWin -force"
- $Tool itembind watch <Button-3> \
- "ManagedWin::open WatchWin -force"
- $Tool itembind vars <Button-3> \
- "ManagedWin::open LocalsWin -force"
-
- $Tool add separator
-
- if {[info exists enable_external_editor] && $enable_external_editor} {
- $Tool add button edit Other [code $source edit] "Edit Source" \
- -image edit_img
-
- $Tool add separator
- }
-
- # Add find in file entry box.
- $Tool add label findlabel "Find:" "" -anchor e -font global/fixed
- $Tool add custom searchbox entry "Search in editor" \
- -bd 3 -font global/fixed -width 10
-
- set callback [code $source search]
- $Tool itembind searchbox <Return> \
- "$callback forwards \[eval %W get\]"
- $Tool itembind searchbox <Shift-Return> \
- "$callback backwards \[eval %W get\]"
-
- $Tool add separator
-
- $Tool toolbar_button_right_justify
-
- create_stack_buttons
-
- # This feature has been disabled for now.
- # checkbutton $ButtonFrame.upd -command "$this _toggle_updates" \
- # -variable GDBSrcBar_state($this)
- # lappend button_list $ButtonFrame.upd
- # global GDBSrcBar_state
- # ::set GDBSrcBar_state($this) $updatevalue
- # balloon register $ButtonFrame.upd "Toggle Window Updates"
- }
-
- # ------------------------------------------------------------------
- # METHOD: create_control_buttons - Creates the step, continue, etc buttons.
- # ------------------------------------------------------------------
-
- private method create_control_buttons {} {
- $Tool add button step Control [code $source inferior step] \
- "Step (S)" -image step_img
-
- $Tool add button next Control [code $source inferior next] \
- "Next (N)" -image next_img
-
- $Tool add button finish Control [code $source inferior finish] \
- "Finish (F)" -image finish_img
-
- $Tool add button continue Control [code $source inferior continue] \
- "Continue (C)" -image continue_img
-
- # A spacer before the assembly-level items looks good. It helps
- # to indicate that these are somehow different.
- $Tool add separator
-
- $Tool add button stepi Control [code $source inferior stepi] \
- "Step Asm Inst (S)" -image stepi_img
-
- $Tool add button nexti Control [code $source inferior nexti] \
- "Next Asm Inst (N)" -image nexti_img
-
- _set_stepi
-
- set Run_control_buttons {step next finish continue -stepi nexti}
-
- }
-
- # ------------------------------------------------------------------
- # METHOD: create_trace_buttons - Creates the next hit, etc.
- # ------------------------------------------------------------------
-
- private method create_trace_buttons {{show 0}} {
-
- if {$show} {
- set command "add button"
- } else {
- set command "create"
- }
-
- $Tool $command tfindstart Trace {tfind_cmd "tfind start"} "First Hit <F>" \
- -image rewind_img
-
- $Tool $command tfind Trace {tfind_cmd tfind} "Next Hit <N>" -image next_hit_img
-
- $Tool $command tfindprev Trace {tfind_cmd "tfind -"} "Previous Hit <P>" \
- -image prev_hit_img
-
- $Tool $command tfindline Trace {tfind_cmd "tfind line"} "Next Line Hit <L>" \
- -image next_line_img
-
- $Tool $command tfindtp Trace { tfind_cmd "tfind tracepoint"} \
- "Next Hit Here <H>" -image next_check_img
-
- set Trace_control_buttons {tfindstart tfind tfindprev tfindline tfindtp}
- }
-
- # ------------------------------------------------------------------
- # METHOD: create_window_buttons - Creates the registers, etc, buttons
- # ------------------------------------------------------------------
-
- private method create_window_buttons {} {
- $Tool add button reg Other {ManagedWin::open RegWin} \
- "Registers (Ctrl+R)" -image reg_img
-
- $Tool add button mem Other {ManagedWin::open MemWin} \
- "Memory (Ctrl+M)" -image memory_img
-
- $Tool add button stack Other {ManagedWin::open StackWin} \
- "Stack (Ctrl+S)" -image stack_img
-
- $Tool add button watch Other {ManagedWin::open WatchWin} \
- "Watch Expressions (Ctrl+W)" -image watch_img
-
- $Tool add button vars Other {ManagedWin::open LocalsWin} \
- "Local Variables (Ctrl+L)" -image vars_img
-
- if {[pref get gdb/control_target]} {
- $Tool add button bp Other {ManagedWin::open BpWin} \
- "Breakpoints (Ctrl+B)" -image bp_img
- }
-
- if {[pref get gdb/mode]} {
- $Tool add button tp Other \
- {ManagedWin::open BpWin -tracepoints 1} \
- "Tracepoints (Ctrl+T)" -image tp_img
-
- $Tool add button tdump Trace {ManagedWin::open TdumpWin} \
- "Tdump (Ctrl+D)" -image tdump_img
- }
-
- $Tool add button con Other {ManagedWin::open Console} \
- "Console (Ctrl+N)" -image console_img
- }
-
- # ------------------------------------------------------------------
- # METHOD: create_stack_buttons - Creates the up down bottom stack buttons
- # ------------------------------------------------------------------
-
- private method create_stack_buttons {} {
-
- $Tool add button down {Trace Control} \
- [code $source stack down] \
- "Down Stack Frame" -image down_img
-
- $Tool add button up {Trace Control} \
- [code $source stack up] \
- "Up Stack Frame" -image up_img
-
- $Tool add button bottom {Trace Control} \
- [code $source stack bottom] \
- "Go to Bottom of Stack" -image bottom_img
-
- }
-
- ####################################################################
- #
- # Auxiliary methods used by the toolbar
- #
- ####################################################################
-
- # ------------------------------------------------------------------
- # METHOD: _load_images - Load standard images. Private method.
- # ------------------------------------------------------------------
- public method _load_images { {reconfig 0} } {
- global gdb_ImageDir
- if {!$reconfig && $_loaded_images} {
- return
- }
- set _loaded_images 1
-
- lappend imgs console reg stack vars watch memory bp
- foreach name $imgs {
- image create photo ${name}_img -file [file join $gdb_ImageDir ${name}.gif]
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: _load_src_images - Load standard images. Private method.
- # ------------------------------------------------------------------
- method _load_src_images { {reconf 0} } {
- global gdb_ImageDir
-
- if {!$reconf && $_loaded_src_images} {
- return
- }
- set _loaded_src_images 1
-
- foreach name {run stop step next finish continue edit \
- stepi nexti up down bottom Movie_on Movie_off \
- next_line next_check next_hit rewind prev_hit \
- watch_movie run_expt tdump tp} {
- image create photo ${name}_img -file [file join $gdb_ImageDir ${name}.gif]
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: _set_runstop - Set state of run/stop button.
- #
- # busy - Run button becomes disabled
- # running - Stop button appears, allowing user to stop executing target
- # downloading - Stop button appears, allowing user to interrupt downloading
- # normal - Run button appears, allowing user to run/re-run exe
- # ------------------------------------------------------------------
- public method _set_runstop {} {
- dbug I $runstop
-
- switch $runstop {
- busy {
- $Tool itemconfigure stop -state disabled
- }
- downloading {
- $Tool itemconfigure stop -state normal -image stop_img \
- -command [code $this cancel_download]
- $Tool itemballoon stop "Stop"
- }
- running {
- $Tool itemconfigure stop -state normal -image stop_img \
- -command [code $source inferior stop]
- $Tool itemballoon stop "Stop"
- }
- normal {
- $Tool itemconfigure stop -state normal -image run_img \
- -command [code $source inferior run]
- $Tool itemballoon stop "Run (R)"
- }
- default {
- dbug W "unknown state $runstop"
- }
- }
- }
-
-
- # ------------------------------------------------------------------
- # METHOD: _set_stepi - Set state of stepi/nexti buttons.
- # ------------------------------------------------------------------
- public method _set_stepi {} {
-
- # Only do this in synchronous mode
- if {!$Tracing} {
- # In source-only mode, disable these buttons. Otherwise, enable
- # them.
- if {$displaymode == "SOURCE"} {
- set state disabled
- } else {
- set state normal
- }
- $Tool itemconfigure stepi -state $state
- $Tool itemconfigure nexti -state $state
- }
- }
-
-
- ####################################################################
- #
- # State control methods used by both the menu and the toolbar
- #
- ####################################################################
-
- # ------------------------------------------------------------------
- # METHOD: handle_trace_find_hook - response to the tfind command.
- # If the command puts us in a new mode, then switch modes...
- # ------------------------------------------------------------------
- method handle_trace_find_hook {mode from_tty} {
- debug "mode: $mode, from_tty: $from_tty, Browsing: $Browsing"
- if {[string compare $mode -1] == 0} {
- if {$Browsing} {
- set_control_mode 0
- }
- } else {
- if {!$Browsing} {
- set_control_mode 1
- }
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: set_control_mode - sets up the srcbar for browsing
- # a trace experiment.
- # mode: 1 => browse mode
- # 0 => control mode
- # ------------------------------------------------------------------
- method set_control_mode {mode} {
- debug "set_control_mode called with mode $mode"
- if {$mode} {
- set Browsing 1
- $Tool itemconfigure view -image run_expt_img \
- -command "$this set_control_mode 0"
- $Tool itemballoon view "Switch to Control mode"
- # Now swap out the buttons...
- $Tool toolbar_swap_button_lists $Trace_control_buttons \
- $Run_control_buttons
- enable_ui 1
- } else {
- if {$Browsing} {
- tfind_cmd {tfind none}
- }
- set Browsing 0
- $Tool itemconfigure view -image watch_movie_img \
- -command "$this set_control_mode 1"
- $Tool itemballoon view "Switch to Browse mode"
- # Now swap out the buttons...
- $Tool toolbar_swap_button_lists $Run_control_buttons \
- $Trace_control_buttons
- enable_ui 1
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: reconfig - reconfigure the srcbar
- # used when preferences change
- # ------------------------------------------------------------------
- public method reconfig {} {
- debug
- _load_src_images 1
- _load_images 1
-
- if {[pref get gdb/use_color_schemes] == "1"} {
- set cs_state normal
- } else {
- set cs_state disabled
- }
- $Menu set_class_state "Color $cs_state"
- for {set i 0} {$i < 16} {incr i} {
- set dbg [recolor [pref get gdb/bg/$i] 80]
- $color_menu entryconfigure $i -activebackground $dbg -background [pref get gdb/bg/$i]
- }
- # FIXME: Must Check if we are Tracing and set the buttons accordingly.
- }
-
- # ------------------------------------------------------------------
- # METHOD: set_variable - run when user enters a `set' command.
- #
- # FIXME: Should not be accessing the base class internal data
- # As the spec says, one must clear the menu and recreate it.
- # ------------------------------------------------------------------
- public method set_variable {event} {
- set varname [$event get variable]
- set value [$event get value]
- debug "Got $varname = $value"
-
- if {$varname == "os"} {
- # Make current_menu pointer point to the View Menu.
- # FIXME: Should not be accessing the base class internal data directly
- set view_menu [menu_find View]
- # Restore the current_menu pointer.
- set save_menu [$Menu menubar_set_current_menu $view_menu]
- set title "Kernel Objects"
-
- # Look for the KOD menu entry...
- if {[catch {$view_menu index $title} index]} {
- set index none
- }
-
- # FIXME: This assumes that the KOD menu is the last one as it does not
- # adjust the index information kept by the GDBMenuBar class.
- if {$value == ""} {
- # No OS, so remove KOD from View menu.
- if {$index != "none"} {
- # FIXME: Should not be accessing the base class internal data
- $view_menu delete $index
- }
- } else {
- # Add KOD to View menu, but only if it isn't already there.
- if {$index == "none"} {
- $Menu add command Other $title \
- {ManagedWin::open KodWin} \
- -underline 0 -accelerator "Ctrl+K"
- }
- }
-
- # Restore the current_menu pointer.
- $Menu menubar_set_current_menu $save_menu
-
- global gdb_kod_cmd
- set gdb_kod_cmd $value
- }
- }
-
- ####################################################################
- # The following method enables/disables both menus and buttons.
- ####################################################################
-
- # ------------------------------------------------------------------
- # METHOD: enable_ui - enable/disable the appropriate buttons and menus
- # Called from the busy, idle, and no_inferior hooks.
- #
- # on must be:
- # value Control Other Trace State
- # 0 off off off gdb is busy
- # 1 on on off gdb has inferior, and is idle
- # 2 off on off gdb has no inferior, and is idle
- # ------------------------------------------------------------------
- public method enable_ui {on} {
- global tcl_platform
- debug "$on - Browsing=$Browsing"
-
- # Do the enabling so that all the disabling happens first, this way if a
- # button belongs to two groups, enabling takes precedence, which is
- # probably right.
-
- switch $on {
- 0 {
- # Busy
- set enable_list {Control disabled \
- Other disabled \
- Trace disabled \
- Attach disabled \
- Detach disabled}
- }
- 1 {
- # Idle, with inferior
- if {!$Browsing} {
- set enable_list {Trace disabled \
- Control normal \
- Other normal \
- Attach disabled \
- Detach normal }
- # set the states of stepi and nexti correctly
- _set_stepi
- } else {
- set enable_list {Control disabled Other normal Trace normal}
- }
-
- }
- 2 {
- # Idle, no inferior
- set enable_list {Control disabled \
- Trace disabled \
- Other normal \
- Attach normal \
- Detach disabled }
- }
- default {
- debug "Unknown type: $on in enable_ui"
- return
- }
- }
-
- $Menu set_class_state $enable_list
- $Tool set_class_state $enable_list
- }
-
- ####################################################################
- #
- # Execute actions corresponding to menu events
- #
- ####################################################################
-
- # ------------------------------------------------------------------
- # METHOD: do_attach: attach to a running target
- # ------------------------------------------------------------------
- method do_attach {menu} {
- gdbtk_attach_native
- }
-
- # ------------------------------------------------------------------
- # METHOD: do_detach: detach from a running target
- # ------------------------------------------------------------------
- method do_detach {menu} {
- gdbtk_disconnect
- gdbtk_idle
- }
-
- # ------------------------------------------------------------------
- # METHOD: do_kill: kill the current target
- # ------------------------------------------------------------------
- method do_kill {menu} {
- gdb_cmd "kill"
- run_hooks gdb_no_inferior_hook
- }
-
- # ------------------------------------------------------------------
- # METHOD: do_connect: connect to a remote target
- # in asynch mode if async is 1
- # ------------------------------------------------------------------
- method do_connect {menu {async 0}} {
-
- set successful [gdbtk_connect $async]
-
- if {$successful} {
- $menu entryconfigure "Connect to target" -state disabled
- $menu entryconfigure "Disconnect" -state normal
- } else {
- $menu entryconfigure "Connect to target" -state normal
- $menu entryconfigure "Disconnect" -state disabled
- }
-
- # Make the menu reflect this change
- ::update idletasks
- }
-
- # ------------------------------------------------------------------
- # METHOD: do_disconnect: disconnect from a remote target
- # in asynch mode if async is 1.
- #
- # ------------------------------------------------------------------
- method do_disconnect {menu {async 0}} {
- debug "$menu $async"
- #
- # For now, these are the same, but they might be different...
- #
-
- gdbtk_disconnect $async
-
- $menu entryconfigure "Connect to target" -state normal
- $menu entryconfigure "Disconnect" -state disabled
- }
-
- ####################################################################
- #
- # Execute actions corresponding to toolbar events
- #
- ####################################################################
-
- # ------------------------------------------------------------------
- # METHOD: _toggle_updates - Run when the update checkbutton is
- # toggled. Private method.
- # ------------------------------------------------------------------
- public method _toggle_updates {} {
- global GDBSrcBar_state
- if {$updatecommand != ""} {
- uplevel \#0 $updatecommand $GDBSrcBar_state($this)
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: cancel_download
- # ------------------------------------------------------------------
- public method cancel_download {} {
- global download_dialog download_cancel_ok
-
- if {"$download_dialog" != ""} {
- $download_dialog cancel
- } else {
- set download_cancel_ok 1
- }
- }
-
- ####################################################################
- #
- # Execute actions that can be activated by both menu entries and
- # toolbar buttons
- #
- ####################################################################
-
- # ------------------------------------------------------------------
- # METHOD: do_tstop: Change the GUI state, then do the tstop or
- # tstart command, whichever is appropriate.
- #
- # ------------------------------------------------------------------
- method do_tstop {} {
- debug "do_tstop called... Collecting is $Collecting"
-
- if {!$Collecting} {
- #
- # Start the trace experiment
- #
-
- if {$Browsing} {
- set ret [tk_messageBox -title "Warning" -message \
-"You are currently browsing a trace experiment.
-This command will clear the results of that experiment.
-Do you want to continue?" \
- -icon warning -type okcancel -default ok]
- if {[string compare $ret cancel] == 0} {
- return
- }
- set_control_mode 1
- }
- if {[tstart]} {
- # FIXME: Must enable the Stop Collection menu item and
- # disable the Start Collection item
- $Tool itemconfigure tstop -image Movie_off_img
- $Tool itemballoon tstop "End Collection"
- set Collecting 1
- } else {
- tk_messageBox -title Error \
- -message "Error downloading tracepoint info" \
- -icon error -type ok
- }
- } else {
- #
- # Stop the trace experiment
- #
-
- if {[tstop]} {
- # FIXME: Must enable the Stop Collection menu item and
- # disable the Start Collection item
- $Tool itemconfigure tstop -image Movie_on_img
- $Tool itemballoon tstop "Start Collection"
- set Collecting 0
- }
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: busy - BusyEvent handler
- # ------------------------------------------------------------------
- method busy {event} {
- enable_ui 0
- }
-
- # ------------------------------------------------------------------
- # METHOD: idle - IdleEvent handler
- # ------------------------------------------------------------------
- method idle {event} {
- enable_ui 1
- }
-
- ####################################################################
- #
- # PRIVATE DATA
- #
- ####################################################################
-
- # This is a handle on our parent source window.
- private variable source {}
-
- # The GdbMenuBar component
- private variable Menu
- private variable color_menu
-
- # The GdbToolBar component
- private variable Tool
-
- # FIXME - Need to break the images into the sets needed for
- # each button group, and load them when the button group is
- # created.
-
- # This is set if we've already loaded the standard images.
- private common _loaded_images 0
-
- # This is set if we've already loaded the standard images. Private
- # variable.
- private common _loaded_src_images 0
-
- # These buttons go in the control area when we are browsing
- protected variable Trace_control_buttons
-
- # And these go in the control area when we are running
- protected variable Run_control_buttons
-
- ####################################################################
- #
- # PUBLIC DATA
- #
- ####################################################################
-
- # This is the command that should be run when the `update'
- # checkbutton is toggled. The current value of the checkbutton is
- # appended to the command.
- public variable updatecommand {}
-
- # This controls whether the `update' checkbutton is turned on or
- # off.
- public variable updatevalue 0 {
- global GDBSrcBar_state
- ::set GDBSrcBar_state($this) $updatevalue
- }
-
- # This holds the source window's display mode. Valid values are
- # SOURCE, ASSEMBLY, SRC+ASM, and MIXED.
- public variable displaymode SOURCE {
- _set_stepi
- }
-
- # This indicates what is the inferior state.
- # Possible values are: {busy running downloading normal}
- public variable runstop normal {
- dbug I "configuring runstop $runstop"
-
- # Set the Run/Stop button accordingly
- _set_runstop
- }
-
- # The next three determine the state of the application when Tracing is enabled.
-
- public variable Tracing 0 ;# Is tracing enabled for this gdb?
- public variable Browsing 0 ;# Are we currently browsing a trace experiment?
- public variable Collecting 0 ;# Are we currently collecting a trace experiment?
-}
diff --git a/gdb/gdbtk/library/srcpref.itb b/gdb/gdbtk/library/srcpref.itb
deleted file mode 100644
index 6b7499351c4..00000000000
--- a/gdb/gdbtk/library/srcpref.itb
+++ /dev/null
@@ -1,278 +0,0 @@
-# Source preferences dialog for Insight.
-# Copyright (C) 1998, 1999, 2002, 2003 Red Hat
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ------------------------------------------------------------------
-# CONSTRUCTOR - create new source preferences window
-# ------------------------------------------------------------------
-itcl::body SrcPref::constructor {args} {
- window_name "Source Preferences"
- _init_var
- _build_win
-}
-
-# ------------------------------------------------------------------
-# METHOD: init_var - initialize preference variables
-# ------------------------------------------------------------------
-itcl::body SrcPref::_init_var {} {
- set vlist {gdb/src/PC_TAG gdb/src/STACK_TAG gdb/src/BROWSE_TAG
- gdb/src/run_attach gdb/src/run_load gdb/src/run_run
- gdb/src/run_cont gdb/src/bp_fg gdb/src/temp_bp_fg
- gdb/src/trace_fg gdb/src/thread_fg gdb/src/variableBalloons
- gdb/src/source2_fg gdb/src/tab_size gdb/mode gdb/editor
- gdb/B1_behavior}
-
- foreach var $vlist {
- set _saved($var) [pref get $var]
- set _new($var) $_saved($var)
- }
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: build_win - build the dialog
-# ------------------------------------------------------------------
-itcl::body SrcPref::_build_win {} {
- frame $itk_interior.f
- frame $itk_interior.f.a
- frame $itk_interior.f.b
- set f $itk_interior.f.a
-
- # Colors frame
- Labelledframe $f.colors -anchor nw -text {Colors}
- set w [$f.colors get_frame]
-
- set color [pref get gdb/src/PC_TAG]
- label $w.pcl -text {PC}
- button $w.pcb -text { } -activebackground $color -bg $color \
- -command [code $this _pick $color $w.pcb PC_TAG]
-
- set color [pref get gdb/src/STACK_TAG]
- label $w.stl -text {Stack}
- button $w.stb -text { } -activebackground $color -bg $color \
- -command [code $this _pick $color $w.stb STACK_TAG]
-
- set color [pref get gdb/src/BROWSE_TAG]
- label $w.brl -text {Browse}
- button $w.brb -text { } -activebackground $color -bg $color\
- -command [code $this _pick $color $w.brb BROWSE_TAG]
-
- set color [pref get gdb/src/source2_fg]
- label $w.s2l -text {Mixed Source}
- button $w.s2b -text { } -activebackground $color -bg $color \
- -command [code $this _pick $color $w.s2b source2_fg]
-
- set color [pref get gdb/src/bp_fg]
- label $w.nbpl -text {Normal Breakpoint}
- button $w.nbpb -text { } -activebackground $color -bg $color\
- -command [code $this _pick $color $w.nbpb bp_fg]
-
- set color [pref get gdb/src/temp_bp_fg]
- label $w.tbpl -text {Temporary Breakpoint}
- button $w.tbpb -text { } -activebackground $color -bg $color \
- -command [code $this _pick $color $w.tbpb temp_bp_fg]
-
- set color [pref get gdb/src/thread_fg]
- label $w.dbpl -text {Thread Breakpoint}
- button $w.dbpb -text { } -activebackground $color -bg $color \
- -command [code $this _pick $color $w.dbpb thread_fg]
-
- set color [pref get gdb/src/trace_fg]
- label $w.tpl -text {Tracepoint}
- button $w.tpb -text { } -activebackground $color -bg $color \
- -command [code $this _pick $color $w.tpb trace_fg]
-
- grid $w.pcl $w.pcb $w.nbpl $w.nbpb -padx 10 -pady 2 -sticky w
- grid $w.stl $w.stb $w.tbpl $w.tbpb -padx 10 -pady 2 -sticky w
- grid $w.brl $w.brb $w.dbpl $w.dbpb -padx 10 -pady 2 -sticky w
- grid $w.s2l $w.s2b $w.tpl $w.tpb -padx 10 -pady 2 -sticky w
-
- frame $f.rmv
-
- # Debug Mode frame
- Labelledframe $f.rmv.mode -anchor nw -text "Mouse Button-1 Behavior"
- set w [$f.rmv.mode get_frame]
-
- if {[pref get gdb/mode]} {
- set state normal
- } else {
- pref set gdb/B1_behavior 1
- set state disabled
- }
-
- radiobutton $w.async -text "Set/Clear Tracepoints" \
- -variable [scope _new(gdb/B1_behavior)] -value 0 -state $state
- radiobutton $w.sync -text "Set/Clear Breakpoints" \
- -variable [scope _new(gdb/B1_behavior)] -value 1 -state $state
-
- pack $w.async $w.sync -side top
-
- # Variable Balloons
- Labelledframe $f.rmv.var -anchor nw -text "Variable Balloons"
- set w [$f.rmv.var get_frame]
- set var _new(gdb/src/variableBalloons)
- radiobutton $w.var_on -text "On " -variable [scope $var] -value 1
- radiobutton $w.var_off -text "Off" -variable [scope $var] -value 0
- pack $w.var_on $w.var_off -side top
- grid $f.rmv.mode -sticky nsew -pady 5 -row 0 -column 0
- grid $f.rmv.var -sticky nsew -pady 5 -row 0 -column 2
- grid columnconfigure $f.rmv 0 -weight 1
- grid columnconfigure $f.rmv 1 -minsize 4
- grid columnconfigure $f.rmv 2 -weight 1
- grid rowconfigure $f.rmv 0 -weight 1
-
-
- frame $f.x
- # Tab size
- itk_component add size {
- iwidgets::spinint $f.x.size -labeltext "Tab Size" -range {1 16} \
- -step 1 -fixed 2 -width 2 -textvariable [scope _new(gdb/src/tab_size)] \
- -wrap 0 -textbackground $::Colors(textbg)
- }
- $f.x.size delete 0 end
- $f.x.size insert end $_saved(gdb/src/tab_size)
-
- # Linenumbers
- # commented out because this option isn't really useful
-# checkbutton $f.x.linenum -text "Line Numbers" \
-# -variable [pref varname gdb/src/linenums]
-# pack $f.x.size $f.x.linenum -side left -padx 5 -pady 5
- pack $f.x.size -side left -padx 5 -pady 5
-
- # Disassembly flavor - We tell whether this architecture supports
- # the flag by checking whether the flag exists.
-
- set have_disassembly_flavor 0
- set vals [list_disassembly_flavors]
- if {[llength $vals] != 0} {
- set have_disassembly_flavor 1
- frame $f.dis
- label $f.dis.l -text "Disassembly Flavor: "
- combobox::combobox $f.dis.combo -maxheight 15 -width 15 \
- -font global/fixed -editable 0 -command [code $this _set_flavor] \
- -bg $::Colors(textbg)
-
- foreach elem $vals {
- $f.dis.combo list insert end $elem
- }
-
- set _saved_disassembly_flavor [get_disassembly_flavor]
- $f.dis.combo entryset $_saved_disassembly_flavor
-
- pack $f.dis.l -side left
- pack $f.dis.combo -side left -padx 4
-
- } else {
- set _saved_disassembly_flavor ""
- }
-
- # External editor.
- frame $f.exted
- label $f.exted.l -text "External Editor: "
- entry $f.exted.e -width 40 -textvariable [scope _new(gdb/editor)]
- pack $f.exted.l -side left
- pack $f.exted.e -side left -padx 4
-
- pack $f.colors -fill both -expand 1
- pack $f.rmv -fill both -expand yes
- pack $f.x -fill x -expand yes
-
- if {$have_disassembly_flavor} {
- pack $f.dis -side top -fill x -padx 4
- }
-
- pack $f.exted -side top -fill x -padx 4 -pady 4
-
- button $itk_interior.f.b.ok -text OK -width 7 -underline 0 -command [code $this _save]
- button $itk_interior.f.b.apply -text Apply -width 7 -underline 0 -command [code $this _apply]
- button $itk_interior.f.b.quit -text Cancel -width 7 -underline 0 -command [code $this _cancel]
- standard_button_box $itk_interior.f.b
- pack $itk_interior.f.a $itk_interior.f.b $itk_interior.f -expand yes -fill both -padx 5 -pady 5
-}
-
-# ------------------------------------------------------------------
-# METHOD: apply - apply changes
-# ------------------------------------------------------------------
-itcl::body SrcPref::_apply {} {
- foreach var [array names _new] {
- if {$_new($var) != [pref get $var]} {
- #debug "$var = $_new($var)"
- pref set $var $_new($var)
- }
- }
- if {$_new_disassembly_flavor != ""} {
- gdb_cmd "set disassembly-flavor $_new_disassembly_flavor"
- pref set gdb/src/disassembly-flavor $_new_disassembly_flavor
- }
- ManagedWin::restart
-}
-
-itcl::body SrcPref::cancel {} {
- _save
-}
-
-# ------------------------------------------------------------------
-# METHOD: _cancel
-# ------------------------------------------------------------------
-itcl::body SrcPref::_cancel {} {
- set any_changed 0
-
- foreach elem [array names _saved] {
- set cur_val [pref get $elem]
- if {[string compare $cur_val $_saved($elem)] != 0} {
- set any_changed 1
- pref set $elem $_saved($elem)
- }
- }
-
- if {$_new_disassembly_flavor != ""} {
- set any_changed 1
- gdb_cmd "set disassembly-flavor $_saved_disassembly_flavor"
- pref set gdb/src/disassembly-flavor $_saved_disassembly_flavor
- }
-
- if {$any_changed} {
- ManagedWin::restart
- }
- unpost
-}
-
-# ------------------------------------------------------------------
-# METHOD: save - apply changes and quit
-# ------------------------------------------------------------------
-itcl::body SrcPref::_save {} {
- _apply
- unpost
-}
-
-# ------------------------------------------------------------------
-# METHOD: _set_flavor - sets the disassembly flavor. The set disassembly-flavor
-# gdb command is already known to exist, so I don't have to check...
-# ------------------------------------------------------------------
-itcl::body SrcPref::_set_flavor {w new_mode} {
- $w entryset $new_mode
- set _new_disassembly_flavor $new_mode
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: pick - pick colors
-# ------------------------------------------------------------------
-itcl::body SrcPref::_pick {color win tag} {
- set new_color [tk_chooseColor -initialcolor $color -title "Choose color"]
- if {$new_color != $color && $new_color != {}} {
- set _new(gdb/src/$tag) $new_color
- $win configure -activebackground $new_color -bg $new_color
- }
-}
-
diff --git a/gdb/gdbtk/library/srcpref.ith b/gdb/gdbtk/library/srcpref.ith
deleted file mode 100644
index a42f7ba7fde..00000000000
--- a/gdb/gdbtk/library/srcpref.ith
+++ /dev/null
@@ -1,38 +0,0 @@
-# Source preferences dialog class definition for GDBtk.
-# Copyright (C) 1998, 1999 Cygnus Solutions
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class SrcPref {
- inherit ManagedWin ModalDialog
-
- private {
- variable _saved ;# These are the saved values...
- variable _new ;# These are the changed values
- variable _saved_disassembly_flavor
- variable _new_disassembly_flavor ""
-
- method _apply {}
- method _build_win {}
- method _cancel {}
- method _init_var {}
- method _pick {color win tag}
- method _save {}
- method _set_flavor {w new_mode}
- method cancel {}
- }
-
- public {
- method constructor {args}
- }
-}
-
diff --git a/gdb/gdbtk/library/srctextwin.itb b/gdb/gdbtk/library/srctextwin.itb
deleted file mode 100644
index 7e743b13ce1..00000000000
--- a/gdb/gdbtk/library/srctextwin.itb
+++ /dev/null
@@ -1,2971 +0,0 @@
-# Paned text widget for source code, for Insight
-# Copyright (C) 1997, 1998, 1999, 2001, 2002 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ----------------------------------------------------------------------
-# Implements the paned text widget with the source code in it.
-# This widget is typically embedded in a SrcWin widget.
-#
-# ----------------------------------------------------------------------
-
-# ------------------------------------------------------------------
-# CONSTRUCTOR - create new source text window
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::constructor {args} {
- eval itk_initialize $args
- set top [winfo toplevel $itk_interior]
- if {$parent == {}} {
- set parent [winfo parent $itk_interior]
- }
-
- if {![info exists break_images(bp)]} {
- set size [font measure [pref get gdb/src/font] "W"]
- set break_images(bp) [makeBreakDot $size \
- [pref get gdb/src/bp_fg]]
- set break_images(temp_bp) [makeBreakDot $size \
- [pref get gdb/src/temp_bp_fg]]
- set break_images(disabled_bp) [makeBreakDot $size \
- [pref get gdb/src/disabled_fg]]
- set break_images(tp) [makeBreakDot $size \
- [pref get gdb/src/trace_fg]]
- set break_images(thread_bp) [makeBreakDot $size \
- [pref get gdb/src/thread_fg]]
- set break_images(bp_and_tp) [makeBreakDot $size \
- [list [pref get gdb/src/trace_fg] \
- [pref get gdb/src/bp_fg]]]
- }
-
- if {$ignore_var_balloons} {
- set UseVariableBalloons 0
- } else {
- set UseVariableBalloons [pref get gdb/src/variableBalloons]
- }
-
- set Linenums [pref get gdb/src/linenums]
-
- #Initialize state variables
- _initialize_srctextwin
-
- build_popups
- build_win
-
- # add hooks
- if {$Tracing} {
- add_hook control_mode_hook "$this set_control_mode"
- add_hook gdb_trace_find_hook "$this trace_find_hook"
- }
-
- if {$UseVariableBalloons} {
- add_hook gdb_idle_hook "$this updateBalloon"
- }
- global ${this}_balloon
- trace variable ${this}_balloon w "$this trace_help"
-
-}
-
-# ------------------------------------------------------------------
-# DESTRUCTOR - destroy window containing widget
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::destructor {} {
- if {$Tracing} {
- remove_hook control_mode_hook "$this set_control_mode"
- }
- if {$UseVariableBalloons} {
- remove_hook gdb_idle_hook "$this updateBalloon"
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: trace_find_hook - response to the tfind command. All we
-# need to do here is to remove the trace tags, if we are exiting
-# trace mode
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::trace_find_hook {mode from_tty} {
- if {[string compare $mode -1] == 0} {
- if {$Browsing} {
- $twin tag remove STACK_TAG 1.0 end
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: set_control_mode- switches the src window between
-# browsing -> mode = 1
-# controlling -> mode = 0
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::set_control_mode {mode} {
-# debug "Setting control mode of $twin to $mode"
- if {$mode} {
- set Browsing 1
- } else {
- set Browsing 0
- }
-
- switch $current(mode) {
- SOURCE {
- config_win $twin
- }
- ASSEMBLY {
- config_win $twin A
- }
- MIXED {
- config_win $twin M
- }
- SRC+ASM {
- config_win $twin
- config_win $bwin A
- }
- }
-
-}
-
-# ------------------------------------------------------------------
-# METHOD: build_popups - build the popups for the source window(s)
-# ------------------------------------------------------------------
-#
-# The popups array holds the data for the breakpoint & tracepoint popup menus.
-# The elements are:
-# Menus:
-# break_rgn - the popup for clicking in a bare break region
-# bp - the popup for clicking on a set breakpoint
-# tp - the popup for clicking on a set tracepoint
-# bp_and_tp - the popup for clicking on the break_region when the
-# line contains both a bp & a tp
-# source - the popup for clicking on the source region of the window
-#
-# State:
-# saved_y - the y value of the mouse click that posted the popup
-# saved_win- the Tk window which recieved the posting click
-#
-# Disable info:
-# run_disabled - a list of {menu entry} pairs for all the menus that
-# should be disabled when you are not running
-# browse_disabled - a similar list for menus that should be disabled
-# when you are browsing a trace expt.
-#
-itcl::body SrcTextWin::build_popups {} {
-
- set popups(bp) $itk_interior.bp_menu
- set popups(tp) $itk_interior.tp_menu
- set popups(bp_and_tp) $itk_interior.tp_bp_menu
- set popups(tp_browse) $itk_interior.tp_browse_menu
- set popups(break_rgn) $itk_interior.break_menu
- set popups(source) $itk_interior.src_menu
- set popups(disabled_bp) $itk_interior.disabled_bp_menu
-
- # This is a scratch popup menu we use when we are not over a bp...
- if {![winfo exists $popups(source)]} {
- menu $popups(source) -tearoff 0
- }
-
- if {![winfo exists $popups(break_rgn)]} {
- # breakpoint popup menu
- # don't enable hardware or conditional breakpoints until they are tested
- menu $popups(break_rgn) -tearoff 0
-
- set bp_fg [pref get gdb/src/bp_fg]
- set tp_fg [pref get gdb/src/trace_fg]
-
- if {[pref get gdb/control_target]} {
-
- addPopup break_rgn "Continue to Here" "$this continue_to_here" \
- [pref get gdb/src/PC_TAG] 0 0
- addPopup break_rgn "Jump to Here" "$this jump_to_here" \
- [pref get gdb/src/PC_TAG] 0 0
- $popups(break_rgn) add separator
-
- addPopup break_rgn "Set Breakpoint" "$this set_bp_at_line" $bp_fg
-
- lappend popups(break_rgn-browse) 1
- lappend popups(break_rgn-control) 1
-
- addPopup break_rgn "Set Temporary Breakpoint" "$this set_bp_at_line T" \
- [pref get gdb/src/temp_bp_fg]
-
- addPopup break_rgn "Set Breakpoint on Thread(s)..." \
- "$this ask_thread_bp" [pref get gdb/src/thread_fg] 0 0
- }
-
- if {$Tracing} {
- $popups(break_rgn) add separator
- addPopup break_rgn "Set Tracepoint" "$this set_tp_at_line" $tp_fg
- }
-
- }
-
- if {![winfo exists $popups(bp)]} {
- # this popup is used when the line contains a set breakpoint
- menu $popups(bp) -tearoff 0
-
- if {!$Browsing && [pref get gdb/control_target]} {
- addPopup bp "Continue to Here" "$this continue_to_here" {} 0 0
- addPopup bp "Jump to Here" "$this jump_to_here" {} 0 0
- $popups(bp) add separator
-
- addPopup bp "Disable Breakpoint" "$this enable_disable_at_line disable" \
- $bp_fg
- $popups(bp) add separator
- }
-
- addPopup bp "Delete Breakpoint" "$this remove_bp_at_line"
-
- # Currently you cannot set a tracepoint and a breakpoint at the same line...
- #
- # if {$Tracing} {
- # addPopup bp "Set Tracepoint" "$this set_tp_at_line" $tp_fg
- # }
- }
-
- if {![winfo exists $popups(tp)]} {
- # This is the popup to use when the line contains a set tracepoint
-
- menu $popups(tp) -tearoff 0
-
- if {[pref get gdb/control_target]} {
-
- addPopup tp "Continue to Here" "$this continue_to_here" green 0 0
- addPopup tp "Jump to Here" "$this jump_to_here" {} 0 0
- # $popups(tp) add separator
-
- # Currently you cannot set a tracepoint and a breakpoint at the same line...
- #
- # addPopup tp "Set Breakpoint" "$this set_bp_at_line" $bp_fg
-
- # addPopup tp "Set Temporary Breakpoint" "$this set_bp_at_line T" \
- # [pref get gdb/src/temp_bp_fg]
-
- # addPopup tp "Set Breakpoint on Thread(s)..." \
- # "$this ask_thread_bp" \
- # [pref get gdb/src/thread_fg] 0 0
- }
-
- if {$Tracing} {
- $popups(tp) add separator
- addPopup tp "Modify Tracepoint" "$this set_tp_at_line" $tp_fg
- addPopup tp "Delete Tracepoint" "$this remove_tp_at_line" $tp_fg
- }
- }
-
- # This is not currently used, since you can't set a bp & a tp on the same line.
- # N.B. however, we don't exclude this on the command line, but...
-
- if {![winfo exists $popups(bp_and_tp)]} {
-
- # this popup is used when the line contains a set breakpoint & tracepoint
- menu $popups(bp_and_tp) -tearoff 0
-
- if {!$Browsing && [pref get gdb/control_target]} {
- addPopup bp_and_tp "Continue to Here" "$this continue_to_here" \
- green 0 0
- addPopup bp_and_tp "Jump to Here" "$this jump_to_here" \
- green 0 0
- $popups(bp_and_tp) add separator
- }
-
- addPopup bp_and_tp "Delete Breakpoint" "$this remove_bp_at_line" $bp_fg
- if {$Tracing} {
- addPopup bp_and_tp "Modify Tracepoint" "$this set_tp_at_line" $tp_fg
- addPopup bp_and_tp "Delete Tracepoint" \
- "$this remove_tp_at_line" $tp_fg
- }
- }
-
- if {![winfo exists $popups(disabled_bp)]} {
- menu $popups(disabled_bp) -tearoff 0
-
- addPopup disabled_bp "Enable Breakpoint" \
- "$this enable_disable_at_line enable" $bp_fg
-
- $popups(disabled_bp) add separator
- addPopup disabled_bp "Delete Breakpoint" "$this remove_bp_at_line"
- }
-
- if {![winfo exists $popups(tp_browse)]} {
-
- # this popup is on a tracepoint when browsing.
-
- menu $popups(tp_browse) -tearoff 0
- addPopup tp_browse "Next hit Here" "$this next_hit_at_line" \
- green
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: build_win - build the main source paned window
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::build_win {} {
- cyg::panedwindow $itk_interior.p
-
- set _tpane pane$filenum
- incr filenum
-
- $itk_interior.p add $_tpane
- set pane1 [$itk_interior.p childsite $_tpane]
- set Stwc(gdbtk_scratch_widget:pane) $_tpane
- set Stwc(gdbtk_scratch_widget:dirty) 0
-
- set twinp [iwidgets::scrolledtext $pane1.st \
- -hscrollmode dynamic -vscrollmode dynamic]
- set twin [$twinp component text]
- pack $twinp -fill both -expand yes
- pack $itk_interior.p -fill both -expand yes
- config_win $twin
-}
-
-# ------------------------------------------------------------------
-# METHOD: SetRunningState - set state based on if GDB is running or not.
-# This disables the popup menus when GDB is not running yet.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::SetRunningState {state} {
-# debug "$state"
- foreach elem $popups(run_disabled) {
- $popups([lindex $elem 0]) entryconfigure [lindex $elem 1] -state $state
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: enable - enable or disable bindings and change cursor
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::enable {on} {
- if {$on} {
- set Running 0
- set glyph ""
- set bnd ""
- set status normal
- } else {
- set Running 1
- set glyph watch
- set bnd "break"
- set status disabled
- }
-
- if {[winfo exists $twin]} {
- bind $twin <B1-Motion> $bnd
- bind $twin <Double-1> $bnd
- bind $twin <Triple-1> $bnd
- enable_disable_src_tags $twin $status
- $twin configure -cursor $glyph
- }
-
- if {$bwin != ""} {
- bind $bwin <B1-Motion> $bnd
- bind $bwin <Double-1> $bnd
- bind $bwin <Triple-1> $bnd
- enable_disable_src_tags $bwin $status
- $bwin configure -cursor $glyph
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: makeBreakDot - make the break dot for the screen
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::makeBreakDot {size colorList {image {}}} {
- if {$size > 32} {
- set size 32
- } elseif {$size < 1} {
- set size 1
- }
-
- if {$image == ""} {
- set image [image create photo -width $size -height $size]
- } else {
- $image blank
- $image configure -width $size -height $size
- }
-
- if {[llength $colorList] == 1} {
- set x1 1
- set x2 [expr {1 + $size}]
- set y1 1
- set y2 $x2
- $image put $colorList -to 1 1 $x2 $y2
- } else {
- set x1 1
- set x3 [expr {1 + $size}]
- set x2 [expr int((1 + $size)/2)]
- set y1 1
- set y2 $x3
- $image put [lindex $colorList 0] -to 1 1 $x2 $y2
- $image put [lindex $colorList 1] -to [expr $x2 + 1] 1 $x3 $y2
- }
-
- return $image
-}
-
-# ------------------------------------------------------------------
-# METHOD: setTabs - set the tabs for the assembly/src windows
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::setTabs {win {asm S}} {
- set fsize [font measure [pref get gdb/src/font] "W"]
- set tsize [pref get gdb/src/tab_size]
- set rest ""
-
- if {[string compare $asm "S"] != 0} {
- set first [expr {$fsize * 12}]
- set second [expr {$fsize * 13}]
- set third [expr {$fsize * 34}]
- for {set i 1} {$i < 8} {incr i} {
- lappend rest [expr {(34 + ($i * $tsize)) * $fsize}] left
- }
- set tablist [concat [list $first right $second left $third left] $rest]
- } else {
- # SOURCE window
- # The first tab right-justifies the line numbers and the second
- # tab is the left margin for the start on the source code. The remaining
- # tabs should be regularly spaced depending on prefs.
- if {$Linenums} {
- set first [expr {$fsize * 6}] ;# "- " plus 4 digit line number
- set second [expr {$fsize * 7}] ;# plus a space after the number
- for {set i 1} {$i < 8} {incr i} {
- lappend rest [expr {(7 + ($i * $tsize)) * $fsize}] left
- }
- set tablist [concat [list $first right $second left] $rest]
- } else {
- set first [expr {$fsize * 2}]
- for {set i 1} {$i < 8} {incr i} {
- lappend rest [expr {(2 + ($i * $tsize)) * $fsize}] left
- }
- set tablist [concat [list $first left] $rest]
- }
- }
- $win configure -tabs $tablist
-}
-
-itcl::body SrcTextWin::enable_disable_src_tags {win how} {
-
- switch $how {
- normal {
- set cur1 dot
- set cur2 xterm
- }
- disabled {
- set cur1 watch
- set cur2 $cur1
- }
- browse {
- set cur1 dot
- set cur2 xterm
- }
- }
-
- if {[string compare $how browse] == 0} {
-
- $win tag bind break_rgn_tag <Enter> { }
- $win tag bind break_rgn_tag <Leave> { }
-
- foreach type $bp_types {
- $win tag bind ${type}_tag <Enter> { }
- $win tag bind ${type}_tag <Motion> { }
- $win tag bind ${type}_tag <Leave> { }
- }
-
- } else {
-
- $win tag bind break_rgn_tag <Enter> "$win config -cursor $cur1"
- $win tag bind break_rgn_tag <Leave> "$win config -cursor $cur2"
-
- foreach type $bp_types {
- $win tag bind ${type}_tag <Enter> "$win config -cursor $cur1"
- $win tag bind ${type}_tag <Motion> "$this motion bp %W %x %y"
- $win tag bind ${type}_tag <Leave> \
- "$this cancelMotion;$win config -cursor $cur2"
- }
- }
-
- $win tag bind tp_tag <Enter> "$win config -cursor $cur1"
- $win tag bind tp_tag <Motion> "$this motion bp %W %x %y"
- $win tag bind tp_tag <Leave> "$this cancelMotion;$win config -cursor $cur2"
-}
-
-# ------------------------------------------------------------------
-# METHOD: config_win - configure the source or assembly text window
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::config_win {win {asm S}} {
-# debug "$win $asm Tracing=$Tracing Browsing=$Browsing"
-
- $win config -borderwidth 2 -insertwidth 0 -wrap none
-
- # font
- set font [pref get gdb/src/font]
- $win configure -font $font -bg $::Colors(textbg) -fg $::Colors(textfg)
-
- setTabs $win $asm
-
- # set up some tags. should probably be done differently
- # !! change bg?
-
- $win tag configure break_rgn_tag
- foreach type $bp_types {
- $win tag configure ${type}_tag
- }
- $win tag configure tp_tag
- $win tag configure source_tag2 -foreground [pref get gdb/src/source2_fg]
- $win tag configure PC_TAG -background [pref get gdb/src/PC_TAG]
- $win tag configure STACK_TAG -background [pref get gdb/src/STACK_TAG]
- $win tag configure BROWSE_TAG -background [pref get gdb/src/BROWSE_TAG]
-
- # search tag used to highlight searches
- foreach option [$win tag configure sel] {
- set op [lindex $option 0]
- set val [lindex $option 4]
- eval $win tag configure search $op $val
- }
-
- # bind mouse button 3 to the popup men
- $win tag bind source_tag <Button-3> "$this do_source_popup %X %Y %x %y"
- $win tag bind source_tag2 <Button-3> "$this do_source_popup %X %Y %x %y"
-
- # bind mouse button 3 to the popup menus
- if {!$Browsing} {
-
- $win tag bind break_rgn_tag <Button-3> \
- "$this do_tag_popup break_rgn %X %Y %y; break"
- foreach type $bp_types {
- if {$type == "disabled_bp"} then {
- set tag disabled_bp
- } else {
- set tag bp
- }
- $win tag bind ${type}_tag <Button-3> \
- "$this do_tag_popup $tag %X %Y %y; break"
- }
- $win tag bind tp_tag <Button-3> "$this do_tag_popup tp %X %Y %y; break"
- $win tag bind bp_and_tp_tag <Button-3> "$this do_tag_popup bp_and_tp %X %Y %y; break"
- } else {
- $win tag bind tp_tag <Button-3> "$this do_tag_popup tp_browse %X %Y %y; break"
- $win tag bind break_rgn_tag <Button-3> { }
- foreach type $bp_types {
- $win tag bind ${type}_tag <Button-3> { }
- }
- $win tag bind bp_and_tp_tag <Button-3> "$this do_tag_popup tp_browse %X %Y %y; break"
-
- }
-
- # Disable printing and cut and paste keys; makes the window readonly
- # We do this so we don't have to enable and disable the
- # text widget everytime we want to modify it.
-
- bind $win <Key> {if {"%A" != "{}"} {break}}
- bind $win <Delete> break
- bind $win <ButtonRelease-2> {break}
-
- # GDB key bindings
- # We need to explicitly ignore keys with the Alt modifier, since
- # otherwise they will interfere with selecting menus on Windows.
-
- if {!$Browsing && [pref get gdb/control_target]} {
- bind_plain_key $win c "$this do_key continue; break"
- bind_plain_key $win r "$this do_key run; break"
- bind_plain_key $win f "$this do_key finish; break"
- } else {
- bind_plain_key $win n "$this do_key tfind_next; break"
- bind_plain_key $win p "$this do_key tfind_prev; break"
- bind_plain_key $win f "$this do_key tfind_start; break"
- bind_plain_key $win l "$this do_key tfind_line; break"
- bind_plain_key $win h "$this do_key tfind_tp; break"
- }
- bind_plain_key $win u "$this do_key up; break"
- bind_plain_key $win d "$this do_key down; break"
- bind_plain_key $win x "$this do_key quit; break"
-
- if {!$Browsing && [pref get gdb/control_target]} {
- if {[string compare $asm "S"] != 0} {
- bind_plain_key $win s "$this do_key stepi; break"
- bind_plain_key $win n "$this do_key nexti; break"
- } else {
- bind_plain_key $win s "$this do_key step; break"
- bind_plain_key $win n "$this do_key next; break"
- }
- }
-
- bind_plain_key $win Control-h "$this do_key thread_list; break"
- bind_plain_key $win Control-f "$this do_key browser; break"
- bind_plain_key $win Control-d "$this do_key download; break"
- bind_plain_key $win Control-p "$this do_key print"
- bind_plain_key $win Control-u "$this do_key debug; break"
- bind_plain_key $win Control-o [list $this do_key open]
- bind_plain_key $win Control-a [list $this do_key attach]
- bind_plain_key $win Control-w [code $this do_key close]
-
- if {!$Browsing && [pref get gdb/control_target]} {
- # Ctrl+F5 is another accelerator for Run
- bind_plain_key $win Control-F5 "$this do_key run"
- }
-
- bind_plain_key $win Control-F11 "$this do_key debug"
- bind_plain_key $win Alt-v "$win yview scroll -1 pages"
- bind_plain_key $win Control-v [format {
- %s yview scroll 1 pages
- break
- } $win]
-
- # bind mouse button 1 to the breakpoint method or tracepoint,
- # depending on the settings of the B1_behavior setting. We don't
- # have to bind to bp_and_tp because that will fall through to either
- # the tp or the bp tag. We have to put in the break so that we don't
- # both remove & reinsert a BP when we have both a tp & a bp on the same line.
- # If we are browsing, then disable Button-1
-
- if {!$Browsing} {
- if {[pref get gdb/B1_behavior]} {
- $win tag bind break_rgn_tag <Button-1> "$this set_bp_at_line N $win %y; break"
- foreach type $bp_types {
- $win tag bind ${type}_tag <Button-1> "$this remove_bp_at_line $win %y; break"
- }
- $win tag bind tp_tag <Button-1> "$this set_bp_at_line N $win %y; break"
- } else {
- $win tag bind break_rgn_tag <Button-1> "$this set_tp_at_line $win %y; break"
- foreach type $bp_types {
- $win tag bind ${type}_tag <Button-1> "$this set_tp_at_line $win %y; break"
- }
- $win tag bind tp_tag <Button-1> "$this set_tp_at_line $win %y; break"
- }
- } else {
- $win tag bind break_rgn_tag <Button-1> { }
- foreach type $bp_types {
- $win tag bind ${type}_tag <Button-1> { }
- }
- $win tag bind tp_tag <Button-1> { }
- }
-
-
- # avoid special handling of double and triple clicks in break area
- bind $win <Double-1> [format {
- if {[lsearch [%s tag names @%%x,%%y] break_rgn_tag] >= 0} {
- break
- }
- } $win $win]
- bind $win <Triple-1> [format {
- if {[lsearch [%s tag names @%%x,%%y] break_rgn_tag] >= 0} {
- break
- }
- } $win $win]
-
- # bind window shortcuts
- bind_plain_key $win Control-s "$this do_key stack"
- bind_plain_key $win Control-r "$this do_key registers"
- bind_plain_key $win Control-m "$this do_key memory"
- bind_plain_key $win Control-t "$this do_key watch"
- bind_plain_key $win Control-l "$this do_key locals"
- bind_plain_key $win Control-k "$this do_key kod"
- if { !$Tracing } {
- bind_plain_key $win Control-b "$this do_key breakpoints"
- } else {
- bind_plain_key $win Control-t "$this do_key tracepoints"
- bind_plain_key $win Control-u "$this do_key tdump"
- }
- bind_plain_key $win Control-n "$this do_key console"
-
- if {$Browsing} {
- enable_disable_src_tags $win browse
- } else {
- enable_disable_src_tags $win normal
- }
-
- if {$UseVariableBalloons} {
- $win tag bind source_tag <Motion> "$this motion var %W %x %y"
- $win tag bind source_tag <Leave> "$this cancelMotion"
- }
-
- # Up/Down arrow key bindings
- bind_plain_key $win Up [list %W yview scroll -1 units]
- bind_plain_key $win Down [list %W yview scroll +1 units]
-
- # After loading a new file, focus sometimes gets lost
- # so point it back to this window if it doesn't already
- # point elsewhere.
- if {[focus -displayof $win] == ""} {focus $win}
-}
-
-# ------------------------------------------------------------------
-# METHOD: addPopup - adds a popup to one of the source popup menus
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::addPopup {menu label command {abg {}} {browse 1} {run 1}} {
-
- if {$abg == ""} {
- $popups($menu) add command -label $label -command $command
- } else {
- $popups($menu) add command -label $label -command $command \
- -activebackground $abg
- }
-
- set index [$popups($menu) index last]
- if {!$run} {
- lappend popups(run_disabled) [list $menu $index]
- }
- if {!$browse} {
- lappend popups(browse_disabled) [list $menu $index]
- }
-
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: set_variable - Handle changes in the gdb variables
-# changed through the "set" gdb command.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::set_variable {event} {
- set var [$event get variable]
- set val [$event get value]
- debug "Set hook got called with $var $val"
- switch $var {
- disassembly-flavor {
- disassembly_changed
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: disassembly_changed - The disassembly flavor has changed,
-# mark all the cached assembly windows dirty, and force the
-# visible window to be redisplayed.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::disassembly_changed {} {
- foreach name [array names Stwc *:pane] {
- debug "Looking at $name"
- set vals [split $name ,]
- if {([string compare [lindex $vals 1] "A"] == 0)
- || ([string compare [lindex $vals 1] "M"] == 0)} {
- debug "Setting $name to dirty"
- set Stwc([lindex $vals 0]:dirty) 1
- }
- }
-
- if {[string compare $current(mode) "SOURCE"] != 0} {
- location $current(tag) $current(filename) $current(funcname) $current(line) \
- $current(addr) $pc(addr) $current(lib)
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: reconfig - used when preferences change
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::reconfig {} {
-# debug
-
- # Make sure we redo the break images when we reconfigure
- set size [font measure [pref get gdb/src/font] "W"]
- makeBreakDot $size [pref get gdb/src/bp_fg] $break_images(bp)
- makeBreakDot $size [pref get gdb/src/temp_bp_fg] $break_images(temp_bp)
- makeBreakDot $size [pref get gdb/src/disabled_fg] $break_images(disabled_bp)
- makeBreakDot $size [pref get gdb/src/trace_fg] $break_images(tp)
- makeBreakDot $size \
- [list [pref get gdb/src/trace_fg] [pref get gdb/src/bp_fg]] \
- $break_images(bp_and_tp)
- makeBreakDot $size [pref get gdb/src/thread_fg] $break_images(thread_bp)
-
- # Tags
- $twin tag configure PC_TAG -background [pref get gdb/src/PC_TAG]
- $twin tag configure STACK_TAG -background [pref get gdb/src/STACK_TAG]
- $twin tag configure BROWSE_TAG -background [pref get gdb/src/BROWSE_TAG]
- switch $current(mode) {
- SOURCE {
- setTabs $twin
- }
- SRC+ASM {
- setTabs $twin
- setTabs $bwin A
- }
- default {
- setTabs $twin A
- }
- }
-
- # Variable Balloons
- if {$ignore_var_balloons} {
- set balloons 0
- } else {
- set balloons [pref get gdb/src/variableBalloons]
- }
- if {$UseVariableBalloons != $balloons} {
- set UseVariableBalloons $balloons
- if {$UseVariableBalloons} {
- $twin tag bind source_tag <Motion> "$this motion var %W %x %y"
- $twin tag bind source_tag <Leave> "$this cancelMotion"
- add_hook gdb_idle_hook [list $this updateBalloon]
- } else {
- cancelMotion
- $twin tag bind source_tag <Motion> {}
- $twin tag bind source_tag <Leave> {}
- $twin tag remove _show_variable 1.0 end
- remove_hook gdb_idle_hook [list $this updateBalloon]
- }
- }
-
- # Tracing Hooks
- catch {remove_hook control_mode_hook "$this set_control_mode"}
- catch {remove_hook gdb_trace_find_hook "$this trace_find_hook"}
- if {$Tracing} {
- add_hook control_mode_hook "$this set_control_mode"
- add_hook gdb_trace_find_hook "$this trace_find_hook"
- }
-
- # Popup colors
-
- # need to rewrite because of the new addPopup function
- # if {$Tracing} {
- # $twin.bmenu entryconfigure 0 -activebackground [pref get gdb/src/trace_fg]
- # } else {
- # $twin.bmenu entryconfigure 0 -activebackground [pref get gdb/src/PC_TAG]
- # $twin.bmenu entryconfigure 1 -activebackground [pref get gdb/src/bp_fg]
- # $twin.bmenu entryconfigure 2 -activebackground \
- # [pref get gdb/src/temp_bp_fg]
- # $twin.bmenu entryconfigure 3 -activebackground \
- # [pref get gdb/src/thread_fg]
- # }
-}
-
-# ------------------------------------------------------------------
-# METHOD: updateBalloon - we have gone idle, update the balloon
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::updateBalloon {} {
-
- set err [catch {$_balloon_var update} changed]
- catch {$_balloon_var name} var
-
- if {!$err} {
- if {$changed != ""} {
- # The variable's value has changed, so update the
- # balloon with its new value
- balloon register $twin "$var=[balloon_value $_balloon_var]" _show_variable
- }
- }
- }
-
-itcl::body SrcTextWin::balloon_value {variable} {
-
- catch {$variable value} value
- set value [string trim $value \ \r\t\n]
-
- # Insert the variable's type for things like ptrs, etc.
- catch {$variable type} type
- if {$value == "{...}"} {
- set val "$type $value"
- } elseif {[regexp -- {0x([0-9a-fA-F]+) <[a-zA-Z_].*} $value str]} {
- set val $str
- } elseif {[string first * $type] != -1} {
- set val "($type) $value"
- } elseif {[string first \[ $type] != -1} {
- set val "$type"
- } else {
- set val "$value"
- }
-
- return $val
-}
-
-# ------------------------------------------------------------------
-# METHOD: ClearTags - clear all tags
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::ClearTags {} {
- foreach tag {PC_TAG BROWSE_TAG STACK_TAG} {
- catch {
- $twin tag remove $tag $current(line).2 $current(line).end
- $twin tag remove $tag $pc(line).2 $pc(line).end
- $twin tag remove $tag $current(asm_line).2 $current(asm_line).end
- if {$bwin != ""} {
- $bwin tag remove $tag $current(asm_line).2 $current(asm_line).end
- }
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: _mtime_changed - check if the modtime for a file
-# has changed.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::_mtime_changed {filename} {
- global tcl_platform
-
- if [catch {gdb_find_file $filename} f] {
- set r 1
- } elseif {$f == ""} {
- set r 1
- } else {
- if {[string compare $tcl_platform(platform) "windows"] == 0} {
- set f [ide_cygwin_path to_win32 $f]
- }
- if {[catch {file mtime $f} mtime]} {
- debug "Could not stat file \"$f\" - \"$mtime\""
- # The return code is not of much significance in this case
- return 1
- }
- if {![info exists Stwc($filename:mtime)]} {
- debug "no mtime. resetting to zero"
- set Stwc($filename:mtime) 0
- }
- # debug "Stwc($filename:mtime)=$Stwc($filename:mtime); mtime=$mtime"
-
- if {$mtime == $Stwc($filename:mtime)} {
- set r 0
- } else {
- set r 1
- set Stwc($filename:mtime) $mtime
- set Stwc($filename:dirty) 1
- }
- }
-
- return $r
-}
-
-# ------------------------------------------------------------------
-# METHOD: FillSource - fill a window with source
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::FillSource {w tagname filename funcname line addr pc_addr lib} {
- global gdb_running
- upvar ${w}win win
-
-# debug "$gdb_running $tagname line=$line pc(line)=$pc(line)"
-# debug "current(filename)=$current(filename) filename=$filename"
-
- if {$filename != ""} {
- # load new file if necessary
- set mtime [_mtime_changed $filename]
- if {[string compare $filename $current(filename)] != 0 \
- || $mode_changed || $mtime} {
- if {![LoadFile $w $filename $lib $mtime]} {
- # failed to find source file
- dbug W "Changing to ASSEMBLY"
-
- # We have to update this data here (it is also done by the caller)
- # because we want to call mode, which calls mode_set, which calls
- # location using these values.
- set current(line) $line
- set current(tag) $tagname
- set current(addr) $addr
- set current(funcname) $funcname
- set current(filename) $filename
- set current(lib) $lib
-
- set oldmode SOURCE
- $parent mode "" ASSEMBLY
- return
- }
- if {$current(mode) != "SRC+ASM"} {
- # reset this flag in FillAssembly for SRC+ASM mode
- set mode_changed 0
- }
- }
-
-# debug "cf=$current(filename) pc=$pc(filename) filename=$filename"
- if {$current(filename) != ""} {
- if {$gdb_running && $pc(filename) == $filename} {
- # set the PC tag in this file
- $win tag add PC_TAG $pc(line).2 $pc(line).end
- }
- if {$tagname != "PC_TAG"} {
- if {$gdb_running && ($pc(filename) == $filename) \
- && ($pc(line) == $line)} {
- # if the tag is on the same line as the PC, set a PC tag
- $win tag add PC_TAG $line.2 $line.end
- } else {
- $win tag add $tagname $line.2 $line.end
- }
- }
- if {$pc(filename) == $filename && $line == 0} {
- # no line specified, so show line with PC
- display_line $win $pc(line)
- } else {
- display_line $win $line
- }
- }
- return
- }
- # no source; switch to assembly
- dbug W "no source file; switch to assembly"
-
- # We have to update this data here (it is also done by the caller)
- # because we want to call mode, which calls mode_set, which calls
- # location using these values.
- set current(line) $line
- set current(tag) $tagname
- set current(addr) $addr
- set current(funcname) $funcname
- set current(filename) $filename
- set current(lib) $lib
-
- set oldmode $current(mode)
- $parent mode "" ASSEMBLY
-}
-
-# ------------------------------------------------------------------
-# METHOD: FillAssembly - fill a window with disassembled code
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::FillAssembly {w tagname filename funcname line addr pc_addr lib} {
- global gdb_running
- upvar ${w}win win
- upvar _${w}pane pane
-# debug "$win $tagname $filename $funcname $line $addr $pc_addr"
-# debug "mode_changed=$mode_changed"
-# debug "funcname=$funcname"
-# debug "current(funcname)=$current(funcname)"
- if {$funcname == ""} {
- set oldpane $pane
- set pane $Stwc(gdbtk_scratch_widget:pane)
- set win [[$itk_interior.p childsite $pane].st component text]
- $win delete 0.0 end
- $win insert 0.0 "Select function name to disassemble"
- if {$oldpane != "" && $oldpane != $pane} {
- $itk_interior.p replace $oldpane $pane
- } else {
- $itk_interior.p show $pane
- }
- return
- } elseif {$funcname != $current(funcname) || $mode_changed
- || ([info exists Stwc($addr:dirty)] && $Stwc($addr:dirty))} {
- set mode_changed 0
- set oldpane $pane
- set result [LoadFromCache $w $addr A $lib]
- if {$result == 1} {
- #debug "Disassembling at $addr"
- #debug "cf=$current(filename) name=$filename"
- if {[catch {gdb_load_disassembly $win nosource \
- [scope _map] $Cname $addr} mess]} {
- # print some intelligent error message?
- dbug E "Disassemble failed: $mess"
- UnLoadFromCache $w $oldpane $addr A $lib
- set pane $Stwc(gdbtk_scratch_widget:pane)
- set win [[$itk_interior.p childsite $pane].st component text]
- $win delete 0.0 end
- $win insert 0.0 "$mess"
- if {$oldpane != "" && $oldpane != $pane} {
- $itk_interior.p replace $oldpane $pane
- } else {
- $itk_interior.p show $pane
- }
- } else {
- debug "address range is $mess"
- }
- } elseif {$result == 0} {
- debug "LoadFromCache returned 0"
- } else {
- # This branch should not ever happen. In assembly mode, there
- # are no checks in LoadFromCache that can fail.
- debug "LoadFromCache returned -1"
- }
- set current(filename) $filename
- set do_display_breaks 1
- }
-
- # highlight proper line number
- _highlightAsmLine $win $addr $pc_addr $tagname $filename $funcname
-
- display_line $win $current(asm_line)
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: FillMixed - fill a window with mixed source and assembly
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::FillMixed {w tagname filename funcname line addr pc_addr lib} {
- global gdb_running
- upvar ${w}win win
- upvar _${w}pane pane
-# debug "$win $tagname $filename $funcname $line $addr $pc_addr"
-
- if {$funcname == ""} {
- set oldpane $pane
- set pane $Stwc(gdbtk_scratch_widget:pane)
- set win [[$itk_interior.p childsite $pane].st component text]
- $win delete 0.0 end
- $win insert 0.0 "Select function name to disassemble"
- if {$oldpane != ""} {
- $itk_interior.p replace $oldpane $pane
- } else {
- $itk_interior.p show $pane
- }
- } elseif {$funcname != $current(funcname) || $mode_changed
- || ([info exists Stwc($funcname:dirty)] && $Stwc($funcname:dirty))} {
- set mode_changed 0
- set oldpane $pane
- if {[LoadFromCache $w $funcname M $lib]} {
- # debug "Disassembling at $addr"
- if {[catch {gdb_load_disassembly $win source \
- [scope _map] $Cname $addr} mess] } {
- # print some intelligent error message
- dbug W "Disassemble Failed: $mess"
- UnLoadFromCache $w $oldpane $funcname M $lib
- set current(line) $line
- set current(tag) $tagname
- set current(addr) $addr
- set current(funcname) $funcname
- set current(filename) $filename
- set current(lib) $lib
- set oldmode MIXED
- $parent mode "" ASSEMBLY
- return
- } else {
- debug "address range is $mess"
- }
- }
- set current(filename) $filename
- # now set the breakpoints
- set do_display_breaks 1
- }
-
- # highlight proper line number
- _highlightAsmLine $win $addr $pc_addr $tagname $filename $funcname
- display_line $win $current(asm_line)
-}
-
-# ------------------------------------------------------------------
-# METHOD: _highlightAsmLine - highlight the current execution line
-# in one of the assembly modes
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::_highlightAsmLine {win addr pc_addr \
- tagname filename funcname} {
- global gdb_running
-
- # Some architectures allow multiple instructions in each asm source
- # line...
- if {[info exists _map($Cname,pc=$addr)]} {
- set current(asm_line) $_map($Cname,pc=$addr)
- } else {
- set x [gdb_incr_addr $current(addr) -2]
- if {[info exists _map($Cname,pc=$x)]} {
- set current(asm_line) $_map($Cname,pc=$x)
- }
- }
-
- # if current file has PC, highlight that too
- if {$gdb_running && $tagname != "PC_TAG" && $pc(filename) == $filename
- && $pc(func) == $funcname} {
- set pc(asm_line) $_map($Cname,pc=$pc_addr)
- $win tag add PC_TAG $pc(asm_line).2 $pc(asm_line).end
- }
-
- # don't set browse tag if it is at PC
- if {$pc_addr != $addr || $tagname == "PC_TAG"} {
- # HACK. In STACK mode we usually want the previous instruction
- # but not when we are browsing a trace experiment.
- if {[string compare $tagname "STACK_TAG"] == 0 && !$Browsing} {
- incr current(asm_line) -1
- }
- $win tag add $tagname $current(asm_line).2 $current(asm_line).end
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: set_tag - update tag to STACK without making other changes
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::set_tag_to_stack {} {
- foreach window [list $twin $bwin] {
- if {$window == ""} then {
- continue
- }
- foreach {start end} [$window tag ranges PC_TAG] {
- $window tag remove PC_TAG $start $end
- $window tag add STACK_TAG $start $end
- }
- }
- set current(tag) STACK_TAG
-}
-
-# ------------------------------------------------------------------
-# METHOD: location - display a location in a file
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::location {tagname filename funcname line addr pc_addr lib} {
-# debug "$tagname $filename $line $addr $pc_addr, mode=$current(mode) oldmode=$oldmode cf=$current(filename) lib=$lib"
-
- ClearTags
-
- # It seems odd to do this as a string compare, but on the Alpha,
- # where ints are 32 bit but addresses are 64, a numerical compare
- # will overflow Tcl's ints.
-
- if {$tagname == "PC_TAG" && [string compare $addr $pc_addr] == 0} {
- set pc(filename) $filename
- set pc(line) $line
- set pc(addr) $addr
- set pc(func) $funcname
- set pc(lib) $lib
- }
-
- if {$oldmode != "" \
- && [string compare $filename $current(filename)] != 0} {
-
- if [catch {gdb_find_file $filename} fullname] {
- dbug W "$filename: $fullname"
- set fullname ""
- }
-
- if {$fullname != ""} {
- set tmp $oldmode
- set oldmode ""
- $parent mode "" $tmp 0
- }
- }
-
- set oldpane $_tpane
-
- switch $current(mode) {
- SOURCE {
- FillSource t $tagname $filename $funcname $line $addr $pc_addr $lib
- }
- ASSEMBLY {
- FillAssembly t $tagname $filename $funcname $line $addr $pc_addr $lib
- }
- MIXED {
- FillMixed t $tagname $filename $funcname $line $addr $pc_addr $lib
- }
- SRC+ASM {
- FillSource t $tagname $filename $funcname $line $addr $pc_addr $lib
- # This may seem redundant, but it is NOT. FillSource can change
- # the mode from SOURCE to ASSEMBLY if sources were not found. If
- # this happens, then MIXED mode is pointless, so forget the bottom
- # pane.
- if {$current(mode) == "SRC+ASM"} {
- FillAssembly b $tagname $filename $funcname $line $addr $pc_addr $lib
- }
- }
- }
-
- # After switching panes, clear the previous pane's cursor so that it isn't
- # used as the default when no other cursors are set.
- if { "$oldpane" != "$_tpane" } {
- $twin configure -cursor ""
- }
-
- set current(line) $line
- set current(tag) $tagname
- set current(addr) $addr
- set current(funcname) $funcname
- set current(filename) $filename
- set current(lib) $lib
- if {$do_display_breaks} {
- display_breaks
- set do_display_breaks 0
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: LoadFile - loads in a new source file
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::LoadFile {w name lib mtime_changed} {
- debug "$name $current(filename) $current(mode)"
- upvar ${w}win win
- upvar _${w}pane pane
-
- set oldpane $pane
- set result [LoadFromCache $w $name "S" $lib]
- if {$result == -1} {
- # This is a source file we could not find the source for...
- return 0
- } elseif {$result == 1 || $mtime_changed} {
- $win delete 0.0 end
- debug "READING $name"
- if {[catch {gdb_loadfile $win $name $Linenums} msg]} {
- dbug W "Error opening $name: $msg"
- #if {$msg != ""} {
- # tk_messageBox -icon error -title "GDB" -type ok \
- # -modal task -message $msg
- #}
- UnLoadFromCache $w $oldpane $name "" $lib
- return 0
- }
- }
- set current(filename) $name
- # Display all breaks/traces
- set do_display_breaks 1
- return 1
-}
-
-# ------------------------------------------------------------------
-# METHOD: display_line - make sure a line is displayed and near the center
-# ------------------------------------------------------------------
-
-itcl::body SrcTextWin::display_line { win line } {
- ::update idletasks
- # keep line near center of display
- set pixHeight [winfo height $win]
- set topLine [lindex [split [$win index @0,0] .] 0]
- set botLine [lindex [split [$win index @0,${pixHeight}] .] 0]
- set margin [expr {int(0.2*($botLine - $topLine))}]
- if {$line < [expr {$topLine + $margin}]} {
- set num [expr {($topLine - $botLine) / 2}]
- } elseif {$line > [expr {$botLine - $margin}]} {
- set num [expr {($botLine - $topLine) / 2}]
- } else {
- set num 0
- }
- $win yview scroll $num units
- $win see $line.0
-}
-
-# ------------------------------------------------------------------
-# METHOD: display_breaks - insert all breakpoints and tracepoints
-# uses current(filename) in SOURCE mode
-# ------------------------------------------------------------------
-
-itcl::body SrcTextWin::display_breaks {} {
-# debug
-
- # clear any previous breakpoints
- foreach type "$bp_types tp" {
- foreach {start stop} [$twin tag ranges ${type}_tag] {
- scan $start "%d." linenum
- removeBreakTag $twin $linenum ${type}_tag
- }
- }
-
- # now do second pane if it exists
- if {[info exists bwin]} {
- foreach type "$bp_types tp" {
- foreach {start stop} [$twin tag ranges ${type}_tag] {
- scan $start "%d." linenum
- removeBreakTag $twin $linenum ${type}_tag
- }
- }
- }
-
- # Display any existing breakpoints.
- foreach bpnum [gdb_get_breakpoint_list] {
- set info [gdb_get_breakpoint_info $bpnum]
- set addr [lindex $info 3]
- set line [lindex $info 2]
- set file [lindex $info 0]
- set type [lindex $info 6]
- set enabled [lindex $info 5]
- bp create $bpnum $addr $line $file $type $enabled
- }
- # Display any existing tracepoints.
- foreach bpnum [gdb_get_tracepoint_list] {
- set info [gdb_get_tracepoint_info $bpnum]
- set addr [lindex $info 3]
- set line [lindex $info 2]
- set file [lindex $info 0]
- bp create $bpnum $addr $line $file tracepoint
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: insertBreakTag - insert the right amount of tag chars
-# into the text window WIN, at line linenum.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::insertBreakTag {win linenum tag} {
-# debug "$win $linenum $tag"
-
- # Get the tags at the current line.
-
- # If there is a "break_rgn_tag", then there are currently no other
- # break/trace points at this line. So replace the break_rgn_tag
- # with this tag. Otherwise, add the new tag, and then the joint
- # tag. We will query the length of the previous tag, so we don't have
- # to hard code it here.
-
- set tag_list [$win tag names $linenum.0]
- set img_name [string range $tag 0 [expr [string length $tag] - 5]]
-
- if {[lsearch $tag_list break_rgn_tag] != -1} {
- set stop [lindex [$win tag nextrange break_rgn_tag \
- $linenum.0 "$linenum.0 lineend"] 1]
- $win tag remove break_rgn_tag $linenum.0 "$linenum.0 lineend"
- $win delete $linenum.0
-
- # Strip the "_tag" off the end of the tag to get the image name.
- $win image create $linenum.0 -image $break_images($img_name)
- $win tag add $tag $linenum.0 $stop
- } else {
- set other_tag [lindex $tag_list \
- [lsearch -glob $tag_list {*[bt]p_tag}]]
- if {$other_tag == ""} {
- set stop 4
- } else {
- set stop [lindex [$win tag nextrange $other_tag \
- $linenum.0 "$linenum.0 lineend"] 1]
- }
-
- $win tag add $tag $linenum.0 $stop
- $win image configure $linenum.0 -image $break_images($img_name)
-
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: removeBreakTag - remove a break tag (breakpoint or tracepoint)
-# from the given line. If this is the last break tag on the
-# line reinstall the break_rgn_tag
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::removeBreakTag {win linenum tag } {
-# debug "$win $linenum $tag"
-
- set tag_list [$win tag names $linenum.0]
-
- if {[set pos [lsearch -exact $tag_list $tag]] == -1} {
- debug "Tried to remove non-existant tag $tag"
- return
- } else {
- set tag_list [lreplace $tag_list $pos $pos]
- }
-
- # Use the range of the removed tag for any insertions, so we don't
- # have to hard code it here.
-
- set stop [lindex [$win tag nextrange $tag \
- $linenum.0 "$linenum.0 lineend"] 1]
-
- $win tag remove $tag $linenum.0 "$linenum.0 lineend"
-
- # Now check what other tags are on this line. If there are both bp & tp
- # tags, also remove the joint tag, otherwise install the break_rgn_tag.
-
- switch -glob $tag {
- *bp_tag {
- set only_one_tag [expr [set next_tag_index \
- [lsearch -glob $tag_list tp_tag]] == -1]
- }
- tp_tag {
- # Got to find out what kind of tag is here...
- set only_one_tag [expr [set next_tag_index \
- [lsearch -glob $tag_list *bp_tag]] == -1]
- }
- }
-
- if {$only_one_tag} {
- catch {$win image configure $linenum.0 -image {}}
- $win delete $linenum.0
- $win insert $linenum.0 "-"
- $win tag add break_rgn_tag $linenum.0 $stop
- } else {
- set other_tag [lindex $tag_list $next_tag_index]
- set img_name [string range $other_tag 0 \
- [expr [string length $other_tag] - 5]]
- $win image configure $linenum.0 -image $break_images($img_name)
- $win tag remove bp_and_tp_tag $linenum.0 "$linenum.0 lineend"
- }
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: breakpoint - Handle a breakpoint create, delete,
-# or modify event from the backend.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::breakpoint {bp_event} {
-
- bp [$bp_event get action] [$bp_event get number] [$bp_event get address] \
- [$bp_event get line] [$bp_event get file] [$bp_event get disposition] \
- [$bp_event get enabled] [$bp_event get thread]
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: tracepoint - Handle a tracepoint create, delete,
-# modify event from the backend.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::tracepoint {tp_event} {
-
- bp [$tp_event get action] [$tp_event get number] [$tp_event get address] \
- [$tp_event get line] [$tp_event get file] tracepoint \
- [$tp_event get pass_count]
-}
-
-# ------------------------------------------------------------------
-# METHOD: bp - set and remove breakpoints
-#
-# if $addr is valid, the breakpoint will be set in the assembly or
-# mixed window at that address. If $line and $file are valid,
-# a breakpoint will be set in the source window if appropriate.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::bp {action bpnum addr {linenum {}} {file {}} {type 0} {enabled 0} {thread -1}} {
-# debug "$action addr=$addr line=$linenum file=$file type=$type current(filename)=$current(filename)"
-
- switch $current(mode) {
- SOURCE {
- if {[string compare $file $current(filename)] == 0 && $linenum != {}} {
- do_bp $twin $action $linenum $type $bpnum $enabled $thread 0
- }
- }
-
- SRC+ASM {
- if {$addr != {} && [info exists _map($Cname,pc=$addr)]} {
- do_bp $bwin $action $_map($Cname,pc=$addr) $type $bpnum \
- $enabled $thread 1
- }
- if {[string compare $file $current(filename)] == 0 && $linenum != {}} {
- do_bp $twin $action $linenum $type $bpnum $enabled $thread 0
- }
- }
-
- ASSEMBLY {
- if {$addr != {} &&[info exists _map($Cname,pc=$addr)]} {
- do_bp $twin $action $_map($Cname,pc=$addr) $type $bpnum \
- $enabled $thread 1
- }
- }
-
- MIXED {
- if {$addr != {} && [info exists _map($Cname,pc=$addr)]} {
- do_bp $twin $action $_map($Cname,pc=$addr) $type $bpnum \
- $enabled $thread 1
- }
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: do_bp - bp helper function
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::do_bp { win action linenum type bpnum enabled thread asm} {
-# debug "$action line=$linenum type=$type bpnum=$bpnum enabled=$enabled thread=$thread"
-
- if {$dont_change_appearance} {
- return
- }
-
- if {$action == "delete" && [string compare $type tracepoint] != 0} {
- # make sure there are no more breakpoints on
- # this line.
- if {!$asm} {
- set bps [gdb_find_bp_at_line $current(filename) $linenum]
- } else {
- if {[info exists _map($Cname,line=$linenum)]} {
- set bps [gdb_find_bp_at_addr $_map($Cname,line=$linenum)]
- } else {
- set bps {}
- }
- }
- if {[llength $bps] > 0} {
- foreach b $bps {
- if {$b != $bpnum} {
- # OK we found another BP on this line.
- # So we really just want to modify whats
- # displayed on the line instead of deleting it.
- # Also, for lack of a better solution, we will
- # just display an image corresponding to the
- # first found BP. If you have a temporary and
- # a perm BP on the same line, the image for the one
- # with the lower bpnum will be displayed.
- set inf [gdb_get_breakpoint_info $b]
- set action "modify"
- set type [lindex $inf 6]
- set bpnum $b
- break
- }
- }
- }
- }
-
- if {[string compare $type "tracepoint"] == 0} {
- if {[string compare $action "delete"] != 0
- && [lindex [gdb_get_tracepoint_info $bpnum] 4] == 0} {
- set type disabled_tracepoint
- }
- } else {
- if {$enabled == "0" } {
- set type disabled_bp
- } elseif {$thread != "-1"} {
- set type thread
- }
- }
-
- switch $type {
- donttouch {
- set tag_type bp_tag
- set remove_type disabled_bp_tag
- }
- delete {
- set tag_type temp_bp_tag
- }
- disabled_bp {
- set tag_type disabled_bp_tag
- set remove_type bp_tag
- }
- tracepoint {
- set tag_type tp_tag
- set remove_type disabled_tp_tag
- }
- disabled_tracepoint {
- set tag_type disabled_tp_tag
- set remove_type tp_tag
- }
- thread {
- set tag_type thread_bp_tag
- }
- default {
- dbug E "UNKNOWN BP TYPE action=\"$action\" type=\"$type\""
- $win insert $linenum.0 "X" bp_tag
- set tag_type bp_tag
- }
- }
-
- if {[string compare $action "delete"] == 0} {
- removeBreakTag $win $linenum $tag_type
- } else {
- if {[string compare $action "modify"] == 0 && $remove_type != ""} {
- removeBreakTag $win $linenum $remove_type
- }
- insertBreakTag $win $linenum $tag_type
- }
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: hasBP - see if a line number has a breakpoint set
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::hasBP {win line} {
- if {$win == ""} {
- set win $popups(saved_win)
- }
-
- if {[lsearch -glob [$win tag names $line.0] *bp_tag] >= 0} {
- return 1
- }
- return 0
-}
-
-# ------------------------------------------------------------------
-# METHOD: hasTP - see if a line number has a tracepoint set
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::hasTP {win line} {
- if {$win == ""} {
- set win $popups(saved_win)
- }
-
- if {[lsearch -exact [$win tag names $line.0] tp_tag] == 1} {
- return 1
- }
- return 0
-}
-
-# ------------------------------------------------------------------
-# METHOD: report_source_location
-#
-# This function reports the "current" location in the source
-# window, where current means what gdb_loc would return, if
-# that point is actually visible in the window, or the middle
-# of the current window, if that point is not visible.
-#
-# Return:
-# The gdb_loc result for the location found
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::report_source_location {} {
-
- if {$current(filename) == ""} {
- error "No source file in window"
- }
-
- # Figure out if the return from gdb_loc is visible.
-
- set not_visible 1
- if {![catch {gdb_loc} loc_info]} {
- set loc_long_name [lindex $loc_info 2]
- set loc_line [lindex $loc_info 3]
-# debug "Got loc_info: \"$loc_info\" and filename $current(filename) long_name: $loc_long_name"
- if {[string compare $current(filename) $loc_long_name] != 0} {
- set not_visible 1
- } else {
- foreach {name line} [lookup_line $twin 1] {
- break
- }
- if {$line < $loc_line} {
- foreach {name line} [lookup_line $twin [winfo height $twin]] {
- break
- }
- if {$line > $loc_line} {
- set not_visible 0
- }
- }
- }
- } else {
- debug "gdb_loc returned $loc_info"
- }
-
- if {$not_visible} {
- set y [expr int([winfo height $twin] / 2)]
- foreach {name line addr type} [lookup_line $twin $y] {
- break
- }
- switch $type {
- src {
- return [gdb_loc $name:$addr]
- }
- asm {
- return [gdb_loc *$addr]
- }
- }
- } else {
- return $loc_info
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: lookup_line - translated win & y position line info
-#
-# If win is {}, or y is -1, then the saved values from the popup
-# array are used.
-#
-# Return:
-# name - the fileName
-# line - the line number in the text widget
-# addr - the source line number, if in source mode, the
-# address if in assembly mode, and if in mixed mode,
-# the line if it is a source line, or the address if it
-# is an assembly line
-# type - src if it is a source line, asm if an assembly line.
-# set_cmd - for convenience, this is the command needed to set a
-# breakpoint at this address.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::lookup_line {win y} {
- #debug "$win $y"
- if {$y == -1} {
- set y $popups(saved_y)
- }
-
- if {$win == {}} {
- set win $popups(saved_win)
- }
-
- scan [$win index @0,$y] "%d." line
- set name [lindex [::file split $current(filename)] end]
-
- # If we are in the SOURCE window (either because the mode is SOURCE,
- # or SRC+ASM, and we are in the upper pane, then return the
- if {([string compare $current(mode) SOURCE] == 0)
- || ([string compare $current(mode) SRC+ASM] == 0
- && [string compare $win $twin] == 0)} {
- set addr $line
- set type "src"
- } else {
- if {[info exists _map($Cname,line=$line)]} {
- set addr $_map($Cname,line=$line)
- set type "asm"
- } else {
- # This is a source line in MIXED mode
- set line_contents [$win get $line.0 "$line.0 lineend"]
- #debug "Looking at line: $line contents: \"$line_contents\""
- regexp "^\t(\[0-9\]*)" $line_contents match srcline
- set addr $srcline
- set type "src"
- }
- }
-
- switch $type {
- asm {
- set set_cmd [list gdb_set_bp_addr $addr]
- }
- src {
- set set_cmd [list gdb_set_bp $current(filename) $addr]
- }
- }
-
- #debug "Lookup line returning [list $name $line $addr $type $set_cmd]"
- return [list $name $line $addr $type $set_cmd]
-}
-
-# ------------------------------------------------------------------
-# METHOD: continue_to_here - Advance to the line pointed to by the
-# y coordinate in the window win. If win is {} or y is -1, the values
-# saved in the popups array are used.
-#
-# The threads parameter is not currently used.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::continue_to_here {{win {}} {y -1} {threads -1}} {
-
- # Look up the line... This foreach is an lassign...
- foreach {name line addr type set_cmd} [lookup_line $win $y] {
- break
- }
-
- set dont_change_appearance 1
- foreach i [gdb_get_breakpoint_list] {
- set enabled($i) [lindex [gdb_get_breakpoint_info $i] 5]
- }
- gdb_cmd "disable"
- eval $set_cmd temp $threads
- gdb_immediate "continue"
- gdb_cmd "enable"
- foreach i [gdb_get_breakpoint_list] {
- if {![info exists enabled($i)]} {
- gdb_cmd "delete $i"
- } elseif {!$enabled($i)} {
- gdb_cmd "disable $i"
- }
- }
- set dont_change_appearance 0
-}
-
-# ------------------------------------------------------------------
-# METHOD: jump_to_here - Advance to the line pointed to by the
-# y coordinate in the window win. If win is {} or y is -1, the values
-# saved in the popups array are used.
-#
-# The threads parameter is not currently used.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::jump_to_here {{win {}} {y -1} {threads -1}} {
-
- # Look up the line... This foreach is an lassign...
- foreach {name line addr type set_cmd} [lookup_line $win $y] {
- break
- }
-
- # Unfortunately we cant set the pc to a linespec and we have to do a
- # trick with a temporary breakpoint and the jump command.
- # FIXME: Get the address from the linespec.
- # FIXME: Even in the case we do have an address, I was not able to just
- # change the PC and get things updated wright. While I work on that,
- # I will use the temp breakpoint and jump trick for that case as well.
-
- set dont_change_appearance 1
-
- foreach i [gdb_get_breakpoint_list] {
- set enabled($i) [lindex [gdb_get_breakpoint_info $i] 5]
- }
- gdb_cmd "disable"
-
- if {$type == "asm"} {
- gdb_immediate "tbreak *$addr"
- gdb_immediate "jump *$addr"
- } else {
- eval $set_cmd temp $threads
- gdb_immediate "jump $name:$line"
- }
- gdb_cmd "enable"
- foreach i [gdb_get_breakpoint_list] {
- if {![info exists enabled($i)]} {
- gdb_cmd "delete $i"
- } elseif {!$enabled($i)} {
- gdb_cmd "disable $i"
- }
- }
- set dont_change_appearance 0
-}
-
-# ------------------------------------------------------------------
-# METHOD: set_bp_at_line - called when an empty break tag is clicked on
-#
-# When "threads" is set it means to set a bp on each thread in the list.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::set_bp_at_line {{type N} {win {}} {y -1} {threads "-1"}} {
-# debug "$win $y $type $current(filename) Tracing=$Tracing"
- if {$Running} {return}
-
- # Look up the line... This foreach is an lassign...
-
- foreach {name line addr addr_type set_cmd} [lookup_line $win $y] {
- break
- }
-
- foreach th $threads {
- switch $type {
- N {
- if {[catch {eval $set_cmd normal $th} msg]} {
- dbug W $msg
- }
- }
- T {
- if {[catch {eval $set_cmd temp $th} msg]} {
- dbug W $msg
- }
- }
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: enable_disable_at_line - Enable or disable breakpoint
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::enable_disable_at_line {action} {
- if {$Running} {
- return
- }
-
- # FIXME: should this work on $bwin as well? In that case we'd need
- # a `win' argument...
-
- set y $popups(saved_y)
-
- $twin tag remove _show_variable 1.0 end
- set line [lindex [split [$twin index @0,$y] .] 0]
- set bps ""
-
- switch $current(mode) {
- SRC+ASM {
- }
- ASSEMBLY {
- if {[info exists _map($Cname,line=$line)]} {
- set addr $_map($Cname,line=$line)
- set bps [gdb_find_bp_at_addr $addr]
- } else {
- return
- }
- }
- MIXED {
- if {[info exists _map($Cname,line=$line)]} {
- set addr $_map($Cname,line=$line)
- set bps [gdb_find_bp_at_addr $addr]
- } else {
- return
- }
- }
- }
-
- if {$bps == ""} {
- set bps [gdb_find_bp_at_line $current(filename) $line]
- }
-
- # ACTION is `enable' or `disable'
- gdb_cmd "$action $bps"
-}
-
-# ------------------------------------------------------------------
-# METHOD: remove_bp_at_line - called when a bp tag is clicked on
-#
-# when "threads" is set it means to set a bp on each thread in the list.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::remove_bp_at_line {{win {}} {y -1}} {
-
- if {$Running} {return}
-
- # Look up the line... This foreach is an lassign...
-
- foreach {name line addr type} [lookup_line $win $y] {
- break
- }
-
- # FIXME: if there are multiple bp/tp at a single line,
- # we will (right now) always take the first one we find...
- switch $type {
- src { set bps [gdb_find_bp_at_line $name $addr] }
- asm { set bps [gdb_find_bp_at_addr $addr] }
- }
-
- set number [lindex $bps 0]
- gdb_cmd "delete $number"
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: set_tp_at_line - called when an empty break region tag is clicked on
-#
-# when "threads" is set it means to set a bp on each thread in the list.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::set_tp_at_line {{win {}} {y -1}} {
-# debug "$win $y $current(filename) Tracing=$Tracing"
-
- if {$Running} {return}
-
- # Look up the line... This foreach is an lassign...
-
- foreach {name line addr type} [lookup_line $win $y] {
- break
- }
-
- switch $type {
- src {
- after idle [list ManagedWin::open TraceDlg -File $name -Lines $addr]
- }
- asm {
- after idle [list ManagedWin::open TraceDlg -File $name -Addresses [list $addr]]
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: next_hit_at_line - Finds the next trace hit at the line
-# given by win & y...
-#
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::next_hit_at_line {{win {}} {y -1}} {
-# debug "$win $y $current(filename) Tracing=$Tracing"
-
- if {!$Browsing} {return}
-
- # Look up the line... This foreach is an lassign...
-
- foreach {name line addr type} [lookup_line $win $y] {
- break
- }
-
- # If the line and the addr are the same, then the specification was
- # given by line. Otherwise is was a memory address.
-
- switch $type {
- src {
- tfind_cmd "tfind line $name:$addr"
- }
- asm {
- tfind_cmd "tfind line *$addr"
- }
- }
-
-}
-
-# ------------------------------------------------------------------
-# METHOD: remove_tp_at_line - called when a tp tag is clicked on
-#
-# when "threads" is set it means to set a bp on each thread in the list.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::remove_tp_at_line {{win {}} {y -1}} {
-
- if {$Running} {return}
-
- # Look up the line... This foreach is an lassign...
-
- foreach {name line addr type} [lookup_line $win $y] {
- break
- }
- switch $type {
- src {
- set tp_num [gdb_tracepoint_exists $name:$addr]
- }
- asm {
- set tp_num [gdb_tracepoint_exists *$addr]
- }
- }
-
- if {$tp_num != -1} {
- if {[catch {gdb_cmd "delete tracepoints $tp_num"} errTxt]} {
- tk_messageBox -type error -message "Could not delete tracepoint number $tp_num
-Error was: $errTxt"
- }
- }
-
-}
-
-# ------------------------------------------------------------------
-# METHOD: do_tag_popup - The tag bind function for breakpoint popups
-# ------------------------------------------------------------------
-
-itcl::body SrcTextWin::do_tag_popup {name X Y y} {
-
-# debug "$name $X $Y $y"
-
- if {$Running || [winfo ismapped $popups($name)]} {
- return
- }
-
- set popups(saved_y) $y
- set popups(saved_win) [winfo containing -displayof $itk_interior $X $Y]
-
- # Hide variable balloons before showing the popup
- $twin tag remove _show_variable 1.0 end
- balloon withdraw $twin
-
- tk_popup $popups($name) $X $Y
-
-}
-
-# ------------------------------------------------------------------
-# METHOD: do_source_popup - tag bind function for source popups
-# ------------------------------------------------------------------
-
-itcl::body SrcTextWin::do_source_popup { X Y x y } {
- if {$Running || [winfo ismapped $popups(source)]} {
- return
- }
-
- # Figure out what window we are over...
- set win [winfo containing -displayof $itk_interior $X $Y]
-
- # Hide variable balloons before showing the popup
- $win tag remove _show_variable 1.0 end
- balloon withdraw $win
- catch {$_balloon_var delete}
-
-
- # Try to get the selection. If you fail, get the word around the
- # click point.
- # Note that we don't have to worry about the user clicking over the
- # break area, since the break_rgn_tag will override this...
-
- set hit_point [$win index @$x,$y]
- if {([$win tag ranges sel] != "")
- && ([$win compare sel.first < $hit_point]
- && [$win compare $hit_point < sel.last])} {
- set sel_first [$win index sel.first]
- set sel_last [$win index sel.last]
-
- # If there was a selection, see if it spans multiple lines.
- scan $sel_first "%d.%d" range_low sel_start_char
- scan $sel_last "%d.%d" range_high sel_end_char
-
- if {$range_low == $range_high} {
- set range -1
- set target_range [$win get sel.first sel.last]
- } else {
- # If the selection encompasses multiple lines, we only care about
- # the start and ending line numbers
- set range 1
- }
- } else {
- set target_range [$win get "$hit_point wordstart" "$hit_point wordend"]
- set range 0
- }
-
- $popups(source) delete 0 end
-
- if {$range && $Tracing} {
- # If the selection spans more than one line, it can't be a variable name...
- # So just insert the tracepoint range item
- $popups(source) add command -label "Set Tracepoint Range" \
- -command "$this tracepoint_range $win $range_low $range_high"
- $popups(source) add separator
- } elseif {$range != 1} {
- # RANGE = -1 means that we have already found the word we want (it was
- # a selection)...
- # RANGE = 1 means we got the word around the point, and we are just saving
- # getVariable the trouble of parsing it again.
- if {$range == -1} {
- set variable $target_range
- } else {
- set variable [lindex [getVariable -1 -1 $target_range] 0]
- }
-
- if {$variable != ""} {
- # LAME: check to see if VARIABLE is really a number (constants??)
- set is_var [catch {expr {$variable+1}}]
-
- if {$is_var} {
- $popups(source) add command -label "Add $variable to Watch" \
- -command [list $this addToWatch $variable]
- $popups(source) add command -label "Dump Memory at $variable" \
- -command [list ManagedWin::open MemWin -force -addr_exp $variable]
- $popups(source) add command -label "Set Breakpoint at $variable" \
- -command [list gdb_cmd "break $variable"]
- $popups(source) add separator
- }
- }
- }
-
- $popups(source) add command -label "Open Another Source Window" \
- -command {ManagedWin::open SrcWin -force}
- $popups(source) add command -label "Open Source in external editor" \
- -command [code $parent edit]
-
- tk_popup $popups(source) $X $Y
-}
-
-# ------------------------------------------------------------------
-# METHOD: addToWatch - add a variable to the watch window
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::addToWatch {var} {
- [ManagedWin::open WatchWin] add $var
-}
-
-# ------------------------------------------------------------------
-# METHOD: do_key -- wrapper for all key bindings
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::do_key {key} {
- if {!$Running} {
- switch $key {
- print { print $top }
- download { Download::download_it }
- run { $parent inferior run }
- stack { ManagedWin::open StackWin }
- registers { ManagedWin::open RegWin }
- memory { ManagedWin::open MemWin }
- watch { ManagedWin::open WatchWin }
- locals { ManagedWin::open LocalsWin }
- breakpoints { ManagedWin::open BpWin }
- console { ManagedWin::open Console }
- step { $parent inferior step }
- next { $parent inferior next }
- finish { $parent inferior finish }
- continue { $parent inferior continue }
- stepi { $parent inferior stepi }
- nexti { $parent inferior nexti }
- up { catch {gdb_cmd up} }
- down { catch {gdb_cmd down} }
- quit { gdbtk_quit }
- tdump { ManagedWin::open TdumpWin }
- tracepoints { ManagedWin::open BpWin -tracepoints 1}
- tfind_next { catch {gdb_immediate tfind} }
- tfind_prev { catch {gdb_immediate "tfind -"} }
- tfind_start { catch {gdb_immediate "tfind start"} }
- tfind_line { catch {gdb_immediate "tfind line"} }
- tfind_tp { catch {gdb_immediate "tfind tracepoint"} }
- open { catch {_open_file} }
- close { catch {_close_file} }
- browser { catch {ManagedWin::open BrowserWin} }
- thread_list { catch {ManagedWin::open ProcessWin} }
- debug { catch {ManagedWin::open DebugWin} }
- kod { catch {ManagedWin::open KodWin} }
- attach { catch {gdbtk_attach_native} }
- default {
- dbug E "Unknown key binding: \"$key\""
- }
- }
- } else {
-# debug "ignoring keypress -- running"
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: mode_get - get the source mode
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::mode_get {} {
- return $current(mode)
-}
-
-# ------------------------------------------------------------------
-# METHOD: mode_set - change the source mode
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::mode_set {new_mode {go 1}} {
- debug "$new_mode"
-
- if {$new_mode != $current(mode)} {
-
- if {$current(mode) == "SRC+ASM"} {
- if {$_bpane != ""} {$itk_interior.p hide $_bpane}
- set _bpane ""
- set _bwin ""
- }
-
- set current(mode) $new_mode
- set mode_changed 1
-
- if {$go} {
- location $current(tag) $current(filename) $current(funcname) \
- $current(line) $current(addr) $pc(addr) $current(lib)
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: cancelMotion - cancel any pending motion callbacks for
-# the source window's variable balloons
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::cancelMotion {} {
- catch {after cancel $timeoutID}
-}
-
-# ------------------------------------------------------------------
-# METHOD: motion - callback for mouse motion within the source
-# window's text widget
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::motion {type win x y} {
- global gdb_running
- cancelMotion
-
- # The showBalloon method can sometimes raise errors (for instance in
- # assembly code with no sources, and when gdb coughs over a path
- # that contains a space. These functions should error quietly.
- # but write to the debug window so we can trace problems.
-
- if {$type == "var"} {
- set cmd_bit ""
- } else {
- set cmd_bit BP
- }
- set cmd_line [format {
- if {[catch {%s show%sBalloon %s %d %d} err]} {
- debug "show%sBalloon got error: $err"
- }
- } $this $cmd_bit $win $x $y $cmd_bit]
- set timeoutID [after $TimeOut $cmd_line]
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: showBPBalloon - show BP information in a balloon
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::showBPBalloon {win x y} {
- if {$Running} { return }
- $win tag remove _show_variable 1.0 end
- set line [lindex [split [$win index @0,$y] .] 0]
- set bps ""
-
- switch $current(mode) {
- SRC+ASM {
- if {$win == $bwin} {
- if {[info exists _map($Cname,line=$line)]} {
- set addr $_map($Cname,line=$line)
- set bps [gdb_find_bp_at_addr $addr]
- } else {
- return
- }
- }
- }
- ASSEMBLY {
- if {[info exists _map($Cname,line=$line)]} {
- set addr $_map($Cname,line=$line)
- set bps [gdb_find_bp_at_addr $addr]
- } else {
- return
- }
- }
- MIXED {
- if {[info exists _map($Cname,line=$line)]} {
- set addr $_map($Cname,line=$line)
- set bps [gdb_find_bp_at_addr $addr]
- } else {
- return
- }
- }
- }
-
- if {$bps == ""} {
- set bps [gdb_find_bp_at_line $current(filename) $line]
- }
-
- set str ""
- set need_lf 0
- foreach b $bps {
- set bpinfo [gdb_get_breakpoint_info $b]
- lassign $bpinfo file func linenum addr type enabled disposition \
- ignore_count commands cond thread hit_count user_specification
- set file [lindex [file split $file] end]
- if {$enabled} {
- set enabled "ENA"
- } else {
- set enabled "DIS"
- }
-
- if {$need_lf} {append str \n}
-
- append str [format "breakpoint %d at %s:%d (%s)\n %s %s %s" \
- $b $file $linenum $addr $enabled $type $disposition]
-
- if {$thread != "-1"} {
- append str "\n threads: $thread"
- }
-
- if {$ignore_count != 0} {
- append str "\n ignore: $ignore_count"
- }
-
- if {$cond != ""} {
- append str "\n condition: $cond"
- }
-
- if {$commands != ""} {
- if {[string length $commands] > 50} {
- append str "\n commands: [string range $commands 0 50] ..."
- } else {
- append str "\n commands: $commands"
- }
- }
- set need_lf 1
- }
-
- # Scope out which break type is set here, and use the tag to get
- # the break region range...
-
- set tag_list [$win tag names $line.0]
- set break_tag [lindex $tag_list [lsearch -glob $tag_list *bp_tag]]
- set end [lindex [$win tag nextrange $break_tag $line.0 $line.end] 1]
-
- if {$end != ""} {
- $win tag add _show_variable $line.0 $end
- balloon register $win $str _show_variable
- balloon show $win _show_variable 1
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: showBalloon - (possibly) show a variable's value in
-# a balloon-help widget
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::showBalloon {win x y} {
- if {$Running} { return }
-
- $twin tag remove _show_variable 1.0 end
- catch {tmp delete}
-
-
- if {[catch {getVariable $x $y} variable]} {
- return
- }
-
- if {[llength $variable] != 3} {
- return
- }
-
- # We get the variable name, and its start and stop indices in the text
- # widget, so all we need to do is set the tag and register the balloon help
- set varName [lindex $variable 0]
- set start [lindex $variable 1]
- set stop [lindex $variable 2]
-
- # Get the address associated with this line
- foreach {file text_line source_line type} [lookup_line $twin $y] {
- break
- }
-
- # Reduce the areas over which we will show balloons.
- # 1) Only pop up a balloon if we are over the function in
- # the currently selected frame, or in the static data for
- # the file.
- # 2) We would also like to exclude cases where the line that
- # under the mouse cursor does not contain executable code,
- # but we can't since gdb considers continuation lines to not
- # have executible code so we would lose on these...
-
- set cur_fn [lindex [gdb_loc $file:$source_line] 1]
- set selected_frame_fn [lindex [gdb_loc] 1]
-
- if {[string compare $cur_fn $selected_frame_fn] == 0} {
- # Create the variable object
- catch {$_balloon_var delete}
- set err [catch {gdb_variable create -expr $varName} _balloon_var]
- if {!$err} {
- set value [balloon_value $_balloon_var]
- if {$value != ""} {
- $win tag add _show_variable $start $stop
-
- # display variable's value
- balloon register $twin "$varName=$value" _show_variable
- balloon show $win _show_variable
- } else {
- # No value/error. Don't show it.
- catch {$_balloon_var delete}
- set _balloon_var {}
- }
- } else {
- set _balloon_var {}
- }
- } else {
- set _balloon_var {}
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: getVariable - get the name of the 'variable' under the
-# mouse pointer in the text widget
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::getVariable {x y {line {}}} {
- #debug "$x $y $line"
- set hit_point [$twin index @$x,$y]
-
- if {$x != -1 && $y != -1} {
- # If we are over a selection, just report that:
- if {([$twin tag ranges sel] != "")
- && ([$twin compare sel.first < $hit_point]
- && [$twin compare $hit_point < sel.last])} {
- return [list [$twin get sel.first sel.last] [$twin index sel.first] [$twin index sel.last]]
- }
- # Since we will only be concerned with this line, get it
- set line [$twin get "$hit_point linestart" "$hit_point lineend"]
- # debug "new line=$line"
- set simple 0
- } else {
- # This is not quite right -- still want constants to appear...
- set simple 1
- }
-
- # The index into LINE that contains the char at which the pointer hangs
- set a [split [$twin index @$x,$y] .]
- set lineNo [lindex $a 0]
- set index [lindex $a 1]
- set s [string range $line $index end]
- set last {}
- foreach char [split $s {}] {
- if {[regexp -- {([^a-zA-Z0-9_>.-])} $char dummy]} {
- break
- }
- lappend last $char
- }
- set last [string trimright [join $last {}] ->]
-
- # Decrement index for string -- will need to increment it later
- incr index -1
- set tmp [string range $line 0 $index]
- set s {}
- foreach char [split $tmp {}] {
- set s [linsert $s 0 $char]
- }
-
- set first {}
- foreach char $s {
- if {[regexp -- {([^a-zA-Z0-9_>.-])} $char dummy]} {
- break
- }
- set first [linsert $first 0 $char]
- }
- #set first [string trimleft [join $first {}] ->]
- set first [join $first {}]
- #debug "FIRST=$first\nLAST=$last"
-
- # Validate the variable
- set variable [string trim $first$last \ ]
- if {!$simple && ![regexp {^[a-zA-Z_]} $variable dummy]} {
- #debug "Rejecting: $variable"
- return {}
- }
-
- incr index
- # Find the boundaries of this word in the text box
- set a [string length $first]
- set b [string length $last]
-
- # Gag! If there is a breakpoint at a line, this is off by one!
- if {[hasBP $twin $lineNo] || [hasTP $twin $lineNo]} {
- incr a -1
- incr b 1
- }
- set start "$lineNo.[expr {$index - $a}]"
- set end "$lineNo.[expr {$index + $b}]"
- return [list $variable $start $end]
-}
-
-# ------------------------------------------------------------------
-# METHOD: trace_help - update statusbar with ballon help message
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::trace_help {args} {
- upvar #0 ${this}_balloon a
- if {$a == ""} {
- $parent set_status
- } else {
- $parent set_status $a 1
- }
-}
-
-itcl::body SrcTextWin::line_is_executable {win line} {
- # there should be an image or a "-" on the line
- set res [catch {$win image cget $line.0 -image}]
- if {!$res || [$win get $line.0] == "-"} {
- return 1
- }
- return 0
-}
-
-# ------------------------------------------------------------------
-# METHOD: tracepoint_range - create tracepoints at every line in
-# a range of lines on the screen
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::tracepoint_range {win low high} {
-# debug "$win $low $high"
-
- switch $current(mode) {
- SOURCE {
- set lines {}
- for {set i $low} {$i <= $high} {incr i} {
- if {[line_is_executable $win $i]} {
- lappend lines $i
- }
- }
- }
-
- ASSEMBLY {
- set addrs {}
- for {set i $low} {$i <= $high} {incr i} {
- lappend addrs $_map($Cname,line=$i)
- }
- }
-
- MIXED {
- set addrs {}
- for {set i $low} {$i <= $high} {incr i} {
- if {[line_is_executable $win $i]} {
- lappend addrs $_map($Cname,line=$i)
- }
- }
- }
-
- SRC+ASM {
- if {$win == $awin} {
- # Assembly
- set addrs {}
- for {set i $low} {$i <= $high} {incr i} {
- lappend addrs $_map($Cname,line=$i)
- }
- } else {
- # Source
- set lines {}
- for {set i $low} {$i <= $high} {incr i} {
- if {[line_is_executable $win $i]} {
- lappend lines $i
- }
- }
- }
- }
- }
-
- if {[info exists lines]} {
-# debug "Got executible lines: $lines"
- if {[llength $lines]} {
- set name [::file tail $current(filename)]
- ManagedWin::open TraceDlg -File $name -Lines $lines
- }
- } elseif {[info exists addrs]} {
-# debug "Got executible addresses: $addrs"
- if {[llength $addrs]} {
- set name [::file tail $current(filename)]
- ManagedWin::open TraceDlg -File $name -Addresses $addrs
- }
- } else {
-# debug "Got no executible lines in the selected range..."
- }
-
- # Clear the selection -- it looks a lot better.
- $twin tag remove sel 1.0 end
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: search - search for text or jump to a specific line
-# in source window, going in the specified DIRECTION.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::search {exp direction} {
- if {$exp != ""} {
- set result {}
- if {[regexp {^@([0-9]+)} $exp dummy index]} {
- append index .0
- set end [$twin index "$index lineend"]
- } else {
- set index [$twin search -exact -count len -$direction -- $exp $SearchIndex]
-
- if {$index != ""} {
- set end [split $index .]
- set line [lindex $end 0]
- set char [lindex $end 1]
- set char [expr {$char + $len}]
- set end $line.$char
- set result "Match of \"$exp\" found on line $line"
- if {$direction == "forwards"} {
- set SearchIndex $end
- } else {
- set SearchIndex $index
- }
- }
- }
- if {$index != ""} {
- # Highlight word and save index
- $twin tag remove search 1.0 end
- $twin tag add search $index $end
- $twin see $index
- } else {
- set result "No match for \"$exp\" found"
- }
- return $result
- } else {
- $twin tag remove search 1.0 end
- }
-}
-
-# -----------------------------------------------------------------------------
-# NAME: SrcTextWin::LoadFromCache
-#
-# SYNOPSIS: LoadFromCache {w name asm lib}
-#
-# DESC: Looks up $name in the cache. If $name is cached, replace the
-# pane $w with the cached pane. Otherwise create a new
-# pane and scrolledtext widget and set _${w}pane and _${w}win.
-#
-# ARGS: w "t" or "b" (for Top and Bottom pane)
-# name name to look for in cache. This will be a filename if
-# we are filling in a source window, or an address
-# otherwise.
-# asm 'S' for source,
-# 'A' for assembly mode
-# 'M' for mixed mode.
-# lib library name
-#
-# RETURNS: 0 - read from cache
-# 1 - created new (blank) widget
-# -1 - could not find the contents you are trying to load,
-# so far this only happens for "Source" files.
-#
-# NOTES: If you call this and a new widget is created which cannot be
-# filled in later due to errors, call UnLoadFromCache.
-# -----------------------------------------------------------------------------
-
-itcl::body SrcTextWin::LoadFromCache {w name asm lib} {
- debug "LoadFromCache $w $name $asm"
- global tcl_platform
- upvar ${w}win win
- upvar _${w}pane pane
-
- if {[string compare gdbtk_scratch_widget $name]} {
- append full_name $name "," $asm "," $lib
- } else {
- set full_name $name
- }
-
- set loadingSource [expr ![string compare $asm "S"]]
-
- set oldpane $pane
- if {[info exists Stwc($full_name:pane)]} {
- debug "READING CACHE $full_name->$Stwc($full_name:pane)"
- set pane $Stwc($full_name:pane)
- if {$oldpane != ""} {
- $itk_interior.p replace $oldpane $pane
- } else {
- $itk_interior.p show $pane
- }
- set win [[$itk_interior.p childsite $pane].st component text]
- if {!$loadingSource} {
- set Cname $full_name
- }
-
- # If the text in this cache file is dirty, clean the window, and
- # return 1, which will tell the caller to refill it. Otherwise
- # return 0, and the caller will just display the window.
-
- if {$Stwc($name:dirty)} {
- $win delete 0.0 end
- set res 1
- set Stwc($name:dirty) 0
- } else {
- set res 0
- }
-
- } else {
- debug "name=$name"
- # If we are trying to load a source file, check the time
- # to see if we need to update it. If we can't stat the
- # file then we probably can't open it either, so error
- # out.
-
- if {$loadingSource} {
- if {[string compare $tcl_platform(platform) "windows"] == 0} {
- set f [ide_cygwin_path to_win32 $name]
- } else {
- set f $name
- }
- if {[catch {file mtime $f} file_time]} {
- debug "Could not stat file \"$f\" - \"$file_time\""
- return -1
- } else {
- set Stwc($full_name:pane) pane$filenum
- set Stwc($name:mtime) $file_time
- }
- } else {
- # FIXME: This is wrong. For Assembly files we need to
- # check whether the executable is newer than the cached
- # disassembly. For mixed files, we need to check BOTH
- # the source file mtime, and the executable time.
-
- set Stwc($full_name:pane) pane$filenum
- set Stwc($name:mtime) 0
- }
-
- set Stwc($full_name:pane) pane$filenum
-
- set Stwc($name:dirty) 0
- incr filenum
-
- set pane $Stwc($full_name:pane)
- debug "pane=$pane"
- if {$oldpane != ""} {$itk_interior.p hide $oldpane}
- $itk_interior.p add $pane
- set p [$itk_interior.p childsite $pane]
- set st [iwidgets::scrolledtext $p.st \
- -hscrollmode dynamic -vscrollmode dynamic]
- set win [$st component text]
-
- if {!$loadingSource} {
- set Cname $full_name
- }
- pack $st -expand yes -fill both
- set res 1
- }
-
- # reconfigure in case some preferences have changed
- config_win $win $asm
- return $res
-}
-
-# ------------------------------------------------------------------
-# METHOD: UnLoadFromCache - revert back to previously cached widget
-# This is used when a new widget is created with LoadFromCache but
-# there is a problem with filling the widget.
-# ------------------------------------------------------------------
-
-itcl::body SrcTextWin::UnLoadFromCache {w oldpane name asm lib} {
-# debug "$w $oldpane $name"
- upvar ${w}win win
- upvar _${w}pane pane
-# debug "pane=$pane win=$win"
-
-
- set full_name ${name},${asm},${lib}
- $itk_interior.p delete $pane
- foreach elem [array names Stwc $full_name:*] {
- unset Stwc($elem)
- }
- foreach elem [array names Stwc $name:*] {
- unset Stwc($elem)
- }
-
- if {$oldpane != ""} {
- $itk_interior.p show $oldpane
- set pane $oldpane
- set win [[$itk_interior.p childsite $pane].st component text]
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: print - print the contents of the text widget
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::print {top} {
- # FIXME
- send_printer -ascii [$twin get 1.0 end] -parent $top
-}
-
-# ------------------------------------------------------------------
-# METHOD: ask_thread_bp - prompt for thread(s) for BP
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::ask_thread_bp {} {
-# debug
- if {[catch {gdb_cmd "info thread"} threads]} {
- # failed. Just leave
- return
- }
- set threads [split $threads \n]
- set num_threads [expr {[llength $threads] - 1}]
- if {$num_threads <= 0} {
- show_warning "No threads were found.\nYou may only set breakpoints on threads\nthat have already been created."
- return
- }
-
- set a [toplevel .[gensym]]
- wm title $a "Thread Selection"
-
- iwidgets::scrolledlistbox $a.slb \
- -vscrollmode dynamic -hscrollmode dynamic \
- -selectmode multiple -textfont global/fixed
-
- set i [expr $num_threads - 1]
- set width 0
- foreach line $threads {
- # Active line starts with "*"
- if {[string index $line 0] == "*"} {
- # strip off leading "*"
- set line " [string trimleft $line "*"]"
- }
- # scan for GDB ID number at start of line
- if {[scan $line "%d" id($i)] == 1} {
- if {[string length $line] > $width} {
- set width [string length $line]
- }
- $a.slb insert 0 $line
- incr i -1
- }
- }
- $a.slb configure -visibleitems ${width}x$num_threads
- [$a.slb component listbox] configure -bg $::Colors(textbg) -fg $::Colors(textfg)
-
- frame $a.b
- button $a.b.ok -text OK -underline 0 -width 7 \
- -command "$this do_thread_bp $a.slb"
- button $a.b.cancel -text Cancel -width 7 -underline 0 -command "destroy $a"
- pack $a.b.ok $a.b.cancel -side left
- standard_button_box $a.b
- pack $a.b -fill x -expand yes -side bottom -padx 5 -pady 5
- center_window $a -over [winfo toplevel [namespace tail $this]]
- pack $a.slb -side top -fill both -expand yes
- bind $a.b.ok <Return> "$a.b.ok flash; $a.b.ok invoke"
- focus $a.b.ok
-}
-
-# ------------------------------------------------------------------
-# METHOD: do_thread_bp - callback from thread selection
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::do_thread_bp {listbox} {
-# debug "$listbox [$listbox curselection]"
- set x ""
- foreach i [$listbox curselection] {
- lappend x $id($i)
- }
- $this set_bp_at_line N {} -1 $x
- destroy [winfo toplevel $listbox]
-}
-
-
-# public method for testing use only!
-itcl::body SrcTextWin::test_get {var} {
- if {[array exists $var]} {
- return [array get $var]
- } else {
- return [set $var]
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: get_file - Return name of current file.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::get_file {} {
- return $current(filename)
-}
-
-# ------------------------------------------------------------------
-# METHOD: clear_file - Clear out state so that user may load
-# new executable. For the SrcTextWin class, this means:
-#
-# Delete all srctextwin caches
-# Delete the variable balloon if it exists.
-# Clear the screen.
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::clear_file {} {
-
- debug "In clear_file"
- # delete all caches
- _clear_cache
-
- set oldpane {}
-
- # clear window
- # FIXME - We don't do this here, because is causes a wierd error
- # where the "Source file more recent than executible" error gets
- # for no apparent reason. This only effects the case where the
- # user types just "file" in the command line, then the window will
- # not get cleared.
-
- # delete variable balloon
- catch {$_balloon_var delete}
- set _balloon_var {}
-
- # reinit state
- _initialize_srctextwin
-
- # update the screen
- update idletasks
-
-}
-
-itcl::body SrcTextWin::_initialize_srctextwin {} {
- set pc(filename) ""
- set pc(func) ""
- set pc(line) 0
- set pc(addr) ""
- set pc(asm_line) 0
- set pc(lib) ""
- set current(filename) ""
- set current(funcname) ""
- set current(line) 0
- set current(addr) ""
- set current(asm_line) 0
- set current(tag) "BROWSE_TAG"
- set current(mode) "SOURCE"
- set current(lib) ""
-}
-
-# ------------------------------------------------------------------
-# METHOD: _clear_cache - Clear the cache
-# ------------------------------------------------------------------
-itcl::body SrcTextWin::_clear_cache {} {
-
- # display empty scratch frame
- set pane $Stwc(gdbtk_scratch_widget:pane)
- set win [[$itk_interior.p childsite $pane].st component text]
- $win delete 0.0 end
- $itk_interior.p show $pane
-
- # delete all cached frames
- foreach p [array names Stwc *:pane] {
- set p [lindex [split $p :] 0]
- if {$p != "gdbtk_scratch_widget"} {
- catch {
- #debug "clearing cache: \"$p\""
- $itk_interior.p delete $Stwc($p:pane)
- unset Stwc($p:pane)
- unset Stwc($p:mtime)
- }
- }
- }
-
- _initialize_srctextwin
- set filenum 0
- set Cname ""
- set _tpane pane$filenum
- incr filenum
- set _bpane ""
-}
diff --git a/gdb/gdbtk/library/srctextwin.ith b/gdb/gdbtk/library/srctextwin.ith
deleted file mode 100644
index fae89ad294b..00000000000
--- a/gdb/gdbtk/library/srctextwin.ith
+++ /dev/null
@@ -1,163 +0,0 @@
-# SrcTextWin class definition, for Insight
-# Copyright (C) 1997, 1998, 1999, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class SrcTextWin {
- inherit itk::Widget GDBWin
-
- public {
- variable Tracing ;# 1 if we are running in trace mode
- variable Browsing 0 ;# 1 if we are browsing a trace experiment
- variable parent {} ;# the parent SrcWin
- variable ignore_var_balloons 0; # ignore all variable balloons
-
- # Set the height of the src window
- variable textheight 5i {
- catch {$itk_interior.p configure -height $itk_option(-textheight)}
- }
-
- method constructor {args}
- method destructor {}
- method disassembly_changed {}
- method reconfig {}
- method trace_find_hook {mode from_tty}
- method set_control_mode {mode}
- method build_popups {}
- method build_win {}
- method SetRunningState {state}
- method enable {on}
- method setTabs {win {asm S}}
- method enable_disable_src_tags {win how}
- method config_win {win {asm S}}
- method addPopup {menu label command {abg {}} {browse 1} {run 1}}
- method updateBalloon {}
- method ClearTags {}
- method FillSource {winname tagname filename funcname line addr pc_addr lib}
- method FillAssembly {winname tagname filename funcname line addr pc_addr lib}
- method FillMixed {winname tagname filename funcname line addr pc_addr lib}
- method location {tagname filename funcname line addr pc_addr lib}
- method LoadFile {winname name lib mtime_changed}
- method display_line { win line }
- method display_breaks {}
- method insertBreakTag {win linenum tag}
- method removeBreakTag {win linenum tag }
- method bp {action bpnum addr {linenum {}} {file {}} {type 0} {enabled 0} {thread -1}}
- method do_bp { win action linenum type bpnum enabled thread asm}
- method hasBP {win line}
- method hasTP {win line}
- method report_source_location {}
- method lookup_line {win y}
- method continue_to_here {{win {}} {y -1} {threads -1}}
- method jump_to_here {{win {}} {y -1} {threads -1}}
- method set_bp_at_line {{type N} {win {}} {y -1} {threads "-1"}}
- method remove_bp_at_line {{win {}} {y -1}}
- method enable_disable_at_line {action}
- method set_tp_at_line {{win {}} {y -1}}
- method next_hit_at_line {{win {}} {y -1}}
- method remove_tp_at_line {{win {}} {y -1}}
- method do_tag_popup {name X Y y}
- method do_source_popup { X Y x y }
- method addToWatch {var}
- method do_key {key}
- method mode_get {}
- method mode_set {new_mode {go 1}}
- method cancelMotion {}
- method motion {type win x y}
- method showBPBalloon {win x y}
- method showBalloon {win x y}
- method getVariable {x y {line {}}}
- method trace_help {args}
- method line_is_executable {win line}
- method tracepoint_range {win low high}
- method search {exp direction}
- method LoadFromCache {pname name asm lib}
- method UnLoadFromCache {pname oldpane name asm lib}
- method print {top}
- method ask_thread_bp {}
- method do_thread_bp {listbox}
- method test_get {var}
- method clear_file {}
- method get_file {}
- method set_tag_to_stack {}
-
- # GDB Events
- method breakpoint {event}
- method tracepoint {event}
- method set_variable {event}
- }
-
- private {
- variable top ;# toplevel window
- variable twin ;# top text window of pane
- variable _tpane ;# top pane name
- variable bwin "" ;# bottom text window of pane
- variable _bpane "" ;# bottom pane name
-
- variable do_display_breaks 0 ;# flag
- variable popups
-
- variable timeoutID {} ;# The timeout ID for the variable balloon help
- variable UseVariableBalloons
-
- variable mode_changed 0
- variable current ;# our current state
- variable pc ;# where the PC is now
- variable oldmode "" ;# remember the mode we want, even if we can't have it
-
- variable Running 0 ;# another way to disable things while target is active
- variable Linenums ;# use linenumbers?
- variable SearchIndex 1.0 ;# static
- variable id ;#thread id to line mapping
- # needed for assembly support
- variable _map
- variable Cname "" ;# cache index name for _map
- # cache is not shared among windows yet. That could be a later
- # optimization
- variable Stwc ;# Source Text Window Cache
- variable filenum 0
-
- # The variable object which the variable balloon describes
- variable _balloon_var {}
-
- method balloon_value {variable}
- method _mtime_changed {filename}
- method _initialize_srctextwin {}
- method _clear_cache {}
- method _highlightAsmLine {win addr pc_addr tagname filename funcname} {}
-
- proc makeBreakDot {size colorList {image {}}}
- }
-
-
-
- # common variables are shared among all objects of this type
- # break_images stores the images associated with the break dot.
- # bp
- # temp_bp
- # disabled_bp
- # tp
- # thread_bp
- protected common break_images
-
- # This is the list of bp types. Be nice, and don't put spaces in
- # any of the elements of this list...
- protected common bp_types {bp temp_bp disabled_bp thread_bp}
-
- # This variable is used in the "Continue to here" case, where we are
- # disabling then reenabling breakpoints behind the user's back to
- # implement this feature, but we don't want the user to see this...
- protected common dont_change_appearance 0
-
- protected common TimeOut 100 ;# The timeout value for variable balloon help
-
-}
diff --git a/gdb/gdbtk/library/srcwin.itb b/gdb/gdbtk/library/srcwin.itb
deleted file mode 100644
index 2b0d77bf195..00000000000
--- a/gdb/gdbtk/library/srcwin.itb
+++ /dev/null
@@ -1,1058 +0,0 @@
-# Source window for Insight.
-# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2006 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ------------------------------------------------------------------
-# CONSTRUCTOR - create new source window
-# ------------------------------------------------------------------
-itcl::body SrcWin::constructor {args} {
- debug "$args"
- eval itk_initialize $args
- set top [winfo toplevel $itk_interior]
-
- _update_title ""
-
- set Tracing [pref get gdb/mode]
- set current(filename) ""
-
- if {[catch {_build_win} mssg]} {
- dbug E "_build_win returned: $::errorInfo"
- }
-
- # add special delete handler
- wm protocol $top WM_DELETE_WINDOW "[code $this _exit]"
-
- # add hooks
- add_hook gdb_no_inferior_hook "$this no_inferior"
- add_hook download_progress_hook "$this download_progress"
- add_hook state_hook [code $this _set_state]
- add_hook gdb_clear_file_hook [code $this clear_file]
- after idle "
- update idletasks
- $this sizeWinByChild toolbar"
-
- lappend window_list $this
-}
-
-# ------------------------------------------------------------------
-# DESTRUCTOR - destroy window containing widget
-# ------------------------------------------------------------------
-itcl::body SrcWin::destructor {} {
- debug
- remove_hook gdb_no_inferior_hook "$this no_inferior"
- remove_hook download_progress_hook "$this download_progress"
- remove_hook state_hook [code $this _set_state]
- remove_hook gdb_clear_file_hook [code $this clear_file]
- set window_list [lremove $window_list $this]
- if {$pc_window == $this} then {
- set pc_window ""
- }
-}
-
-# ------------------------------------------------------------------
-# PRIVATE METHOD: _build_win - build the main source window
-# ------------------------------------------------------------------
-itcl::body SrcWin::_build_win {} {
- global gdb_downloading gdb_running gdb_loaded
-
- # build source toolbar
- set _toolbar [conAdd toolbar -resizable 0]
- SrcBar $_toolbar $this \
- -updatecommand [list $this toggle_updates] \
- -updatevalue $do_updates
- pack $_toolbar -expand 1 -fill both
-
- # if user likes control on bottom...
- if {! [pref get gdb/src/top_control]} {
-
- # add a SrcTextWin container
- set srcwin [conAdd src]
- set twin [SrcTextWin $srcwin -Tracing $Tracing -parent $this]
- pack $srcwin -expand 1 -fill both
-
- # add status line
- set _status [conAdd status -resizable 0]
- label $_status -relief sunken -bd 3 -font global/status -height 1
- pack $_status -expand 1 -fill both
- }
-
- # add a status bar container
- set _statbar [conAdd stat -resizable 0]
- frame $_statbar
- pack $_statbar -expand 1 -fill both
-
- combobox::combobox $_statbar.name -maxheight 15 -font global/fixed\
- -command [code $this _name] -bg $::Colors(textbg)
-
- set need_files 1
-
- combobox::combobox $_statbar.func -maxheight 15 -font global/fixed\
- -command [code $this goto_func] -bg $::Colors(textbg)
- combobox::combobox $_statbar.mode -width 9 -editable false \
- -font global/fixed -command [code $this mode] -bg $::Colors(textbg)
-
- $_statbar.mode list insert end SOURCE
- $_statbar.mode list insert end ASSEMBLY
- $_statbar.mode list insert end MIXED
- $_statbar.mode list insert end SRC+ASM
-
- # Workaround: the three comboboxes above sometimes display with
- # height of one pixel. Inserting an invisible frame with the required
- # height "fixes" this...
- frame $_statbar.strut -height 24 -width 10
-
- pack $_statbar.mode -side right -padx 10 -pady 4
- pack $_statbar.name $_statbar.func $_statbar.strut \
- -side left -pady 4 -padx 10
-
- # if user likes control on top...
- if {[pref get gdb/src/top_control]} {
-
- # add a SrcTextWin container
- set srcwin [conAdd src]
- set twin [SrcTextWin $srcwin -Tracing $Tracing -parent $this]
- pack $srcwin -expand 1 -fill both
-
- # add status line
- set _status [conAdd status -resizable 0]
- set _statusframe [frame $_status]
- set _status $_statusframe.con
- label $_status -relief sunken -bd 3 -font global/status -height 1 \
- -anchor w
-
- # add download progress meter
- canvas $_statusframe.progress -relief sunken -borderwidth 2 \
- -highlightthickness 0 -takefocus 0 -width 100 -height 0 -confine 1
- $_statusframe.progress create rectangle 0 0 0 \
- [winfo height $_statusframe.progress] -outline blue -fill blue -tags rect
-
- # add address and line number indicators
- label $_statusframe.addr -text "" -width 10 -relief sunken \
- -bd 1 -anchor e -font global/fixed
- label $_statusframe.line -text "" -width 6 -relief sunken \
- -bd 1 -anchor e -font global/fixed
-
- balloon register $_statusframe.addr "Address"
- balloon register $_statusframe.line "Line number"
-
- pack $_statusframe -expand 1 -fill both
- grid $_status -row 0 -column 1 -sticky news -pady 2 -padx 2
- grid $_statusframe.addr -row 0 -column 3 -sticky nes -pady 4
- grid $_statusframe.line -row 0 -column 4 -sticky nws -pady 4
- grid columnconfigure $_statusframe 1 -weight 10
- grid columnconfigure $_statusframe 2 -minsize 5
- grid columnconfigure $_statusframe 5 -minsize 5
- }
-
- set_execution_status
-
- # balloon help
- foreach i {entry button} {
- balloon register $_statbar.name.$i "Current file name"
- balloon register $_statbar.func.$i "Current function name"
- balloon register $_statbar.mode.$i "Source mode"
- }
- balloon variable $_status ${twin}_balloon
-
- $_statbar.mode entryset [$twin mode_get]
-
- # time to load the widget with a file.
- # If this is a new widget and the program is
- # not yet being debugged, load the file with "main" in it.
- if {$gdb_running} {
- if {[catch {gdb_loc} loc]} {
- # Nothing we can do but leave the window empty.
- } else {
- _update $loc
- }
- }
-}
-
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: _set_state - do things when program state changes
-# ------------------------------------------------------------------
-itcl::body SrcWin::_set_state {varname} {
- global gdb_running gdb_downloading gdb_loaded gdb_program_has_run
- debug "$varname l=$gdb_loaded d=$gdb_downloading r=$gdb_running"
-
- if {$varname == "gdb_loaded" && $gdb_loaded == 1} {
- set gdb_program_has_run 0
- #set current(filename) ""
- return
- }
-
- if {$gdb_running} {
- set state normal
- set gdb_program_has_run 1
- } else {
- set state disabled
- }
- if {!$Tracing} {
- $twin SetRunningState $state
- }
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: download_progress - update the progress meter when downloading
-# ------------------------------------------------------------------
-itcl::body SrcWin::download_progress { section num tot {msg ""} } {
- global download_start_time download_cancel_ok gdb_loaded
-
- #debug "$section $num $tot $msg"
- if {$last_section_start == 0} {
- grid forget $_statusframe.addr $_statusframe.line
- grid $_statusframe.progress -row 0 -column 4 -padx 4 -sticky news
- ::update idletasks
- }
-
- if {$section == "DONE"} {
- set last_done $tot
- if {$gdb_loaded} {
- # loaded something
- set secs [expr {[clock seconds] - $download_start_time}]
- if {$secs} {
- set bps [expr {8 * $tot / $secs}]
- set_status "DOWNLOAD FINISHED: $tot bytes in $secs seconds ($bps bits per second)"
- } else {
- set_status "DOWNLOAD FINISHED"
- }
- }
- } elseif {$section != "CANCEL"} {
- if {$section != $last_section} {
- set last_section $section
- set last_section_start $last_done
- }
- set last_done [expr {$last_section_start + $num}]
- set_status "Downloading section $section - $num bytes"
- }
-
- set canvas $_statusframe.progress
- set height [winfo height $canvas]
- if {$last_done} {
- set width [winfo width $canvas]
- set rw [expr {double ($last_done) * $width / $tot}]
- $canvas coords rect 0 0 $rw $height
- ::update
- }
-
- if {$last_done == $tot || $section == "CANCEL"} {
- $_toolbar configure -runstop normal
- if {!$gdb_loaded} {
- ::update
- # errored or canceled
- if {$msg != ""} {
- set_status "DOWNLOAD FAILED: $msg"
- } else {
- set_status "DOWNLOAD CANCELLED"
- }
- $canvas coords rect 0 0 0 $height
- ::update idletasks
- }
-
- set last_section ""
- set last_done 0
- set last_section_start 0
-
- grid forget $_statusframe.progress
- grid $_statusframe.addr -row 0 -column 3 -sticky new -pady 4
- grid $_statusframe.line -row 0 -column 4 -sticky nws -pady 4
- ::update idletasks
- }
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: reconfig - used when preferences change
-# ------------------------------------------------------------------
-itcl::body SrcWin::reconfig {} {
- debug
- $_toolbar reconfig
- $twin reconfig
-}
-
-
-# ------------------------------------------------------------------
-# PRIVATE METHOD: _name - filename combobox callback
-# This is only called when the user edits the name combobox.
-# It is the only way that files can be inserted into the file list
-# once the debugger is started.
-# ------------------------------------------------------------------
-itcl::body SrcWin::_name {w {val ""}} {
- global _files
- debug "$w $val"
- if {$val != ""} {
- if {![info exists _files(short,$val)]} {
- if {![info exists _files(full,$val)]} {
- if [catch {gdb_find_file $val} full] {
- set_status "Cannot find source file \"$val\": $full"
- $_statbar.name entryset [lindex [file split $current(filename)] end]
- return
- }
- if {$full == ""} {
- set_status "Cannot find source file \"$val\""
- $_statbar.name entryset [lindex [file split $current(filename)] end]
- return
- }
- set _files(short,$full) $val
- set _files(full,$val) $full
- }
- set full $_files(full,$val)
- } else {
- set full $val
- set val $_files(short,$full)
- }
- $_statbar.name entryset $val
- location BROWSE_TAG [list $val "" $full 0 0 0 {}]
- }
-}
-
-# ------------------------------------------------------------------
-# PRIVATE PUBLIC METHOD: toggle_updates - update toggle callback
-# ------------------------------------------------------------------
-itcl::body SrcWin::toggle_updates {value} {
- # save state in do_updates so it will be preserved
- # in window reconfigs
- set do_updates $value
-}
-
-# ------------------------------------------------------------------
-# PRIVATE PUBLIC METHOD: goto_func - function combobox callback
-# ------------------------------------------------------------------
-itcl::body SrcWin::goto_func {w {val ""}} {
- if {$val != ""} {
- set mang 0
- if {[info exists _mangled_func($val)]} {
- set mang $_mangled_func($val)
- }
- if {$mang} {
- set loc $val
- } else {
- set fn [lindex [::file split $current(filename)] end]
- if {$fn == ""} {
- set loc $val
- } else {
- set loc $fn:$val
- }
- }
- debug "GOTO $loc"
- if {![catch {gdb_loc $loc} result]} {
- location BROWSE_TAG $result
- } else {
- dbug W "gdb_loc returned \"$result\""
- }
- }
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: fillNameCB - fill the name combobox
-#
-# This method needs to be public, since other parts of
-# the gui can cause new symbols to be read.
-# ------------------------------------------------------------------
-itcl::body SrcWin::fillNameCB {} {
- global _files
- set allfiles [gdb_listfiles]
- foreach f $allfiles {
- # FIXME: If you reactivate this code add a catch as gdb_find_file can err
- # (P.S.: I don't know why this is commented out)
- #set fullname [gdb_find_file $f]
- #set _files(full,$f) $fullname
- #set _files(short,$fullname) $f
- $_statbar.name list insert end $f
- }
- set need_files 0
-}
-
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: fillFuncCB - fill the function combobox
-#
-# This method needs to be public, since other parts of
-# the gui can cause new symbols to be read.
-# ------------------------------------------------------------------
-itcl::body SrcWin::fillFuncCB {name} {
- $_statbar.func list delete 0 end
- if {$name != ""} {
- set maxlen 10
- if {[catch {gdb_listfuncs $name} listfuncs]} {
- tk_messageBox -icon error -default ok \
- -title "GDB" -type ok \
- -message "This file can not be found or does not contain\ndebugging information."
- _set_name ""
- return
- }
- foreach f [lsort -increasing $listfuncs] {
- lassign $f func mang
- set _mangled_func($func) $mang
- $_statbar.func list insert end $func
- if {[string length $func] > $maxlen} {
- set maxlen [string length $func]
- }
- }
- $_statbar.func configure -width [expr $maxlen + 1]
- }
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: location - update the location displayed
-#
-# a linespec looks like this:
-# 0: basename of the file
-# 1: function name
-# 2: full filename
-# 3: source line number
-# 4: address
-# 5: current PC - which will often be the same as address, but not when
-# we are browsing, or walking the stack.
-# 6: shared library name if the pc is in a shared lib
-#
-# linespec will be "{} {} {} 0 0x0 0x0" when GDB has not started debugging.
-# ------------------------------------------------------------------
-itcl::body SrcWin::location {tag linespec} {
- global gdb_running gdb_exe_name _files tcl_platform
-
- # We need to keep track of changes to the line, filename, function name
- # and address so we can keep the widgets up-to-date. Otherwise we
- # basically pass things through to the SrcTextWin location public method.
-
- debug "running=$gdb_running tag=$tag linespec=$linespec"
- lassign $linespec foo funcname name line addr pc_addr lib
-
- # need to call this to update running state
- set_execution_status $line $addr
-
- # "update" doesn't set the tag so we do it here
- if {$tag == ""} {
- if {$addr == $pc_addr} {
- set tag PC_TAG
- } else {
- set tag STACK_TAG
- }
- }
-
- if {!$gdb_running} {
- # When we are not yet debugging, we need to force something
- # to be displayed, so we choose to find function "main" and
- # display the file with it.
- set tag BROWSE_TAG
- debug "not running: name=$name funcname=$funcname line=$line"
- if {$name == ""} {
- if {[set linespec [gdbtk_locate_main]] == ""} {
- # no "main" function found
- return
- }
- lassign $linespec foo funcname name line addr pc_addr lib
- debug "new linespec=$linespec"
- }
- }
-
- # update file and function combobox
- if {$name != $current(filename)} {
- _set_name $name
- fillFuncCB $name
- }
-
- # get a proper address string to display
- set textaddr [gdb_CA_to_TAS $addr]
-
- # set address and line widgets
- if {[string length $textaddr] > 8} {
- # 64-bit address
- set width 16
- } else {
- # 32-bit address
- set width 8
- }
- $_statusframe.addr configure -text $textaddr -font global/fixed -width $width
- $_statusframe.line configure -text $line
-
- # set function combobox
- $_statbar.func entryset $funcname
-
- # call SrcTextWin::location
- $twin location $tag $name $funcname $line $addr $pc_addr $lib
-
- set current(filename) $name
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: stack - handle stack commands
-# ------------------------------------------------------------------
-itcl::body SrcWin::stack {cmd} {
- if {$cmd == "bottom"} {
- set cmd "frame 0"
- }
- gdbtk_busy
- if {[catch {gdb_cmd "$cmd"} message]} {
- dbug E "STACK ERROR: $message"
- }
- gdbtk_update
- gdbtk_idle
-}
-
-# ------------------------------------------------------------------
-# METHOD: _update - update widget when PC changes
-# ------------------------------------------------------------------
-itcl::body SrcWin::_update {loc} {
- debug "loc=$loc"
- # See if name combobox needs filled.
- if {$need_files} {
- fillNameCB
- }
- location "" $loc
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: idle - callback for gdbtk_idle
-# Called when the target is idle, so enable all buttons.
-# ------------------------------------------------------------------
-itcl::body SrcWin::idle {event} {
- $_toolbar configure -runstop normal
- enable_ui 1
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: mode - set mode to SOURCE, ASSEMBLY, MIXED, SRC+ASM
-# ------------------------------------------------------------------
-itcl::body SrcWin::mode {w new_mode {go 1}} {
- gdbtk_busy
- $_statbar.mode entryset $new_mode
- catch {$twin mode_set $new_mode $go} errorVal
- $_toolbar configure -displaymode $new_mode
- gdbtk_idle
-}
-
-# ------------------------------------------------------------------
-# PRIVATE METHOD: _update_title - update title bar
-# ------------------------------------------------------------------
-itcl::body SrcWin::_update_title {name} {
- set fn [lindex [::file split $name] end]
- if {$fn == ""} {
- set prefix ""
- } else {
- set prefix "$fn - "
- }
- window_name "${prefix}Source Window" $fn
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: busy - disable things when gdb is busy
-# ------------------------------------------------------------------
-itcl::body SrcWin::busy {event} {
- global gdb_loaded gdb_target_name
-# debug "gdb_loaded=$gdb_loaded, gdb_target_name=$gdb_target_name"
-
- if {$do_updates} {
- enable_ui 0
- if {$Running} {
- $_toolbar configure -runstop running
- if {$gdb_loaded || \
- ([TargetSelection::native_debugging] && $gdb_target_name != "remote")} {
- set_status "Program is running."
- }
- } else {
- $_toolbar configure -runstop busy
- }
- }
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: update - The inferior's state has changed.
-# ------------------------------------------------------------------
-itcl::body SrcWin::update {event} {
-
- # FIXME: This is kinda lame. We need to run this only once
- # as it is now written, so only the first window in the list
- # will actually call choose_and_update.
- # This is still better than before, since it will not
- # matter if this window is destroyed: as long as _a_
- # SrcWin exists, this will get called.
- if {[lindex $window_list 0] == $this} {
- choose_and_update
- }
-}
-
-# ------------------------------------------------------------------
-# PRIVATE METHOD: _set_name - set the name in the name combobox and in the title
-# ------------------------------------------------------------------
-itcl::body SrcWin::_set_name { val {found 1} } {
- global _files
- _update_title $val
- if {![info exists _files(short,$val)]} {
- if {![info exists _files(full,$val)]} {
- # not in our list; just display basename
- $_statbar.name entryset [lindex [::file split $val] end]
- return
- }
- } else {
- set val $_files(short,$val)
- }
- if {$found} {
- $_statbar.name entryset $val
- } else {
- $_statbar.name entryset "$val (not found)"
- }
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: set_status - write a message to the status line.
-# If "tmp" is set, the status change will not be saved.
-# ------------------------------------------------------------------
-
-itcl::body SrcWin::set_status { {msg ""} {tmp 0} } {
- set msg [lindex [split $msg \n] 0]
- if {$tmp} {
- $_status configure -text $msg
- return
- }
- if {$msg != ""} {
- set saved_msg $msg
- }
- $_status configure -text $saved_msg
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: set_execution_status - write the current execution state
-# to the status line
-# ------------------------------------------------------------------
-itcl::body SrcWin::set_execution_status { {line ""} {pc ""}} {
- global gdb_running gdb_loaded gdb_program_has_run gdb_target_changed
- #debug "line=$line pc=$pc [gdb_target_has_execution] running=$gdb_running loaded=$gdb_loaded"
- set message ""
-
- if {![gdb_target_has_execution]} {
- if {$gdb_running} {
- set gdb_running 0
- # tell text window program is no longer running
- $twin ClearTags
- }
- if {$gdb_loaded} {
- if {$gdb_program_has_run} {
- set message "Program terminated. 'Run' will restart."
- # Need to set gdb_target_changed because most
- # remote targets detach when they are finished,
- # and this will force it to reattach.
- set gdb_target_changed 1
- set gdb_running 0
- } else {
- set message "Program is ready to run."
- }
- } else {
- set message "Program not running. Click on run icon to start."
- }
- } else {
-
- # gdb_target_has_execution has returned true, so we must be running.
- #
- # This can cause problems on targets which do not set inferior_pid.
- # Although this is bogus, much of gdb (and gdbtk) relies on
- # gdb_target_has_execution (and thus inferior_pid), so we should
- # not try to second guess it and fix those targets which do not set
- # inferior_pid when opened.
- set gdb_running 1
-
- # only do a gdb_loc if we have to
- if {$line == "" && $pc == ""} {
- if {[catch {gdb_loc} loc] == 0} {
- set line [lindex $loc 3]
- set pc [lindex $loc 4]
- }
- }
-
- set pc [gdb_CA_to_TAS $pc]
-
- if {$line == "" || $line == 0} {
- if {$pc == "" || $pc == 0} {
- if {$Tracing} {
- set message "Ready."
- } else {
- set message "Program stopped."
- }
- } else {
- set message "Program stopped at 0x$pc"
- }
- } else {
- if {$Tracing} {
- set msg "Inspecting trace"
- } else {
- set msg "Program stopped"
- }
- switch [$twin mode_get] {
- ASSEMBLY {set message "$msg at 0x$pc" }
- MIXED {set message "$msg at line $line, 0x$pc" }
- SRC+ASM {set message "$msg at line $line, 0x$pc" }
- default {set message "$msg at line $line" }
- }
- }
- }
- set_status $message
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: edit - invoke external editor
-# ------------------------------------------------------------------
-itcl::body SrcWin::edit {} {
- global external_editor_command
- # If external editor is enabled, pass the file to the specified command
-
- if {$current(filename) == ""} {
- tk_dialog .warn {Edit} {No file is loaded in the source window.} error 0 Ok
- return
- }
-
- if {[catch {$twin report_source_location} loc_info]} {
- tk_dialog .warn "Edit" "No source file selected" error 0 Ok
- return
- }
-
- Editor::edit $loc_info
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: print - print the contents of the text widget
-# ------------------------------------------------------------------
-itcl::body SrcWin::print {} {
- # Call the SrcTextWin's print public method
- $twin print $top
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: enable_ui
-# Enable all UI elements for user interaction.
-# ------------------------------------------------------------------
-itcl::body SrcWin::enable_ui { on } {
- #debug "$on"
- if {$on} {
- set Running 0
- set state normal
- set glyph ""
- } else {
- if {!$NoRun} {set Running 1}
- set state disabled
- set glyph watch
- }
- # combo boxes
- $_statbar.mode configure -state $state
- $_statbar.name configure -state $state
- $_statbar.func configure -state $state
-
- $twin enable $on
- $top configure -cursor $glyph
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: no_inferior
-# Put the UI elements of this object into a state
-# appropriate for an inferior which is not executing.
-# For this object, this means:
-# Disable:
-# - key binding for all inferior control (not needed -- gdb does this
-# for us)
-#
-# Enable:
-# - file/func/mode selectors
-# - right-click popups, since gdb DOES allow looking at exe fil
-# - selections
-#
-# Change mouse pointer to normal
-# ------------------------------------------------------------------
-itcl::body SrcWin::no_inferior {} {
- #debug
- set_execution_status
- enable_ui 1
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: reset - reset the source window
-# ------------------------------------------------------------------
-itcl::body SrcWin::reset {} {
- set current(filename) ""
- set need_files 1
- set do_updates 1
- set last_section ""
- set last_section_start 0
- set last_done 0
- set saved_msg ""
-
- # do we need to flush the cache or clear the source windows?
-
- # Empty combo boxes
- $_statbar.name list delete 0 end
- $_statbar.name configure -value {}
- $_statbar.func list delete 0 end
- $_statbar.func configure -value {}
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: search - search for a STRING or jump to a specific line
-# in source window, going in the specified DIRECTION.
-# ------------------------------------------------------------------
-itcl::body SrcWin::search {direction string} {
- set_status
- set_status [$twin search $string $direction] 1
-}
-
-# ------------------------------------------------------------------
-# PROCEDURE: point_to_main
-# Proc that may be called to point some source window to
-# main (or an entry point?). (see gdbtk_tcl_exec_file_changed)
-# ------------------------------------------------------------------
-itcl::body SrcWin::point_to_main {} {
- # We need to force this to some default location. Assume main and
- # if that fails, let the source window guess (via gdb_loc using stop_pc).
- set src [lindex [ManagedWin::find SrcWin] 0]
- if {[set linespec [gdbtk_locate_main]] == ""} {
- gdbtk_update
- debug "could not find main"
- } else {
- $src location BROWSE_TAG [list $linespec]
- }
-}
-
-itcl::body SrcWin::_exit {} {
- debug
- if {[llength [ManagedWin::find SrcWin]] == 1} {
- if {![gdbtk_quit_check]} {
- return
- }
- }
- after idle [delete object $this]
-}
-
-# public method for testing use only!
-itcl::body SrcWin::test_get {var {private_func 0}} {
- debug $var
- if {$private_func} {
- return [code $this $var]
- }
- return [set $var]
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: toolbar - configure the toolbar's "state"
-# ------------------------------------------------------------------
-#
-# This method is used to configure the toolbar's running state.
-# Valid states include anything that the "runtest" variable of
-# the GDBSrcBar may accept. Specifically,
-#
-# busy - Run button becomes disabled
-# running - Stop button appears, allowing user to stop executing target
-# downloading - Stop button appears, allowing user to interrupt downloading
-# normal - Run button appears, allowing user to run/re-run exe
-itcl::body SrcWin::toolbar {state} {
- $_toolbar configure -runstop $state
-}
-
-# ------------------------------------------------------------------
-# METHOD: inferior - change execution state of inferior
-# ------------------------------------------------------------------
-#
-# ACTION may be:
-# step - step the inferior one source line (stepping into functions)
-# next - step the inferior one source line (stepping over functions)
-# finish - finish the current frame of execution
-# continue - continue executing the inferior
-# stepi - step one machine instruction (stepping into calls)
-# nexti - step one machine instruction (stepping over calls)
-# run - run/re-run the inferior
-# stop - stop or detach from target
-#
-# FIXME: This should really be in an object which describes gdb's state.
-# Unfortunately, this doesn't exist, so it's here for now.
-itcl::body SrcWin::inferior {action} {
-
- # Check to see if this action is forwarded to other Insight instances
- if {$::iipc} {
- switch $action {
- step -
- next -
- stepi -
- nexti -
- finish {
- if {[pref get gdb/ipc/step_button]} {
- $::insight_ipc send $action
- }
- }
- continue {
- if {[pref get gdb/ipc/cont_button]} {
- $::insight_ipc send $action
- }
- }
- run {
- if {[pref get gdb/ipc/run_button]} {
- $::insight_ipc send $action
- }
- }
- stop {
- if {[pref get gdb/ipc/stop_button]} {
- $::insight_ipc send $action
- }
- }
- }
- }
-
- switch $action {
- step { gdbtk_step }
- next { gdbtk_next }
- finish { gdbtk_finish }
- continue { gdbtk_continue }
- stepi { gdbtk_stepi }
- nexti { gdbtk_nexti }
- run { gdbtk_run }
- stop { gdbtk_stop }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: clear_file
-# Tasks for SrcWin to clear file:
-#
-# - clear window
-# - reset to src mode
-# - clear func/file comboboxes
-# - clear status (done by no_inferior)
-# - allow SrcTextWin to clear_file
-# ------------------------------------------------------------------
-itcl::body SrcWin::clear_file {} {
-
- # Reset to Source mode
- if {[$twin mode_get] != "SOURCE"} {
- mode {} SOURCE 0
- }
-
- no_inferior
- reset
-
- # run srctextwin clear_file
- $twin clear_file
-}
-
-# ------------------------------------------------------------------
-# METHOD: get_file
-# Return name of displayed file, or empty string if no file.
-# ------------------------------------------------------------------
-itcl::body SrcWin::get_file {} {
- if {$twin == ""} {
- return ""
- } else {
- return [$twin get_file]
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: is_fixed
-# Return boolean indicating whether this window is fixed.
-# ------------------------------------------------------------------
-itcl::body SrcWin::is_fixed {} {
- return 0
-}
-
-# ------------------------------------------------------------------
-# METHOD: get_top
-# Return toplevel
-# ------------------------------------------------------------------
-itcl::body SrcWin::get_top {} {
- return $top
-}
-
-# ------------------------------------------------------------------
-# METHOD: _set_tag_to_stack
-# Set tag to `stack' and update the underlying window.
-# ------------------------------------------------------------------
-itcl::body SrcWin::_set_tag_to_stack {} {
- set tag STACK_TAG
- if {$twin != ""} then {
- $twin set_tag_to_stack
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: _choose_window
-# Choose the right source window.
-# ------------------------------------------------------------------
-itcl::body SrcWin::_choose_window {file} {
- # Find the next available source window. The rules are:
- # 1. LRU overall
- # 2. Skip iconified windows
- # 3. If a window already shows the file, use it. Prefer the
- # window currently showing the PC
- # 4. If the window is fixed, skip it
- if {$pc_window != ""} then {
- if {[$pc_window get_file] == $file} then {
- return $pc_window
- }
- }
-
- set choice ""
- foreach win $window_list {
- if {[wm state [$win get_top]] != "normal"} then {
- continue
- }
-
- if {[$win get_file] == ""
- || [$win get_file] == $file
- || ! [$win is_fixed]} then {
- set choice $win
- break
- }
- }
-
- # If we didn't find an available window, then pick the current PC
- # window.
- if {$choice == ""} then {
- set choice $pc_window
- }
-
- set window_list [lremove $window_list $choice]
- lappend window_list $choice
-
- return $choice
-}
-
-# ------------------------------------------------------------------
-# METHOD: choose_and_update
-# Choose the right source window and then cause it to be updated
-# ------------------------------------------------------------------
-itcl::body SrcWin::choose_and_update {} {
- if {$pc_window == ""} then {
- set pc_window [lindex $window_list 0]
- }
-
- if {$pc_window == ""} then {
- # Nothing.
- } elseif {[catch {gdb_loc} loc]} {
- $pc_window set_execution_status
- } else {
- set prev $pc_window
- set file [lindex $loc 2]
- set pc_window [_choose_window $file]
- debug "chose window $pc_window"
- $pc_window _update $loc
- if {$pc_window != $prev} then {
- $pc_window reveal
- $prev _set_tag_to_stack
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: choose_and_display
-# Choose the right source window for a given file
-# ------------------------------------------------------------------
-itcl::body SrcWin::choose_and_display {tag linespec} {
- set file [lindex $linespec 2]
- set window [_choose_window $file]
- $window location $tag $linespec
-}
diff --git a/gdb/gdbtk/library/srcwin.ith b/gdb/gdbtk/library/srcwin.ith
deleted file mode 100644
index 03e9b4ee8e4..00000000000
--- a/gdb/gdbtk/library/srcwin.ith
+++ /dev/null
@@ -1,106 +0,0 @@
-# Source window class definition for GDBtk.
-# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ----------------------------------------------------------------------
-# Implements a source display widget using primitive widgets as the
-# building blocks.
-#
-# The main display for SrcWin is a SrcTextWin widget. This file
-# should contain all the code for controlling the SrcTextWin.
-# SrcTextWin should just display the requested file and lines, without
-# having to be very intelligent. If there are problems, error codes
-# should be returned and SrcWin should figure out what to do.
-# ----------------------------------------------------------------------
-
-itcl::class SrcWin {
- inherit TopLevelWin GDBWin
-
- public {
- method constructor {args}
- method destructor {}
- method download_progress { section num tot {msg ""} }
- method edit {}
- method enable_ui { on }
- method fillNameCB {}
- method fillFuncCB {name}
- method goto_func {w {val ""}}
- method location {tag linespec}
- method mode {w new_mode {go 1}}
- method no_inferior {}
- method print {}
- method reconfig {}
- method reset {}
- method set_status { {msg ""} {tmp 0} }
- method set_execution_status { {line ""} {pc ""}}
- method stack {cmd}
- method test_get {var {private_func 0}}
- method toggle_updates {value}
- method toolbar {state}
- method inferior {action}
- method clear_file {}
- method get_file {}
- method is_fixed {}
- method search {direction string}
-
- proc choose_and_update {}
- proc choose_and_display {tag linespec}
- proc point_to_main {}
-
- #
- # GDB Events
- #
- method busy {event}
- method idle {event}
- method update {event}
- }
-
- private {
- method _build_win {}
- method _exit {}
- method _name {w {val ""}}
- method _set_name { val {found 1} }
- method _set_state {varname}
- method _update_title {name}
- method _update {loc}
- method get_top {}
- method _set_tag_to_stack {}
- proc _choose_window {file}
- variable _statbar
- variable _status
- variable _toolbar
- variable _statusframe
- variable top
- variable twin
- variable current
- variable need_files 0
- variable do_updates 1 ;# if the window does updates
- variable _mangled_func
- variable Tracing
- variable saved_msg "" ;# static
-
- # statics used for downloads
- variable last_section ""
- variable last_section_start 0
- variable last_done 0
-
- # These keep track of the current PC window and the list of all
- # source windows.
- common window_list ""
- common pc_window ""
-
- # fenceposts
- variable Running 0
- variable NoRun 0
- }
-}
diff --git a/gdb/gdbtk/library/stackwin.itb b/gdb/gdbtk/library/stackwin.itb
deleted file mode 100644
index b738c1462ab..00000000000
--- a/gdb/gdbtk/library/stackwin.itb
+++ /dev/null
@@ -1,159 +0,0 @@
-# Stack window for Insight.
-# Copyright (C) 1997, 1998, 1999, 2002, 2003 Red Hat
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ------------------------------------------------------------------
-# CONSTRUCTOR - create new stack window
-# ------------------------------------------------------------------
-itcl::body StackWin::constructor {args} {
- gdbtk_busy
- build_win
- gdbtk_idle
-
- add_hook gdb_no_inferior_hook [code $this no_inferior]
-}
-
-# ------------------------------------------------------------------
-# DESTRUCTOR - destroy window containing widget
-# ------------------------------------------------------------------
-itcl::body StackWin::destructor {} {
- remove_hook gdb_no_inferior_hook [code $this no_inferior]
-}
-
-# ------------------------------------------------------------------
-# METHOD: build_win - build the main register window
-# ------------------------------------------------------------------
-itcl::body StackWin::build_win {} {
- global tcl_platform
-
- itk_component add slb {
- iwidgets::scrolledlistbox $itk_interior.s \
- -vscrollmode dynamic -hscrollmode dynamic \
- -selectmode single -exportselection false -visibleitems 30x15 \
- -textfont global/fixed -selectioncommand [code $this change_frame]
- }
-
- [$itk_component(slb) component listbox] configure \
- -bg $::Colors(textbg) -fg $::Colors(textfg)
-
- update dummy
-
- pack $itk_interior.s -side left -expand yes -fill both
-
- window_name "Stack"
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: update - update widget when PC changes
-# ------------------------------------------------------------------
-itcl::body StackWin::update {event} {
- global gdb_selected_frame_level
-
- if {!$protect_me} {
- # The gdb_stack command might fail, for instance if you are browsing
- # a trace experiment, and the stack has not been collected.
-
- if {[catch {gdb_stack 0 -1} frames]} {
- dbug W "Error in stack collection $frames"
- set frames {}
- }
-
- if {[llength $frames] == 0} {
- $itk_component(slb) delete 0 end
- $itk_component(slb) insert end {NO STACK}
- return
- }
-
- $itk_component(slb) delete 0 end
- set levels 0
- foreach frame $frames {
- set len [string length $frame]
-
- if {$len > $maxwidth} {
- set maxwidth $len
- }
- $itk_component(slb) insert end $frame
- incr levels
- }
-
- # this next section checks to see if the source
- # window is looking at some location other than the
- # bottom of the stack. If so, highlight the stack frame
- set level [expr {$levels - $gdb_selected_frame_level - 1}]
- $itk_component(slb) selection set $level
- $itk_component(slb) see $level
- }
-}
-
-itcl::body StackWin::idle {event} {
- set Running 0
- cursor {}
-}
-
-# ------------------------------------------------------------------
-# METHOD: change_frame - change the current frame
-# This method is currently ONLY called from the mouse binding
-# ------------------------------------------------------------------
-itcl::body StackWin::change_frame {} {
-
- if {!$Running && [$itk_component(slb) size] != 0} {
- gdbtk_busy
- set sel [$itk_component(slb) curselection]
- set size [$itk_component(slb) size]
- set frame_num [expr {$size - $sel - 1}]
- catch {gdb_cmd "frame $frame_num"}
-
- # Run idle hooks and cause all widgets to update
- set protect_me 1
- gdbtk_update
- set protect_me 0
- gdbtk_idle
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: reconfig - used when preferences change
-# ------------------------------------------------------------------
-itcl::body StackWin::reconfig {} {
- destroy $itk_interior.s
- build_win
-}
-
-# ------------------------------------------------------------------
-# PUBLIC METHOD: busy - BusyEvent handler
-# This method should cause blocking of clicks in
-# the window and change mouse pointer.
-# ------------------------------------------------------------------
-itcl::body StackWin::busy {event} {
- set Running 1
- cursor watch
-}
-
-# ------------------------------------------------------------------
-# METHOD: no_inferior - gdb_no_inferior_hook
-# ------------------------------------------------------------------
-itcl::body StackWin::no_inferior {} {
- set Running 0
- cursor {}
-}
-
-# ------------------------------------------------------------------
-# METHOD: cursor - set the window cursor
-# This is a convenience method which simply sets the mouse
-# pointer to the given glyph.
-# ------------------------------------------------------------------
-itcl::body StackWin::cursor {glyph} {
- set top [winfo toplevel $itk_interior]
- $top configure -cursor $glyph
-}
diff --git a/gdb/gdbtk/library/stackwin.ith b/gdb/gdbtk/library/stackwin.ith
deleted file mode 100644
index b639746175d..00000000000
--- a/gdb/gdbtk/library/stackwin.ith
+++ /dev/null
@@ -1,46 +0,0 @@
-# Stack window class definition for GDBtk.
-# Copyright (C) 1997, 1998, 1999 Cygnus Solutions
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ----------------------------------------------------------------------
-# Implements stack window for gdb
-# ----------------------------------------------------------------------
-
-itcl::class StackWin {
- inherit EmbeddedWin GDBWin
-
- private {
- variable maxwidth 40
- variable Running 0
- variable protect_me 0
- method build_win {}
- method cursor {glyph}
- method change_frame {}
- method no_inferior {}
- }
-
- public {
- method reconfig {}
- method constructor {args}
- method destructor {}
-
- #
- # GDB Events
- #
- method busy {event}
- method idle {event}
- method update {event}
- }
-
-}
-
diff --git a/gdb/gdbtk/library/targetselection.itb b/gdb/gdbtk/library/targetselection.itb
deleted file mode 100644
index d558f26b7dc..00000000000
--- a/gdb/gdbtk/library/targetselection.itb
+++ /dev/null
@@ -1,1088 +0,0 @@
-# Target selection dialog for Insight.
-# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ----------------------------------------------------------------------
-# Implements GDB TargetSelection dialog
-# ----------------------------------------------------------------------
-
-# ------------------------------------------------------------------
-# CONSTRUCTOR - create new target selection window
-# ------------------------------------------------------------------
-itcl::body TargetSelection::constructor {args} {
- eval itk_initialize $args
- _init
- build_win
-}
-
-itcl::body TargetSelection::getname {target name} {
-
- # Init target database if we haven't already done so
- init_target_db
-
- if {[info exists gdb_target($target,$name)]} {
- return $gdb_target($target,$name)
- } else {
- return ""
- }
-}
-
-itcl::body TargetSelection::init_target_db {} {
- # check to see if we already initialized this database
- if {$db_inited} {
- return
- }
- set db_inited 1
-
- # Target Database
- # Set the following members:
- # TARGET,pretty-name: Name to display to user
- # TARGET,debaud: Default baudrate
- # TARGET,baud-rates: Permissible baudrates
- # TARGET,cmd: Abstracted command to run for this target (tcpX and com1 are
- # replaced with the real port and host/port in set_target)
- # TARGET,runlist: List of preferences for the target: {attach download run cont}
- # TARGET,after_attaching: a command to run after attaching to the target
-
- # Default target
- set gdb_target(default,pretty-name) "Default"
- set gdb_target(default,defbaud) ""
- set gdb_target(default,baud-rates) {}
- set gdb_target(default,cmd) ""
- set gdb_target(default,runlist) {0 0 1 0}
- set gdb_target(default,options) ""
- set gdb_target(default,after_attaching) {}
-
- # Exec target
- set gdb_target(exec,pretty-name) "Exec"
- set gdb_target(exec,defbaud) ""
- set gdb_target(exec,baud-rates) {}
- set gdb_target(exec,cmd) ""
- set gdb_target(exec,runlist) {0 0 1 0}
- set gdb_target(exec,options) ""
- set gdb_target(exec,after_attaching) {}
-
- # ADS board w/SDS protocol
- set gdb_target(sds,pretty-name) "SDS"
- set gdb_target(sds,defbaud) "38400"
- set gdb_target(sds,baud-rates) {9600 38400}
- set gdb_target(sds,cmd) "sds com1"
- set gdb_target(sds,runlist) {1 1 0 1}
- set gdb_target(sds,after_attaching) {}
-
- # Simulator
- set gdb_target(sim,pretty-name) "Simulator"
- set gdb_target(sim,defbaud) ""
- set gdb_target(sim,baud-rates) {}
- set gdb_target(sim,cmd) "sim"
- set gdb_target(sim,runlist) {1 1 1 0}
- set gdb_target(sim,options) ""
- set gdb_target(sim,after_attaching) {}
-
- # Remote
- set gdb_target(remote,pretty-name) "Remote/Serial"
- set gdb_target(remote,defbaud) "9600"
- set gdb_target(remote,baud-rates) {9600 19200 38400 57600 115200}
- set gdb_target(remote,cmd) "remote com1"
- set gdb_target(remote,runlist) {1 1 0 1}
- set gdb_target(remote,after_attaching) {}
- set gdb_target(remotetcp,pretty-name) "Remote/TCP"
- set gdb_target(remotetcp,defbaud) "TCP"
- set gdb_target(remotetcp,baud-rates) {}
- set gdb_target(remotetcp,cmd) "remote tcpX"
- set gdb_target(remotetcp,runlist) {1 1 0 1}
- set gdb_target(remotetcp,after_attaching) {}
-
- # ARM Angel
- set gdb_target(rdi,pretty-name) "ARM Angel/Serial"
- set gdb_target(rdi,defbaud) "9600"
- set gdb_target(rdi,baud-rates) {9600 19200 38400 57600 115200}
- set gdb_target(rdi,cmd) "rdi com1"
- set gdb_target(rdi,runlist) {1 1 0 1}
- set gdb_target(rdi,after_attaching) {}
-
- # ARM Angel/Ethernet
- set gdb_target(rditcp,pretty-name) "ARM Angel/Ethernet"
- set gdb_target(rditcp,defbaud) "ETH"
- set gdb_target(rditcp,baud-rates) {}
- set gdb_target(rditcp,cmd) "rdi ethX"
- set gdb_target(rditcp,runlist) {1 1 0 1}
- set gdb_target(rditcp,after_attaching) {}
-
- # ARM Remote
- set gdb_target(rdp,pretty-name) "ARM Remote/Serial"
- set gdb_target(rdp,defbaud) "9600"
- set gdb_target(rdp,baud-rates) {9600}
- set gdb_target(rdp,cmd) "rdp com1"
- set gdb_target(rdp,runlist) {1 1 0 1}
- set gdb_target(rdp,after_attaching) {}
- set gdb_target(rdptcp,pretty-name) "ARM Remote/TCP"
- set gdb_target(rdptcp,defbaud) "TCP"
- set gdb_target(rdptcp,baud-rates) {}
- set gdb_target(rdptcp,cmd) "rdp tcpX"
- set gdb_target(rdptcp,runlist) {1 1 0 1}
- set gdb_target(rdptcp,after_attaching) {}
-
- # m32r rev C
- set gdb_target(m32r,pretty-name) "M32R/Serial"
- set gdb_target(m32r,defbaud) "9600"
- set gdb_target(m32r,baud-rates) {9600}
- set gdb_target(m32r,cmd) "m32r com1"
- set gdb_target(m32r,runlist) {1 1 0 1}
- set gdb_target(m32r,after_attaching) {}
- set gdb_target(m32rtcp,pretty-name) "M32R/TCP"
- set gdb_target(m32rtcp,defbaud) "TCP"
- set gdb_target(m32rtcp,baud-rates) {}
- set gdb_target(m32rtcp,cmd) "m32r tcpX"
- set gdb_target(m32rtcp,runlist) {1 1 0 1}
- set gdb_target(m32rtcp,after_attaching) {}
-
- # m32r msa2000
- set gdb_target(mon2000,pretty-name) "MON2000/Serial"
- set gdb_target(mon2000,defbaud) "9600"
- set gdb_target(mon2000,baud-rates) {9600}
- set gdb_target(mon2000,cmd) "mon2000 com1"
- set gdb_target(mon2000,runlist) {1 1 0 1}
- set gdb_target(mon2000,after_attaching) {}
- set gdb_target(mon2000tcp,pretty-name) "MON2000/TCP"
- set gdb_target(mon2000tcp,defbaud) "TCP"
- set gdb_target(mon2000tcp,baud-rates) {}
- set gdb_target(mon2000tcp,cmd) "mon2000 tcpX"
- set gdb_target(mon2000tcp,runlist) {1 1 0 1}
- set gdb_target(mon2000tcp,after_attaching) {}
-
- # sparclite
- set gdb_target(sparclite,pretty-name) "SPARClite/Serial"
- set gdb_target(sparclite,defbaud) "9600"
- set gdb_target(sparclite,baud-rates) {9600}
- set gdb_target(sparclite,cmd) "sparclite com1"
- set gdb_target(sparclite,runlist) {1 1 0 1}
- set gdb_target(sparclite,after_attaching) {}
- set gdb_target(sparclitetcp,pretty-name) "SPARClite/TCP"
- set gdb_target(sparclitetcp,defbaud) "TCP"
- set gdb_target(sparclitetcp,baud-rates) {}
- set gdb_target(sparclitetcp,cmd) "sparclite tcpX"
- set gdb_target(sparclitetcp,runlist) {1 1 0 1}
- set gdb_target(sparclitetcp,after_attaching) {}
-
- # V850 ICE
- set gdb_target(ice,pretty-name) "V850 ICE"
- set gdb_target(ice,defbaud) ""
- set gdb_target(ice,baud-rates) {}
- set gdb_target(ice,cmd) "ice"
- set gdb_target(ice,runlist) {1 1 0 1}
- set gdb_target(ice,after_attaching) {}
-
- # MIPS
- set gdb_target(mips,pretty-name) "MIPS/Serial"
- set gdb_target(mips,defbaud) "9600"
- set gdb_target(mips,baud-rates) {9600}
- set gdb_target(mips,cmd) "mips com1"
- set gdb_target(mips,runlist) {1 1 0 1}
- set gdb_target(mips,after_attaching) {}
- set gdb_target(mipstcp,pretty-name) "MIPS/TCP"
- set gdb_target(mipstcp,defbaud) "TCP"
- set gdb_target(mipstcp,baud-rates) {}
- set gdb_target(mipstcp,cmd) "mips tcpX"
- set gdb_target(mipstcp,runlist) {1 1 0 1}
- set gdb_target(mipstcp,after_attaching) {}
-
- # PMON
- set gdb_target(pmon,pretty-name) "PMON/Serial"
- set gdb_target(pmon,defbaud) "9600"
- set gdb_target(pmon,baud-rates) {9600 19200 38400}
- set gdb_target(pmon,cmd) "pmon com1"
- set gdb_target(pmon,runlist) {1 1 0 1}
- set gdb_target(pmon,after_attaching) {}
- set gdb_target(pmontcp,pretty-name) "PMON/TCP"
- set gdb_target(pmontcp,defbaud) "TCP"
- set gdb_target(pmontcp,baud-rates) {}
- set gdb_target(pmontcp,cmd) "pmon tcpX"
- set gdb_target(pmontcp,runlist) {1 1 0 1}
- set gdb_target(pmontcp,after_attaching) {}
-
- # DDB
- set gdb_target(ddb,pretty-name) "DDB/Serial"
- set gdb_target(ddb,defbaud) "19200"
- set gdb_target(ddb,baud-rates) {9600 19200 38400}
- set gdb_target(ddb,cmd) "ddb com1"
- set gdb_target(ddb,runlist) {1 1 0 1}
- set gdb_target(ddb,after_attaching) {}
- set gdb_target(ddbtcp,pretty-name) "DDB/TCP"
- set gdb_target(ddbtcp,defbaud) "TCP"
- set gdb_target(ddbtcp,baud-rates) {}
- set gdb_target(ddbtcp,cmd) "ddb tcpX"
- set gdb_target(ddbtcp,runlist) {1 1 0 1}
- set gdb_target(ddbtcp,after_attaching) {}
-
- # Picobug
- set gdb_target(picobug,pretty-name) "Picobug/Serial"
- set gdb_target(picobug,defbaud) "19200"
- set gdb_target(picobug,baud-rates) {19200}
- set gdb_target(picobug,cmd) "picobug com1"
- set gdb_target(picobug,runlist) {1 1 0 1}
- set gdb_target(picobug,after_attaching) {}
- set gdb_target(picobugtcp,pretty-name) "Picobug/TCP"
- set gdb_target(picobugtcp,defbaud) "TCP"
- set gdb_target(picobugtcp,baud-rates) {}
- set gdb_target(picobugtcp,cmd) "picobug tcpX"
- set gdb_target(picobugtcp,runlist) {1 1 0 1}
- set gdb_target(picobugtcp,after_attaching) {}
-
- # Cisco.
- set gdb_target(cisco,pretty-name) "Cisco/Serial"
- set gdb_target(cisco,defbaud) "38400"
- set gdb_target(cisco,baud-rates) {9600 19200 38400 56000}
- set gdb_target(cisco,cmd) "cisco com1"
- set gdb_target(cisco,runlist) {1 0 0 0}
- set gdb_target(cisco,after_attaching) "set os cisco"
- set gdb_target(ciscotcp,pretty-name) "Cisco/TCP"
- set gdb_target(ciscotcp,defbaud) "TCP"
- set gdb_target(ciscotcp,baud-rates) {}
- set gdb_target(ciscotcp,cmd) "cisco tcpX"
- set gdb_target(ciscotcp,runlist) {1 0 0 0}
- set gdb_target(ciscotcp,after_attaching) "set os cisco"
-
- # VxWorks
- set gdb_target(vxworks,pretty-name) "VxWorks RDB"
- set gdb_target(vxworks,defbaud) "ETH"
- set gdb_target(vxworks,baud-rates) {}
- set gdb_target(vxworks,cmd) "vxworks ethX"
- set gdb_target(vxworks,runlist) { 1 0 1 1}
- set gdb_target(vxworks,after_attaching) { sym vxWorks.st }
-
- # GDBServer, libremote, rda, etc
- set gdb_target(gdbserver,pretty-name) "GDBserver"
- set gdb_target(gdbserver,pretty-name) "GDBserver/Serial"
- set gdb_target(gdbserver,defbaud) "9600"
- set gdb_target(gdbserver,baud-rates) {9600 19200 38400 57600 115200}
- set gdb_target(gdbserver,cmd) "remote com1"
- set gdb_target(gdbserver,runlist) {1 0 0 1}
- set gdb_target(gdbserver,after_attaching) {}
- set gdb_target(gdbservertcp,pretty-name) "GDBserver/TCP"
- set gdb_target(gdbservertcp,defbaud) "TCP"
- set gdb_target(gdbservertcp,baud-rates) {}
- set gdb_target(gdbservertcp,cmd) "remote tcpX"
- set gdb_target(gdbservertcp,runlist) {1 0 0 1}
- set gdb_target(gdbservertcp,after_attaching) {}
-}
-
-itcl::body TargetSelection::default_port {} {
- global tcl_platform
- switch -regexp $tcl_platform(os) {
- Windows { set port com1 }
- Linux { set port /dev/ttyS0 }
- SunOS { set port /dev/ttya }
- AIX { set port /dev/foo1 }
- ULTRIX { set port /dev/foo1 }
- IRIX { set port /dev/foo1 }
- OSF1 { set port /dev/foo1 }
- NetBSD { set port /dev/foo1 }
- HP-UX {
- # Special case...
- switch -regexp $tcl_platform(osVersion) {
- A.09 { set port /dev/tty00 }
- B.10 -
- B.11 { set port /dev/tty0p0 }
- }
- }
- default { set port /dev/ttya }
- }
-
- return $port
-}
-
-
-itcl::body TargetSelection::_init_prefs {} {
-
- if {$prefs_inited} {
- return
- }
- set prefs_inited 1
-
- # these are not target-specific
-
- pref define gdb/load/main 1
- pref define gdb/load/exit 1
- pref define gdb/load/check 0
-
- # these are target-specific
- # set up the defaults
- pref define gdb/load/default-verbose 0
- pref define gdb/load/default-port [default_port]
- pref define gdb/load/default-hostname ""
- pref define gdb/load/default-after_attaching {}
-}
-
-itcl::body TargetSelection::_init_target {} {
- global gdb_target_name
- set target_list [get_target_list]
- set target $gdb_target_name
-
- # target = CANCEL should never come into here. If the target was
- # returned as CANCEL, it should be fixed by the caller... But it
- # should not be harmful if it gets in here.
-
- if {$target == "" || [string compare $target CANCEL] == 0} {
- set target default
- }
-
- set defbaud $gdb_target($target,defbaud)
- pref define gdb/load/$target-baud $defbaud
- pref define gdb/load/$target-port [pref get gdb/load/default-port]
- pref define gdb/load/$target-verbose [pref get gdb/load/default-verbose]
- pref define gdb/load/$target-portname 1000
- pref define gdb/load/$target-hostname [pref get gdb/load/default-hostname]
-
- set err [catch {pref get gdb/load/$target-runlist} run_list]
- if {$err} {
- set run_list $gdb_target($target,runlist)
- pref setd gdb/load/$target-runlist $run_list
- }
- pref set gdb/src/run_attach [lindex $run_list 0]
- pref set gdb/src/run_load [lindex $run_list 1]
- pref set gdb/src/run_run [lindex $run_list 2]
- pref set gdb/src/run_cont [lindex $run_list 3]
-
- set err [catch {pref get gdb/load/$target-after_attaching} aa]
- if {$err} {
- set aa $gdb_target($target,after_attaching)
- pref setd gdb/load/$target-after_attaching $aa
- }
-}
-
-itcl::body TargetSelection::_init {} {
-
- if {!$trace_inited} {
- # Trace all gdb_loaded changes based on target
- trace variable gdb_loaded w [code TargetSelection::target_trace]
- }
- set trace_inited 1
-
- init_target_db ;# initialize database
- _init_prefs ;# initialize load prefs
- _init_target ;# initialize target prefs
- set_saved
-
- # This tells us that the target system is inited. Some of these
- # init functions need to be called every time the target dialog is
- # posted, some only once. The latter functions can check inited to
- # see what they should do.
-
-}
-
-# ------------------------------------------------------------------
-# METHOD: build_win - build the dialog
-# ------------------------------------------------------------------
-itcl::body TargetSelection::build_win {} {
- global tcl_platform PREFS_state gdb_ImageDir gdb_target_name
-
- set f [frame $itk_interior.f]
- set opts [frame $itk_interior.moreoptions]
- frame $itk_interior.moreoptionsframe
- set btns [frame $itk_interior.buttons]
-
- #labelled frame "Connection"
- iwidgets::Labeledframe $f.lab -labelpos nw -labeltext [gettext "Connection"]
- set fr [$f.lab childsite]
-
- # target name
- label $fr.tarl -text [gettext "Target:"]
- combobox::combobox $fr.tar -editable 0 -command [code $this change_target] \
- -width $Width -maxheight 10 -bg $::Colors(textbg)
-
- # baud rate combobox
- label $fr.cbl -text [gettext "Baud Rate:"]
- combobox::combobox $fr.cb -editable 0 -command [code $this change_baud] \
- -textvariable [pref varname gdb/load/$target-baud] -width $Width \
- -maxheight 10 -bg $::Colors(textbg)
-
- if {[catch {gdb_cmd "show remotebaud"} res]} {
- set baud [pref get gdb/load/$target-baud]
- } else {
- set baud [lindex $res end]
- set baud [string trimright $baud "."]
- # When uninitialized, GDB returns a baud rate of 2^32
- # Detect this and ignore it.
- if {$baud > 4000000000} {
- set baud [pref get gdb/load/$target-baud]
- } else {
- pref setd gdb/load/$target-baud $baud
- }
- }
-
- # host entry widget
- entry $fr.host -textvariable [pref varname gdb/load/$target-hostname] \
- -width $Width
-
- # port combobox
- if {$tcl_platform(platform) == "windows"} {
- set editable 0
- } else {
- set editable 1
- }
-
- label $fr.portl -text [gettext "Port:"]
- combobox::combobox $fr.port -editable $editable \
- -textvariable [pref varname gdb/load/$target-port] \
- -width $Width -maxheight 10 -bg $::Colors(textbg)
-
- # load baud rates into combobox
- fill_rates
-
- # load port combobox
- if {$tcl_platform(platform) == "windows"} {
- foreach val [port_list] {
- $fr.port list insert end $val
- }
- } else {
- # fixme: how do I find valid values for these????
- switch $tcl_platform(os) {
- Linux { set ports [list /dev/cua0 /dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3]}
- SunOS { set ports [list /dev/ttya /dev/ttyb] }
- AIX { set ports [list /dev/foo1 /dev/foo2] }
- ULTRIX { set ports [list /dev/foo1 /dev/foo2] }
- IRIX { set ports [list /dev/foo1 /dev/foo2] }
- OSF1 { set ports [list /dev/foo1 /dev/foo2] }
- NetBSD { set ports [list /dev/foo1 /dev/foo2] }
- HP-UX {
- # Special case...
- switch -regexp $tcl_platform(osVersion) {
- A.09 { set ports [list /dev/tty00 /dev/tty01] }
- B.10 -
- B.11 { set ports [list /dev/tty0p0 /dev/tty1p0] }
- }
- }
- default { set ports [list UNKNOWN UNKNOWN] }
- }
- foreach val $ports {
- $fr.port list insert end $val
- }
- }
-
- # Port entry widget
- entry $fr.porte -textvariable [pref varname gdb/load/$target-port] -width $Width
-
- frame $f.fr
- checkbutton $f.fr.main -text [gettext "Set breakpoint at 'main'"] \
- -variable [pref varname gdb/load/main]
- checkbutton $f.fr.exit -text [gettext "Set breakpoint at 'exit'"] \
- -variable [pref varname gdb/load/exit]
- frame $f.fr.bp
- checkbutton $f.fr.bp.at_func -text [gettext "Set breakpoint at"] \
- -variable [pref varname gdb/load/bp_at_func]
- entry $f.fr.bp.func -textvariable [pref varname gdb/load/bp_func] -width 20
- checkbutton $f.fr.verb -text [gettext "Display Download Dialog"] \
- -variable [pref varname gdb/load/$target-verbose]
-
- if {$tcl_platform(platform) == "unix"} {
- checkbutton $f.fr.xterm -text [gettext "Use xterm as inferior's tty"] \
- -variable [pref varname gdb/process/xtermtty] \
- -onvalue yes -offvalue no
- }
-
- if {![pref get gdb/control_target]} {
- $f.fr.main configure -state disabled
- $f.fr.exit configure -state disabled
- $f.fr.verb configure -state disabled
- $f.fr.bp.at_func configure -state disabled
- $f.fr.bp.func configure -state disabled
- checkbutton $f.fr.check -text [gettext "Compare to remote executable"] \
- -variable [pref varname gdb/load/check]
- if { $gdb_target_name == "exec" } {
- $f.fr.check configure -state disabled
- }
- }
-
- grid $fr.tarl $fr.tar -sticky w -padx 5 -pady 5
- grid $fr.cbl $fr.cb -sticky w -padx 5 -pady 5
- grid $fr.portl $fr.port -sticky w -padx 5 -pady 5
- set mapped1 $fr.cb
- set mapped2 $fr.port
-
- grid $f.fr.main -sticky w -padx 5 -pady 5
- grid $f.fr.exit -sticky w -padx 5 -pady 5
- pack $f.fr.bp.at_func $f.fr.bp.func -side left
- grid $f.fr.bp -sticky w -padx 5 -pady 5
- grid $f.fr.verb -sticky w -padx 5 -pady 5
- if {$tcl_platform(platform) == "unix"} {
- grid $f.fr.xterm -sticky w -padx 5 -pady 5
- }
- if {![pref get gdb/control_target]} {
- grid $f.fr.check -sticky w -padx 5 -pady 5
- }
-
- grid $f.lab $f.fr -sticky w -padx 5 -pady 5
-
- # Create the "More Options" thingy
- if {[lsearch [image names] _MORE_] == -1} {
- image create photo _MORE_ -file [file join $gdb_ImageDir more.gif]
- image create photo _LESS_ -file [file join $gdb_ImageDir less.gif]
- }
-
- set MoreButton [button $opts.button -image _MORE_ \
- -relief flat -command [code $this toggle_more_options]]
- set MoreLabel [label $opts.lbl -text {More Options}]
- frame $opts.frame -relief raised -bd 1
- pack $opts.button $opts.lbl -side left
- place $opts.frame -relx 1 -x -10 -rely 0.5 -relwidth 0.73 -height 2 -anchor e
-
- # Create the (hidden) more options frame
- set MoreFrame [iwidgets::Labeledframe $itk_interior.moreoptionsframe.frame \
- -labelpos nw -labeltext {Run Options}]
- set frame [$MoreFrame childsite]
-
- set var [pref varname gdb/src/run_attach]
- checkbutton $frame.attach -text {Attach to Target} -variable $var
-
- set var [pref varname gdb/src/run_load]
- checkbutton $frame.load -text {Download Program} -variable $var
-
- set rm_frame [iwidgets::labeledframe $frame.run_method -labelpos nw -labeltext "Run Method" ]
- set RunMethod [ $rm_frame childsite ]
-
- set var [pref varname gdb/src/run_cont]
- radiobutton $RunMethod.cont -text {Continue from Last Stop} -value 1 -variable $var \
- -command [code $this set_run run]
-
- set var [pref varname gdb/src/run_run]
- radiobutton $RunMethod.run -text {Run Program} -value 1 -variable $var \
- -command [code $this set_run cont]
-
- # The after attaching command entry
- set _after_entry [entry $frame.aftere]
- label $frame.afterl -text {Command to issue after attaching:}
-
- grid $frame.attach -column 0 -row 1 -padx 10 -sticky w
- grid $frame.load -column 0 -row 2 -padx 10 -sticky w
-
- grid $RunMethod.run -column 0 -row 1 -sticky w -ipady 2
- grid $RunMethod.cont -column 0 -row 2 -sticky w -ipady 2
-
- grid $rm_frame -column 1 -row 1 -rowspan 2 -sticky nsew -ipady 2
-
- grid $frame.afterl -row 4 -sticky we -columnspan 2 -ipady 2
- grid $frame.aftere -sticky we -columnspan 2 -ipady 2
- grid columnconfigure $frame 0 -weight 1
- grid columnconfigure $frame 1 -weight 1
-
- # Map everything onto the screen
- # This looks like a possible packing bug -- our topmost frame
- # will not resize itself. So, instead, use the topmost frame.
- #pack $f $opts $itk_interior.moreoptionsframe -side top -fill x
- pack $MoreFrame -fill x -expand yes
- pack $f $opts -side top -fill x
-
- change_target $gdb_target($target,pretty-name)
-
- button $btns.ok -text [gettext OK] -width 7 -command [code $this save] \
- -default active
- button $btns.cancel -text [gettext Cancel] -width 7 \
- -command [code $this cancel]
- button $btns.help -text [gettext Help] -width 7 -command [code $this help]
-
- standard_button_box $btns
- bind $btns.ok <Return> "$btns.ok flash; $btns.ok invoke"
- bind $btns.cancel <Return> "$btns.cancel flash; $btns.cancel invoke"
- bind $btns.help <Return> "$btns.help flash; $btns.help invoke"
-
- pack $btns -side bottom -anchor e
- focus $btns.ok
-
- # set up balloon help
- balloon register $f.fr.bp.at_func "Set User-Speficied Breakpoints at Run Time"
- balloon register $f.fr.bp.func "Enter a List of Functions for Breakpoints"
-
- window_name "Target Selection"
-
- if {[valid_target $target]} {
- $fr.tar configure -value $gdb_target($target,pretty-name)
- }
- fill_targets
-
-
-}
-
-# ------------------------------------------------------------------
-# METHOD: set_saved - set saved values
-# ------------------------------------------------------------------
-itcl::body TargetSelection::set_saved {} {
- set saved_baud [pref get gdb/load/$target-baud]
- set saved_port [pref get gdb/load/$target-port]
- set saved_main [pref get gdb/load/main]
- set saved_exit [pref get gdb/load/exit]
- set saved_check [pref get gdb/load/check]
- set saved_verb [pref get gdb/load/$target-verbose]
- set saved_portname [pref get gdb/load/$target-portname]
- set saved_hostname [pref get gdb/load/$target-hostname]
- set saved_attach [pref get gdb/src/run_attach]
- set saved_load [pref get gdb/src/run_load]
- set saved_run [pref get gdb/src/run_run]
- set saved_cont [pref get gdb/src/run_cont]
- if {[info exists gdb_target($target,options)]} {
- if {[catch {pref get gdb/load/$target-opts} saved_options]} {
- set saved_options ""
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: write_saved - write saved values to preferences
-# ------------------------------------------------------------------
-itcl::body TargetSelection::write_saved {} {
- pref setd gdb/load/$target-baud $saved_baud
- pref setd gdb/load/$target-port $saved_port
- pref setd gdb/load/main $saved_main
- pref setd gdb/load/exit $saved_exit
- pref setd gdb/load/check $saved_check
- pref setd gdb/load/$target-verbose $saved_verb
- pref setd gdb/load/$target-portname $saved_portname
- pref setd gdb/load/$target-hostname $saved_hostname
- pref setd gdb/load/$target-runlist [list $saved_attach $saved_load $saved_run $saved_cont]
- if {[info exists gdb_target($target,options)]} {
- pref setd gdb/load/$target-opts $saved_options
- }
- if {[catch {$_after_entry get} saved_after_attaching]} {
- set saved_after_attaching ""
- }
- pref setd gdb/load/$target-after_attaching $saved_after_attaching
-}
-
-# ------------------------------------------------------------------
-# METHOD: fill_rates - fill baud rate combobox
-# ------------------------------------------------------------------
-itcl::body TargetSelection::fill_rates {} {
- $fr.cb list delete 0 end
-
- if {$gdb_target($target,baud-rates) != ""} {
- foreach val $gdb_target($target,baud-rates) {
- $fr.cb list insert end $val
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: fill_targets - fill target combobox
-# ------------------------------------------------------------------
-itcl::body TargetSelection::fill_targets {} {
- #[$fr.tar subwidget listbox] delete 0 end
- $fr.tar list delete 0 end
-
- foreach val $target_list {
- if {[info exists gdb_target($val,pretty-name)]} {
- $fr.tar list insert end $gdb_target($val,pretty-name)
-
- # Insert TCP target, if it exists
- if {[info exists gdb_target(${val}tcp,pretty-name)]} {
- $fr.tar list insert end $gdb_target(${val}tcp,pretty-name)
- }
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: config_dialog - Convenience method to map/unmap/rename
-# components onto the screen based on target T.
-# ------------------------------------------------------------------
-itcl::body TargetSelection::config_dialog {t} {
- pref define gdb/load/$t-verbose [pref get gdb/load/verbose]
- $f.fr.verb config -variable [pref varname gdb/load/$t-verbose]
- # Map the correct entries and comboboxes onto the screen
- if {$gdb_target($t,defbaud) == "TCP"} {
- # we have a tcp target
- # map host and porte
- if {$mapped1 != "$fr.host"} {
- grid forget $mapped1
- set mapped1 $fr.host
- grid $mapped1 -row 1 -column 1 -sticky w -padx 5 -pady 5
- }
- $fr.cbl configure -text "Hostname:"
- $fr.host config -textvariable [pref varname gdb/load/$t-hostname]
-
- if {$mapped2 != "$fr.porte"} {
- grid forget $mapped2
- set mapped2 $fr.porte
- grid $mapped2 -row 2 -column 1 -sticky w -padx 5 -pady 5
- }
- $fr.portl configure -text {Port:}
- $fr.porte config -textvariable [pref varname gdb/load/$t-portname] -fg black
-
- $mapped1 configure -state normal
- $mapped2 configure -state normal
- } elseif {$gdb_target($t,defbaud) == "ETH"} {
- # we have a udp target
- # map host and porte
- if {$mapped1 != "$fr.host"} {
- grid forget $mapped1
- set mapped1 $fr.host
- grid $mapped1 -row 1 -column 1 -sticky w -padx 5 -pady 5
- }
- $fr.cbl configure -text "Hostname:"
- $fr.host config -textvariable [pref varname gdb/load/$t-hostname]
-
- if {$mapped2 != "$fr.porte"} {
- grid forget $mapped2
- }
- $fr.portl configure -text {Port: N/A (fixed)}
-
- $mapped1 configure -state normal
- $mapped2 configure -state disabled
- } elseif {$gdb_target($t,defbaud) != ""} {
- # we have a serial target
- # map port and cb
- if {$mapped1 != "$fr.cb"} {
- grid forget $mapped1
- set mapped1 $fr.cb
- grid $mapped1 -row 1 -column 1 -sticky w -padx 5 -pady 5
- }
- $fr.cbl configure -text "Baud Rate:"
- $fr.cb configure -textvariable [pref varname gdb/load/$t-baud]
-
- if {$mapped2 != "$fr.port"} {
- grid forget $mapped2
- set mapped2 $fr.port
- grid $mapped2 -row 2 -column 1 -sticky w -padx 5 -pady 5
- }
- $fr.portl configure -text {Port:}
- $fr.port configure -textvariable [pref varname gdb/load/$t-port]
-
- $mapped1 configure -state normal
- $mapped2 configure -state normal
- } else {
- # we have a non-remote(-like) target
- # disable all (except tar) and check for
- # options
- $mapped1 configure -state disabled
- $mapped2 configure -state disabled
- $fr.porte configure -fg gray
-
- if {[info exists gdb_target($t,options)]} {
- if {$mapped1 != "$fr.host"} {
- grid forget $mapped1
- set mapped1 $fr.host
- grid $mapped1 -row 1 -column 1 -sticky w -padx 5 -pady 5
- }
- $mapped1 configure -state normal
- $fr.host config -textvariable [pref varname gdb/load/$t-opts]
-
- # We call options "arguments" for the exec target
- # FIXME: this is really overloaded!!
- if {$t == "exec"} {
- set text "Arguments:"
- } else {
- set text "Options:"
- }
- $fr.cbl configure -text $text
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: change_target - callback for target combobox
-# ------------------------------------------------------------------
-itcl::body TargetSelection::change_target {w {name ""}} {
- if {$name == ""} {return}
- set target [get_target $name]
-
- if { "$target" == "exec" } {
- $RunMethod.run configure -state disabled -value 1
- $RunMethod.cont configure -state disabled
- } else {
- $RunMethod.run configure -state normal
- $RunMethod.cont configure -state normal
- }
-
- debug "$target"
- set defbaud $gdb_target($target,defbaud)
- pref define gdb/load/$target-baud $defbaud
- pref define gdb/load/$target-portname 1000
- pref define gdb/load/$target-hostname [pref get gdb/load/default-hostname]
- if {$defbaud == ""} {
- pref define gdb/load/$target-port ""
- } else {
- pref define gdb/load/$target-port [pref get gdb/load/default-port]
- }
-
- config_dialog $target
- fill_rates
-
- # Configure the default run options for this target
- set err [catch {pref get gdb/load/$target-runlist} run_list]
- if {$err} {
- set run_list $gdb_target($target,runlist)
- pref setd gdb/load/$target-runlist $run_list
- }
-
- pref set gdb/src/run_attach [lindex $run_list 0]
- pref set gdb/src/run_load [lindex $run_list 1]
- pref set gdb/src/run_run [lindex $run_list 2]
- pref set gdb/src/run_cont [lindex $run_list 3]
- set_check_button $name
-
- set err [catch {pref get gdb/load/$target-after_attaching} aa]
- if {$err} {
- set aa $gdb_target($target,after_attaching)
- pref setd gdb/load/$target-after_attaching $aa
- }
-
- $_after_entry delete 0 end
- $_after_entry insert 0 $aa
-
- set_saved
-
- set changes 0
-}
-
-# ------------------------------------------------------------------
-# PRIVATE METHOD: change_baud - called when the baud rate is changed.
-# If GDB is running, set baud rate in GDB and read it back.
-# ------------------------------------------------------------------
-itcl::body TargetSelection::change_baud {w {baud ""}} {
- if {$baud != ""} {
- if {([string compare $baud "TCP"] != 0)
- && ([string compare $baud "ETH"] != 0)} {
- gdb_cmd "set remotebaud $baud"
- if {[catch {gdb_cmd "show remotebaud"} res]} {
- set newbaud 0
- } else {
- set newbaud [lindex $res end]
- set newbaud [string trimright $newbaud "."]
- if {$newbaud > 4000000} {
- set newbaud 0
- }
- }
- if {$newbaud != $baud} {
- pref set gdb/load/$target-baud $newbaud
- }
- }
- }
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: port_list - return a list of valid ports for Windows
-# ------------------------------------------------------------------
-itcl::body TargetSelection::port_list {} {
- set plist ""
- # Scan com1 - com8 trying to open each one.
- # If permission is denied that means it is in use,
- # which is OK because we may be using it or the user
- # may be setting up the remote target manually with
- # a terminal program.
- set quit 0
- for {set i 1} {!$quit} {incr i} {
- if {[catch { set fd [::open COM$i: RDWR] } msg]} {
- # Failed. Find out why.
- if {[string first "permission denied" $msg] != -1} {
- # Port is there, but busy right now. That's OK.
- lappend plist /dev/com$i
- } elseif {$i > 4} {
- # if we've scanned the first 4 ports, then quit when we find no more
- set quit 1
- }
- } else {
- # We got it. Now close it and add to list.
- close $fd
- lappend plist /dev/com$i
- }
- }
- return $plist
-}
-
-# ------------------------------------------------------------------
-# METHOD: get_target_list - return a list of targets supported
-# by this GDB. Parses the output of "help target"
-# ------------------------------------------------------------------
-itcl::body TargetSelection::get_target_list {} {
- set native [native_debugging]
- set names ""
- set res [gdb_cmd "help target"]; # this just screams MI...
-
- # targets are listed with lines like "target NAME -- DESCRIPTION"
- foreach line [split $res \n] {
- if {[scan $line "target %s --" name] == 1} {
- # For cross debuggers, do not allow the target "exec"
- if {$name == "exec" && !$native} {
- continue
- }
-
- lappend names $name
- }
- }
-
- lappend names gdbserver
- return [lsort $names]
-}
-
-# ------------------------------------------------------------------
-# METHOD: save - save values
-# ------------------------------------------------------------------
-itcl::body TargetSelection::save {} {
- global gdb_target_name
- set err [catch {
- set_saved
- write_saved
- set gdb_target_name $target
- pref setd gdb/load/target $target
- } errtxt]
- if {$err} {debug "target: $errtxt"}
- if {[valid_target $gdb_target_name]} {
- # Dismiss the dialog box
- unpost
- } else {
- tk_messageBox -message "The current target is not valid."
- }
-
-}
-
-
-# ------------------------------------------------------------------
-# METHOD: cancel - restore previous values
-# ------------------------------------------------------------------
-itcl::body TargetSelection::cancel {} {
- global gdb_target_name
- catch {gdb_cmd "set remotebaud $saved_baud"}
-
- $fr.cb configure -value $saved_baud
- write_saved
- if {$exportcancel} {
- set gdb_target_name CANCEL
- }
-
- # Now dismiss the dialog
- unpost
-}
-
-# ------------------------------------------------------------------
-# METHOD: set_check_button - enable/disable compare-section command
-# ------------------------------------------------------------------
-itcl::body TargetSelection::set_check_button {name} {
- if {[winfo exists $itk_interior.f.fr.check]} {
- if { $name == "exec" } {
- $itk_interior.f.fr.check configure -state disabled
- } else {
- $itk_interior.f.fr.check configure -state normal
- }
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: help - launches context sensitive help.
-# ------------------------------------------------------------------
-itcl::body TargetSelection::help {} {
- open_help target.html
-}
-
-# ------------------------------------------------------------------
-# METHOD: reconfig - used when preferences change
-# ------------------------------------------------------------------
-itcl::body TargetSelection::reconfig {} {
- # for now, just delete and recreate
- destroy $itk_interior.f
- build_win
-}
-
-# ------------------------------------------------------------------
-# METHOD: get_target - get the internal name of a target from the
-# pretty-name
-# ------------------------------------------------------------------
-itcl::body TargetSelection::get_target {name} {
- set t {}
- set list [array get gdb_target *,pretty-name]
- set i [lsearch -exact $list $name]
- if {$i != -1} {
- incr i -1
- set t [lindex [split [lindex $list $i] ,] 0]
- } else {
- debug "unknown pretty-name \"$name\""
- }
- return $t
-}
-
-# ------------------------------------------------------------------
-# METHOD: toggle_more_options -- toggle displaying the More/Fewer
-# Options pane
-# ------------------------------------------------------------------
-itcl::body TargetSelection::toggle_more_options {} {
- if {[$MoreLabel cget -text] == "More Options"} {
- $MoreLabel configure -text "Fewer Options"
- $MoreButton configure -image _LESS_
- # Bug in Tk? The top-most frame does not shrink...
- #pack $MoreFrame
- pack $itk_interior.moreoptionsframe -after $itk_interior.moreoptions -fill both -padx 5 -pady 5
- } else {
- $MoreLabel configure -text "More Options"
- $MoreButton configure -image _MORE_
- #pack forget $MoreFrame
- pack forget $itk_interior.moreoptionsframe
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: set_run - set the run button. Make sure not both run and
-# continue are selected.
-# ------------------------------------------------------------------
-itcl::body TargetSelection::set_run {check_which} {
- global PREFS_state
- set var [pref varname gdb/src/run_$check_which]
- global $var
- if {[set $var]} {
- set $var 0
- }
-}
-
-# ------------------------------------------------------------------
-# PROCEDURE: target_trace
-# This procedure is used to configure gdb_loaded
-# and possible more) whenever the value of gdb_loaded
-# is changed based on the current target.
-# ------------------------------------------------------------------
-itcl::body TargetSelection::target_trace {variable index op} {
- global gdb_target_name gdb_loaded
-
- switch $gdb_target_name {
-
- exec {
- # The exec target is always loaded.
- set gdb_loaded 1
- }
- }
-}
-
-# Returns 1 if TARGET is a _runnable_ target for this gdb.
-itcl::body TargetSelection::valid_target {target} {
-
- # always allow gdbserver
- if {$target == "gdbserver"} {return 1}
-
- set err [catch {gdb_cmd "help target $target"}]
- if {$target == "exec" && ![native_debugging]} {
- set err 1
- }
-
- if {[regexp "tcp$" $target]} {
- # Special case (of course)
- regsub tcp$ $target {} foo
- return [valid_target $foo]
- }
-
- return [expr {$err == 0}]
-}
-
-# Returns 1 if this is not a cross debugger.
-itcl::body TargetSelection::native_debugging {} {
- global GDBStartup
-
- set r [string compare $GDBStartup(host_name) $GDBStartup(target_name)]
- return [expr {!$r}]
-}
diff --git a/gdb/gdbtk/library/targetselection.ith b/gdb/gdbtk/library/targetselection.ith
deleted file mode 100644
index a7c9182491d..00000000000
--- a/gdb/gdbtk/library/targetselection.ith
+++ /dev/null
@@ -1,100 +0,0 @@
-# Target selection dialog class definition for GDBtk.
-# Copyright (C) 1997, 1998, 1999 Cygnus Solutions
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class TargetSelection {
- inherit ModalDialog ManagedWin
-
- private {
- variable f
- variable fr
- variable target
- variable saved_baud
- variable saved_port
- variable saved_main
- variable saved_exit
- variable saved_check
- variable saved_verb
- variable saved_portname
- variable saved_hostname
- variable saved_attach
- variable saved_load
- variable saved_run
- variable saved_cont
- variable saved_options
- variable saved_after_attaching
- variable _after_entry
- variable changes 0
- variable target_list ""
-
- common db_inited 0
- common prefs_inited 0
- common trace_inited 0
-
- # The Connection frame has three "sections"; the first contains
- # a combobox with all the targets. The second can either be
- # a combobox listing available baud rates or an entry for specifying
- # the hostname of a TCP connection. The actual widget mapped onto the
- # screen is saved in MAPPED1. The third section contains either a
- # combobox for the serial port or an entry for the portnumber. The
- # widget actually mapped onto the screen is saved in MAPPED2.
- variable mapped1
- variable mapped2
-
- variable Width 20
- variable MoreButton
- variable MoreFrame
- variable MoreLabel
-
- variable RunMethod
-
- proc _init_prefs {}
- proc default_port {}
-
- method build_win {}
- method cancel {}
- method change_baud {w {baud ""}}
- method change_target {w {name ""}}
- method config_dialog {t}
- method fill_rates {}
- method fill_targets {}
- method get_target {name}
- method help {}
- method _init {}
- method _init_target {}
- method port_list {}
- method save {}
- method set_check_button {name}
- method set_run {check_which}
- method set_saved {}
- method target_trace {variable index op}
- method toggle_more_options {}
- method valid_target {target}
- method write_saved {}
- }
-
- public {
- variable exportcancel 0
-
- method constructor {args}
- method reconfig {}
-
- proc get_target_list {}
- proc native_debugging {}
- proc getname {target name}
- proc init_target_db {}
- }
-
- protected common gdb_target
-
-}
diff --git a/gdb/gdbtk/library/tclIndex b/gdb/gdbtk/library/tclIndex
deleted file mode 100644
index 03ad77e86a5..00000000000
--- a/gdb/gdbtk/library/tclIndex
+++ /dev/null
@@ -1,639 +0,0 @@
-# Tcl autoload index file, version 2.0
-# This file is generated by the "auto_mkindex" command
-# and sourced to set up indexing information for one or
-# more commands. Typically each line is a command that
-# sets an element in the auto_index array, where the
-# element name is the name of a command and the value is
-# a script that loads the command.
-
-set auto_index(About) [list source [file join $dir about.tcl]]
-set auto_index(ActionDlg) [list source [file join $dir actiondlg.tcl]]
-set auto_index(::Editor::edit) [list source [file join $dir editor.tcl]]
-set auto_index(open_help) [list source [file join $dir helpviewer.tcl]]
-set auto_index(prompt_helpname) [list source [file join $dir helpviewer.tcl]]
-set auto_index(gdbtk_tcl_set_variable) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_preloop) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_busy) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_update) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_update_safe) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_idle) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_quit_check) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_quit) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_force_quit) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_cleanup) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_query) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_warning) [list source [file join $dir interface.tcl]]
-set auto_index(show_warning) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_ignorable_warning) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_fputs) [list source [file join $dir interface.tcl]]
-set auto_index(echo) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_fputs_error) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_fputs_log) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_fputs_target) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_fputs_target_err) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_flush) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_start_variable_annotation) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_end_variable_annotation) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_breakpoint) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_tracepoint) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_trace_find_hook) [list source [file join $dir interface.tcl]]
-set auto_index(gdb_run_readline_command) [list source [file join $dir interface.tcl]]
-set auto_index(gdb_run_readline_command_no_output) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_readline_begin) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_readline) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_readline_end) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_busy) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_idle) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_tstart) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_tstop) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_display) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_register_changed) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_memory_changed) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_pre_add_symbol) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_post_add_symbol) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_file_changed) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_exec_file_display) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_locate_main) [list source [file join $dir interface.tcl]]
-set auto_index(set_exe_name) [list source [file join $dir interface.tcl]]
-set auto_index(set_exe) [list source [file join $dir interface.tcl]]
-set auto_index(_open_file) [list source [file join $dir interface.tcl]]
-set auto_index(_close_file) [list source [file join $dir interface.tcl]]
-set auto_index(set_target_name) [list source [file join $dir interface.tcl]]
-set auto_index(set_target) [list source [file join $dir interface.tcl]]
-set auto_index(run_executable) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_attach_remote) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_connect) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_step) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_next) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_finish) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_continue) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_stepi) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_nexti) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_attached) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_detached) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_stop) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_stop_idle_callback) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_detach) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_run) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_attach_native) [list source [file join $dir interface.tcl]]
-set auto_index(set_baud) [list source [file join $dir interface.tcl]]
-set auto_index(do_state_hook) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_disconnect) [list source [file join $dir interface.tcl]]
-set auto_index(tstart) [list source [file join $dir interface.tcl]]
-set auto_index(tstop) [list source [file join $dir interface.tcl]]
-set auto_index(source_file) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_signal) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_clear_file) [list source [file join $dir interface.tcl]]
-set auto_index(initialize_gdbtk) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_tcl_architecture_changed) [list source [file join $dir interface.tcl]]
-set auto_index(gdbtk_console_read) [list source [file join $dir interface.tcl]]
-set auto_index(Iipc) [list source [file join $dir ipc.tcl]]
-set auto_index(LocalsWin) [list source [file join $dir locals.tcl]]
-set auto_index(ModalDialog) [list source [file join $dir modal.tcl]]
-set auto_index(pref_read) [list source [file join $dir prefs.tcl]]
-set auto_index(pref_save) [list source [file join $dir prefs.tcl]]
-set auto_index(escape_value) [list source [file join $dir prefs.tcl]]
-set auto_index(unescape_value) [list source [file join $dir prefs.tcl]]
-set auto_index(pref_set_defaults) [list source [file join $dir prefs.tcl]]
-set auto_index(pref_set_colors) [list source [file join $dir prefs.tcl]]
-set auto_index(pref_load_default) [list source [file join $dir prefs.tcl]]
-set auto_index(pref_load_gnome) [list source [file join $dir prefs.tcl]]
-set auto_index(load_gnome_file) [list source [file join $dir prefs.tcl]]
-set auto_index(pref_set_option_db) [list source [file join $dir prefs.tcl]]
-set auto_index(::Session::_exe_name) [list source [file join $dir session.tcl]]
-set auto_index(::Session::_serialize_bps) [list source [file join $dir session.tcl]]
-set auto_index(::Session::_recreate_bps) [list source [file join $dir session.tcl]]
-set auto_index(::Session::save) [list source [file join $dir session.tcl]]
-set auto_index(::Session::load) [list source [file join $dir session.tcl]]
-set auto_index(::Session::notice_file_change) [list source [file join $dir session.tcl]]
-set auto_index(::Session::delete) [list source [file join $dir session.tcl]]
-set auto_index(::Session::list_names) [list source [file join $dir session.tcl]]
-set auto_index(TdumpWin) [list source [file join $dir tdump.tcl]]
-set auto_index(TraceDlg) [list source [file join $dir tracedlg.tcl]]
-set auto_index(gdb_add_tracepoint) [list source [file join $dir tracedlg.tcl]]
-set auto_index(gdb_edit_tracepoint) [list source [file join $dir tracedlg.tcl]]
-set auto_index(::tty::create) [list source [file join $dir tty.tcl]]
-set auto_index(::tty::destroy) [list source [file join $dir tty.tcl]]
-set auto_index(keep_raised) [list source [file join $dir util.tcl]]
-set auto_index(sleep) [list source [file join $dir util.tcl]]
-set auto_index(auto_step) [list source [file join $dir util.tcl]]
-set auto_index(auto_step_cancel) [list source [file join $dir util.tcl]]
-set auto_index(tfind_cmd) [list source [file join $dir util.tcl]]
-set auto_index(save_trace_commands) [list source [file join $dir util.tcl]]
-set auto_index(do_test) [list source [file join $dir util.tcl]]
-set auto_index(gdbtk_read_defs) [list source [file join $dir util.tcl]]
-set auto_index(bp_exists) [list source [file join $dir util.tcl]]
-set auto_index(gridCGet) [list source [file join $dir util.tcl]]
-set auto_index(get_disassembly_flavor) [list source [file join $dir util.tcl]]
-set auto_index(list_disassembly_flavors) [list source [file join $dir util.tcl]]
-set auto_index(init_disassembly_flavor) [list source [file join $dir util.tcl]]
-set auto_index(list_element_strcmp) [list source [file join $dir util.tcl]]
-set auto_index(gdbtk_endian) [list source [file join $dir util.tcl]]
-set auto_index(set_bg_colors) [list source [file join $dir util.tcl]]
-set auto_index(r_setcolors) [list source [file join $dir util.tcl]]
-set auto_index(recolor) [list source [file join $dir util.tcl]]
-set auto_index(WarningDlg) [list source [file join $dir warning.tcl]]
-set auto_index(::WarningDlg::constructor) [list source [file join $dir warning.tcl]]
-set auto_index(WatchWin) [list source [file join $dir watch.tcl]]
-set auto_index(GDBMenuBar) [list source [file join $dir gdbmenubar.itcl]]
-set auto_index(GDBToolBar) [list source [file join $dir gdbtoolbar.itcl]]
-set auto_index(PluginWindow) [list source [file join $dir pluginwin.itcl]]
-set auto_index(SrcBar) [list source [file join $dir srcbar.itcl]]
-set auto_index(AttachDlg) [list source [file join $dir attachdlg.ith]]
-set auto_index(Block) [list source [file join $dir blockframe.ith]]
-set auto_index(Frame) [list source [file join $dir blockframe.ith]]
-set auto_index(BpWin) [list source [file join $dir bpwin.ith]]
-set auto_index(BrowserWin) [list source [file join $dir browserwin.ith]]
-set auto_index(Console) [list source [file join $dir console.ith]]
-set auto_index(CSPref) [list source [file join $dir cspref.ith]]
-set auto_index(DebugWin) [list source [file join $dir debugwin.ith]]
-set auto_index(DebugWinDOpts) [list source [file join $dir debugwin.ith]]
-set auto_index(Download) [list source [file join $dir download.ith]]
-set auto_index(GDBEventHandler) [list source [file join $dir ehandler.ith]]
-set auto_index(::GDBEventHandler::dispatch) [list source [file join $dir ehandler.ith]]
-set auto_index(EmbeddedWin) [list source [file join $dir embeddedwin.ith]]
-set auto_index(GDBEvent) [list source [file join $dir gdbevent.ith]]
-set auto_index(BreakpointEvent) [list source [file join $dir gdbevent.ith]]
-set auto_index(TracepointEvent) [list source [file join $dir gdbevent.ith]]
-set auto_index(SetVariableEvent) [list source [file join $dir gdbevent.ith]]
-set auto_index(BusyEvent) [list source [file join $dir gdbevent.ith]]
-set auto_index(IdleEvent) [list source [file join $dir gdbevent.ith]]
-set auto_index(UpdateEvent) [list source [file join $dir gdbevent.ith]]
-set auto_index(ArchChangedEvent) [list source [file join $dir gdbevent.ith]]
-set auto_index(GDBWin) [list source [file join $dir gdbwin.ith]]
-set auto_index(GlobalPref) [list source [file join $dir globalpref.ith]]
-set auto_index(IPCPref) [list source [file join $dir ipcpref.ith]]
-set auto_index(KodWin) [list source [file join $dir kod.ith]]
-set auto_index(ManagedWin) [list source [file join $dir managedwin.ith]]
-set auto_index(MemPref) [list source [file join $dir mempref.ith]]
-set auto_index(MemWin) [list source [file join $dir memwin.ith]]
-set auto_index(ProcessWin) [list source [file join $dir process.ith]]
-set auto_index(RegWin) [list source [file join $dir regwin.ith]]
-set auto_index(SrcPref) [list source [file join $dir srcpref.ith]]
-set auto_index(SrcTextWin) [list source [file join $dir srctextwin.ith]]
-set auto_index(SrcWin) [list source [file join $dir srcwin.ith]]
-set auto_index(StackWin) [list source [file join $dir stackwin.ith]]
-set auto_index(TargetSelection) [list source [file join $dir targetselection.ith]]
-set auto_index(TopLevelWin) [list source [file join $dir toplevelwin.ith]]
-set auto_index(VarTree) [list source [file join $dir vartree.ith]]
-set auto_index(::AttachDlg::constructor) [list source [file join $dir attachdlg.itb]]
-set auto_index(::AttachDlg::build_win) [list source [file join $dir attachdlg.itb]]
-set auto_index(::AttachDlg::doit) [list source [file join $dir attachdlg.itb]]
-set auto_index(::AttachDlg::cancel) [list source [file join $dir attachdlg.itb]]
-set auto_index(::AttachDlg::choose_symbol_file) [list source [file join $dir attachdlg.itb]]
-set auto_index(::AttachDlg::list_pids) [list source [file join $dir attachdlg.itb]]
-set auto_index(::AttachDlg::select_pid) [list source [file join $dir attachdlg.itb]]
-set auto_index(::AttachDlg::clear_pid_selection) [list source [file join $dir attachdlg.itb]]
-set auto_index(::AttachDlg::filter_pid_selection) [list source [file join $dir attachdlg.itb]]
-set auto_index(::Block::constructor) [list source [file join $dir blockframe.itb]]
-set auto_index(::Block::destructor) [list source [file join $dir blockframe.itb]]
-set auto_index(::Block::variables) [list source [file join $dir blockframe.itb]]
-set auto_index(::Block::_findVariables) [list source [file join $dir blockframe.itb]]
-set auto_index(::Block::update) [list source [file join $dir blockframe.itb]]
-set auto_index(::Block::info) [list source [file join $dir blockframe.itb]]
-set auto_index(::Frame::constructor) [list source [file join $dir blockframe.itb]]
-set auto_index(::Frame::destructor) [list source [file join $dir blockframe.itb]]
-set auto_index(::Frame::_removeBlock) [list source [file join $dir blockframe.itb]]
-set auto_index(::Frame::_addBlock) [list source [file join $dir blockframe.itb]]
-set auto_index(::Frame::_createBlocks) [list source [file join $dir blockframe.itb]]
-set auto_index(::Frame::update) [list source [file join $dir blockframe.itb]]
-set auto_index(::Frame::variables) [list source [file join $dir blockframe.itb]]
-set auto_index(::Frame::new) [list source [file join $dir blockframe.itb]]
-set auto_index(::Frame::deleteOld) [list source [file join $dir blockframe.itb]]
-set auto_index(::Frame::_oldBlocks) [list source [file join $dir blockframe.itb]]
-set auto_index(::Frame::old) [list source [file join $dir blockframe.itb]]
-set auto_index(::Frame::_findBlock) [list source [file join $dir blockframe.itb]]
-set auto_index(::Frame::_findBlockIndex) [list source [file join $dir blockframe.itb]]
-set auto_index(::BpWin::constructor) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::destructor) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::build_win) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::bp_add) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::bp_store) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::bp_restore) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::bp_select) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::_select_and_popup) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::bp_modify) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::bp_able) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::bp_remove) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::bp_type) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::bp_delete) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::breakpoint) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::tracepoint) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::bp_all) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::get_actions) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::toggle_threads) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::reconfig) [list source [file join $dir bpwin.itb]]
-set auto_index(::BpWin::goto_bp) [list source [file join $dir bpwin.itb]]
-set auto_index(::BrowserWin::constructor) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::destructor) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_build_win) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_filter_trace_proc) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_filter_trace_after) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_search_src) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::search) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_process_file_selection) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_process_func_selection) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::do_all_bp) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_toggle_bp) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_select) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_set_filter_mode) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_file_hide_h) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_fill_source) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::mode) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_goto_func) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_fill_file_box) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_fill_funcs_combo) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_build_filter_frame) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_build_file_frame) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_build_function_frame) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_build_view_frame) [list source [file join $dir browserwin.itb]]
-set auto_index(::BrowserWin::_switch_layout) [list source [file join $dir browserwin.itb]]
-set auto_index(::Console::constructor) [list source [file join $dir console.itb]]
-set auto_index(::Console::destructor) [list source [file join $dir console.itb]]
-set auto_index(::Console::_build_win) [list source [file join $dir console.itb]]
-set auto_index(::Console::idle) [list source [file join $dir console.itb]]
-set auto_index(::Console::busy) [list source [file join $dir console.itb]]
-set auto_index(::Console::insert) [list source [file join $dir console.itb]]
-set auto_index(::Console::_operate_and_get_next) [list source [file join $dir console.itb]]
-set auto_index(::Console::_previous) [list source [file join $dir console.itb]]
-set auto_index(::Console::_search_history) [list source [file join $dir console.itb]]
-set auto_index(::Console::_rsearch_history) [list source [file join $dir console.itb]]
-set auto_index(::Console::_next) [list source [file join $dir console.itb]]
-set auto_index(::Console::_last) [list source [file join $dir console.itb]]
-set auto_index(::Console::_first) [list source [file join $dir console.itb]]
-set auto_index(::Console::_setprompt) [list source [file join $dir console.itb]]
-set auto_index(::Console::gets) [list source [file join $dir console.itb]]
-set auto_index(::Console::_cancel) [list source [file join $dir console.itb]]
-set auto_index(::Console::activate) [list source [file join $dir console.itb]]
-set auto_index(::Console::invoke) [list source [file join $dir console.itb]]
-set auto_index(::Console::_delete) [list source [file join $dir console.itb]]
-set auto_index(::Console::_insertion) [list source [file join $dir console.itb]]
-set auto_index(::Console::_paste) [list source [file join $dir console.itb]]
-set auto_index(::Console::_find_lcp) [list source [file join $dir console.itb]]
-set auto_index(::Console::_find_completion) [list source [file join $dir console.itb]]
-set auto_index(::Console::_complete) [list source [file join $dir console.itb]]
-set auto_index(::Console::_reset_tab) [list source [file join $dir console.itb]]
-set auto_index(::Console::_set_wrap) [list source [file join $dir console.itb]]
-set auto_index(::Console::_update_option) [list source [file join $dir console.itb]]
-set auto_index(::Console::test) [list source [file join $dir console.itb]]
-set auto_index(::CSPref::constructor) [list source [file join $dir cspref.itb]]
-set auto_index(::CSPref::_init_var) [list source [file join $dir cspref.itb]]
-set auto_index(::CSPref::_build_win) [list source [file join $dir cspref.itb]]
-set auto_index(::CSPref::_apply) [list source [file join $dir cspref.itb]]
-set auto_index(::CSPref::_cancel) [list source [file join $dir cspref.itb]]
-set auto_index(::CSPref::_save) [list source [file join $dir cspref.itb]]
-set auto_index(::CSPref::reconfig) [list source [file join $dir cspref.itb]]
-set auto_index(::CSPref::_pick) [list source [file join $dir cspref.itb]]
-set auto_index(::DebugWin::constructor) [list source [file join $dir debugwin.itb]]
-set auto_index(::DebugWin::destructor) [list source [file join $dir debugwin.itb]]
-set auto_index(::DebugWin::reconfig) [list source [file join $dir debugwin.itb]]
-set auto_index(::DebugWin::build_win) [list source [file join $dir debugwin.itb]]
-set auto_index(::DebugWin::puts) [list source [file join $dir debugwin.itb]]
-set auto_index(::DebugWin::put_trace) [list source [file join $dir debugwin.itb]]
-set auto_index(::DebugWin::loadlog) [list source [file join $dir debugwin.itb]]
-set auto_index(::DebugWin::_source_all) [list source [file join $dir debugwin.itb]]
-set auto_index(::DebugWin::_clear) [list source [file join $dir debugwin.itb]]
-set auto_index(::DebugWin::_mark_old) [list source [file join $dir debugwin.itb]]
-set auto_index(::DebugWin::_save_contents) [list source [file join $dir debugwin.itb]]
-set auto_index(::DebugWinDOpts::constructor) [list source [file join $dir debugwin.itb]]
-set auto_index(::DebugWinDOpts::destructor) [list source [file join $dir debugwin.itb]]
-set auto_index(::DebugWinDOpts::build_win) [list source [file join $dir debugwin.itb]]
-set auto_index(::DebugWinDOpts::_all) [list source [file join $dir debugwin.itb]]
-set auto_index(::DebugWinDOpts::_apply) [list source [file join $dir debugwin.itb]]
-set auto_index(::Download::constructor) [list source [file join $dir download.itb]]
-set auto_index(::Download::update_download) [list source [file join $dir download.itb]]
-set auto_index(::Download::done) [list source [file join $dir download.itb]]
-set auto_index(::Download::cancel) [list source [file join $dir download.itb]]
-set auto_index(::Download::destructor) [list source [file join $dir download.itb]]
-set auto_index(::Download::do_download_hooks) [list source [file join $dir download.itb]]
-set auto_index(::Download::download_hash) [list source [file join $dir download.itb]]
-set auto_index(::Download::download_it) [list source [file join $dir download.itb]]
-set auto_index(::GDBEventHandler::dispatch) [list source [file join $dir ehandler.itb]]
-set auto_index(::BreakpointEvent::get) [list source [file join $dir gdbevent.itb]]
-set auto_index(::BreakpointEvent::_init) [list source [file join $dir gdbevent.itb]]
-set auto_index(::BreakpointEvent::number) [list source [file join $dir gdbevent.itb]]
-set auto_index(::TracepointEvent::get) [list source [file join $dir gdbevent.itb]]
-set auto_index(::TracepointEvent::_init) [list source [file join $dir gdbevent.itb]]
-set auto_index(::TracepointEvent::number) [list source [file join $dir gdbevent.itb]]
-set auto_index(::TracepointEvent::get) [list source [file join $dir gdbevent.itb]]
-set auto_index(::SetVariableEvent::get) [list source [file join $dir gdbevent.itb]]
-set auto_index(::UpdateEvent::constructor) [list source [file join $dir gdbevent.itb]]
-set auto_index(::UpdateEvent::get) [list source [file join $dir gdbevent.itb]]
-set auto_index(::GlobalPref::_init) [list source [file join $dir globalpref.itb]]
-set auto_index(::GlobalPref::_init_var) [list source [file join $dir globalpref.itb]]
-set auto_index(::GlobalPref::constructor) [list source [file join $dir globalpref.itb]]
-set auto_index(::GlobalPref::destructor) [list source [file join $dir globalpref.itb]]
-set auto_index(::GlobalPref::_build_win) [list source [file join $dir globalpref.itb]]
-set auto_index(::GlobalPref::_make_font_item) [list source [file join $dir globalpref.itb]]
-set auto_index(::GlobalPref::_resize_font_item_height) [list source [file join $dir globalpref.itb]]
-set auto_index(::GlobalPref::_change_icons) [list source [file join $dir globalpref.itb]]
-set auto_index(::GlobalPref::_change_font) [list source [file join $dir globalpref.itb]]
-set auto_index(::GlobalPref::_change_size) [list source [file join $dir globalpref.itb]]
-set auto_index(::GlobalPref::_toggle_tracing) [list source [file join $dir globalpref.itb]]
-set auto_index(::GlobalPref::_ok) [list source [file join $dir globalpref.itb]]
-set auto_index(::GlobalPref::_apply) [list source [file join $dir globalpref.itb]]
-set auto_index(::GlobalPref::_cancel) [list source [file join $dir globalpref.itb]]
-set auto_index(::GlobalPref::cancel) [list source [file join $dir globalpref.itb]]
-set auto_index(::IPCPref::constructor) [list source [file join $dir ipcpref.itb]]
-set auto_index(::IPCPref::_init_var) [list source [file join $dir ipcpref.itb]]
-set auto_index(::IPCPref::_build_win) [list source [file join $dir ipcpref.itb]]
-set auto_index(::IPCPref::_apply) [list source [file join $dir ipcpref.itb]]
-set auto_index(::IPCPref::_cancel) [list source [file join $dir ipcpref.itb]]
-set auto_index(::IPCPref::_save) [list source [file join $dir ipcpref.itb]]
-set auto_index(::KodWin::constructor) [list source [file join $dir kod.itb]]
-set auto_index(::KodWin::build_win) [list source [file join $dir kod.itb]]
-set auto_index(::KodWin::update) [list source [file join $dir kod.itb]]
-set auto_index(::KodWin::display) [list source [file join $dir kod.itb]]
-set auto_index(::KodWin::display_list) [list source [file join $dir kod.itb]]
-set auto_index(::KodWin::display_object) [list source [file join $dir kod.itb]]
-set auto_index(::KodWin::clear) [list source [file join $dir kod.itb]]
-set auto_index(::KodWin::top) [list source [file join $dir kod.itb]]
-set auto_index(::KodWin::up) [list source [file join $dir kod.itb]]
-set auto_index(::KodWin::destructor) [list source [file join $dir kod.itb]]
-set auto_index(::KodWin::set_variable) [list source [file join $dir kod.itb]]
-set auto_index(::KodWin::reconfig) [list source [file join $dir kod.itb]]
-set auto_index(::KodWin::busy) [list source [file join $dir kod.itb]]
-set auto_index(::KodWin::idle) [list source [file join $dir kod.itb]]
-set auto_index(::KodWin::cursor) [list source [file join $dir kod.itb]]
-set auto_index(::KodWin::_disable_buttons) [list source [file join $dir kod.itb]]
-set auto_index(::KodWin::_restore_buttons) [list source [file join $dir kod.itb]]
-set auto_index(::ManagedWin::constructor) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::destructor) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::window_name) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::window_instance) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::pickle) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::reveal) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::restart) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::shutdown) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::startup) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::open_dlg) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::open) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::_open) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::_create) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::find) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::init) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::destroy_toplevel) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::_freeze_me) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::_thaw_me) [list source [file join $dir managedwin.itb]]
-set auto_index(::ManagedWin::_make_icon_window) [list source [file join $dir managedwin.itb]]
-set auto_index(::MemPref::constructor) [list source [file join $dir mempref.itb]]
-set auto_index(::MemPref::destructor) [list source [file join $dir mempref.itb]]
-set auto_index(::MemPref::build_win) [list source [file join $dir mempref.itb]]
-set auto_index(::MemPref::busy) [list source [file join $dir mempref.itb]]
-set auto_index(::MemPref::idle) [list source [file join $dir mempref.itb]]
-set auto_index(::MemPref::ok) [list source [file join $dir mempref.itb]]
-set auto_index(::MemPref::cancel) [list source [file join $dir mempref.itb]]
-set auto_index(::MemPref::check_numbytes) [list source [file join $dir mempref.itb]]
-set auto_index(::MemPref::set_bytes_per_row) [list source [file join $dir mempref.itb]]
-set auto_index(::MemPref::toggle_size_control) [list source [file join $dir mempref.itb]]
-set auto_index(::MemPref::apply) [list source [file join $dir mempref.itb]]
-set auto_index(::MemPref::enable_format) [list source [file join $dir mempref.itb]]
-set auto_index(::MemPref::disable_format) [list source [file join $dir mempref.itb]]
-set auto_index(::MemPref::pick) [list source [file join $dir mempref.itb]]
-set auto_index(::MemPref::reconfig) [list source [file join $dir mempref.itb]]
-set auto_index(::MemWin::constructor) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::destructor) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::build_win) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::paste) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::validate) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::create_prefs) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::changed_cell) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::edit) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::toggle_enabled) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::update) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::idle) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::busy) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::newsize) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::_update_address) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::update_address_cb) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::update_address) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::BadExpr) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::incr_addr) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::update_addr) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::hidemb) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::reconfig) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::do_popup) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::goto) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::init_addr_exp) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::cursor) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::memMoveCell) [list source [file join $dir memwin.itb]]
-set auto_index(::MemWin::error_dialog) [list source [file join $dir memwin.itb]]
-set auto_index(::ProcessWin::constructor) [list source [file join $dir process.itb]]
-set auto_index(::ProcessWin::build_win) [list source [file join $dir process.itb]]
-set auto_index(::ProcessWin::update) [list source [file join $dir process.itb]]
-set auto_index(::ProcessWin::change_context) [list source [file join $dir process.itb]]
-set auto_index(::ProcessWin::destructor) [list source [file join $dir process.itb]]
-set auto_index(::ProcessWin::reconfig) [list source [file join $dir process.itb]]
-set auto_index(::ProcessWin::busy) [list source [file join $dir process.itb]]
-set auto_index(::ProcessWin::idle) [list source [file join $dir process.itb]]
-set auto_index(::ProcessWin::cursor) [list source [file join $dir process.itb]]
-set auto_index(::RegWin::constructor) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::destructor) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_load_prefs) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_build_win) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_layout_table) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_size_cell_column) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_size_column) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::reconfig) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_accept_edit) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_add_to_watch) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_open_memory) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_but3) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_delete_from_display) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_display_all) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_edit) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_move) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_select_cell) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_unedit) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_get_value) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_change_format) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_update_register) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::_select_group) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::arch_changed) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::busy) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::idle) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::set_variable) [list source [file join $dir regwin.itb]]
-set auto_index(::RegWin::update) [list source [file join $dir regwin.itb]]
-set auto_index(::SrcPref::constructor) [list source [file join $dir srcpref.itb]]
-set auto_index(::SrcPref::_init_var) [list source [file join $dir srcpref.itb]]
-set auto_index(::SrcPref::_build_win) [list source [file join $dir srcpref.itb]]
-set auto_index(::SrcPref::_apply) [list source [file join $dir srcpref.itb]]
-set auto_index(::SrcPref::cancel) [list source [file join $dir srcpref.itb]]
-set auto_index(::SrcPref::_cancel) [list source [file join $dir srcpref.itb]]
-set auto_index(::SrcPref::_save) [list source [file join $dir srcpref.itb]]
-set auto_index(::SrcPref::_set_flavor) [list source [file join $dir srcpref.itb]]
-set auto_index(::SrcPref::_pick) [list source [file join $dir srcpref.itb]]
-set auto_index(::SrcTextWin::constructor) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::destructor) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::trace_find_hook) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::set_control_mode) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::build_popups) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::build_win) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::SetRunningState) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::enable) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::makeBreakDot) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::setTabs) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::enable_disable_src_tags) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::config_win) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::addPopup) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::set_variable) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::disassembly_changed) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::reconfig) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::updateBalloon) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::balloon_value) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::ClearTags) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::_mtime_changed) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::FillSource) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::FillAssembly) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::FillMixed) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::_highlightAsmLine) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::set_tag_to_stack) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::location) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::LoadFile) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::display_line) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::display_breaks) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::insertBreakTag) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::removeBreakTag) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::breakpoint) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::tracepoint) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::bp) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::do_bp) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::hasBP) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::hasTP) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::report_source_location) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::lookup_line) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::continue_to_here) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::jump_to_here) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::set_bp_at_line) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::enable_disable_at_line) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::remove_bp_at_line) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::set_tp_at_line) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::next_hit_at_line) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::remove_tp_at_line) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::do_tag_popup) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::do_source_popup) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::addToWatch) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::do_key) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::mode_get) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::mode_set) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::cancelMotion) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::motion) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::showBPBalloon) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::showBalloon) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::getVariable) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::trace_help) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::line_is_executable) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::tracepoint_range) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::search) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::LoadFromCache) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::UnLoadFromCache) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::print) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::ask_thread_bp) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::do_thread_bp) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::test_get) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::get_file) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::clear_file) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::_initialize_srctextwin) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcTextWin::_clear_cache) [list source [file join $dir srctextwin.itb]]
-set auto_index(::SrcWin::constructor) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::destructor) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::_build_win) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::_set_state) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::download_progress) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::reconfig) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::_name) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::toggle_updates) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::goto_func) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::fillNameCB) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::fillFuncCB) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::location) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::stack) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::_update) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::idle) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::mode) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::_update_title) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::busy) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::update) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::_set_name) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::set_status) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::set_execution_status) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::edit) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::print) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::enable_ui) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::no_inferior) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::reset) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::search) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::point_to_main) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::_exit) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::test_get) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::toolbar) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::inferior) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::clear_file) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::get_file) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::is_fixed) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::get_top) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::_set_tag_to_stack) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::_choose_window) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::choose_and_update) [list source [file join $dir srcwin.itb]]
-set auto_index(::SrcWin::choose_and_display) [list source [file join $dir srcwin.itb]]
-set auto_index(::StackWin::constructor) [list source [file join $dir stackwin.itb]]
-set auto_index(::StackWin::destructor) [list source [file join $dir stackwin.itb]]
-set auto_index(::StackWin::build_win) [list source [file join $dir stackwin.itb]]
-set auto_index(::StackWin::update) [list source [file join $dir stackwin.itb]]
-set auto_index(::StackWin::idle) [list source [file join $dir stackwin.itb]]
-set auto_index(::StackWin::change_frame) [list source [file join $dir stackwin.itb]]
-set auto_index(::StackWin::reconfig) [list source [file join $dir stackwin.itb]]
-set auto_index(::StackWin::busy) [list source [file join $dir stackwin.itb]]
-set auto_index(::StackWin::no_inferior) [list source [file join $dir stackwin.itb]]
-set auto_index(::StackWin::cursor) [list source [file join $dir stackwin.itb]]
-set auto_index(::TargetSelection::constructor) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::getname) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::init_target_db) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::default_port) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::_init_prefs) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::_init_target) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::_init) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::build_win) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::set_saved) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::write_saved) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::fill_rates) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::fill_targets) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::config_dialog) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::change_target) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::change_baud) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::port_list) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::get_target_list) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::save) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::cancel) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::set_check_button) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::help) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::reconfig) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::get_target) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::toggle_more_options) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::set_run) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::target_trace) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::valid_target) [list source [file join $dir targetselection.itb]]
-set auto_index(::TargetSelection::native_debugging) [list source [file join $dir targetselection.itb]]
-set auto_index(::VarTree::constructor) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::destructor) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::build) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::buildlayer) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::add) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::remove) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::update_var) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::update) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::drawselection) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::clicked) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::setselection) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::closed) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::open) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::close) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::edit) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::unedit) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::changeValue) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::_change_format) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::_but3) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::_do_default_menu) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::_sort) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::_compare) [list source [file join $dir vartree.itb]]
-set auto_index(::VarTree::_init_data) [list source [file join $dir vartree.itb]]
diff --git a/gdb/gdbtk/library/tdump.tcl b/gdb/gdbtk/library/tdump.tcl
deleted file mode 100644
index 2525f30746a..00000000000
--- a/gdb/gdbtk/library/tdump.tcl
+++ /dev/null
@@ -1,95 +0,0 @@
-# Trace dump window for Insight
-# Copyright (C) 1998, 1999, 2001, 2002, 2004 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ----------------------------------------------------------------------
-# Implements Tdump window for gdb
-#
-# PUBLIC ATTRIBUTES:
-#
-#
-# METHODS:
-#
-# reconfig ....... called when preferences change
-#
-#
-# X11 OPTION DATABASE ATTRIBUTES
-#
-#
-# ----------------------------------------------------------------------
-
-itcl::class TdumpWin {
- inherit ManagedWin GDBWin
-
- # ------------------------------------------------------------------
- # CONSTRUCTOR - create new tdump window
- # ------------------------------------------------------------------
- constructor {args} {
- window_name "Trace Dump"
- build_win
- eval itk_initialize $args
- }
-
-
- # ------------------------------------------------------------------
- # METHOD: build_win - build the main tdump window
- # ------------------------------------------------------------------
- method build_win {} {
- global tcl_platform
-
- itk_component add stext {
- iwidgets::scrolledtext $itk_interior.stext -hscrollmode dynamic \
- -vscrollmode dynamic -textfont global/fixed \
- -background $::Colors(bg)
- } {}
- [$itk_component(stext) component text] configure \
- -background $::Colors(bg)
- pack $itk_component(stext) -side left -expand yes -fill both
- update dummy
- }
-
-
- # ------------------------------------------------------------------
- # METHOD: update - update widget when PC changes
- # ------------------------------------------------------------------
- method update {event} {
- #debug "tdump: update"
- gdbtk_busy
- set tframe_num [gdb_get_trace_frame_num]
-
- if { $tframe_num!=-1 } {
- debug "doing tdump"
- $itk_component(stext) delete 1.0 end
-
- if {[catch {gdb_cmd "tdump $tframe_num" 0} tdump_output]} {
- tk_messageBox -title "Error" -message $tdump_output -icon error \
- -type ok
- } else {
- #debug "tdum output is $tdump_output"
-
- $itk_component(stext) insert end $tdump_output
- $itk_component(stext) see insert
- }
- }
- gdbtk_idle
- }
-
- # ------------------------------------------------------------------
- # METHOD: reconfig - used when preferences change
- # ------------------------------------------------------------------
- method reconfig {} {
- if {[winfo exists $itk_interior.stext]} { destroy $itk_interior.stext }
- build_win
- }
-}
-
diff --git a/gdb/gdbtk/library/tfind_args.tcl b/gdb/gdbtk/library/tfind_args.tcl
deleted file mode 100644
index 67e00e7ed54..00000000000
--- a/gdb/gdbtk/library/tfind_args.tcl
+++ /dev/null
@@ -1,139 +0,0 @@
-# TfindArgs
-# Copyright (C) 1998, 1999 Cygnus Solutions
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ----------------------------------------------------------------------
-# Implements tfind arguments dialogs
-#
-# PUBLIC ATTRIBUTES:
-#
-# Type .........Type of dialog (tfind pc, tfind line, tfind tracepoint)
-#
-# config ....... used to change public attributes
-#
-# PRIVATE METHODS
-#
-# X11 OPTION DATABASE ATTRIBUTES
-#
-#
-# ----------------------------------------------------------------------
-
-itcl_class TfindArgs {
- # ------------------------------------------------------------------
- # CONSTRUCTOR - create new tfind arguments dialog
- # ------------------------------------------------------------------
- constructor {config} {
- #
- # Create a window with the same name as this object
- #
- set class [$this info class]
- set hull [namespace tail $this]
- set old_name $this
- ::rename $this $this-tmp-
- ::frame $hull -class $class
- ::rename $hull $old_name-win-
- ::rename $this $old_name
- build_win
- }
-
- # ------------------------------------------------------------------
- # METHOD: build_win - build the dialog
- # ------------------------------------------------------------------
- method build_win {} {
-
- frame $hull.f
- frame $hull.f.a
- frame $hull.f.b
- set f $hull.f.a
-
- switch $Type {
- LN {
- set text "Enter argument: "
- }
- PC {
- set text "Enter PC value: "
- }
- TP {
- set text "Enter Tracepoint No.: "
- }
- FR {
- set text "Enter Frame No.:"
- }
-
- if {[string compare $Type $last_type]} != 0} {
- global argument
- set argument ""
- }
-
- set last_type $Type
-
- label $f.1 -text $text
- entry $f.2 -textvariable argument -width 10
- $f.2 selection range 0 end
- grid $f.1 $f.2 -padx 4 -pady 4 -sticky nwe
-
- button $hull.f.b.ok -text OK -command "$this ok" -width 7 -default active
- button $hull.f.b.quit -text Cancel -command "delete object $this" -width 7
- grid $hull.f.b.ok $hull.f.b.quit -padx 4 -pady 4 -sticky ews
-
- pack $hull.f.a $hull.f.b
- grid $hull.f
-
- focus $f.2
- bind $f.2 <Return> "$this.f.b.ok flash; $this.f.b.ok invoke"
-
- }
-
- # ------------------------------------------------------------------
- # DESTRUCTOR - destroy window containing widget
- # ------------------------------------------------------------------
- destructor {
- set top [winfo toplevel $hull]
- manage delete $this 1
- destroy $this
- destroy $top
- }
-
-
-
- # ------------------------------------------------------------------
- # METHOD: ok - do it and quit
- # ------------------------------------------------------------------
- method ok {} {
- do_it
- delete
- }
-
-
- # ------------------------------------------------------------------
- # METHOD: do_it - call the gdb command
- # ------------------------------------------------------------------
- method do_it {} {
- global argument
-
-
- switch $Type {
- LN { tfind_cmd "tfind line $argument"}
- PC { tfind_cmd "tfind pc $argument"}
- TP { tfind_cmd "tfind tracepoint $argument"}
- FR { tfind_cmd "tfind $argument"}
- }
- }
-
-
- public Type
- common last_type {}
- private hull
-
-
-}
diff --git a/gdb/gdbtk/library/toplevelwin.ith b/gdb/gdbtk/library/toplevelwin.ith
deleted file mode 100644
index 3cd8f93b373..00000000000
--- a/gdb/gdbtk/library/toplevelwin.ith
+++ /dev/null
@@ -1,64 +0,0 @@
-# TopLevelWin class definition for GDBtk.
-# Copyright (C) 1998, 1999 Cygnus Solutions
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-itcl::class TopLevelWin {
- inherit ManagedWin
-
- private variable frame ""
-
- constructor {args} {
- debug $itk_interior
-
- # create a container frame
- conFrame $itk_interior.container
- pack $itk_interior.container -fill both -expand 1
-
- # set up bindings for group iconification/deiconification
- # NOT IMPLEMENTED YET
- #set top [winfo toplevel [namespace tail $this]]
- #bind_for_toplevel_only $top <Unmap> {
- # manage_iconify iconify
- #}
- #bind_for_toplevel_only $top <Map> {
- # manage_iconify deiconify
- #}
- incr numTopWins
- }
-
- public method conFrame {win} {
- set frame [cyg::panedwindow $win -height 5i]
- return $frame.con
- }
-
- public method conAdd {child args} {
- parse_args {{resizable 1}}
- $frame add $child -margin 0 -resizable $resizable
- return [$frame childsite $child].con
- }
-
- public method sizeWinByChild {child} {
- if {[catch {$frame childsite $child} childWin]} {
- debug "Could not find child $child"
- return
- }
- set width [winfo reqwidth $childWin]
- $frame configure -width $width
-
- }
-
- destructor {
- debug
- incr numTopWins -1
- }
-}
diff --git a/gdb/gdbtk/library/tracedlg.tcl b/gdb/gdbtk/library/tracedlg.tcl
deleted file mode 100644
index 1a84b41c8b8..00000000000
--- a/gdb/gdbtk/library/tracedlg.tcl
+++ /dev/null
@@ -1,800 +0,0 @@
-# Trace configuration dialog for Insight
-# Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# -----------------------------------------------------------------
-# Implements the Tracepoint configuration dialog box. This (modal)
-# dialog will be called upon to interact with gdb's tracepoint routines
-# allowing the user to add/edit tracepoints. Specifically, user can
-# specify:
-#
-# - What data to collect: locals, registers, "all registers", "all locals",
-# user-defined (globals)
-# - Number of passes which we should collect the data
-# - An ignore count after which data will start being collected
-# This method will destroy itself when the dialog is released. It returns
-# either one if a tracepoint was set/edited successfully or zero if
-# the user bails out (cancel or destroy buttons).
-
-itcl::class TraceDlg {
- inherit ManagedWin
-
- # ------------------------------------------------------------------
- # CONSTRUCTOR: create new trace dialog
- # ------------------------------------------------------------------
- constructor {args} {
-
- eval itk_initialize $args
- build_win
- title
- }
-
- # ------------------------------------------------------------------
- # DESTRUCTOR - destroy window containing widget
- # ------------------------------------------------------------------
- destructor {
-
- # Remove this window and all hooks
- if {$ActionsDlg != ""} {
- catch {delete object $ActionsDlg}
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: build_win - build the Trace dialog box (cache this?)
- # ------------------------------------------------------------------
- method build_win {} {
-
- set f $itk_interior
-
- # Need to set the title to either "Add Tracepoint" or "Edit Tracepoint",
- # depending on the location of the given tracepoint.
- # !! Why can I not do this?
-
- # If we have multiple lines, we "add" if we have any new ones ONLY..
- set nums {}
- set lown -1
- set highn -1
- set lowl -1
- set highl 0
- set functions {}
- set last_function {}
- set display_lines {}
- set display_number {}
-
- # Look at all lines
- foreach line $Lines {
- set num [gdb_tracepoint_exists "$File:$line"]
- if {$num == -1} {
- set New 1
- } else {
- set Exists 1
- }
-
- set function [gdb_get_function "$File:$line"]
- if {"$last_function" != "$function"} {
- lappend functions $function
- set last_function $function
- }
-
- if {$lown == -1 && $num != -1} {
- set lown $num
- }
- if {$lowl == -1} {
- set lowl $line
- }
-
- lappend Number $num
- if {$num > $highn} {
- set highn $num
- }
- if {$num != -1 && $num < $lown} {
- set lown $num
- }
- if {$line > $highl} {
- set highl $line
- }
- if {$line < $lowl} {
- set lowl $line
- }
- }
-
- # Look at all addresses
- foreach addr $Addresses {
- set num [gdb_tracepoint_exists "*$addr"]
- if {$num == -1} {
- set New 1
- } else {
- set Exists 1
- }
-
- set function [gdb_get_function "*$addr"]
- if {"$last_function" != "$function"} {
- lappend functions $function
- set last_function $function
- }
-
- if {$lown == -1 && $num != -1} {
- set lown $num
- }
- if {$lowl == -1} {
- set lowl $addr
- }
-
- lappend Number $num
- if {$num > $highn} {
- set highn $num
- }
- if {$num != -1 && $num < $lown} {
- set lown $num
- }
- if {$addr > $highl} {
- set highl $addr
- }
- if {$addr < $lowl} {
- set lowl $addr
- }
- }
-
- if {$Lines != {}} {
- if {[llength $Lines] == 1} {
- set Number $lown
- set display_number [concat $Number]
- set display_lines [concat $Lines]
- set multiline 0
- } else {
- # range of numbers
- set display_number "$lown-$highn"
- set display_lines "$lowl-$highl"
- set multiline 1
- }
- } elseif {$Addresses != {}} {
- if {[llength $Addresses] == 1} {
- set Number $lown
- set display_number [concat $Number]
- set display_lines [concat $Addresses]
- set multiline 0
- } else {
- # range of numbers
- set display_number "$lown-$highn"
- set display_lines "$lowl-$highl"
- set multiline 1
- }
- } elseif {$Number != {}} {
- set New 0
- set multiline 0
- set display_number $Number
- }
-
- # The three frames of this dialog
- set bbox [frame $f.bbox]; # for holding OK,CANCEL DELETE buttons
- Labelledframe $f.exp -text "Experiment"
- set exp [$f.exp get_frame]; # the "Experiment" frame
- Labelledframe $f.act -text "Actions"
- set act [$f.act get_frame]; # the "Actions" frame
-
- # Setup the button box
- button $bbox.ok -text OK -command "$this ok" -width 6
- button $bbox.cancel -text CANCEL -command "$this cancel"
- set Delete [button $bbox.delete -text DELETE -command "$this delete_tp"]
- pack $bbox.ok $bbox.cancel -side left -padx 10 -expand yes
- pack $bbox.delete -side right -padx 10 -expand yes
-
- # Setup the "Experiment" frame
- if {$New} {
- set hit_count "N/A"
- set thread "N/A"
- set _TPassCount 0
- if {!$Exists} {
- $Delete configure -state disabled
- }
- } else {
- if {!$multiline} {
- set stuff [gdb_get_tracepoint_info $Number]
- # 0=file 1=func 2=line 3=addr 4=disposition 5=passCount 6=stepCount
- # 7=thread 8=hitCount 9=actions
- set enabled [lindex $stuff 4]
- set _TPassCount [lindex $stuff 5]
- set thread [lindex $stuff 7]
- set hit_count [lindex $stuff 8]
- set actions [lindex $stuff 9]
- if {$File == {}} {
- set File [lindex $stuff 0]
- }
- if {$Lines == {} && $Addresses == {}} {
- set Addresses [lindex $stuff 3]
- set display_lines $Addresses
- }
- if {$functions == {}} {
- set functions [lindex $stuff 1]
- }
- } else {
- # ummm...
- set hit_count "N/A"
- set thread "N/A"
-
- # !! Assumptions...
- set stuff [gdb_get_tracepoint_info [lindex $Number 0]]
- set _TPassCount [lindex $stuff 5]
- set actions [lindex $stuff 9]
- }
- }
-
- # Number
- label $exp.numlbl -text {Number:}
- label $exp.number -text $display_number
-
- # File
- label $exp.fillbl -text {File:}
- label $exp.file -text $File
- # Line
- if {$Lines != {}} {
- label $exp.linlbl -text {Line(s):}
- } else {
- label $exp.linlbl -text {Address(es):}
- }
- label $exp.line -text $display_lines
-
- # Function
- if {[llength $functions] > 1} {
- # Do not allow this until we clean up the action dialog...
- tk_messageBox -type ok -icon error \
- -message "Cannot set tracepoint ranges across functions!"
- after idle [code delete object $this]
- }
- #set functions [join $functions ,]
- label $exp.funlbl -text {Function:}
- label $exp.funct -text [concat $functions]
-
- # Hit count
- label $exp.hitlbl -text {Hit Count:}
- label $exp.hit -text $hit_count
-
- # Thread
- label $exp.thrlbl -text {Thread:}
- label $exp.thread -text $thread
-
- # Place these onto the screen
- grid $exp.numlbl -row 0 -column 0 -sticky w -padx 10 -pady 1
- grid $exp.number -row 0 -column 1 -sticky w -padx 10 -pady 1
- grid $exp.funlbl -row 0 -column 2 -sticky w -padx 10 -pady 1
- grid $exp.funct -row 0 -column 3 -sticky w -padx 10 -pady 1
- grid $exp.hitlbl -row 1 -column 0 -sticky w -padx 10 -pady 1
- grid $exp.hit -row 1 -column 1 -sticky w -padx 10 -pady 1
- grid $exp.fillbl -row 1 -column 2 -sticky w -padx 10 -pady 1
- grid $exp.file -row 1 -column 3 -sticky w -padx 10 -pady 1
- grid $exp.thrlbl -row 2 -column 0 -sticky w -padx 10 -pady 1
- grid $exp.thread -row 2 -column 1 -sticky w -padx 10 -pady 1
- grid $exp.linlbl -row 2 -column 2 -sticky w -padx 10 -pady 1
- grid $exp.line -row 2 -column 3 -sticky w -padx 10 -pady 1
-
- # Configure columns
- grid columnconfigure $exp 0 -weight 1
- grid columnconfigure $exp 1 -weight 1
- grid columnconfigure $exp 2 -weight 1
- grid columnconfigure $exp 3 -weight 1
-
- # The "Actions" Frame
- set pass_frame [frame $act.pass]
- set act_frame [frame $act.actions]
- set new_frame [frame $act.new]
-
- # Pack these frames
- pack $pass_frame -fill x
- pack $act_frame -fill both -expand 1
- pack $new_frame -side top -fill x
-
- # Passes
- label $pass_frame.lbl -text {Number of Passes:}
- entry $pass_frame.ent -textvariable _TPassCount -width 5
- pack $pass_frame.lbl -side left -padx 10 -pady 5
- pack $pass_frame.ent -side right -padx 10 -pady 5
-
- # Actions
- set ActionLB $act_frame.lb
- iwidgets::scrolledlistbox $act_frame.lb -hscrollmode dynamic \
- -vscrollmode dynamic -selectmode multiple -exportselection 0 \
- -dblclickcommand [code $this edit] \
- -selectioncommand [code $this set_delete_action_state $ActionLB $new_frame.del_but] \
- -background $::Colors(bg)
- [$ActionLB component listbox] configure -background $::Colors(bg)
- label $act_frame.lbl -text {Actions}
- pack $act_frame.lbl -side top
- pack $act_frame.lb -side bottom -fill both -expand 1 -padx 5 -pady 5
-
- # New actions
- combobox::combobox $new_frame.combo -maxheight 15 -editable 0 \
- -font global/fixed -command [code $this set_action_type] \
- -bg $::Colors(textbg)
- $new_frame.combo list insert end collect while-stepping
- $new_frame.combo entryset collect
-
- button $new_frame.add_but -text {Add} -command "$this add_action"
- pack $new_frame.combo $new_frame.add_but -side left -fill x \
- -padx 5 -pady 5
-
- button $new_frame.del_but -text {Delete} -state disabled \
- -command "$this delete_action"
- pack $new_frame.del_but -side right -fill x \
- -padx 5 -pady 5
-
- # Pack the main frames
- pack $bbox -side bottom -padx 5 -pady 8 -fill x
- pack $f.exp -side top -padx 5 -pady 2 -fill x
- pack $f.act -side top -padx 5 -pady 2 -expand yes -fill both
-
- # If we are not new, add all actions
- if {!$New} {
- add_all_actions $actions
- }
-
- # !! FOR SOME REASON, THE *_FRAMES DO NOT GET MAPPED WHENEVER THE USER
- # WAITS A FEW SECONDS TO PLACE THIS DIALOG ON THE SCREEN. This is here
- # as a workaround so that the action-related widgets don't disappear...
- #update idletasks
- }
-
- method set_action_type {widget action} {
- set ActionType $action
- }
-
- method add_action {} {
-
- if {"$ActionType" == "while-stepping"} {
- if {$WhileStepping} {
- # We are only allowed on of these...
- tk_messageBox -icon error -type ok \
- -message "A tracepoint may only have one while-stepping action."
- return
- }
- set whilestepping 1
- set step_args "-Steps 1"
- } else {
- set whilestepping 0
- set step_args {}
- }
-
- #debug "ADDING ACTION FOR $File:[lindex $Lines 0]"
- if {$Lines != {}} {
- set ActionsDlg [eval ManagedWin::open ActionDlg -File $File \
- -Line [lindex $Lines 0] \
- -WhileStepping $whilestepping -Number [lindex $Number 0]\
- -Callback "\\\{$this done\\\}" $step_args]
- } else {
- set ActionsDlg [eval ManagedWin::open ActionDlg -File $File \
- -Address [lindex $Addresses 0] \
- -WhileStepping $whilestepping -Number [lindex $Number 0]\
- -Callback "\\\{$this done\\\}" $step_args]
- }
- }
-
- method delete_action {} {
- # If we just delete these from the action list, they will get deleted
- # when the user presses OK.
-
- set selected_elem [lsort -integer -decreasing [$ActionLB curselection]]
- foreach elem $selected_elem {
- $ActionLB delete $elem
- }
- }
-
- method set_delete_action_state {list but} {
- if {[$list curselection] == ""} {
- $but configure -state disabled
- } else {
- $but configure -state normal
- }
- }
-
- method done {status {steps 0} {data {}}} {
-
- # We have just returned from the ActionDlg: must reinstall our grab
-# after idle grab $this
-
- switch $status {
- cancel {
- # Don't do anything
- set ActionsDlg {}
- return
- }
- add {
- add_action_to_list $steps $data
- set ActionsDlg {}
- }
- delete {
- # do something
- set ActionsDlg {}
- }
- modify {
- # Delete the current selection and insert the new one in its place
- $ActionLB delete $Selection
- add_action_to_list $steps $data $Selection
- set ActionsDlg {}
- }
- default {
- debug "Unknown status from ActionDlg : \"$status\""
- }
- }
- }
-
- method add_action_to_list {steps data {index {}}} {
-
- set data [join $data ,]
-
- if {$steps > 0} {
- if {"$index" == ""} {
- set index "end"
- }
- $ActionLB insert $index "while-stepping ($steps): $data"
- set WhileStepping 1
- } else {
- if {"$index" == ""} {
- set index 0
- }
- $ActionLB insert $index "collect: $data"
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: cancel - cancel the dialog and do not set the trace
- # ------------------------------------------------------------------
- method cancel {} {
- ::delete object $this
- }
-
- # ------------------------------------------------------------------
- # METHOD: ok - validate the tracepoint and install it
- # ------------------------------------------------------------------
- method ok {} {
-
- # We "dismiss" the dialog here...
- wm withdraw [winfo toplevel [namespace tail $this]]
-
- set actions [get_actions]
- # Check that we are collecting data
-
- # This is silly, but, hey, it works.
- # Lines is the line number where the tp is
- # in case of a tp-range it is the set of lines for that range
- if {$Lines != {}} {
- for {set i 0} {$i < [llength $Number]} {incr i} {
- set number [lindex $Number $i]
- set line [lindex $Lines $i]
-
- if {$number == -1} {
- #debug "Adding new tracepoint at $File:$line $_TPassCount $actions"
- set err [catch {gdb_add_tracepoint $File:$line $_TPassCount $actions} errTxt]
- } else {
- if {$New && $Exists} {
- set result [tk_messageBox -icon error -type yesno \
- -message "Overwrite actions for tracepoint \#$number at $File:$line?" \
- -title "Query"]
- if {"$result" == "no"} {
- continue
- }
- }
- if {$New == 0 && $Exists == 1} {
- set tpnum [gdb_tracepoint_exists "$File:$line"]
- if {$tpnum == -1} {
- tk_messageBox -type ok -icon error -message "Tracepoint was deleted"
- ::delete object $this
- return
- }
- }
-
- #debug "Editing tracepoint \#$Number: $_TPassCount $actions"
- set err [catch {gdb_edit_tracepoint $number $_TPassCount $actions} errTxt]
- }
-
- if {$err} {
- if {$number == -1} {
- set str "adding new tracepoint at $File:$line"
- } else {
- set str "editing tracepoint $number at $File:$line"
- }
- tk_messageBox -type ok -icon error -message "Error $str: $errTxt"
- }
- }
- } else {
- # Async
- for {set i 0} {$i < [llength $Number]} {incr i} {
- set number [lindex $Number $i]
- set addr [lindex $Addresses $i]
- if {$number == -1} {
- #debug "Adding new tracepoint at $addr in $File; $_TPassCount $actions"
- set err [catch {gdb_add_tracepoint {} $_TPassCount $actions $addr} errTxt]
- } else {
- if {$New && $Exists} {
- set result [tk_messageBox -icon error -type yesno \
- -message "Overwrite actions for tracepoint \#$number at $File:$line?" \
- -title "Query"]
- if {"$result" == "no"} {
- continue
- }
- }
- if {$New == 0 && $Exists == 1} {
- set num [gdb_tracepoint_exists "$File:$Line"]
- if {$num == -1} {
- tk_messageBox -type ok -icon error -message "Tracepoint was deleted"
- ::delete object $this
- return
- }
- }
-
- #debug "Editing tracepoint \#$Number: $_TPassCount $actions"
- set err [catch {gdb_edit_tracepoint $number $_TPassCount $actions} errTxt]
- }
-
- if {$err} {
- if {$number == -1} {
- set str "adding new tracepoint at $addr in $File"
- } else {
- set str "editing tracepoint $number at $addr in $File"
- }
- tk_messageBox -type ok -icon error -message "Error $str: $errTxt"
- }
- }
- }
-
- ::delete object $this
- }
-
- method cmd {line} {
- $line
- }
-
- method delete_tp {} {
- debug "deleting tracepoint $Number"
- set err [catch {gdb_cmd "delete tracepoints $Number"} errTxt]
- debug "done deleting tracepoint $Number"
- ::delete object $this
- }
-
- method get_data {action} {
-
- set data {}
- foreach a $action {
- set datum [string trim $a \ \r\n\t,]
- if {"$datum" == "collect" || "$datum" == ""} {
- continue
- }
-
- lappend data $datum
- }
-
- return $data
- }
-
- method add_all_actions {actions} {
-
- set length [llength $actions]
- for {set i 0} {$i < $length} {incr i} {
- set action [lindex $actions $i]
-
- if {[regexp "collect" $action]} {
- set steps 0
- set data [get_data $action]
- } elseif {[regexp "while-stepping" $action]} {
- scan $action "while-stepping %d" steps
- incr i
- set action [lindex $actions $i]
- set data [get_data $action]
- } elseif {[regexp "end" $action]} {
- continue
- }
-
- # Now have an action: data and steps
- add_action_to_list $steps $data
- }
- }
-
- method get_actions {} {
-
- set actions {}
- set list [$ActionLB get 0 end]
- foreach action $list {
- if {[regexp "collect" $action]} {
- scan $action "collect: %s" data
- set steps 0
- set whilestepping 0
- } elseif {[regexp "while-stepping" $action]} {
- scan $action "while-stepping (%d): %s" steps data
- set whilestepping 1
- } else {
- debug "unknown action: $action"
- continue
- }
-
- lappend actions [list $steps $data]
- }
-
- return $actions
- }
-
- method edit {} {
-
- set Selection [$ActionLB curselection]
- if {$Selection != ""} {
- set action [$ActionLB get $Selection]
- if [regexp "collect" $action] {
- scan $action "collect: %s" data
- set steps 0
- set whilestepping 0
- } elseif [regexp "while-stepping" $action] {
- scan $action "while-stepping (%d): %s" steps data
- set whilestepping 1
- } else {
- debug "unknown action: $action"
- return
- }
-
- set data [split $data ,]
- set len [llength $data]
- set real_data {}
- set special 0
- for {set i 0} {$i < $len} {incr i} {
- set a [lindex $data $i]
- if {[string range $a 0 1] == "\$("} {
- set special 1
- set b $a
- } elseif {$special} {
- lappend b $a
- if {[string index $a [expr {[string length $a]-1}]] == ")"} {
- lappend real_data [join $b ,]
- set special 0
- }
- } else {
- lappend real_data $a
- }
- }
-
- # !! lindex $Lines 0 -- better way?
- if {$Lines != {}} {
- ManagedWin::open ActionDlg -File $File -Line [lindex $Lines 0] \
- -WhileStepping $whilestepping -Number [lindex $Number 0] \
- -Callback [list [code $this done]] -Data $real_data -Steps $steps
- } else {
- ManagedWin::open ActionDlg -File $File -Address [lindex $Addresses 0] \
- -WhileStepping $whilestepping -Number [lindex $Number 0] \
- -Callback [list [code $this done]] -Data $real_data -Steps $steps
- }
- }
- }
-
- method get_selection {} {
-
- set action [$ActionLB curselection]
- return [$ActionLB get $action]
- }
-
- # ------------------------------------------------------------------
- # METHOD: title - Title the trace dialog.
- #
- # This is needed to title the window after the dialog has
- # been created. The window manager actually sets our title
- # after we've been created, so we need to do this in an
- # "after idle".
- # ------------------------------------------------------------------
- method title {} {
- if {$New} {
- set display_number "N/A"
- wm title [winfo toplevel [namespace tail $this]] "Add Tracepoint"
- } else {
- wm title [winfo toplevel [namespace tail $this]] "Edit Tracepoint"
- }
- }
-
- # PUBLIC DATA
- public variable File {}
- public variable Lines {}
- public variable Addresses {}
- public variable Number {}
-
- # PROTECTED DATA
- protected variable Delete
- protected variable _TPassCount
- protected variable ActionType {}
- protected variable ActionLB
- protected variable Actions
- protected variable WhileStepping 0
- protected variable Selection {}
- protected variable New 0; # set whenever there is a new tp to add
- protected variable Exists 0; # set whenever a tracepoint in the range exists
- protected variable Dismissed 0; # has this dialog been dismissed already?
- protected variable ActionsDlg {}
-}
-
-proc gdb_add_tracepoint {where passes actions {addr {}}} {
- #debug "gdb_add_tracepoint $where $passes $actions $addr"
-
- # Install the tracepoint
- if {$where == "" && $addr != ""} {
- set where "*$addr"
- }
-
- #debug "trace $where"
- set err [catch {gdb_cmd "trace $where"} errTxt]
-
- if {$err} {
- tk_messageBox -type ok -icon error -message $errTxt
- return
- }
-
- # Get the number for this tracepoint
- set number [gdb_tracepoint_exists $where]
-
- # If there is a pass count, add that, too
- set err [catch {gdb_cmd "passcount $passes $number"} errTxt]
-
- if {$err} {
- tk_messageBox -type ok -icon error -message $errTxt
- return
- }
-
- set real_actions {}
- foreach action $actions {
- set steps [lindex $action 0]
- set data [lindex $action 1]
-
- if {$steps} {
- lappend real_actions "while-stepping $steps"
- lappend real_actions "collect $data"
- lappend real_actions "end"
- } else {
- lappend real_actions "collect $data"
- }
- }
-
- if {[llength $real_actions] > 0} {
- lappend real_actions "end"
- }
-
- set err [catch {gdb_actions $number $real_actions} errTxt]
- if $err {
- set errTxt "$errTxt Tracepoint will be installed with no actions"
- tk_messageBox -type ok -icon error -message $errTxt
- return
- }
-}
-
-proc gdb_edit_tracepoint {number passes actions} {
- #debug "gdb_edit_tracepoint $number $passes $actions"
-
- # If there is a pass count, add that, too
- set err [catch {gdb_cmd "passcount $passes $number"} errTxt]
-
- if $err {
- tk_messageBox -type ok -icon error -message $errTxt
- return
- }
-
- set real_actions {}
- foreach action $actions {
- set steps [lindex $action 0]
- set data [lindex $action 1]
-
- if $steps {
- lappend real_actions "while-stepping $steps"
- lappend real_actions "collect $data"
- lappend real_actions "end"
- } else {
- lappend real_actions "collect $data"
- }
- }
-
- if {[llength $real_actions] > 0} {
- lappend real_actions "end"
- }
-
- gdb_actions $number $real_actions
-}
diff --git a/gdb/gdbtk/library/tty.tcl b/gdb/gdbtk/library/tty.tcl
deleted file mode 100644
index d7eff97879d..00000000000
--- a/gdb/gdbtk/library/tty.tcl
+++ /dev/null
@@ -1,55 +0,0 @@
-# tty.tcl - xterm as tty for the inferior
-# Copyright (C) 1996, 2000 Red Hat, Inc
-# Written by Tom Tromey <tromey@cygnus.com>
-#
-# Interface to the inferior's terminal. This is very rough, and is
-# guaranteed to only work on Unix machines (if even there).
-#
-
-namespace eval tty {
- namespace export create
-
- variable _xterm_fd {}
-
- proc create {} {
- variable _xterm_fd
-
- destroy
-
- # Tricky: we exec /bin/cat so that the xterm will exit whenever we
- # close the write end of the pipe. Note that the stdin
- # redirection must come after tty is run; tty looks at its stdin.
- set shcmd {/bin/sh -c 'exec 1>&7; tty; exec /bin/cat 0<&6'}
-
- set fg [option get . foreground Foreground]
- if {$fg == ""} then {
- set fg black
- }
-
- set bg [. cget -background]
- if {$bg == ""} then {
- set bg [lindex [. configure -background] 3]
- }
-
- set xterm [list /bin/sh -c "exec xterm -T 'Gdb Child' -n Gdb -bg '$bg' -fg '$fg' -e $shcmd 6<&0 7>&1"]
-
- # Need both read and write access to xterm process.
- set _xterm_fd [open "| $xterm" w+]
- set tty [gets $_xterm_fd]
-
- # On failure we don't try the tty command.
- if {$tty != ""} {
- gdb_cmd "tty $tty"
- }
- }
-
- proc destroy {} {
- variable _xterm_fd
-
- if {$_xterm_fd != ""} then {
- # We don't care if this fails.
- catch {close $_xterm_fd}
- }
- set _xterm_fd {}
- }
-}
diff --git a/gdb/gdbtk/library/util.tcl b/gdb/gdbtk/library/util.tcl
deleted file mode 100644
index 764ce62b08e..00000000000
--- a/gdb/gdbtk/library/util.tcl
+++ /dev/null
@@ -1,331 +0,0 @@
-# Utilities for Insight.
-# Copyright (C) 1997, 1998, 1999, 2004 Red Hat
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ----------------------------------------------------------------------
-# Misc routines
-#
-# PROCS:
-#
-# keep_raised - keep a window raised
-# sleep - wait a certain number of seconds and return
-# toggle_debug_mode - turn debugging on and off
-# freeze - make a window modal
-# bp_exists - does a breakpoint exist on linespec?
-#
-# ----------------------------------------------------------------------
-#
-
-
-# A helper procedure to keep a window on top.
-proc keep_raised {top} {
- if {[winfo exists $top]} {
- raise $top
- wm deiconify $top
- after 1000 [info level 0]
- }
-}
-
-# sleep - wait a certain number of seconds then return
-proc sleep {sec} {
- global __sleep_timer
- set __sleep_timer 0
- after [expr {1000 * $sec}] set __sleep_timer 1
- vwait __sleep_timer
-}
-
-
-# ------------------------------------------------------------------
-# PROC: auto_step - automatically step through a program
-# ------------------------------------------------------------------
-
-# FIXME FIXME
-proc auto_step {} {
- global auto_step_id
-
- set auto_step_id [after 2000 auto_step]
- gdb_cmd next
-}
-
-# ------------------------------------------------------------------
-# PROC: auto_step_cancel - cancel auto-stepping
-# ------------------------------------------------------------------
-
-proc auto_step_cancel {} {
- global auto_step_id
-
- if {[info exists auto_step_id]} {
- after cancel $auto_step_id
- unset auto_step_id
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: tfind_cmd -- to execute a tfind command on the target
-# ------------------------------------------------------------------
-proc tfind_cmd {command} {
- gdbtk_busy
- # need to call gdb_cmd because we want to ignore the output
- set err [catch {gdb_cmd $command} msg]
- if {$err || [regexp "Target failed to find requested trace frame" $msg]} {
- tk_messageBox -icon error -title "GDB" -type ok \
- -message $msg
- gdbtk_idle
- return
- } else {
- gdbtk_update
- gdbtk_idle
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: save_trace_command -- Saves the current trace settings to a file
-# ------------------------------------------------------------------
-proc save_trace_commands {} {
-
- set out_file [tk_getSaveFile -title "Enter output file for trace commands"]
- debug "Got outfile: $out_file"
- if {$out_file != ""} {
- gdb_cmd "save-tracepoints $out_file"
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: do_test - invoke the test passed in
-# This proc is provided for convenience. For any test
-# that uses the console window (like the console window
-# tests), the file cannot be sourced directly using the
-# 'tk' command because it will block the console window
-# until the file is done executing. This proc assures
-# that the console window is free for input by wrapping
-# the source call in an after callback.
-# Users may also pass in the verbose and tests globals
-# used by the testsuite.
-# ------------------------------------------------------------------
-proc do_test {{file {}} {verbose {}} {tests {}}} {
- global _test
-
- if {$file == {}} {
- error "wrong \# args: should be: do_test file ?verbose? ?tests ...?"
- }
-
- if {$verbose != {}} {
- set _test(verbose) $verbose
- } elseif {![info exists _test(verbose)]} {
- set _test(verbose) 0
- }
-
- if {$tests != {}} {
- set _test(tests) $tests
- }
-
- set _test(interactive) 1
- after 500 [list source $file]
-}
-
-# ------------------------------------------------------------------
-# PROCEDURE: gdbtk_read_defs
-# Reads in the defs file for the testsuite. This is usually
-# the first procedure called by a test file. It returns
-# 1 if it was successful and 0 if not (if run interactively
-# from the console window) or exits (if running via dejagnu).
-# ------------------------------------------------------------------
-proc gdbtk_read_defs {} {
- global _test env
-
- if {[info exists env(DEFS)]} {
- set err [catch {source $env(DEFS)} errTxt]
- } else {
- set err [catch {source defs} errTxt]
- }
-
- if {$err} {
- if {$_test(interactive)} {
- tk_messageBox -icon error -message "Cannot load defs file:\n$errTxt" -type ok
- return 0
- } else {
- puts stderr "cannot load defs files: $errTxt\ntry setting DEFS"
- exit 1
- }
- }
-
- return 1
-}
-
-# ------------------------------------------------------------------
-# PROCEDURE: bp_exists
-# Returns BPNUM if a breakpoint exists at LINESPEC or
-# -1 if no breakpoint exists there
-# ------------------------------------------------------------------
-proc bp_exists {linespec} {
-
- lassign $linespec foo function filename line_number addr pc_addr
-
- set bps [gdb_get_breakpoint_list]
- foreach bpnum $bps {
- set bpinfo [gdb_get_breakpoint_info $bpnum]
- lassign $bpinfo file func line pc type enabled disposition \
- ignore_count commands cond thread hit_count user_specification
- if {$filename == $file && $function == $func && $addr == $pc} {
- return $bpnum
- }
- }
-
- return -1
-}
-
-
-# gridCGet - This provides the missing grid cget
-# command.
-
-proc gridCGet {slave option} {
- set config_list [grid info $slave]
- return [lindex $config_list [expr [lsearch $config_list $option] + 1]]
-}
-
-# ------------------------------------------------------------------
-# PROC: get_disassembly_flavor - gets the current disassembly flavor.
-# The set disassembly-flavor command is assumed to exist. This
-# will error out if it does not.
-# ------------------------------------------------------------------
-proc get_disassembly_flavor {} {
- if {[catch {gdb_cmd "show disassembly-flavor"} ret]} {
- return ""
- } else {
- regexp {\"([^\"]*)\"\.} $ret dummy gdb_val
- return $gdb_val
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: list_disassembly_flavors - Lists the current disassembly flavors.
-# Returns an empty list if the set disassembly-flavor is not supported.
-# ------------------------------------------------------------------
-proc list_disassembly_flavors {} {
- catch {gdb_cmd "set disassembly-flavor"} ret_val
- if {[regexp {Requires an argument\. Valid arguments are (.*)\.} \
- $ret_val dummy list]} {
- foreach elem [split $list ","] {
- lappend vals [string trim $elem]
- }
- return [lsort $vals]
- } else {
- return {}
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: init_disassembly_flavor - Synchs up gdb's internal disassembly
-# flavor with the value in the preferences file.
-# ------------------------------------------------------------------
-proc init_disassembly_flavor {} {
- set gdb_val [get_disassembly_flavor]
- if {$gdb_val != ""} {
- set def_val [pref get gdb/src/disassembly-flavor]
- if {[string compare $def_val ""] != 0} {
- if {[catch "gdb_cmd \"set disassembly-flavor $def_val\""]} {
- pref set gdb/src/disassembly-flavor $gdb_val
- }
- } else {
- pref set gdb/src/disassembly-flavor $gdb_val
- }
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: list_element_strcmp - to be used in lsort -command when the
-# elements are themselves lists, and you always want to look at
-# a particular item.
-# ------------------------------------------------------------------
-proc list_element_strcmp {index first second} {
- set theFirst [lindex $first $index]
- set theSecond [lindex $second $index]
-
- return [string compare $theFirst $theSecond]
-}
-
-# ------------------------------------------------------------------
-# PROC: gdbtk_endian - returns BIG or LITTLE depending on target
-# endianess
-# ------------------------------------------------------------------
-
-proc gdbtk_endian {} {
- if {[catch {gdb_cmd "show endian"} result]} {
- return "UNKNOWN"
- }
- if {[regexp {.*big endian} $result]} {
- set result "BIG"
- } elseif {[regexp {.*little endian} $result]} {
- set result "LITTLE"
- } else {
- set result "UNKNOWN"
- }
- return $result
-}
-
-# ------------------------------------------------------------------
-# PROC: set_bg_colors - set background and text background for
-# all windows.
-# ------------------------------------------------------------------
-proc set_bg_colors {{num ""}} {
- debug $num
-
- if {$num != ""} {
- set ::gdb_bg_num $num
- }
- set ::Colors(textbg) [pref get gdb/bg/$::gdb_bg_num]
-
- # calculate background as 80% of textbg
- set ::Colors(bg) [recolor $::Colors(textbg) 80]
-
- # calculate trough and activebackground as 90% of background
- set dbg [recolor $::Colors(bg) 90]
-
- r_setcolors . -background $::Colors(bg)
- r_setcolors . -highlightbackground $::Colors(bg)
- r_setcolors . -textbackground $::Colors(textbg)
- r_setcolors . -troughcolor $dbg
- r_setcolors . -activebackground $dbg
-
- pref_set_option_db 1
- ManagedWin::restart
-}
-
-# ------------------------------------------------------------------
-# PROC: r_setcolors - recursively set background and text background for
-# all windows.
-# ------------------------------------------------------------------
-proc r_setcolors {w option color} {
- debug "$w $option $color"
-
- # exception(s)
- if {![catch {$w isa Balloon} result] && $result == "1"} {
- return
- }
- catch {$w config $option $color}
-
- foreach child [winfo children $w] {
- r_setcolors $child $option $color
- }
-}
-
-# ------------------------------------------------------------------
-# PROC: recolor - returns a darker or lighter color
-# ------------------------------------------------------------------
-proc recolor {color percent} {
- set c [winfo rgb . $color]
- return [format #%02x%02x%02x [expr {($percent * [lindex $c 0]) / 25600}] \
- [expr {($percent * [lindex $c 1]) / 25600}] [expr {($percent * [lindex $c 2]) / 25600}]]
-}
-
-
diff --git a/gdb/gdbtk/library/vartree.itb b/gdb/gdbtk/library/vartree.itb
deleted file mode 100644
index e28733d37b8..00000000000
--- a/gdb/gdbtk/library/vartree.itb
+++ /dev/null
@@ -1,431 +0,0 @@
-# Variable tree implementation for Insight.
-# Copyright (C) 2002 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-itcl::body VarTree::constructor {args} {
- debug $args
- if {!$initialized} {
- _init_data
- }
- eval itk_initialize $args
-
- itk_component add canvas {
- iwidgets::scrolledcanvas $itk_interior.c -autoresize 1 -hscrollmode dynamic -vscrollmode dynamic \
- -background $::Colors(textbg) -borderwidth 0 -highlightthickness 0
- }
- set c [$itk_component(canvas) childsite]
- pack $itk_component(canvas) -side top -fill both -expand 1
- bind $c <1> "[code $this clicked %W %x %y 0]"
-
- # Add popup menu - we populate it in _but3
- itk_component add popup {
- menu $itk_interior.pop -tearoff 0
- } {}
- set pop $itk_component(popup)
- $pop configure -disabledforeground $::Colors(fg)
- bind $c <3> [code $this _but3 %x %y %X %Y]
-
- set selection {}
- set selidx {}
- after idle [code $this build]
-}
-
-itcl::body VarTree::destructor {} {
- debug
-}
-
-itcl::body VarTree::build {} {
- debug
- $c delete all
- catch {unset var_to_items}
- catch {unset item_to_var}
- set _y 30
- buildlayer $rootlist 10
- $c config -scrollregion [$c bbox all] -background $::Colors(textbg) -borderwidth 0 -highlightthickness 0
- update 1
- drawselection
-}
-
-itcl::body VarTree::buildlayer {tlist in} {
- set start [expr $_y - 10]
-
- foreach var $tlist {
- set y $_y
- incr _y 17
-
- if {$in > 10} {
- $c create line $in $y [expr $in+10] $y -fill $colors(line)
- }
- set x [expr $in + 12]
-
- set j1 [$c create text $x $y -text "[$var name] = " -fill $colors(name) -anchor w -font global/fixed]
- set x [expr [lindex [$c bbox $j1] 2] + 5]
- set j2 [$c create text $x $y -text "([$var type])" -fill $colors(type) -anchor w -font global/fixed]
- set x [expr [lindex [$c bbox $j2] 2] + 5]
- if {[catch {$var value} val]} {
- # error accessing memory, etc.
- set j3 [$c create text $x $y -text $val -fill $colors(error) -anchor w -font global/fixed]
- } else {
- set j3 [$c create text $x $y -text $val -fill $colors(value) -anchor w -font global/fixed]
- }
-
- set var_to_items($var) [list $j1 $j2 $j3]
- set item_to_var($j1) $var
- set item_to_var($j2) $var
- set item_to_var($j3) $var
-
- $c bind $j1 <Double-1> "[code $this clicked %W %x %y 1]"
- $c bind $j2 <Double-1> "[code $this clicked %W %x %y 1]"
- $c bind $j3 <Double-1> "[code $this edit $j3];break"
-
- if {[$var numChildren]} {
- if {[closed $var]} {
- set j [$c create image $in $y -image closedbm]
- $c bind $j <1> "[code $this open $var]"
- } else {
- set j [$c create image $in $y -image openbm]
- $c bind $j <1> "[code $this close $var]"
- buildlayer [$var children] [expr $in+18]
- }
- }
- }
- if {$in > 10} {
- $c lower [$c create line $in $start $in [expr $y+1] -fill $colors(line) ]
- }
-}
-
-# add: add a list of varobj to the tree
-itcl::body VarTree::add {var} {
- debug $var
- if {$var == ""} {return}
- set rootlist [concat $rootlist $var]
- after idle [code $this build]
-}
-
-# remove: remove a varobj from the tree
-# if the name is "all" then remove all
-itcl::body VarTree::remove {name} {
- debug $name
- if {$name == ""} {return}
- if {$name == "all"} {
- set rootlist {}
- } else {
- set rootlist [lremove $rootlist $name]
- }
- after idle [code $this build]
-}
-
-# update a var
-itcl::body VarTree::update_var {var enabled check} {
- if {$enabled && $check} {return}
- lassign $var_to_items($var) nam typ val
- if {$enabled} {
- $c itemconfigure $nam -fill $colors(name)
- $c itemconfigure $typ -fill $colors(type)
-
- if {[catch {$var value} value]} {
- set color $colors(error)
- } elseif {[$c itemcget $val -text] != $value} {
- set color $colors(change)
- } else {
- set color $colors(value)
- }
- $c itemconfigure $val -text $value -fill $color
- } else {
- $c itemconfigure $nam -fill $colors(disabled)
- $c itemconfigure $typ -fill $colors(disabled)
- $c itemconfigure $val -fill $colors(disabled)
- }
-
- if {![closed $var] && [$var numChildren]} {
- foreach child [$var children] {
- update_var $child $enabled $check
- }
- }
-}
-
-# update: update the values of the vars in the tree.
-# The "check" argument is a hack we have to do because
-# [$varobj value] does not return an error; only [$varobj update]
-# does. So after changing the tree layout in build, we must then
-# do an update. The "check" argument just optimizes things a bit over
-# a normal update by not fetching values, just calling update.
-itcl::body VarTree::update {{check 0}} {
- debug
-
- # delete selection box if it is visible
- if {$selidx != ""} {
- $c delete $selidx
- }
-
- # update all the root variables
- foreach var $rootlist {
- if {[$var update] == "-1"} {
- set enabled 0
- } else {
- set enabled 1
- }
- update_var $var $enabled $check
- }
-}
-
-# Draw the selection highlight
-itcl::body VarTree::drawselection {} {
- #debug "selidx=$selidx selection=$selection"
- if {$selidx != ""} {
- $c delete $selidx
- }
- if {$selection == ""} return
- if {![info exists var_to_items($selection)]} return
- set bbox [eval "$c bbox $var_to_items($selection)"]
- if {[llength $bbox] == 4} {
- set selidx [eval $c create rectangle $bbox -fill $::Colors(sbg) -outline {{}}]
- $c lower $selidx
- } else {
- set selidx {}
- }
-}
-
-# button 1 callback
-itcl::body VarTree::clicked {w x y open} {
- #debug "clicked $w $x $y $open"
- set x [$w canvasx $x]
- set y [$w canvasy $y]
- foreach m [$w find overlapping $x $y $x $y] {
- if {[info exists item_to_var($m)]} {
- if {$open} {
- set var $item_to_var($m)
- if {[closed $var]} {
- set closed($var) 0
- } else {
- set closed($var) 1
- }
- after idle [code $this build]
- } else {
- setselection $item_to_var($m)
- }
- return
- }
- }
- if {!$open} {
- setselection ""
- }
-}
-
-
-#
-# Change the selection to the indicated item
-#
-itcl::body VarTree::setselection {var} {
- #debug "setselection $var"
- set selection $var
- drawselection
-}
-
-# Check if a node is closed.
-# If it is a new node, set it to closed
-itcl::body VarTree::closed {name} {
- if {![info exists closed($name)]} {
- set closed($name) 1
- }
- return $closed($name)
-}
-
-# mark a node open
-itcl::body VarTree::open {name} {
- set closed($name) 0
- after idle [code $this build]
-}
-
-# mark a node closed
-itcl::body VarTree::close {name} {
- set closed($name) 1
- after idle [code $this build]
-}
-
-# edit a varobj.
-# creates an entry widget in place of the current value
-itcl::body VarTree::edit {j} {
- #debug "$j"
-
- # if another edit is in progress, cancel it
- if {$entry != ""} { unedit $j }
-
- set entryobj $item_to_var($j)
- set entry [entry $c.entry -bg $::Colors(bg) -fg $::Colors(fg) -font global/fixed]
- set entrywin [$c create window [$c coords $j] -window $entry -anchor w]
- focus $entry
- bind $entry <Return> [code $this changeValue $j]
- bind $entry <Escape> [code $this unedit $j]
-}
-
-# cancel or clean up after an edit
-itcl::body VarTree::unedit {j} {
- #debug
- # cancel the edit
- $c delete $entrywin
- destroy $entry
- set entry ""
- $c raise $j
-}
-
-# change the value of a varobj.
-itcl::body VarTree::changeValue {j} {
- #debug "value = [$entry get]"
- set new [string trim [$entry get] \ \r\n]
- if {$new == ""} {
- unedit $j
- return
- }
- if {[catch {$entryobj value $new} errTxt]} {
- # gdbtk-varobj doesn't actually return meaningful error messages
- # so use a generic one.
- set errTxt "GDB could not evaluate that expression"
- tk_messageBox -icon error -type ok -message $errTxt \
- -title "Error in Expression" -parent [winfo toplevel $itk_interior]
- focus $entry
- $entry selection to end
- } else {
- unedit $j
-
- # We may have changed a register or something else that is
- # being displayed in another window
- gdbtk_update
- }
-}
-
-# change the format for a var
-itcl::body VarTree::_change_format {var} {
- #debug "$var $popup_temp"
- catch {$var format $popup_temp}
- after idle [code $this update]
-}
-
-# button 3 callback. Pops up a menu.
-itcl::body VarTree::_but3 {x y X Y} {
- set x [$c canvasx $x]
- set y [$c canvasy $y]
- catch {destroy $pop.format}
-
- set var ""
- foreach item [$c find overlapping $x $y $x $y] {
- if {![catch {set var $item_to_var($item)}]} {
- break
- }
- }
- setselection $var
- if {$var == ""} {
- _do_default_menu $X $Y
- return
- }
- set popup_temp [$var format]
- set j3 [lindex $var_to_items($var) 2]
- #debug "var=$var [$var name] format=$popup_temp this=$this"
- $pop delete 0 end
- $pop add command -label [$var name] -state disabled
- $pop add separator
- $pop add cascade -menu $pop.format -label "Format" -underline 0
- set f [menu $pop.format -tearoff 0]
- $f add radio -label "Natural" -variable [scope popup_temp] -value "natural" -command [code $this _change_format $var]
- $f add radio -label "Decimal" -variable [scope popup_temp] -value "decimal" -command [code $this _change_format $var]
- $f add radio -label "Hex" -variable [scope popup_temp] -value "hexadecimal" -command [code $this _change_format $var]
- $f add radio -label "Octal" -variable [scope popup_temp] -value "octal" -command [code $this _change_format $var]
- $f add radio -label "Binary" -variable [scope popup_temp] -value "binary" -command [code $this _change_format $var]
- $pop add command -label "Edit" -command [code $this edit $j3]
- $pop add command -label "Delete" -command [code $this remove $var]
- if {![catch {$var value} value]} {
- $pop add separator
- $pop add command -label "Dump Memory at [$var name]" -command [list ManagedWin::open MemWin -force -addr_exp [$var name]]
- }
- $pop add separator
- if {$type == "local"} {
- $pop add command -label "Help" -command "open_help watch.html"
- } else {
- $pop add command -label "Help" -command "open_help locals.html"
- }
- $pop add separator
- $pop add command -label "Close" -command "destroy [winfo toplevel $itk_interior]"
- tk_popup $pop $X $Y
-}
-
-# popup menu over empty space
-itcl::body VarTree::_do_default_menu {X Y} {
- #debug
- $pop delete 0 end
- if {$type == "local"} {
- $pop add command -label "Local Variables" -state disabled
- } else {
- $pop add command -label "Watch Window" -state disabled
- }
- $pop add separator
- $pop add command -label "Sort" -command [code $this _sort]
- if {$type == "local"} {
- $pop add command -label "Help" -command "open_help watch.html"
- } else {
- $pop add command -label "Help" -command "open_help locals.html"
- }
- $pop add separator
- $pop add command -label "Close" -command "destroy [winfo toplevel $itk_interior]"
- tk_popup $pop $X $Y
-}
-
-# alphabetize the variable names in the list
-itcl::body VarTree::_sort {} {
- #debug $rootlist
- set rootlist [lsort -command [code $this _compare] $rootlist]
- after idle [code $this build]
-}
-
-# comparison function for lsort.
-itcl::body VarTree::_compare {a b} {
- return [string compare [$a name] [$b name]]
-}
-
-# ititialize common data
-itcl::body VarTree::_init_data {} {
- set colors(name) "\#0000C0"
- set colors(type) "red"
- set colors(error) "red"
- set colors(value) "black"
- set colors(change) $::Colors(change)
- set colors(disabled) "gray50"
- set colors(line) "gray50"
-
- set maskdata "#define solid_width 9\n#define solid_height 9"
- append maskdata {
- static unsigned char solid_bits[] = {
- 0xff, 0x01, 0xff, 0x01, 0xff, 0x01, 0xff, 0x01, 0xff, 0x01, 0xff, 0x01,
- 0xff, 0x01, 0xff, 0x01, 0xff, 0x01
- };
- }
- set data "#define open_width 9\n#define open_height 9"
- append data {
- static unsigned char open_bits[] = {
- 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x7d, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0xff, 0x01
- };
- }
- image create bitmap openbm -data $data -maskdata $maskdata \
- -foreground black -background white
- set data "#define closed_width 9\n#define closed_height 9"
- append data {
- static unsigned char closed_bits[] = {
- 0xff, 0x01, 0x01, 0x01, 0x11, 0x01, 0x11, 0x01, 0x7d, 0x01, 0x11, 0x01,
- 0x11, 0x01, 0x01, 0x01, 0xff, 0x01
- };
- }
- image create bitmap closedbm -data $data -maskdata $maskdata \
- -foreground black -background white
-
- set initialized 1
-}
-
diff --git a/gdb/gdbtk/library/vartree.ith b/gdb/gdbtk/library/vartree.ith
deleted file mode 100644
index 2a185063726..00000000000
--- a/gdb/gdbtk/library/vartree.ith
+++ /dev/null
@@ -1,77 +0,0 @@
-# Variable tree class definition for Insight.
-# Copyright (C) 2002 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-itcl::class VarTree {
- inherit itk::Widget
-
- public variable type "watch"
-
- private {
- # list of root variables in tree
- variable rootlist {}
-
- # mapping of varobj to canvas items
- variable var_to_items
- variable item_to_var
-
- variable c ;#the canvas
- variable pop ;#popup menu
- variable _y 0
- variable selection
- variable selidx
- variable closed
-
- variable popup_temp
-
- # when editing, these contain the entry widget and edited varobj
- variable entry ""
- variable entryobj
- variable entrywin
- }
-
- common maskdata
- common data
- common openbm
- common closedbm
- common initialized 0
- common colors
-
- private {
- method _init_data {}
- method build {}
- method buildlayer {tlist n}
- method drawselection {}
- method clicked {w x y open}
- method setselection {var}
- method closed {name}
- method open {name}
- method close {name}
- method edit {j}
- method unedit {j}
- method changeValue {j}
- method update_var {var ena check}
- method _but3 {x y X Y}
- method _change_format {var}
- method _do_default_menu {X Y}
- method _sort {}
- method _compare {a b}
- }
-
- public {
- method constructor {args}
- method destructor {}
- method add {varobj}
- method remove {varobj}
- method update {{check 0}}
- }
-}
diff --git a/gdb/gdbtk/library/warning.tcl b/gdb/gdbtk/library/warning.tcl
deleted file mode 100644
index 0b510594645..00000000000
--- a/gdb/gdbtk/library/warning.tcl
+++ /dev/null
@@ -1,102 +0,0 @@
-# Warning dialog for GDBtk.
-# Copyright (C) 1998, 1999 Cygnus Solutions
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# -----------------------------------------------------------------------------
-# NAME:
-# class WarningDlg
-#
-# DESC:
-# This class implements a warning dialog. It has an optional checkbox
-# that the user can select to disable all warnings of the same type.
-#
-# ARGS:
-# -ignorable "class" - Causes an ignorable dialog to be created.
-# "class" is the warning class that will be either
-# displayed or ignored. It may be any string, so
-# long as the same string is used for all related
-# warning messages.
-#
-# -message "msg" - Message to be displayed.
-# -----------------------------------------------------------------------------
-#
-
-itcl::class WarningDlg {
- inherit ManagedWin ModalDialog
-
- public {
- variable ignorable ""
- variable message ""
- method constructor {args}
- }
-
- protected common ignore
-}
-
-# -----------------------------------------------------------------------------
-# NAME:
-# WarningDlg::constructor
-#
-# DESC:
-# Creates the warning dialog.
-# -----------------------------------------------------------------------------
-itcl::body WarningDlg::constructor {args} {
- debug $args
- window_name "Warning"
- eval itk_initialize $args
-
- if {$ignorable == ""} {
- tk_messageBox -message $message -type ok -icon warning -default ok \
- -parent [winfo toplevel $itk_interior]
- delete
- return
- } else {
- if {[info exists ignore($ignorable)]} {
- if {$ignore($ignorable)} {
- delete
- return
- }
- } else {
- set ignore($ignorable) 0
- }
- }
-
- frame $itk_interior.f
- frame $itk_interior.f.a -relief raised -bd 1
- frame $itk_interior.f.b -relief raised -bd 1
- set f $itk_interior.f.a
-
-
- label $f.bitmap -bitmap warning
- label $f.lab -text $message
- pack $f.bitmap $f.lab -side left -padx 10 -pady 10
-
- if {$ignorable != ""} {
- checkbutton $itk_interior.f.b.ignore -text "Don't show this warning again" \
- -variable [scope ignore($ignorable)] -anchor w
- }
-
- button $itk_interior.f.b.ok -text OK -underline 0 -command [code $this unpost]
- bind $itk_interior.f.b.ok <Return> \
- "$itk_interior.f.b.ok flash; $itk_interior.f.b.ok invoke"
- focus $itk_interior.f.b.ok
-
- if {$ignorable != ""} {
- pack $itk_interior.f.b.ignore
- }
-
- pack $itk_interior.f.b.ok -expand yes -side left
- pack $itk_interior.f.a
- pack $itk_interior.f.b -fill x
- pack $itk_interior.f
-}
diff --git a/gdb/gdbtk/library/watch.tcl b/gdb/gdbtk/library/watch.tcl
deleted file mode 100644
index 33fb5ee25c6..00000000000
--- a/gdb/gdbtk/library/watch.tcl
+++ /dev/null
@@ -1,218 +0,0 @@
-# Watch window for Insight.
-# Copyright (C) 2002, 2003, 2006 Red Hat
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-
-# ----------------------------------------------------------------------
-# Implements watch windows for gdb.
-# ----------------------------------------------------------------------
-
-itcl::class WatchWin {
- inherit EmbeddedWin GDBWin
- # ------------------------------------------------------------------
- # CONSTRUCTOR - create new watch window
- # ------------------------------------------------------------------
- constructor {args} {
- debug
-
- gdbtk_busy
- build_win $itk_interior
- gdbtk_idle
-
- add_hook gdb_no_inferior_hook "$this no_inferior"
- add_hook gdb_clear_file_hook [code $this clear_file]
- add_hook file_changed_hook [code $this clear_file]
- }
-
-
- # ------------------------------------------------------------------
- # PUBLIC METHOD: busy - BusyEvent handler
- # Disable all ui elements that could affect gdb's state
- # ------------------------------------------------------------------
- method busy {event} {
- debug
- set Running 1
- cursor watch
- }
-
- # Re-enable the UI
- method idle {event} {
- debug
- set Running 0
- cursor {}
- }
-
- # ------------------------------------------------------------------
- # METHOD: no_inferior
- # Reset this object.
- # ------------------------------------------------------------------
- method no_inferior {} {
- debug
- cursor {}
- set Running 0
- foreach var $Watched {
- $var delete
- }
- $tree remove all
- }
-
- # ------------------------------------------------------------------
- # METHOD: cursor - change the toplevel's cursor
- # ------------------------------------------------------------------
- method cursor {what} {
- [winfo toplevel [namespace tail $this]] configure -cursor $what
- ::update idletasks
- }
-
-
- # ------------------------------------------------------------------
- # METHOD: build_win - build window for watch.
- # ------------------------------------------------------------------
- method build_win {f} {
- #debug "$f"
-
- set f [::frame $f.f]
- set treeFrame [frame $f.top]
- set entryFrame [frame $f.expr]
-
- set tree [VarTree $treeFrame.tree]
- pack $tree -expand yes -fill both
-
- set Entry [entry $entryFrame.ent -font global/fixed]
- button $entryFrame.but -text "Add Watch" -command [code $this validateEntry]
- pack $f -fill both -expand yes
- grid $entryFrame.ent -row 0 -column 0 -sticky news -padx 2
- grid $entryFrame.but -row 0 -column 1 -padx 2
- grid columnconfigure $entryFrame 0 -weight 1
- grid columnconfigure $entryFrame 1
-
- grid $treeFrame -row 0 -column 0 -sticky news
- grid $entryFrame -row 1 -column 0 -padx 5 -pady 5 -sticky news
- grid columnconfigure $f 0 -weight 1
- grid rowconfigure $f 0 -weight 1
- window_name "Watch"
- ::update idletasks
- # Binding for the entry
- bind $entryFrame.ent <Return> "$entryFrame.but flash; $entryFrame.but invoke"
- }
-
- method validateEntry {} {
- if {!$Running} {
- debug "Getting entry value...."
- set variable [$Entry get]
- debug "Got $variable, going to add"
- set ok [add $variable]
- debug "Added... with ok: $ok"
- $Entry delete 0 end
- }
- }
-
- # ------------------------------------------------------------------
- # METHOD: clear_file - Clear out state so that a new executable
- # can be loaded. For WatchWins, this means doing
- # everything that no_inferior does.
- # ------------------------------------------------------------------
- method clear_file {} {
- debug
- no_inferior
- }
-
- # ------------------------------------------------------------------
- # DESTRUCTOR - delete watch window
- # ------------------------------------------------------------------
- destructor {
- debug
- set tree {}
-
- # Remove this window and all hooks
- remove_hook gdb_no_inferior_hook "$this no_inferior"
- remove_hook gdb_clear_file_hook [code $this clear_file]
- remove_hook file_changed_hook [code $this clear_file]
-
- foreach var $Watched {
- $var delete
- }
- }
-
- method remove {entry} {
- debug $entry
-
- # Remove this entry from the list of watched variables
- set Watched [lremove $Watched $entry]
-
- $entry remove
- $entry delete
- }
-
-
- method update {event} {
- $tree update
- }
-
-
- # ------------------------------------------------------------------
- # METHOD: add - add a variable to the watch window
- # ------------------------------------------------------------------
- method add {name} {
- debug "Trying to add \"$name\" to watch"
-
- # Strip all the junk after the first \n
- set var [split $name \n]
- set var [lindex $var 0]
- set var [split $var =]
- set var [lindex $var 0]
-
- # Strip out leading/trailing +, -, ;, spaces, commas
- set var [string trim $var +-\;\ \r\n,]
-
- # Make sure that we have a valid variable
- set err [catch {gdb_cmd "set variable $var"} errTxt]
- if {$err} {
- dbug W "ERROR adding variable: $errTxt"
- ManagedWin::open WarningDlg -transient \
- -over $this -message [list $errTxt] -ignorable "watchvar"
- } else {
- if {[string index $var 0] == "\$"} {
- # We must make a special attempt at verifying convenience
- # variables.. Specifically, these are printed as "void"
- # when they are not defined. So if a user type "$_I_made_tbis_up",
- # gdb responds with the value "void" instead of an error
- catch {gdb_cmd "p $var"} msg
- set msg [split $msg =]
- set msg [string trim [lindex $msg 1] \ \r\n]
- if {$msg == "void"} {
- return 0
- }
- }
-
- debug "In add, going to add $name"
- # make one last attempt to get errors
- set err [catch {set foo($name) 1}]
- debug "err1=$err"
- set err [expr {$err + [catch {expr {$foo($name) + 1}}]}]
- debug "err2=$err"
- if {!$err} {
- set var [gdb_variable create -expr $name]
- debug "var=$var"
- $tree add $var
- lappend Watched $var
- return 1
- }
- }
- return 0
- }
-
- protected variable Entry
- protected variable Watched {}
- protected variable tree
- protected variable Running
-}
diff --git a/gdb/gdbtk/plugins/ChangeLog b/gdb/gdbtk/plugins/ChangeLog
deleted file mode 100644
index c068ef07153..00000000000
--- a/gdb/gdbtk/plugins/ChangeLog
+++ /dev/null
@@ -1,18 +0,0 @@
-2006-09-28 Keith Seitz <keiths@redhat.com>
-
- * aclocal.m4: Regenerate.
- * configure: Regenerate.
- * Makefile.in: Regenerate.
-
-2005-12-23 Eli Zaretskii <eliz@gnu.org>
-
- * aclocal.m4: Update the FSF address.
-
-2002-08-14 Keith Seitz <keiths@redhat.com>
-
- * acinclude.m4, aclocal.m4, configure, configure.in,
- HOW-TO, Makefile.am, Makefile.in, Make-rules,
- plugins.tcl: New files adding improved support for plugins.
- * rhabout/: Add new sample plugin.
- * intel-pentium/: Add new Intel Pentium plugin.
-
diff --git a/gdb/gdbtk/plugins/HOW-TO b/gdb/gdbtk/plugins/HOW-TO
deleted file mode 100644
index 6d7ebc158f9..00000000000
--- a/gdb/gdbtk/plugins/HOW-TO
+++ /dev/null
@@ -1,414 +0,0 @@
-INSIGHT PLUG-INS HOW-TO
-=======================
-
-This text describes the technical aspects of adding a plug-in window
-to Insight, the graphical front-end to the GNU Debugger, GDB.
-
-
-1) INTRODUCTION
-
-The plug-in facility allows for the addition of custom windows to
-Insight. These windows are not to become part of the Insight
-distribution, but rather to be distributed separately. They can be
-downloaded from the author's web site, may accompany some development
-board or embedded OS, or come with anything else that can benefit from
-a custom window being added to the standard Insight. Plug-ins
-will be loaded into Insight/GDB for execution, so the terms of the GPL
-also apply to the plug-in code. Also, Red Hat provides this facility
-as-is and accepts no responsibility from its use. Please refer to the
-text of the GPL for more details.
-
-The facilities described here provide support for custom
-visualizations (custom windows for displaying information retrieved
-from the target). By writing a plug-in, it is possible to visualize
-target-specific data that is not shown in the standard Insight
-windows.
-
-The plug-in facility cannot be used to control target execution. The
-current implementation of Insight assumes that only the Source Window
-issues commands related to target execution control. There is no
-mechanism to prevent one to call the commands that control execution,
-but its use may result in inconsistent GUI states. This restriction
-may be lifted in future versions of Insight.
-
-The facility works as follows: A plugins subdirectory is added under
-the "EXEC-PREFIX/lib" directory where Insight is installed. The custom
-plug-in code will be installed in a subdirectory of this plugins
-directory. The plug-in window will be written as an [incr Tcl/Tk]
-class which inherits from the provided PluginWindow class and
-implements the methods necessary to display the desired custom
-data. GDB will read plug-in files on start-up and add a menu item to
-the PlugIn menu of the Insight Source Window. When the menu item is
-chosen, GDB instantiates the custom plug-in class.
-
-The PluginWindow base class constructor creates a toplevel window (an
-Insight ManagedWin) which contains a "childsite". In this case, the
-"childsite" is a frame in which the derived class (the custom plug-in)
-can draw. The PluginWindow class also provides facilities to add a
-menu and a toolbar. Among the methods provided by this class, the
-"running" method is called every time the debugger starts the target
-and the "stopped" method is called every time the target stops. In the
-"stopped" method, information can be gathered from the target and
-displayed. The "running" method indicates that GDB is busy running
-the target. No activities should be initiated by any GUI component
-while in this state (except for the STOP button in the Source Window).
-
-The remainder of this document describes how to install a custom
-plug-in and some details of the PluginWindow class. Writing Tcl
-extensions (technically what plug-ins are) is beyond the scope of
-this document, but a simple example is given and some documentation
-references are provided.
-
-Please see the file CONTRIBUTE in this directory for some
-administrative details before you start developing your plug-in.
-
-
-2) HOW TO ADD A PLUG-IN WINDOW TO INSIGHT
-
-Once you have your plug-in class ready, here is how to make it show up
-in the Insight Source Window "PlugIn" menu. You may perform these
-steps manually, but if you are distributing your plug-in, it may be
-convenient to provide an installation script with it that automates
-this steps.
-
-The examples in this section refer to the sample plug-in code provided
-with the Insight sources, located in the
-$(SOURCE)/gdb/gdbtk/plugins and $(SOURCE)/gdb/gdbtk/plugins/rhabout
-directories.
-
-Custom plug-ins are provided as "packages" (see [Welch 2000] and
-[Smith 2000]). The following setup will cause your plug-in package to
-be loaded.
-
-** FIXME: don't need to create the directory -- install will do it **
-i) First, locate the $(EXEC-PREFIX)/lib/insight1.0 directory. This is the
-directory which contains the plug-in code used by Insight. Create a
-this directory if it does not exist yet (i.e., if your plug-in
-is the first to be installed).
-
-ii) Create a subdirectory for your plug-in code (named in accordance to
-the conventions set forth in the CONTRIBUTE file). Add all your code
-to that directory. Make sure you have a tclIndex file or use
-auto_mkindex to create it. For instance, in the sample case we would
-have:
-
- $(EXEC-PREFIX)/lib/insight1.0/rhabout
-
-** FIXME: this shows unix. show cygwin, too. **
-and it would contain:
-
- rhabout.itcl rhabout.so rhabout.tcl pkgIndex.tcl tclIndex
-
-iii) In your plug-in's directory, create a file that will actually load your
-plug-in package (named accordingly to the CONTRIBUTE conventions). In
-the provided sample, this file is "rhabout.tcl" and would contain the
-following lines:
-
- package provide RHABOUT 1.0
- set dirname [file dirname [info script]]
- lappend auto_path [file join $dirname]
- catch {load [file join $dirname rhabout@TCL_SHLIB_SUFFIX@]}
-
-The first line states what package the sample plug-in code is
-providing. Note that the subdirectory "rhabout" which contains the
-sample plug-in is added to the auto_path in the third line and there
-is a tclIndex file in that directory (that is how plug-in classes and
-methods are found).
-
-The last line is only necessary if your plug-in contains Tcl command
-procedures written in C. Loading Tcl libraries is described in [Welch
-2000] and the [incr Tcl/Tk] bits can be found in [Smith 2000]. It is
-recommended that the reader also refer to the "load" Tcl man page if
-these dynamic libraries are to be loaded.
-
-iv) Add a pkgIndex.tcl file to your plug-in's directory. Do not use
-Tcl to generate this file, since it will not work properly. Instead,
-just add a line like:
-
- package ifneeded RHABOUT 1.0 [list source [file join $dir rhabout.tcl]]
-
-This roughly corresponds to what would be created by a pkg_mkIndex
-command with the "-direct" option.
-
-** FIXME: install will do this, too. ALL plugins should be mentioned
- in the global plugins.tcl file **
-v) Create/append the file "plugins.tcl" in the plugins directory
-($(EXEC-PREFIX/lib/insight1.0) if it does not yet exist. This is a file
-shared by all plug-ins so make sure your install script does not overwrite,
-but append to it.
-
-This is a Tcl code fragment that will be sourced by the Insight Source
-Window constructor to add menu entries to the "PlugIn" menu that will
-instantiate the plug-in classes. If there is any error in this few
-lines of code Insight will not start and a Tcl stack trace will be
-shown. So test it in your build directory before installing in a
-system shared by others.
-
-For the sample plug-in, this lines would be:
-
- # Add your window to the PlugIn menu here
- # Don't forget to add your packet as well
-
- if {1} { #test here if your target is configured
- # Uncomment this when the PlugIn class is ready
- #package require LIBGDB 1.0
- package require RHABOUT 1.0
- $Menu add command Other "About Red Hat" \
- {ManagedWin::open RHAbout} \
- -underline 0
- # To activate the PlugIn sample, uncomment the next line
- set plugins_available 1
- }
-
-You can ignore the LIBGDB "package require" command for now. LIBGDB
-is under construction and not yet available. But do not forget to
-add a "package require" command for your plug-in package. Otherwise,
-when someone choses your plug-in menu entry a stack trace will be
-produced.
-
-The Tcl command starting with "$Menu" is similar to the ones provided
-by the "menubar" component of the PluginWindow class (described later
-in this document), but all one needs to do is to copy the above
-replacing the menu entry text "About Red Hat", the plug-in class name
-"RHAbout" and the underline index with the appropriate values.
-
-The "set plugins_available 1" command is important. If the variable
-"plugins_available" is not set to 1 by any of the plug-in code
-fragments, the Source Window will not have a "PlugIn" menu.
-
-This brings us to the "if" statement in the first line. The sample
-plug-in is generic, it works with any target. However, a custom
-plug-in may be written for a specific target and be of no generic
-use. Furthermore, a target-specific plug-in may not even work with
-other host and target configurations different from the one for which
-it was designed.
-
-The plugins.tcl file used by Insight is shared by all configurations on a
-given host, and adding a plug-in incorrectly could render Insight unusable.
-To avoid this, test for the right configuration before adding your plug-in
-to the plug-in menu entry (the "package require" must also be protected).
-
-Insight has a global variable which contains configuration
-information. The array "GDBStartup" has the elements:
-
- host_name - host configuration triplet
- target_name - target configuration triplet
-
-Use the values $GDBStartup(host_name) and $GDBStartup(target_name)
-to verify that your plug-in code is supported. Since these are global
-variables, you must either add "global GDBStartup" somewhere before using
-it, or simply specify GDBStartup in the global space, e.g.,
-"$::GDBStartup(host_name)".
-
-For instance, if the sample code could only be used with Linux hosts,
-the sample code above would look like this:
-
- # Add your window to the PlugIn menu here
- # Don't forget to add your packet as well
-
- global GDBStartup
- if {[string first "linux" $GDBStartup(host_name)] != -1} {
- #package require LIBGDB 1.0
- package require RHABOUT 1.0
- $Menu add command Other "About Red Hat" \
- {ManagedWin::open RHAbout} \
- -underline 0
- set plugins_available 1
- }
-
-
-3) DEVELOPING AN INSIGHT PLUG-IN
-
-Only itcl-based windows will work. They must also be derived (i.e.,
-inherit) from the PluginWindow class described in the next section.
-You must also follow the name conventions described in the CONTRIBUTE
-file to avoid class name clashes.
-
-The PluginWindow base class has facilities for adding a menu and a
-toolbar. It already provides the code to deactivate buttons and menu
-entries when GDB is busy (running the target) and reactivate them when
-the target stops. Your job usually consists of calling a method to
-redraw your window with updated information when the target stops.
-You can do this simply by adding a call to this method inside the
-"stopped" method provided.
-
-The Insight Tcl source file gdb/gdbtk/library/interface.tcl and the C
-file gdb/gdbtk/generic/gdbtk-cmds.c contain a (quite volatile) set of
-Tcl commands that can be used to retrieve information from and about
-the target. Examples of the use of such commands exist all around the
-Insight source code and details are usually given near the procedure
-or function definitions. Please refrain from using commands that
-control the target execution or change the GDB state in any way, they
-are reserved for use by the Source Window only. Remember, plug-ins are
-a visualization facility only.
-
-A special remark is necessary about the gdb_cmd and gdb_immediate
-commands. These are deprecated and will disappear (stop working) soon.
-The GDB maintainers have asked the Insight maintainers to stop using
-the hooks in GDB code that make them possible. Conversion is already
-under way. You can use them for prototyping (for now), but be
-prepared to write Tcl command procedures instead of parsing console text
-output.
-
-If you need to issue target-dependent commands to retrieve information
-from your target (that cannot be retrieved with the standard register
-and memory access operations), you can write Tcl command procedures
-and add them to your target dependent file enclosed in
- #ifdef GDBTK
- #endif
-The target-dependent Tcl code will move to a subdirectory of gdbtk in
-the future, but for now, just add it to your existent target-dependent
-file.
-
-If you must access gdb functions that are not yet available in
-gdbtk-cmds.c (or in any of the spun-offs that will soon exist in the
-gdb/gdbtk/generic directory), consider writing to the Insight
-maintainers. They will be able to tell you what command should be
-implemented and, if they have the time, add it to Insight. As they
-may be busy, consider offering to write the code yourself and
-submitting it for approval (see CONTRIBUTE). You can see how these
-Tcl command procedures in C are written by looking at what it is done
-in the gdbtk-cmds.c file and others in the gdb/gdbtk/generic
-subdirectory. Again, you can use the gdb_cmd and gdb_immediate
-commands to invoke a GDB command line interface command, but they will
-not be available for long.
-
-Please refer to the sample source code located in the files:
- gdb/gdbtk/library/plugins/rhabout/rhabout.itcl
- gdb/gdbtk/library/plugins/rhabout/rhabout.c
-
-The comments in these files provide a basic framework for a Insight
-plug-in.
-
-
-4) THE "PluginWindow" BASE CLASS
-
-The PluginWindow base class provides the following methods:
-
-childsite - returns the path of the frame component that can be used
-by the plug-in code to pack its custom display components.
-
-stopped - called when the target stops. It should be overloaded and
-call the plug-in procedure that updates the display. The child
-version must call the base class method implementation if it wants
-menu items and/or buttons to be automatically controlled.
-
-running - called when GDB becomes busy by running the target. No
-commands shall be issued by a plug-in while GDB is busy. The child
-version must call the base class method implementation if it wants
-menu items and/or buttons to be automatically controlled.
-
-no_inferior - called when GDB disconnects from the target. The
-plug-in may want to forget some context information in this case,
-depending on the specifics of its implementation. The child
-version must call the base class method implementation if it wants
-menu items and/or buttons to be automatically controlled.
-
-
-The PluginWindow base class contains two components which can be
-optionally used:
-
-menubar - allows a menu to be added to the plug-in window. This
-facility is implemented by the GDBMenuBar class (gdbmenubar.itcl).
-
-toolbar - allows a toolbar to be added to the plug-in window. This
-facility is implemented by the GDBToolBar class (gdbtoolbar.itcl).
-
-
-Both buttons and menu entries have "class" attributes. Button classes
-and Menu entry classes are specified when they are created and are
-used for the automatic control of button and menu entry states.
-If the class is specified as "None", the menu entry or button will
-remain always active. The classes "Control" and "Other" follow the
-following convention:
-
- Control Other State
- off off gdb is busy
- on on gdb has inferior, and is idle
- off on gdb has no inferior, and is idle
-
-
-The "menubutton" component offers the following supported commands:
-
-add menubutton - add a menu button to the window menu bar.
-add command - add an entry to the last menu created.
-add separator - add a separator to the last menu created.
-show - attach the created menu to the window.
-
-If the show command is not issued, the plug-in window will have no
-menu bar. There are other methods and commands defined in the
-GDBMenuBar class. They are for Insight internal use only and should
-not be used by plug-in windows.
-
-A menu named "help" will automatically be aligned to the right.
-
-The sample plug-in code creates a simple menu with the following commands:
-
- $menubar add menubutton file "File" 0
- $menubar add command None "Close" \
- [code $this destroy_toplevel] \
- -underline 1
- $menubar add menubutton help "Help" 0
- $menubar add command Other "Help Topics" \
- {HtmlViewer::open_help index.html} \
- -underline 0
- $menubar add separator
- $menubar add command Other "About GDB..." \
- {ManagedWin::open About -transient} \
- -underline 0
-
- # The menu only shows up if you do this:
- $menubar show
-
-
-The "toolbar" component offers the following supported commands:
-
-add button - add a button to the window tool bar.
-add label - add an label widget to the tool bar.
-add separator - add a separator to the tool bar.
-itemconfigure - configure a tool bar element.
-show - make the toolbar visible.
-
-If the show command is not issued, the plug-in window will have no
-tool bar. There are other methods and commands defined in the
-GDBToolBar class. They are for Insight internal use only and should
-not be used by plug-in windows.
-
-Use the "itemconfigure" command to fill the label elements with the
-current data as necessary.
-
-The sample plug-in code creates a single button with the following commands:
-
- $toolbar add button con Other {ManagedWin::open Console} \
- "Console (Ctrl+N)" -image console_img
-
- # The toolbar will only show up if you do this:
- $toolbar show
-
-
-The complete Tcl code of the sample plug-in can be found in the file
- gdb/gdbtk/library/plugins/rhabout/rhabout.itcl
-and the PluginWindow class definition and implementation is in the file
- gdb/gdbtk/library/pluginwin.itcl
-
-Please refer to the files
- gdb/gdbtk/library/gdbmenubar.itcl
-and
- gdb/gdbtk/library/gdbtoolbar.itcl
-for the current arguments accepted by the menubar and toolbar commands
-respectively.
-
-REQUIRED FILES
-gdbtk/plugins/PLUGIN
-gdbtk/plugins/PLGUIN/PLUGIN.tcl.in
-gdbtk/plugins/PLUGIN/Makefile.in
-gdbtk/plugins/PLUGIN/pkgIndex.tcl
-gdbtk/plugins/PLUGIN/tclIndex
-
-REFERENCES
-
-[Smith 2000] Chad Smith, "[incr Tcl/Tk] from the Ground Up".
-Chapters 9 and 10. Osborne/McGraw-Hill, 2000.
-
-[Welch 2000] Brent B. Welch, "Practical Programming in Tcl and Tk",
-3/e. Chapters 12, 14, 44, 45, 46 and 47. Prentice Hall PTR, 2000.
diff --git a/gdb/gdbtk/plugins/Make-rules b/gdb/gdbtk/plugins/Make-rules
deleted file mode 100644
index 78a32e1a886..00000000000
--- a/gdb/gdbtk/plugins/Make-rules
+++ /dev/null
@@ -1,165 +0,0 @@
-# Variables to be defined by plugin's Makefile.in:
-#
-# PLUGIN (required)
-# PLUGIN_CFLAGS - CFLAGS to use for build
-# PLUGIN_SHLIB_LIBS - shared libs to link against
-# PLUGIN_INSTALL - anything to install from builddir
-# PLUGIN_INSTALL_SRCDIR - anything to install from srcdir
-# PLUGIN_INSTALL_TARGET - install target (overrides default)
-# PLUGIN_TARGETS - targets to build
-# PLUGIN_CLEAN - clean targets (overrides default)
-# PLUGIN_DISTCLEAN - distclean targets (overrides default)
-#
-# Cygwin-specific variables
-# PLUGIN_DLL_ENTRY - cygwin DLL entry point default _DllMain@12)
-# PLUGIN_IMAGE_BASE (required) - DLL image base
-# PLUGIN_CYGWIN_LIBS - any additional cygwin libs to link against
-# PLUGIN_OBJS - objects to put in DLL (hack)
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-srcdir = @srcdir@
-datadir = @datadir@
-libdir = @libdir@
-mandir = @mandir@
-plugin_srcdir = @top_srcdir@
-plugin_builddir = @plugin_builddir@
-
-SHELL = @SHELL@
-CC = @CC@
-CFLAGS = @CFLAGS@
-
-OBJEXT = @OBJEXT@
-TCL_SHLIB_CFLAGS = @TCL_SHLIB_CFLAGS@
-TCL_SHLIB_LD = @TCL_SHLIB_LD@
-TCL_DBGX = @TCL_DBGX@
-TCL_SHLIB_SUFFIX = @TCL_SHLIB_SUFFIX@
-TCL_INCLUDES = @TCLHDIR@
-TCL_BUILD_LIB_SPEC = @TCL_BUILD_LIB_SPEC@
-
-mkinstalldirs = $(srcdir)/../../../../mkinstalldirs
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-PLUGIN_MODULE = $(PLUGIN)$(TCL_SHLIB_SUFFIX)
-
-# Must include a path to tclWinInt.h on cygwin
-ifeq ($(TCL_SHLIB_SUFFIX),.dll)
-CYGWIN_CFLAGS=-I$(srcdir)/../../../../tcl/win
-else
-CYGWIN_CFLAGS=
-endif
-GENERIC_CFLAGS = $(CFLAGS) $(TCL_SHLIB_CFLAGS) $(TCL_INCLUDES) $(CYGWIN_CFLAGS)
-ALL_CFLAGS = $(GENERIC_CFLAGS) $(PLUGIN_CFLAGS)
-
-# It would be nice to copy all the plugin's files to the build dir so
-# that we can use the plugin without installing it...
-#GENERIC_TARGETS = tclIndex pkgIndex.tcl
-ifeq ($(PLUGIN_OBJS),)
-ALL_TARGETS = $(GENERIC_TARGETS) $(PLUGIN_TARGETS)
-else
-ALL_TARGETS = $(PLUGIN_MODULE) $(GENERIC_TARGETS) $(PLUGIN_TARGETS)
-endif
-
-GENERIC_SHLIB_LIBS = $(TCL_BUILD_LIB_SPEC)
-CYGWIN_DLL_LIBS = $(PLUGIN_CYGWIN_LIBS) @LIBCYGWIN_A@
-ALL_SHLIB_LIBS = $(GENERIC_SHLIB_LIBS) $(PLUGIN_SHLIB_LIBS)
-
-GENERIC_INSTALL = $(PLUGIN).tcl
-ifeq ($(PLUGIN_OBJS),)
-ALL_INSTALL = $(GENERIC_INSTALL) $(PLUGIN_INSTALL)
-else
-ALL_INSTALL = $(PLUGIN_MODULE) $(GENERIC_INSTALL) $(PLUGIN_INSTALL)
-endif
-
-ifeq ($(PLUGIN_INSTALL_TARGET),)
-INSTALL_TARGET = install-generic
-else
-INSTALL_TARGET = $(PLUGIN_INSTALL_TARGET)
-endif
-
-ifeq ($(PLUGIN_CLEAN),)
-CLEAN_TARGET = clean-generic
-else
-CLEAN_TARGET = $(PLUGIN_CLEAN)
-endif
-
-ifeq ($(PLUGIN_DISTCLEAN),)
-DISTCLEAN_TARGET = distclean-generic
-else
-DISTCLEAN_TARGET = $(PLUGIN_DISTCLEAN)
-endif
-
-# Makefile dependencies
-Makefile: $(plugin_srcdir)/Make-rules $(plugin_builddir)/config.status
- cd $(plugin_builddir) \
- && CONFIG_FILES=$(PLUGIN)/Makefile:$(PLUGIN)/Makefile.in:Make-rules CONFIG_HEADERS= $(SHELL) ./config.status
-
-all: $(ALL_TARGETS)
-
-%.$(OBJEXT): $(srcdir)/%.c
- $(CC) -c $(ALL_CFLAGS) $<
-
-install: $(INSTALL_TARGET)
-
-install-generic:
- $(mkinstalldirs) $(libdir)/insight1.0/$(PLUGIN)
- for i in $(ALL_INSTALL); do \
- $(INSTALL_DATA) $$i $(libdir)/insight1.0/$(PLUGIN)/$$i ; \
- done ;
- for i in pkgIndex.tcl tclIndex $(PLUGIN_INSTALL_SRCDIR) ; do \
- $(INSTALL_DATA) $(srcdir)/$$i $(libdir)/insight1.0/$(PLUGIN)/$$i ; \
- done ;
-
-info:
-install-info:
-clean: $(CLEAN_TARGET)
-
-clean-generic:
- rm -f *.$(OBJEXT) *.base *.def *.exp $(PLUGIN_MODULE) $(PLUGIN_CLEAN)
-
-distclean-generic: $(CLEAN_TARGET)
-
-distclean: $(DISTCLEAN_TARGET)
-
-#
-# Build rules for the DLL/shlib
-#
-
-ifeq ($(TCL_SHLIB_SUFFIX),.dll)
-
-# cygwin stuff
-DLLTOOL = @DLLTOOL@
-LD = @LD@
-AS = @AS@
-NM = @NM@
-
-PLUGIN_DEFS = $(PLUGIN).def
-PLUGIN_BASE = $(PLUGIN).base
-PLUGIN_EXP = $(PLUGIN).exp
-ifeq ($(PLUGIN_DLL_ENTRY),)
-PLUGIN_DLL_ENTRY = _DllMain@12
-endif
-
-$(PLUGIN_DEFS): $(PLUGIN_OBJS)
- echo 'EXPORTS' > tmp.def
- -for o in $(PLUGIN_OBJS) ; do \
- $(NM) --extern-only --defined-only $$o | sed -e 's/[^ ]* [^ ]* //' -e 's/^_//' | fgrep -v DllMain | fgrep -v impure_ptr >> tmp.def ; \
- done
- mv tmp.def $(PLUGIN_DEFS)
-
-$(PLUGIN_MODULE): $(PLUGIN_OBJS) $(PLUGIN_DEFS)
- $(LD) -s --base-file $(PLUGIN_BASE) -dll -o $(PLUGIN_MODULE) $(PLUGIN_OBJS) $(ALL_SHLIB_LIBS) $(CYGWIN_DLL_LIBS) -e $(PLUGIN_DLL_ENTRY) --image-base $(PLUGIN_IMAGE_BASE)
- $(DLLTOOL) --as=$(AS) --dllname $(PLUGIN_MODULE) --def $(PLUGIN_DEFS) --base-file $(PLUGIN_DEFS) --output-exp $(PLUGIN_EXP)
- $(LD) -s --base-file $(PLUGIN_BASE) $(PLUGIN_EXP) -dll -o $(PLUGIN_MODULE) $(PLUGIN_OBJS) $(ALL_SHLIB_LIBS) $(CYGWIN_DLL_LIBS) -e $(PLUGIN_DLL_ENTRY) --image-base $(PLUGIN_IMAGE_BASE)
- $(DLLTOOL) --as=$(AS) --dllname $(PLUGIN_MODULE) --def $(PLUGIN_DEFS) --base-file $(PLUGIN_BASE) --output-exp $(PLUGIN_EXP)
- $(LD) $(PLUGIN_EXP) -dll -o $(PLUGIN_MODULE) $(PLUGIN_OBJS) $(ALL_SHLIB_LIBS) $(CYGWIN_DLL_LIBS) -e $(PLUGIN_DLL_ENTRY) --image-base $(PLUGIN_IMAGE_BASE)
-
-else
-
-# For unixen only
-$(PLUGIN_MODULE): $(PLUGIN_OBJS)
- $(TCL_SHLIB_LD) -o $(PLUGIN_MODULE) $(PLUGIN_OBJS) $(ALL_SHLIB_LIBS)
-
-endif
diff --git a/gdb/gdbtk/plugins/Makefile.am b/gdb/gdbtk/plugins/Makefile.am
deleted file mode 100644
index 03fabe7c4d9..00000000000
--- a/gdb/gdbtk/plugins/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-AUTOMAKE_OPTIONS = cygnus
-SUBDIRS = @make_subdirs@
diff --git a/gdb/gdbtk/plugins/Makefile.in b/gdb/gdbtk/plugins/Makefile.in
deleted file mode 100644
index bd185dd7987..00000000000
--- a/gdb/gdbtk/plugins/Makefile.in
+++ /dev/null
@@ -1,466 +0,0 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = .
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-DIST_COMMON = $(srcdir)/../../../config.guess \
- $(srcdir)/../../../config.sub ChangeLog $(srcdir)/Makefile.in \
- $(srcdir)/Makefile.am $(top_srcdir)/configure \
- $(am__configure_deps) $(srcdir)/../../../mkinstalldirs \
- $(top_srcdir)/rhabout/Makefile.in $(srcdir)/Make-rules \
- $(top_srcdir)/rhabout/rhabout.tcl.in \
- $(top_srcdir)/intel-pentium/Makefile.in $(srcdir)/Make-rules \
- $(top_srcdir)/intel-pentium/intel-pentium.tcl.in
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/../../../config/acinclude.m4 \
- $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno configure.status.lineno
-mkinstalldirs = $(SHELL) $(top_srcdir)/../../../mkinstalldirs
-CONFIG_CLEAN_FILES = rhabout/Makefile rhabout/rhabout.tcl \
- intel-pentium/Makefile intel-pentium/intel-pentium.tcl
-depcomp =
-am__depfiles_maybe =
-SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
- html-recursive info-recursive install-data-recursive \
- install-exec-recursive install-info-recursive \
- install-recursive installcheck-recursive installdirs-recursive \
- pdf-recursive ps-recursive uninstall-info-recursive \
- uninstall-recursive
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-ACLOCAL = @ACLOCAL@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBCYGWIN_A = @LIBCYGWIN_A@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
-MAKEINFO = @MAKEINFO@
-NM = @NM@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TCLCONFIG = @TCLCONFIG@
-TCLHDIR = @TCLHDIR@
-TCL_BIN_DIR = @TCL_BIN_DIR@
-TCL_BUILD_LIB_SPEC = @TCL_BUILD_LIB_SPEC@
-TCL_CFLAGS = @TCL_CFLAGS@
-TCL_DBGX = @TCL_DBGX@
-TCL_DEFS = @TCL_DEFS@
-TCL_LD_FLAGS = @TCL_LD_FLAGS@
-TCL_LD_SEARCH_FLAGS = @TCL_LD_SEARCH_FLAGS@
-TCL_LIBS = @TCL_LIBS@
-TCL_LIB_FILE = @TCL_LIB_FILE@
-TCL_LIB_FULL_PATH = @TCL_LIB_FULL_PATH@
-TCL_LIB_SPEC = @TCL_LIB_SPEC@
-TCL_RANLIB = @TCL_RANLIB@
-TCL_SHLIB_CFLAGS = @TCL_SHLIB_CFLAGS@
-TCL_SHLIB_LD = @TCL_SHLIB_LD@
-TCL_SHLIB_SUFFIX = @TCL_SHLIB_SUFFIX@
-TKCONFIG = @TKCONFIG@
-TKHDIR = @TKHDIR@
-TK_BUILD_INCLUDES = @TK_BUILD_INCLUDES@
-TK_BUILD_LIB_SPEC = @TK_BUILD_LIB_SPEC@
-TK_DEFS = @TK_DEFS@
-TK_LIBS = @TK_LIBS@
-TK_LIB_FILE = @TK_LIB_FILE@
-TK_LIB_FULL_PATH = @TK_LIB_FULL_PATH@
-TK_LIB_SPEC = @TK_LIB_SPEC@
-TK_VERSION = @TK_VERSION@
-TK_XINCLUDES = @TK_XINCLUDES@
-TK_XLIBSW = @TK_XLIBSW@
-VERSION = @VERSION@
-ac_ct_AS = @ac_ct_AS@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DLLTOOL = @ac_ct_DLLTOOL@
-ac_ct_LD = @ac_ct_LD@
-ac_ct_NM = @ac_ct_NM@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-make_subdirs = @make_subdirs@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-plugin_builddir = @plugin_builddir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-AUTOMAKE_OPTIONS = cygnus
-SUBDIRS = @make_subdirs@
-all: all-recursive
-
-.SUFFIXES:
-am--refresh:
- @:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
- cd $(srcdir) && $(AUTOMAKE) --foreign \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- echo ' $(SHELL) ./config.status'; \
- $(SHELL) ./config.status;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-rhabout/Makefile: $(top_builddir)/config.status $(top_srcdir)/rhabout/Makefile.in $(srcdir)/Make-rules
- cd $(top_builddir) && $(SHELL) ./config.status $@
-rhabout/rhabout.tcl: $(top_builddir)/config.status $(top_srcdir)/rhabout/rhabout.tcl.in
- cd $(top_builddir) && $(SHELL) ./config.status $@
-intel-pentium/Makefile: $(top_builddir)/config.status $(top_srcdir)/intel-pentium/Makefile.in $(srcdir)/Make-rules
- cd $(top_builddir) && $(SHELL) ./config.status $@
-intel-pentium/intel-pentium.tcl: $(top_builddir)/config.status $(top_srcdir)/intel-pentium/intel-pentium.tcl.in
- cd $(top_builddir) && $(SHELL) ./config.status $@
-uninstall-info-am:
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- rev=''; for subdir in $$list; do \
- if test "$$subdir" = "."; then :; else \
- rev="$$subdir $$rev"; \
- fi; \
- done; \
- rev="$$rev ."; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-ctags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-check-am:
-check: check-recursive
-all-am: Makefile
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-recursive
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf $(top_srcdir)/autom4te.cache
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am:
-
-uninstall-info: uninstall-info-recursive
-
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
- check-am clean clean-generic clean-recursive ctags \
- ctags-recursive distclean distclean-generic \
- distclean-recursive distclean-tags dvi dvi-am html html-am \
- info info-am install install-am install-data install-data-am \
- install-exec install-exec-am install-info install-info-am \
- install-man install-strip installcheck installcheck-am \
- installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic maintainer-clean-recursive \
- mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
- pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
- uninstall-info-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/gdb/gdbtk/plugins/acinclude.m4 b/gdb/gdbtk/plugins/acinclude.m4
deleted file mode 100644
index f5b22bea8aa..00000000000
--- a/gdb/gdbtk/plugins/acinclude.m4
+++ /dev/null
@@ -1 +0,0 @@
-"sinclude(../../../config/acinclude.m4)"
diff --git a/gdb/gdbtk/plugins/aclocal.m4 b/gdb/gdbtk/plugins/aclocal.m4
deleted file mode 100644
index a93606763fa..00000000000
--- a/gdb/gdbtk/plugins/aclocal.m4
+++ /dev/null
@@ -1,880 +0,0 @@
-# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005 Free Software Foundation, Inc.
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION so it can be traced.
-# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
- [AM_AUTOMAKE_VERSION([1.9.6])])
-
-# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory. The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run. This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-# fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-# fails if $ac_aux_dir is absolute,
-# fails when called from a subdirectory in a VPATH build with
-# a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-# MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH. The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 7
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
- ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])
-AC_SUBST([$1_FALSE])
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 8
-
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery. Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
-
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
- [$1], CXX, [depcc="$CXX" am_compiler_list=],
- [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
- [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
- [depcc="$$1" am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
- [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_$1_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
- fi
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- case $depmode in
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- none) break ;;
- esac
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this.
- if depmode=$depmode \
- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_$1_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-
-
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-
-
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[ --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors])
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])
-])
-
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-#serial 3
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # So let's grep whole file.
- if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
- dirpart=`AS_DIRNAME("$mf")`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`AS_DIRNAME(["$file"])`
- AS_MKDIR_P([$dirpart/$fdir])
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
-done
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking
-# is enabled. FIXME. This creates each `.P' file that we will
-# need in order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 12
-
-# This macro actually does too much. Some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.58])dnl
-dnl Autoconf wants to disallow AM_ names. We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
- test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
-AM_PROG_INSTALL_SH
-AM_PROG_INSTALL_STRIP
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
- [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES(CC)],
- [define([AC_PROG_CC],
- defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES(CXX)],
- [define([AC_PROG_CXX],
- defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
-])
-])
-
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $1 | $1:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
-
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
-AC_SUBST(install_sh)])
-
-# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
-# From Jim Meyering
-
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 4
-
-AC_DEFUN([AM_MAINTAINER_MODE],
-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode is disabled by default
- AC_ARG_ENABLE(maintainer-mode,
-[ --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer],
- USE_MAINTAINER_MODE=$enableval,
- USE_MAINTAINER_MODE=no)
- AC_MSG_RESULT([$USE_MAINTAINER_MODE])
- AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
- MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST(MAINT)dnl
-]
-)
-
-AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
-
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 3
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check to see how make treats includes.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo done
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
- am__include=include
- am__quote=
- _am_result=GNU
-fi
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
- am__include=.include
- am__quote="\""
- _am_result=BSD
- fi
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 4
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- AC_MSG_WARN([`missing' script is too old or missing])
-fi
-])
-
-# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_MKDIR_P
-# ---------------
-# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
-#
-# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
-# created by `make install' are always world readable, even if the
-# installer happens to have an overly restrictive umask (e.g. 077).
-# This was a mistake. There are at least two reasons why we must not
-# use `-m 0755':
-# - it causes special bits like SGID to be ignored,
-# - it may be too restrictive (some setups expect 775 directories).
-#
-# Do not use -m 0755 and let people choose whatever they expect by
-# setting umask.
-#
-# We cannot accept any implementation of `mkdir' that recognizes `-p'.
-# Some implementations (such as Solaris 8's) are not thread-safe: if a
-# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
-# concurrently, both version can detect that a/ is missing, but only
-# one can create it and the other will error out. Consequently we
-# restrict ourselves to GNU make (using the --version option ensures
-# this.)
-AC_DEFUN([AM_PROG_MKDIR_P],
-[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- # We used to keeping the `.' as first argument, in order to
- # allow $(mkdir_p) to be used without argument. As in
- # $(mkdir_p) $(somedir)
- # where $(somedir) is conditionally defined. However this is wrong
- # for two reasons:
- # 1. if the package is installed by a user who cannot write `.'
- # make install will fail,
- # 2. the above comment should most certainly read
- # $(mkdir_p) $(DESTDIR)$(somedir)
- # so it does not work when $(somedir) is undefined and
- # $(DESTDIR) is not.
- # To support the latter case, we have to write
- # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
- # so the `.' trick is pointless.
- mkdir_p='mkdir -p --'
-else
- # On NextStep and OpenStep, the `mkdir' command does not
- # recognize any option. It will interpret all options as
- # directories to create, and then abort because `.' already
- # exists.
- for d in ./-p ./--version;
- do
- test -d $d && rmdir $d
- done
- # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
- if test -f "$ac_aux_dir/mkinstalldirs"; then
- mkdir_p='$(mkinstalldirs)'
- else
- mkdir_p='$(install_sh) -d'
- fi
-fi
-AC_SUBST([mkdir_p])])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 3
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# ------------------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# Check to make sure that the build environment is sane. -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 4
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
- fi
- rm -f conftest.file
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT(yes)])
-
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# One issue with vendor `install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Check how to create a tarball. -*- Autoconf -*-
-
-# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-# tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-# $(am__untar) < result.tar
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
-m4_if([$1], [v7],
- [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
- [m4_case([$1], [ustar],, [pax],,
- [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar;
- do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
-
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
-
- # tar/untar a dummy directory, and stop if the command works
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
- rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
-done
-rm -rf conftest.dir
-
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
-m4_include([acinclude.m4])
diff --git a/gdb/gdbtk/plugins/configure b/gdb/gdbtk/plugins/configure
deleted file mode 100755
index ff7cf82585e..00000000000
--- a/gdb/gdbtk/plugins/configure
+++ /dev/null
@@ -1,5661 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59.
-#
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete. It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-ac_unique_file="Make-rules"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# if HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#if HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-# include <stdint.h>
-# endif
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE TCLCONFIG TCL_DEFS TCL_LIB_FILE TCL_LIB_FULL_PATH TCL_LIBS TCL_CFLAGS TCL_SHLIB_CFLAGS TCL_SHLIB_LD TCL_LD_FLAGS TCL_LD_SEARCH_FLAGS TCL_RANLIB TCL_BUILD_LIB_SPEC TCL_LIB_SPEC TCL_BIN_DIR TKCONFIG TK_VERSION TK_DEFS TK_LIB_FILE TK_LIB_FULL_PATH TK_LIBS TK_BUILD_INCLUDES TK_XINCLUDES TK_XLIBSW TK_BUILD_LIB_SPEC TK_LIB_SPEC CPP EGREP TCLHDIR TKHDIR TCL_DBGX TCL_SHLIB_SUFFIX NM ac_ct_NM AS ac_ct_AS LD ac_ct_LD LIBCYGWIN_A DLLTOOL ac_ct_DLLTOOL make_subdirs plugin_builddir LIBOBJS LTLIBOBJS'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_option in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- eval "enable_$ac_feature=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_$ac_feature='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "with_$ac_package='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package | sed 's/-/_/g'`
- eval "with_$ac_package=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; }
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
- { (exit 1); exit 1; }; }
- ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
- eval "$ac_envvar='$ac_optarg'"
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
- localstatedir libdir includedir oldincludedir infodir mandir
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$0" : 'X\(//\)[^/]' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$0" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
- { (exit 1); exit 1; }; }
- else
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
- { (exit 1); exit 1; }; }
- fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
- { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
- { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-ac_env_CPP_set=${CPP+set}
-ac_env_CPP_value=$CPP
-ac_cv_env_CPP_set=${CPP+set}
-ac_cv_env_CPP_value=$CPP
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
- cat <<_ACEOF
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --infodir=DIR info documentation [PREFIX/info]
- --mandir=DIR man documentation [PREFIX/man]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
- cat <<\_ACEOF
-
-Optional Features:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer
- --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-tclconfig directory containing tcl configuration (tclConfig.sh)
- --with-tkconfig directory containing tk configuration (tkConfig.sh)
- --with-tclinclude directory where tcl headers are
- --with-tkinclude directory where tk headers are
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
- headers in a nonstandard directory <include dir>
- CPP C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- ac_popdir=`pwd`
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d $ac_dir || continue
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
- cd $ac_dir
- # Check for guested configure; otherwise get Cygnus style configure.
- if test -f $ac_srcdir/configure.gnu; then
- echo
- $SHELL $ac_srcdir/configure.gnu --help=recursive
- elif test -f $ac_srcdir/configure; then
- echo
- $SHELL $ac_srcdir/configure --help=recursive
- elif test -f $ac_srcdir/configure.ac ||
- test -f $ac_srcdir/configure.in; then
- echo
- $ac_configure --help
- else
- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi
- cd $ac_popdir
- done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
- cat <<\_ACEOF
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_sep=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
- 2)
- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
- # Get rid of the leading space.
- ac_sep=" "
- ;;
- esac
- done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
- echo
- # The following way of writing the cache mishandles newlines in values,
-{
- (set) 2>&1 |
- case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- sed -n \
- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
- ;;
- *)
- sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
- ;;
- esac;
-}
- echo
-
- cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
- echo
- sed "/^$/d" confdefs.h | sort
- echo
- fi
- test "$ac_signal" != 0 &&
- echo "$as_me: caught signal $ac_signal"
- echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core &&
- rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
- ' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
- { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . $cache_file;;
- *) . ./$cache_file;;
- esac
- fi
-else
- { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val="\$ac_cv_env_${ac_var}_value"
- eval ac_new_val="\$ac_env_${ac_var}_value"
- case $ac_old_set,$ac_new_set in
- set,)
- { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
-echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
-echo "$as_me: current value: $ac_new_val" >&2;}
- ac_cache_corrupted=:
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_aux_dir=
-for ac_dir in ../../.. $srcdir/../../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f $ac_dir/shtool; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../../.. $srcdir/../../.." >&5
-echo "$as_me: error: cannot find install-sh or install.sh in ../../.. $srcdir/../../.." >&2;}
- { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-am__api_version="1.9"
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
- ./ | .// | /cC/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- done
- done
- ;;
-esac
-done
-
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL=$ac_install_sh
- fi
-fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo "$as_me:$LINENO: checking whether build environment is sane" >&5
-echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
- fi
- rm -f conftest.file
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" >&5
-echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- test "$2" = conftest.file
- )
-then
- # Ok.
- :
-else
- { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
-Check your system clock" >&5
-echo "$as_me: error: newly created file is older than distributed files!
-Check your system clock" >&2;}
- { (exit 1); exit 1; }; }
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-test "$program_prefix" != NONE &&
- program_transform_name="s,^,$program_prefix,;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s,\$,$program_suffix,;$program_transform_name"
-# Double any \ or $. echo might interpret backslashes.
-# By default was `s,x,x', remove it if useless.
-cat <<\_ACEOF >conftest.sed
-s/[\\$]/&&/g;s/;s,x,x,$//
-_ACEOF
-program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
-rm conftest.sed
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
-echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
-fi
-
-if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- # We used to keeping the `.' as first argument, in order to
- # allow $(mkdir_p) to be used without argument. As in
- # $(mkdir_p) $(somedir)
- # where $(somedir) is conditionally defined. However this is wrong
- # for two reasons:
- # 1. if the package is installed by a user who cannot write `.'
- # make install will fail,
- # 2. the above comment should most certainly read
- # $(mkdir_p) $(DESTDIR)$(somedir)
- # so it does not work when $(somedir) is undefined and
- # $(DESTDIR) is not.
- # To support the latter case, we have to write
- # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
- # so the `.' trick is pointless.
- mkdir_p='mkdir -p --'
-else
- # On NextStep and OpenStep, the `mkdir' command does not
- # recognize any option. It will interpret all options as
- # directories to create, and then abort because `.' already
- # exists.
- for d in ./-p ./--version;
- do
- test -d $d && rmdir $d
- done
- # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
- if test -f "$ac_aux_dir/mkinstalldirs"; then
- mkdir_p='$(mkinstalldirs)'
- else
- mkdir_p='$(install_sh) -d'
- fi
-fi
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_AWK+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AWK="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- echo "$as_me:$LINENO: result: $AWK" >&5
-echo "${ECHO_T}$AWK" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$AWK" && break
-done
-
-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.make <<\_ACEOF
-all:
- @echo 'ac_maketemp="$(MAKE)"'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftest.make
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- SET_MAKE=
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
- test -f $srcdir/config.status; then
- { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
-echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE=insight
- VERSION=1.0
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- STRIP=$ac_ct_STRIP
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
-
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility.
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
-
-
-
-
-
-echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
-echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
- # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
- enableval="$enable_maintainer_mode"
- USE_MAINTAINER_MODE=$enableval
-else
- USE_MAINTAINER_MODE=no
-fi;
- echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
-echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
-
-
-if test $USE_MAINTAINER_MODE = yes; then
- MAINTAINER_MODE_TRUE=
- MAINTAINER_MODE_FALSE='#'
-else
- MAINTAINER_MODE_TRUE='#'
- MAINTAINER_MODE_FALSE=
-fi
-
- MAINT=$MAINTAINER_MODE_TRUE
-
-
-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.make <<\_ACEOF
-all:
- @echo 'ac_maketemp="$(MAKE)"'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftest.make
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- SET_MAKE=
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-# Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
- { (exit 1); exit 1; }; }
-
-echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6
-if test "${ac_cv_build+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_build_alias=$build_alias
-test -z "$ac_cv_build_alias" &&
- ac_cv_build_alias=`$ac_config_guess`
-test -z "$ac_cv_build_alias" &&
- { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
- { (exit 1); exit 1; }; }
-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6
-build=$ac_cv_build
-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6
-if test "${ac_cv_host+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_host_alias=$host_alias
-test -z "$ac_cv_host_alias" &&
- ac_cv_host_alias=$ac_cv_build_alias
-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6
-host=$ac_cv_host
-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$ac_ct_CC" && break
-done
-
- CC=$ac_ct_CC
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
- "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
- (eval $ac_link_default) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # Find the output, starting from the most likely. This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-# b.out is created by i960 compilers.
-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
- ;;
- conftest.$ac_ext )
- # This is the source file.
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- # FIXME: I believe we export ac_cv_exeext for Libtool,
- # but it would be cool to find out if it's true. Does anybody
- # maintain Libtool? --akim.
- export ac_cv_exeext
- break;;
- * )
- break;;
- esac
-done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
-
-# Check the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
- if { ac_try='./$ac_file'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
- fi
- fi
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- export ac_cv_exeext
- break;;
- * ) break;;
- esac
-done
-else
- { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-if test "${ac_cv_objext+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_compiler_gnu=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_prog_cc_stdc=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std1 is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std1. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX 10.20 and later -Ae
-# HP-UX older versions -Aa -D_HPUX_SOURCE
-# SVR4 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_stdc=$ac_arg
-break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
-
-fi
-
-case "x$ac_cv_prog_cc_stdc" in
- x|xno)
- echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
- *)
- echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
- CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-# Some people use a C++ compiler to compile C. Since we use `exit',
-# in C++ we need to declare it. In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
- choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- for ac_declaration in \
- '' \
- 'extern "C" void std::exit (int) throw (); using std::exit;' \
- 'extern "C" void std::exit (int); using std::exit;' \
- 'extern "C" void exit (int) throw ();' \
- 'extern "C" void exit (int);' \
- 'void exit (int);'
-do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
- echo '#ifdef __cplusplus' >>confdefs.h
- echo $ac_declaration >>confdefs.h
- echo '#endif' >>confdefs.h
-fi
-
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-DEPDIR="${am__leading_dot}deps"
-
- ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo done
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
-echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
- am__include=include
- am__quote=
- _am_result=GNU
-fi
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
- am__include=.include
- am__quote="\""
- _am_result=BSD
- fi
-fi
-
-
-echo "$as_me:$LINENO: result: $_am_result" >&5
-echo "${ECHO_T}$_am_result" >&6
-rm -f confinc confmf
-
-# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then
- enableval="$enable_dependency_tracking"
-
-fi;
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-fi
-
-
-if test "x$enable_dependency_tracking" != xno; then
- AMDEP_TRUE=
- AMDEP_FALSE='#'
-else
- AMDEP_TRUE='#'
- AMDEP_FALSE=
-fi
-
-
-
-
-depcc="$CC" am_compiler_list=
-
-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- case $depmode in
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- none) break ;;
- esac
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this.
- if depmode=$depmode \
- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
-
-
-if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-
-
-
-# Find Tcl, Tk, etc
-
-dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
-if test x"${no_tcl}" = x ; then
- no_tcl=true
-
-# Check whether --with-tclconfig or --without-tclconfig was given.
-if test "${with_tclconfig+set}" = set; then
- withval="$with_tclconfig"
- with_tclconfig=${withval}
-fi;
- echo "$as_me:$LINENO: checking for Tcl configuration script" >&5
-echo $ECHO_N "checking for Tcl configuration script... $ECHO_C" >&6
- if test "${ac_cv_c_tclconfig+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- if test x"${with_tclconfig}" != x ; then
- if test -f "${with_tclconfig}/tclConfig.sh" ; then
- ac_cv_c_tclconfig=`(cd ${with_tclconfig}; ${PWDCMD-pwd})`
- else
- { { echo "$as_me:$LINENO: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" >&5
-echo "$as_me: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" >&2;}
- { (exit 1); exit 1; }; }
- fi
- fi
-
- if test x"${ac_cv_c_tclconfig}" = x ; then
- for i in $dirlist; do
- if test -f $srcdir/$i/unix/tclConfig.sh ; then
- ac_cv_c_tclconfig=`(cd $srcdir/$i/unix; ${PWDCMD-pwd})`
- break
- fi
- if test -f $srcdir/$i/win/tclConfig.sh ; then
- ac_cv_c_tclconfig=`(cd $srcdir/$i/win; ${PWDCMD-pwd})`
- break
- fi
- done
- fi
- if test x"${ac_cv_c_tclconfig}" = x ; then
- for i in $dirlist; do
- if test -n "`ls -dr $i/tcl* 2>/dev/null`" ; then
- tclconfpath=$i
- break
- fi
- done
-
- for i in `ls -dr $tclconfpath/tcl* 2>/dev/null ` ; do
- if test -f $i/unix/tclConfig.sh ; then
- ac_cv_c_tclconfig=`(cd $i/unix; ${PWDCMD-pwd})`
- break
- fi
- if test -f $i/win/tclConfig.sh ; then
- ac_cv_c_tclconfig=`(cd $i/win; ${PWDCMD-pwd})`
- break
- fi
- done
- fi
-
- if test x"${ac_cv_c_tclconfig}" = x ; then
- ccpath=`which ${CC} | sed -e 's:/bin/.*::'`/lib
- if test -f $ccpath/tclConfig.sh; then
- ac_cv_c_tclconfig=$ccpath
- fi
- fi
-
-fi
-
- if test x"${ac_cv_c_tclconfig}" = x ; then
- TCLCONFIG=""
- { echo "$as_me:$LINENO: WARNING: Can't find Tcl configuration definitions" >&5
-echo "$as_me: WARNING: Can't find Tcl configuration definitions" >&2;}
- else
- no_tcl=""
- TCLCONFIG=${ac_cv_c_tclconfig}/tclConfig.sh
- echo "$as_me:$LINENO: result: ${TCLCONFIG}" >&5
-echo "${ECHO_T}${TCLCONFIG}" >&6
- fi
-fi
-
-
-
- . $TCLCONFIG
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
-if test x"${no_tk}" = x ; then
- no_tk=true
-
-# Check whether --with-tkconfig or --without-tkconfig was given.
-if test "${with_tkconfig+set}" = set; then
- withval="$with_tkconfig"
- with_tkconfig=${withval}
-fi;
- echo "$as_me:$LINENO: checking for Tk configuration script" >&5
-echo $ECHO_N "checking for Tk configuration script... $ECHO_C" >&6
- if test "${ac_cv_c_tkconfig+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- if test x"${with_tkconfig}" != x ; then
- if test -f "${with_tkconfig}/tkConfig.sh" ; then
- ac_cv_c_tkconfig=`(cd ${with_tkconfig}; ${PWDCMD-pwd})`
- else
- { { echo "$as_me:$LINENO: error: ${with_tkconfig} directory doesn't contain tkConfig.sh" >&5
-echo "$as_me: error: ${with_tkconfig} directory doesn't contain tkConfig.sh" >&2;}
- { (exit 1); exit 1; }; }
- fi
- fi
-
- if test x"${ac_cv_c_tkconfig}" = x ; then
- for i in $dirlist; do
- if test -f $srcdir/$i/unix/tkConfig.sh ; then
- ac_cv_c_tkconfig=`(cd $srcdir/$i/unix; ${PWDCMD-pwd})`
- break
- fi
- if test -f $srcdir/$i/win/tkConfig.sh ; then
- ac_cv_c_tkconfig=`(cd $srcdir/$i/unix; ${PWDCMD-pwd})`
- break
- fi
- done
- fi
- if test x"${ac_cv_c_tkconfig}" = x ; then
- for i in $dirlist; do
- if test -n "`ls -dr $i/tk* 2>/dev/null`" ; then
- tkconfpath=$i
- break
- fi
- done
-
- for i in `ls -dr $tkconfpath/tk* 2>/dev/null ` ; do
- if test -f $i/unix/tkConfig.sh ; then
- ac_cv_c_tkconfig=`(cd $i/unix; ${PWDCMD-pwd})`
- break
- fi
- if test -f $i/win/tkConfig.sh ; then
- ac_cv_c_tkconfig=`(cd $i/win; ${PWDCMD-pwd})`
- break
- fi
- done
- fi
-
- if test x"${ac_cv_c_tkconfig}" = x ; then
- ccpath=`which ${CC} | sed -e 's:/bin/.*::'`/lib
- if test -f $ccpath/tkConfig.sh; then
- ac_cv_c_tkconfig=$ccpath
- fi
- fi
-
-fi
-
- if test x"${ac_cv_c_tkconfig}" = x ; then
- TKCONFIG=""
- { echo "$as_me:$LINENO: WARNING: Can't find Tk configuration definitions" >&5
-echo "$as_me: WARNING: Can't find Tk configuration definitions" >&2;}
- else
- no_tk=""
- TKCONFIG=${ac_cv_c_tkconfig}/tkConfig.sh
- echo "$as_me:$LINENO: result: ${TKCONFIG}" >&5
-echo "${ECHO_T}${TKCONFIG}" >&6
- fi
-fi
-
-
-
- if test -f "$TKCONFIG" ; then
- . $TKCONFIG
- fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- :
-else
- { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if echo a | (grep -E '(a|b)') >/dev/null 2>&1
- then ac_cv_prog_egrep='grep -E'
- else ac_cv_prog_egrep='egrep'
- fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
-
-
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_header_stdc=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- exit(2);
- exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
-no_tcl=true
-echo "$as_me:$LINENO: checking for Tcl headers in the source tree" >&5
-echo $ECHO_N "checking for Tcl headers in the source tree... $ECHO_C" >&6
-
-# Check whether --with-tclinclude or --without-tclinclude was given.
-if test "${with_tclinclude+set}" = set; then
- withval="$with_tclinclude"
- with_tclinclude=${withval}
-fi;
-if test "${ac_cv_c_tclh+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-if test x"${with_tclinclude}" != x ; then
- if test -f ${with_tclinclude}/tcl.h ; then
- ac_cv_c_tclh=`(cd ${with_tclinclude}; ${PWDCMD-pwd})`
- elif test -f ${with_tclinclude}/generic/tcl.h ; then
- ac_cv_c_tclh=`(cd ${with_tclinclude}/generic; ${PWDCMD-pwd})`
- else
- { { echo "$as_me:$LINENO: error: ${with_tclinclude} directory doesn't contain headers" >&5
-echo "$as_me: error: ${with_tclinclude} directory doesn't contain headers" >&2;}
- { (exit 1); exit 1; }; }
- fi
-fi
-
-if test x"${ac_cv_c_tclconfig}" != x ; then
- for i in $dirlist; do
- if test -f $ac_cv_c_tclconfig/$i/generic/tcl.h ; then
- ac_cv_c_tclh=`(cd $ac_cv_c_tclconfig/$i/generic; ${PWDCMD-pwd})`
- break
- fi
- done
-fi
-
-if test x"${ac_cv_c_tclh}" = x ; then
- for i in $dirlist; do
- if test -n "`ls -dr $srcdir/$i/tcl* 2>/dev/null`" ; then
- tclpath=$srcdir/$i
- break
- fi
- done
-
- for i in `ls -dr $tclpath/tcl* 2>/dev/null ` ; do
- if test -f $i/generic/tcl.h ; then
- ac_cv_c_tclh=`(cd $i/generic; ${PWDCMD-pwd})`
- break
- fi
- done
-fi
-
-if test x"${ac_cv_c_tclh}" = x ; then
- ccpath=`which ${CC} | sed -e 's:/bin/.*::'`/include
- if test -f $ccpath/tcl.h; then
- ac_cv_c_tclh=$ccpath
- fi
-fi
-
-if test x"${ac_cv_c_tclh}" = x ; then
- echo "$as_me:$LINENO: result: none" >&5
-echo "${ECHO_T}none" >&6
- if test "${ac_cv_header_tcl_h+set}" = set; then
- echo "$as_me:$LINENO: checking for tcl.h" >&5
-echo $ECHO_N "checking for tcl.h... $ECHO_C" >&6
-if test "${ac_cv_header_tcl_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_tcl_h" >&5
-echo "${ECHO_T}$ac_cv_header_tcl_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking tcl.h usability" >&5
-echo $ECHO_N "checking tcl.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <tcl.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking tcl.h presence" >&5
-echo $ECHO_N "checking tcl.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <tcl.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: tcl.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: tcl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: tcl.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: tcl.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: tcl.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: tcl.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: tcl.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: tcl.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: tcl.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: tcl.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: tcl.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: tcl.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: tcl.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: tcl.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: tcl.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: tcl.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for tcl.h" >&5
-echo $ECHO_N "checking for tcl.h... $ECHO_C" >&6
-if test "${ac_cv_header_tcl_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_tcl_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_tcl_h" >&5
-echo "${ECHO_T}$ac_cv_header_tcl_h" >&6
-
-fi
-if test $ac_cv_header_tcl_h = yes; then
- ac_cv_c_tclh=installed
-else
- ac_cv_c_tclh=""
-fi
-
-
-else
- echo "$as_me:$LINENO: result: ${ac_cv_c_tclh}" >&5
-echo "${ECHO_T}${ac_cv_c_tclh}" >&6
-fi
-
-fi
-
- TCLHDIR=""
-if test x"${ac_cv_c_tclh}" = x ; then
- { { echo "$as_me:$LINENO: error: Can't find any Tcl headers" >&5
-echo "$as_me: error: Can't find any Tcl headers" >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test x"${ac_cv_c_tclh}" != x ; then
- no_tcl=""
- if test x"${ac_cv_c_tclh}" != x"installed" ; then
- if test x"${CC}" = xcl ; then
- tmp="`cygpath --windows ${ac_cv_c_tclh}`"
- ac_cv_c_tclh="`echo $tmp | sed -e s#\\\\\\\\#/#g`"
- fi
- echo "$as_me:$LINENO: result: ${ac_cv_c_tclh}" >&5
-echo "${ECHO_T}${ac_cv_c_tclh}" >&6
- TCLHDIR="-I${ac_cv_c_tclh}"
- fi
-fi
-
-
-
-
-#
-# Ok, lets find the tk source trees so we can use the headers
-# If the directory (presumably symlink) named "tk" exists, use that one
-# in preference to any others. Same logic is used when choosing library
-# and again with Tcl. The search order is the best place to look first, then in
-# decreasing significance. The loop breaks if the trigger file is found.
-# Note the gross little conversion here of srcdir by cd'ing to the found
-# directory. This converts the path from a relative to an absolute, so
-# recursive cache variables for the path will work right. We check all
-# the possible paths in one loop rather than many separate loops to speed
-# things up.
-# the alternative search directory is involked by --with-tkinclude
-#
-dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
-no_tk=true
-echo "$as_me:$LINENO: checking for Tk headers in the source tree" >&5
-echo $ECHO_N "checking for Tk headers in the source tree... $ECHO_C" >&6
-
-# Check whether --with-tkinclude or --without-tkinclude was given.
-if test "${with_tkinclude+set}" = set; then
- withval="$with_tkinclude"
- with_tkinclude=${withval}
-fi;
-if test "${ac_cv_c_tkh+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-if test x"${with_tkinclude}" != x ; then
- if test -f ${with_tkinclude}/tk.h ; then
- ac_cv_c_tkh=`(cd ${with_tkinclude}; ${PWDCMD-pwd})`
- elif test -f ${with_tkinclude}/generic/tk.h ; then
- ac_cv_c_tkh=`(cd ${with_tkinclude}/generic; ${PWDCMD-pwd})`
- else
- { { echo "$as_me:$LINENO: error: ${with_tkinclude} directory doesn't contain headers" >&5
-echo "$as_me: error: ${with_tkinclude} directory doesn't contain headers" >&2;}
- { (exit 1); exit 1; }; }
- fi
-fi
-
-if test x"${ac_cv_c_tkconfig}" != x ; then
- for i in $dirlist; do
- if test -f $ac_cv_c_tkconfig/$i/generic/tk.h ; then
- ac_cv_c_tkh=`(cd $ac_cv_c_tkconfig/$i/generic; ${PWDCMD-pwd})`
- break
- fi
- done
-fi
-
-if test x"${ac_cv_c_tkh}" = x ; then
- for i in $dirlist; do
- if test -n "`ls -dr $srcdir/$i/tk* 2>/dev/null`" ; then
- tkpath=$srcdir/$i
- break
- fi
- done
-
- for i in `ls -dr $tkpath/tk* 2>/dev/null ` ; do
- if test -f $i/generic/tk.h ; then
- ac_cv_c_tkh=`(cd $i/generic; ${PWDCMD-pwd})`
- break
- fi
- done
-fi
-
-if test x"${ac_cv_c_tkh}" = x ; then
- echo "$as_me:$LINENO: result: none" >&5
-echo "${ECHO_T}none" >&6
- ccpath=`which ${CC} | sed -e 's:/bin/.*::'`/include
- if test -f $ccpath/tk.h; then
- ac_cv_c_tkh=$ccpath
- fi
-else
- echo "$as_me:$LINENO: result: ${ac_cv_c_tkh}" >&5
-echo "${ECHO_T}${ac_cv_c_tkh}" >&6
-fi
-
-fi
-
- TKHDIR=""
-if test x"${ac_cv_c_tkh}" = x ; then
- { { echo "$as_me:$LINENO: error: Can't find any Tk headers" >&5
-echo "$as_me: error: Can't find any Tk headers" >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test x"${ac_cv_c_tkh}" != x ; then
- no_tk=""
- if test x"${ac_cv_c_tkh}" != x"installed" ; then
- if test x"${CC}" = xcl ; then
- tmp="`cygpath --windows ${ac_cv_c_tkh}`"
- ac_cv_c_tkh="`echo $tmp | sed -e s#\\\\\\\\#/#g`"
- fi
- echo "$as_me:$LINENO: result: found in ${ac_cv_c_tkh}" >&5
-echo "${ECHO_T}found in ${ac_cv_c_tkh}" >&6
- TKHDIR="-I${ac_cv_c_tkh}"
- fi
-fi
-
-
-
-
-
-# Make sure TCL_SHLIB_SUFFIX is set
-if test x$TCL_SHLIB_SUFFIX = x ; then
- case "${host}" in
- *cygwin*) TCL_SHLIB_SUFFIX=".dll" ;;
- *) TCL_SHILB_SUFFIX=".so" ;;
- esac
-fi
-
-
-# Since we're not using autoconf > 2.1x, we cannot use AC_CONFIG_FILES.
-make_subdirs=""
-
-# See if -mwin32 works for cygwin
-case "${host}" in
- *cygwin*)
- ocflags=${CFLAGS}
- CFLAGS="${CFLAGS} -mwin32"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-CFLAGS="${ocflags}"
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- ;;
- *) ;;
-esac
-
-# note toplevel plugin build directory
-plugin_builddir=`pwd`
-
-#
-# Plugins
-#
-
-# Supported hosts
-
-# Only supported/tested on linux, solaris, cygwin
-supported=yes
-case "${host}" in
- *cygwin*) ;;
- *solaris*) ;;
- *linux*) ;;
- *) supported=no ;;
-esac
-
-# Host-specific configury
-case "${host}" in
- *cygwin*)
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}nm", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nm; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_NM+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$NM"; then
- ac_cv_prog_NM="$NM" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_NM="${ac_tool_prefix}nm"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-NM=$ac_cv_prog_NM
-if test -n "$NM"; then
- echo "$as_me:$LINENO: result: $NM" >&5
-echo "${ECHO_T}$NM" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_NM"; then
- ac_ct_NM=$NM
- # Extract the first word of "nm", so it can be a program name with args.
-set dummy nm; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_NM+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_NM"; then
- ac_cv_prog_ac_ct_NM="$ac_ct_NM" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_NM="nm"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_NM" && ac_cv_prog_ac_ct_NM="nm"
-fi
-fi
-ac_ct_NM=$ac_cv_prog_ac_ct_NM
-if test -n "$ac_ct_NM"; then
- echo "$as_me:$LINENO: result: $ac_ct_NM" >&5
-echo "${ECHO_T}$ac_ct_NM" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- NM=$ac_ct_NM
-else
- NM="$ac_cv_prog_NM"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
-set dummy ${ac_tool_prefix}as; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_AS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$AS"; then
- ac_cv_prog_AS="$AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AS="${ac_tool_prefix}as"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-AS=$ac_cv_prog_AS
-if test -n "$AS"; then
- echo "$as_me:$LINENO: result: $AS" >&5
-echo "${ECHO_T}$AS" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_AS"; then
- ac_ct_AS=$AS
- # Extract the first word of "as", so it can be a program name with args.
-set dummy as; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_AS"; then
- ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_AS="as"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_AS" && ac_cv_prog_ac_ct_AS="as"
-fi
-fi
-ac_ct_AS=$ac_cv_prog_ac_ct_AS
-if test -n "$ac_ct_AS"; then
- echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
-echo "${ECHO_T}$ac_ct_AS" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- AS=$ac_ct_AS
-else
- AS="$ac_cv_prog_AS"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ld; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_LD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$LD"; then
- ac_cv_prog_LD="$LD" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_LD="${ac_tool_prefix}ld"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-LD=$ac_cv_prog_LD
-if test -n "$LD"; then
- echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_LD"; then
- ac_ct_LD=$LD
- # Extract the first word of "ld", so it can be a program name with args.
-set dummy ld; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_LD"; then
- ac_cv_prog_ac_ct_LD="$ac_ct_LD" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_LD="ld"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_LD" && ac_cv_prog_ac_ct_LD="ld"
-fi
-fi
-ac_ct_LD=$ac_cv_prog_ac_ct_LD
-if test -n "$ac_ct_LD"; then
- echo "$as_me:$LINENO: result: $ac_ct_LD" >&5
-echo "${ECHO_T}$ac_ct_LD" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- LD=$ac_ct_LD
-else
- LD="$ac_cv_prog_LD"
-fi
-
- echo "$as_me:$LINENO: checking \"for libcygwin.a\"" >&5
-echo $ECHO_N "checking \"for libcygwin.a\"... $ECHO_C" >&6
- LIBCYGWIN_A=`$CC -print-file-name=libcygwin.a`
- echo "$as_me:$LINENO: result: $LIBCYGWIN_A" >&5
-echo "${ECHO_T}$LIBCYGWIN_A" >&6
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_DLLTOOL+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$DLLTOOL"; then
- ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
- echo "$as_me:$LINENO: result: $DLLTOOL" >&5
-echo "${ECHO_T}$DLLTOOL" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
- ac_ct_DLLTOOL=$DLLTOOL
- # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_DLLTOOL"; then
- ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DLLTOOL="dlltool"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
- echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5
-echo "${ECHO_T}$ac_ct_DLLTOOL" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- DLLTOOL=$ac_ct_DLLTOOL
-else
- DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
- ;;
-esac
-
-# Plugins supported by this configuration
-if test x${supported} = xyes; then
- plugins="rhabout"
- case "${target}" in
- *cygwin*) ;;
- *linux*) ;;
- *i?86*)
- plugins="${plugins} intel-pentium"
- ;;
- esac
-
- for i in $plugins ; do
- make_subdirs="${make_subdirs} $i"
- done
-fi
-
-
-
-
- ac_config_files="$ac_config_files Makefile rhabout/Makefile:rhabout/Makefile.in:Make-rules rhabout/rhabout.tcl intel-pentium/Makefile:intel-pentium/Makefile.in:Make-rules intel-pentium/intel-pentium.tcl"
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-{
- (set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
- ;;
- esac;
-} |
- sed '
- t clear
- : clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
- if test -w $cache_file; then
- test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
- cat confcache >$cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[ ]*$//;
-}'
-fi
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then we branch to the quote section. Otherwise,
-# look for a macro that doesn't take arguments.
-cat >confdef2opt.sed <<\_ACEOF
-t clear
-: clear
-s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
-t quote
-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
-t quote
-d
-: quote
-s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
-s,\[,\\&,g
-s,\],\\&,g
-s,\$,$$,g
-p
-_ACEOF
-# We use echo to avoid assuming a particular line-breaking character.
-# The extra dot is to prevent the shell from consuming trailing
-# line-breaks from the sub-command output. A line-break within
-# single-quotes doesn't work because, if this script is created in a
-# platform that uses two characters for line-breaks (e.g., DOS), tr
-# would break.
-ac_LF_and_DOT=`echo; echo .`
-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
-rm -f confdef2opt.sed
-
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_i=`echo "$ac_i" |
- sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
- # 2. Add them.
- ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
- ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling. Logging --version etc. is OK.
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
- echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
- echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
- echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
- echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
-
-Configuration files:
-$config_files
-
-Configuration commands:
-$config_commands
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.59,
- with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-INSTALL="$INSTALL"
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value. By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=*)
- ac_option=`expr "x$1" : 'x\([^=]*\)='`
- ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- -*)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- *) # This is not an option, so the user has probably given explicit
- # arguments.
- ac_option=$1
- ac_need_defaults=false;;
- esac
-
- case $ac_option in
- # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --vers* | -V )
- echo "$ac_cs_version"; exit 0 ;;
- --he | --h)
- # Conflict between --help and --header
- { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; };;
- --help | --hel | -h )
- echo "$ac_cs_usage"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- CONFIG_FILES="$CONFIG_FILES $ac_optarg"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
- ac_need_defaults=false;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; } ;;
-
- *) ac_config_targets="$ac_config_targets $1" ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
- echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
- exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-#
-# INIT-COMMANDS section.
-#
-
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-_ACEOF
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
- case "$ac_config_target" in
- # Handling of arguments.
- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "rhabout/Makefile" ) CONFIG_FILES="$CONFIG_FILES rhabout/Makefile:rhabout/Makefile.in:Make-rules" ;;
- "rhabout/rhabout.tcl" ) CONFIG_FILES="$CONFIG_FILES rhabout/rhabout.tcl" ;;
- "intel-pentium/Makefile" ) CONFIG_FILES="$CONFIG_FILES intel-pentium/Makefile:intel-pentium/Makefile.in:Make-rules" ;;
- "intel-pentium/intel-pentium.tcl" ) CONFIG_FILES="$CONFIG_FILES intel-pentium/intel-pentium.tcl" ;;
- "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
- trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
-} ||
-{
- tmp=./confstat$$-$RANDOM
- (umask 077 && mkdir $tmp)
-} ||
-{
- echo "$me: cannot create a temporary directory in ." >&2
- { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
- # Protect against being on the right side of a sed subst in config.status.
- sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
- s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@CYGPATH_W@,$CYGPATH_W,;t t
-s,@PACKAGE@,$PACKAGE,;t t
-s,@VERSION@,$VERSION,;t t
-s,@ACLOCAL@,$ACLOCAL,;t t
-s,@AUTOCONF@,$AUTOCONF,;t t
-s,@AUTOMAKE@,$AUTOMAKE,;t t
-s,@AUTOHEADER@,$AUTOHEADER,;t t
-s,@MAKEINFO@,$MAKEINFO,;t t
-s,@install_sh@,$install_sh,;t t
-s,@STRIP@,$STRIP,;t t
-s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
-s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
-s,@mkdir_p@,$mkdir_p,;t t
-s,@AWK@,$AWK,;t t
-s,@SET_MAKE@,$SET_MAKE,;t t
-s,@am__leading_dot@,$am__leading_dot,;t t
-s,@AMTAR@,$AMTAR,;t t
-s,@am__tar@,$am__tar,;t t
-s,@am__untar@,$am__untar,;t t
-s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
-s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
-s,@MAINT@,$MAINT,;t t
-s,@build@,$build,;t t
-s,@build_cpu@,$build_cpu,;t t
-s,@build_vendor@,$build_vendor,;t t
-s,@build_os@,$build_os,;t t
-s,@host@,$host,;t t
-s,@host_cpu@,$host_cpu,;t t
-s,@host_vendor@,$host_vendor,;t t
-s,@host_os@,$host_os,;t t
-s,@CC@,$CC,;t t
-s,@CFLAGS@,$CFLAGS,;t t
-s,@LDFLAGS@,$LDFLAGS,;t t
-s,@CPPFLAGS@,$CPPFLAGS,;t t
-s,@ac_ct_CC@,$ac_ct_CC,;t t
-s,@EXEEXT@,$EXEEXT,;t t
-s,@OBJEXT@,$OBJEXT,;t t
-s,@DEPDIR@,$DEPDIR,;t t
-s,@am__include@,$am__include,;t t
-s,@am__quote@,$am__quote,;t t
-s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
-s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
-s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
-s,@CCDEPMODE@,$CCDEPMODE,;t t
-s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
-s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
-s,@TCLCONFIG@,$TCLCONFIG,;t t
-s,@TCL_DEFS@,$TCL_DEFS,;t t
-s,@TCL_LIB_FILE@,$TCL_LIB_FILE,;t t
-s,@TCL_LIB_FULL_PATH@,$TCL_LIB_FULL_PATH,;t t
-s,@TCL_LIBS@,$TCL_LIBS,;t t
-s,@TCL_CFLAGS@,$TCL_CFLAGS,;t t
-s,@TCL_SHLIB_CFLAGS@,$TCL_SHLIB_CFLAGS,;t t
-s,@TCL_SHLIB_LD@,$TCL_SHLIB_LD,;t t
-s,@TCL_LD_FLAGS@,$TCL_LD_FLAGS,;t t
-s,@TCL_LD_SEARCH_FLAGS@,$TCL_LD_SEARCH_FLAGS,;t t
-s,@TCL_RANLIB@,$TCL_RANLIB,;t t
-s,@TCL_BUILD_LIB_SPEC@,$TCL_BUILD_LIB_SPEC,;t t
-s,@TCL_LIB_SPEC@,$TCL_LIB_SPEC,;t t
-s,@TCL_BIN_DIR@,$TCL_BIN_DIR,;t t
-s,@TKCONFIG@,$TKCONFIG,;t t
-s,@TK_VERSION@,$TK_VERSION,;t t
-s,@TK_DEFS@,$TK_DEFS,;t t
-s,@TK_LIB_FILE@,$TK_LIB_FILE,;t t
-s,@TK_LIB_FULL_PATH@,$TK_LIB_FULL_PATH,;t t
-s,@TK_LIBS@,$TK_LIBS,;t t
-s,@TK_BUILD_INCLUDES@,$TK_BUILD_INCLUDES,;t t
-s,@TK_XINCLUDES@,$TK_XINCLUDES,;t t
-s,@TK_XLIBSW@,$TK_XLIBSW,;t t
-s,@TK_BUILD_LIB_SPEC@,$TK_BUILD_LIB_SPEC,;t t
-s,@TK_LIB_SPEC@,$TK_LIB_SPEC,;t t
-s,@CPP@,$CPP,;t t
-s,@EGREP@,$EGREP,;t t
-s,@TCLHDIR@,$TCLHDIR,;t t
-s,@TKHDIR@,$TKHDIR,;t t
-s,@TCL_DBGX@,$TCL_DBGX,;t t
-s,@TCL_SHLIB_SUFFIX@,$TCL_SHLIB_SUFFIX,;t t
-s,@NM@,$NM,;t t
-s,@ac_ct_NM@,$ac_ct_NM,;t t
-s,@AS@,$AS,;t t
-s,@ac_ct_AS@,$ac_ct_AS,;t t
-s,@LD@,$LD,;t t
-s,@ac_ct_LD@,$ac_ct_LD,;t t
-s,@LIBCYGWIN_A@,$LIBCYGWIN_A,;t t
-s,@DLLTOOL@,$DLLTOOL,;t t
-s,@ac_ct_DLLTOOL@,$ac_ct_DLLTOOL,;t t
-s,@make_subdirs@,$make_subdirs,;t t
-s,@plugin_builddir@,$plugin_builddir,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
- cat >>$CONFIG_STATUS <<\_ACEOF
- # Split the substitutions into bite-sized pieces for seds with
- # small command number limits, like on Digital OSF/1 and HP-UX.
- ac_max_sed_lines=48
- ac_sed_frag=1 # Number of current file.
- ac_beg=1 # First line for current file.
- ac_end=$ac_max_sed_lines # Line after last line for current file.
- ac_more_lines=:
- ac_sed_cmds=
- while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- else
- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- fi
- if test ! -s $tmp/subs.frag; then
- ac_more_lines=false
- else
- # The purpose of the label and of the branching condition is to
- # speed up the sed processing (if there are no `@' at all, there
- # is no need to browse any of the substitutions).
- # These are the two extra sed commands mentioned above.
- (echo ':t
- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
- fi
- ac_sed_frag=`expr $ac_sed_frag + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_lines`
- fi
- done
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
- fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case $ac_file in
- - | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- * ) ac_file_in=$ac_file.in ;;
- esac
-
- # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
- esac
-
- if test x"$ac_file" != x-; then
- { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
- rm -f "$ac_file"
- fi
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- if test x"$ac_file" = x-; then
- configure_input=
- else
- configure_input="$ac_file. "
- fi
- configure_input=$configure_input"Generated from `echo $ac_file_in |
- sed 's,.*/,,'` by configure."
-
- # First look for the input files in the build tree, otherwise in the
- # src tree.
- ac_file_inputs=`IFS=:
- for f in $ac_file_in; do
- case $f in
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- echo "$f";;
- *) # Relative
- if test -f "$f"; then
- # Build tree
- echo "$f"
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo "$srcdir/$f"
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
- sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
- rm -f $tmp/stdin
- if test x"$ac_file" != x-; then
- mv $tmp/out $ac_file
- else
- cat $tmp/out
- rm -f $tmp/out
- fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
- ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
- ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_dest" : 'X\(//\)[^/]' \| \
- X"$ac_dest" : 'X\(//\)$' \| \
- X"$ac_dest" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
- case $ac_dest in
- depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # So let's grep whole file.
- if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
- dirpart=`(dirname "$mf") 2>/dev/null ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
- X"$mf" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`(dirname "$file") 2>/dev/null ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p $dirpart/$fdir
- else
- as_dir=$dirpart/$fdir
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
-echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
- { (exit 1); exit 1; }; }; }
-
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
-done
- ;;
- esac
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || { (exit 1); exit 1; }
-fi
-
diff --git a/gdb/gdbtk/plugins/configure.ac b/gdb/gdbtk/plugins/configure.ac
deleted file mode 100644
index 58a54808124..00000000000
--- a/gdb/gdbtk/plugins/configure.ac
+++ /dev/null
@@ -1,93 +0,0 @@
-AC_INIT(Make-rules)
-AC_CONFIG_AUX_DIR(../../..)
-AM_INIT_AUTOMAKE(insight, 1.0)
-AM_MAINTAINER_MODE
-AC_PROG_MAKE_SET
-AC_CANONICAL_HOST
-AC_PROG_CC
-AC_OBJEXT
-AC_EXEEXT
-
-# Find Tcl, Tk, etc
-CYG_AC_PATH_TCLCONFIG
-CYG_AC_LOAD_TCLCONFIG
-CYG_AC_PATH_TKCONFIG
-CYG_AC_LOAD_TKCONFIG
-CYG_AC_PATH_TCLH
-CYG_AC_PATH_TKH
-AC_SUBST(TCL_DBGX)
-
-# Make sure TCL_SHLIB_SUFFIX is set
-if test x$TCL_SHLIB_SUFFIX = x ; then
- case "${host}" in
- *cygwin*) TCL_SHLIB_SUFFIX=".dll" ;;
- *) TCL_SHILB_SUFFIX=".so" ;;
- esac
-fi
-AC_SUBST(TCL_SHLIB_SUFFIX)
-
-# Since we're not using autoconf > 2.1x, we cannot use AC_CONFIG_FILES.
-make_subdirs=""
-
-# See if -mwin32 works for cygwin
-case "${host}" in
- *cygwin*)
- ocflags=${CFLAGS}
- CFLAGS="${CFLAGS} -mwin32"
- AC_TRY_COMPILE(,,,CFLAGS="${ocflags}")
- ;;
- *) ;;
-esac
-
-# note toplevel plugin build directory
-plugin_builddir=`pwd`
-
-#
-# Plugins
-#
-
-# Supported hosts
-
-# Only supported/tested on linux, solaris, cygwin
-supported=yes
-case "${host}" in
- *cygwin*) ;;
- *solaris*) ;;
- *linux*) ;;
- *) supported=no ;;
-esac
-
-# Host-specific configury
-case "${host}" in
- *cygwin*)
- AC_CHECK_TOOL(NM, nm, nm)
- AC_CHECK_TOOL(AS, as, as)
- AC_CHECK_TOOL(LD, ld, ld)
- AC_MSG_CHECKING("for libcygwin.a")
- LIBCYGWIN_A=`$CC -print-file-name=libcygwin.a`
- AC_MSG_RESULT($LIBCYGWIN_A)
- AC_SUBST(LIBCYGWIN_A)
- AC_CHECK_TOOL(DLLTOOL, dlltool)
- ;;
-esac
-
-# Plugins supported by this configuration
-if test x${supported} = xyes; then
- plugins="rhabout"
- case "${target}" in
- *cygwin*) ;;
- *linux*) ;;
- *i?86*)
- plugins="${plugins} intel-pentium"
- ;;
- esac
-
- for i in $plugins ; do
- make_subdirs="${make_subdirs} $i"
- done
-fi
-
-AC_SUBST(make_subdirs)
-AC_SUBST(plugin_builddir)
-
-AC_OUTPUT(Makefile rhabout/Makefile:rhabout/Makefile.in:Make-rules rhabout/rhabout.tcl intel-pentium/Makefile:intel-pentium/Makefile.in:Make-rules intel-pentium/intel-pentium.tcl)
diff --git a/gdb/gdbtk/plugins/intel-pentium/ChangeLog b/gdb/gdbtk/plugins/intel-pentium/ChangeLog
deleted file mode 100644
index 67f84af825d..00000000000
--- a/gdb/gdbtk/plugins/intel-pentium/ChangeLog
+++ /dev/null
@@ -1,43 +0,0 @@
-2005-12-23 Eli Zaretskii <eliz@gnu.org>
-
- * msrselection.ith:
- * msrselection.itb:
- * cpuinfo.tcl: Put (C) after Copyright.
-
-2002-08-14 Keith Seitz <keiths@redhat.com>
-
- Merged from Red Hat internal branch:
-
- 2001-11-30 Keith Seitz <keith@redhat.com>
- * Makefile.in: New file.
- * intel-pentium.tcl: Renamed to intel-pentium.tcl.in.
- * plugins.tcl: This plugin is only available on non-native targets.
- Append to ../plugins.tcl and remove.
-
- 2001-11-28 Ian Roxborough <irox@redhat.com>
- * cpuinfo.tcl (display_cpu_info): exec the gdb command
- "info cpu" to get the extra cpuinformation (CPU ID).
- * library/plugins/intel-pentium/msrselection.itb
- (MsrSelDlg::build_win): Switch the OK and Cancel buttons
- around to improve ease of use.
- * plugins.tcl: Use "$::GDBStartup" rather than "$GDBStartup".
- Create a sub menu in the plugins menu called "Intel Pentium"
- and place the menu items in it.
-
- 2001-11-21 Ian Roxborough <irox@redhat.com>
- * msrselection.itb (MsrSelDlg::list_msrs): Use
- "set msr-pointer" instead of "set msr".
- (MsrSelDlg::doit): Set the msr-pointer before calling
- unpost. Display an error message is we can't set the
- msr-pointer.
-
- 2001-11-16 Ian Roxborough <irox@redhat.com>
- * cpuinfo.tcl: New file.
- * intel-pentium.tcl: Ditto.
- * cpuinfo.tcl: Ditto.
- * msrselection.itb: Ditto.
- * msrselection.ith: Ditto.
- * pkgIndex.tcl: Ditto.
- * plugins.tcl: Ditto.
- * tclIndex: Ditto.
-
diff --git a/gdb/gdbtk/plugins/intel-pentium/Makefile.in b/gdb/gdbtk/plugins/intel-pentium/Makefile.in
deleted file mode 100644
index 79613d9f1da..00000000000
--- a/gdb/gdbtk/plugins/intel-pentium/Makefile.in
+++ /dev/null
@@ -1,6 +0,0 @@
-# Plugin definitions
-PLUGIN = intel-pentium
-PLUGIN_INSTALL_SRCDIR = cpuinfo.tcl \
- msrselection.ith \
- msrselection.itb
-
diff --git a/gdb/gdbtk/plugins/intel-pentium/cpuinfo.tcl b/gdb/gdbtk/plugins/intel-pentium/cpuinfo.tcl
deleted file mode 100644
index 1864c436b2c..00000000000
--- a/gdb/gdbtk/plugins/intel-pentium/cpuinfo.tcl
+++ /dev/null
@@ -1,33 +0,0 @@
-# Display CPU information.
-# Copyright (C) 1999, 2000, 2001 Red Hat, Inc.
-#
-# Written by Fernando Nasser <fnasser@redhat.com>
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# ------------------------------------------------------------------
-# NAME: proc display_cpu_info
-# DESCRIPTION: display what we know about the target CPU
-# if the information is available.
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-#
-# NOTES:
-# ------------------------------------------------------------------
-proc display_cpu_info {} {
- global gdb_cpuid_info
- if {[catch {gdb_cmd "info cpu"} result]} {
- tk_messageBox -message "CPU information not available"
- } else {
- tk_messageBox -message "$result"
- }
-}
diff --git a/gdb/gdbtk/plugins/intel-pentium/intel-pentium.tcl.in b/gdb/gdbtk/plugins/intel-pentium/intel-pentium.tcl.in
deleted file mode 100644
index 77b737647af..00000000000
--- a/gdb/gdbtk/plugins/intel-pentium/intel-pentium.tcl.in
+++ /dev/null
@@ -1,4 +0,0 @@
-package provide INTELPENTIUM 1.0
-set dirname [file dirname [info script]]
-lappend auto_path $dirname
-#catch {load [file join $dirname intel-pentium@TCL_SHLIB_SUFFIX@]}
diff --git a/gdb/gdbtk/plugins/intel-pentium/msrselection.itb b/gdb/gdbtk/plugins/intel-pentium/msrselection.itb
deleted file mode 100644
index f8fda1996bd..00000000000
--- a/gdb/gdbtk/plugins/intel-pentium/msrselection.itb
+++ /dev/null
@@ -1,192 +0,0 @@
-# Implements MSR selection dialog class for Insight.
-# Copyright (C) 1999, 2000, 2001 Red Hat, Inc.
-#
-# Written by Fernando Nasser <fnasser@redhat.com>
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# ------------------------------------------------------------------
-# NAME: MsrSelDlg::constructor
-# DESCRIPTION: Create a new MSR Selection dialog window.
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-# ------------------------------------------------------------------
-body MsrSelDlg::constructor {args} {
-
- window_name "MSR Selection"
- build_win
- eval itk_initialize $args
-
-}
-
-# ------------------------------------------------------------------
-# NAME: protected method MsrSelDlg::build_win
-# DESCRIPTION: Builds the MSR dialog window from widgets.
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-#
-# NOTES: This method should only be called once for
-# each MsrSelDlg.
-# ------------------------------------------------------------------
-body MsrSelDlg::build_win {} {
-
- # CHOOSE_MSR: the list box with list of MSRs. Also an entry
- # for typing in the MSR by hand.
-
- itk_component add choose_msr {
- iwidgets::scrolledlistbox $itk_interior.cmsr -visibleitems 30x15 \
- -labeltext "Choose MSR" -labelpos nw \
- -labelrelief groove -labelborderwidth 2 \
- -ipadx 8 -ipady 6 -childsitepos s -hscrollmode none \
- -textbackground white -exportselection 0 \
- -selectioncommand [code $this select_msr] \
- -dblclickcommand [code $this doit]
- }
-
- # MSR_ENTRY: this is the MSR entry box. You can enter the MSR register name
- # by hand here, or click on the listbox to have it entered for you.
-
- itk_component add msr_entry {
- iwidgets::entryfield [$itk_component(choose_msr) childsite].lab \
- -labeltext MSR: -textbackground white \
- -focuscommand [code $this clear_msr_selection] \
- -command [code $this doit]
- }
- pack $itk_component(msr_entry) -fill x -side bottom -pady 4
-
- itk_component add button_box {
- frame $itk_interior.b
- }
-
- itk_component add ok {
- button $itk_component(button_box).ok -text OK -command [code $this doit]
- }
- $itk_component(ok) configure -state disabled
-
- itk_component add cancel {
- button $itk_component(button_box).cancel -text Cancel \
- -command [code $this cancel]
- }
-
- ::standard_button_box $itk_component(button_box)
-
- pack $itk_component(button_box) -side bottom -fill x \
- -pady 4 -padx 4
- pack $itk_component(choose_msr) -fill both -expand 1 -pady 4 -padx 4
-
- after idle [list update idletasks; $this list_msrs]
-
-}
-
-# ------------------------------------------------------------------
-# NAME: protected method MsrSelDlg::doit
-# DESCRIPTION: Selects the MSR to view and unposts window.
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-#
-# NOTES:
-# ------------------------------------------------------------------
-body MsrSelDlg::doit {} {
- set MsrSelDlg::last_button 1
- set msr [$itk_component(msr_entry) get]
- set MsrSelDlg::last_msr $msr
-
- if {[catch {gdb_cmd "set msr-pointer $msr"} result]} {
- ManagedWin::open WarningDlg -transient \
- -message [list "Could not select this $msr:\n$result"]
- }
-
- debug "About to unpost"
- unpost
-}
-
-# ------------------------------------------------------------------
-# NAME: protected method MsrSelDlg::cancel
-# DESCRIPTION: Unposts the window without selecting
-# the MSR to view.
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-#
-# NOTES:
-# ------------------------------------------------------------------
-body MsrSelDlg::cancel {} {
- set MsrSelDlg::last_button 0
- set MsrSelDlg::last_msr {}
- unpost
-}
-
-# ------------------------------------------------------------------
-# NAME: protected method MsrSelDlg::list_msrs
-# DESCRIPTION: List the known MSR names.
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-#
-# NOTES:
-# ------------------------------------------------------------------
-body MsrSelDlg::list_msrs {{expr {}}} {
- set err [catch {gdb_cmd "set msr-pointer" 1} msg ]
- set msg [string trimright $msg "."]
- set msrnames [split $msg ,]
- set msrnames [lrange $msrnames 1 end]
-
- $itk_component(choose_msr) clear
- set msr_list {}
-
- foreach name $msrnames {
- lappend msr_list [list $name {set msr $name}]
- $itk_component(choose_msr) insert end $name
- }
-
- $itk_component(choose_msr) selection set 0
- select_msr
-}
-
-# ------------------------------------------------------------------
-# NAME: protected method MsrSelDlg::select_msrs
-# DESCRIPTION: Grab the selected element from the MSR listbox
-# and insert the associated MSR into the entry form.
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-#
-# NOTES:
-# ------------------------------------------------------------------
-body MsrSelDlg::select_msr {} {
- set hit [$itk_component(choose_msr) curselection]
- if {$hit != ""} {
- $itk_component(msr_entry) clear
- $itk_component(msr_entry) insert 0 [lindex [lindex $msr_list $hit] 0]
- $itk_component(ok) configure -state normal
- }
-}
-
-# ------------------------------------------------------------------
-# METHOD: clear_msr_selection - Clear the current MSR selection.
-# ------------------------------------------------------------------
-# ------------------------------------------------------------------
-# NAME: protected method MsrSelDlg::clear_msrs_selection
-# DESCRIPTION: Clear the current MSR selection.
-#
-# ARGUMENTS: None
-# RETURNS: Nothing
-#
-# NOTES:
-# ------------------------------------------------------------------
-body MsrSelDlg::clear_msr_selection {} {
- $itk_component(choose_msr) selection clear 0 end
- $itk_component(msr_entry) selection range 0 end
-}
-
diff --git a/gdb/gdbtk/plugins/intel-pentium/msrselection.ith b/gdb/gdbtk/plugins/intel-pentium/msrselection.ith
deleted file mode 100644
index 88f4a45aada..00000000000
--- a/gdb/gdbtk/plugins/intel-pentium/msrselection.ith
+++ /dev/null
@@ -1,38 +0,0 @@
-# Implements MSR selection dialog class for Insight.
-# Copyright (C) 1999, 2000, 2001 Red Hat, Inc.
-#
-# Written by Fernando Nasser <fnasser@redhat.com>
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-class MsrSelDlg {
- inherit ModalDialog PluginWindow
-
- public {
- method constructor {args}
- proc last_button {} {return $last_button}
- proc msr {} {return $last_msr}
- }
-
- protected {
- method build_win {args}
- method cancel {}
- method doit {}
- method list_msrs {{expr {}}}
- method select_msr {}
- method clear_msr_selection {}
-
- variable msr_list
-
- common last_button 0
- common last_msr {}
- }
-}
diff --git a/gdb/gdbtk/plugins/intel-pentium/pkgIndex.tcl b/gdb/gdbtk/plugins/intel-pentium/pkgIndex.tcl
deleted file mode 100644
index 58182a9676c..00000000000
--- a/gdb/gdbtk/plugins/intel-pentium/pkgIndex.tcl
+++ /dev/null
@@ -1 +0,0 @@
-package ifneeded INTELPENTIUM 1.0 [list source [file join $dir intel-pentium.tcl]]
diff --git a/gdb/gdbtk/plugins/intel-pentium/tclIndex b/gdb/gdbtk/plugins/intel-pentium/tclIndex
deleted file mode 100644
index 8b7e117e667..00000000000
--- a/gdb/gdbtk/plugins/intel-pentium/tclIndex
+++ /dev/null
@@ -1,17 +0,0 @@
-# Tcl autoload index file, version 2.0
-# This file is generated by the "auto_mkindex" command
-# and sourced to set up indexing information for one or
-# more commands. Typically each line is a command that
-# sets an element in the auto_index array, where the
-# element name is the name of a command and the value is
-# a script that loads the command.
-
-set auto_index(MsrSelDlg) [list source [file join $dir msrselection.ith]]
-set auto_index(::MsrSelDlg::constructor) [list source [file join $dir msrselection.itb]]
-set auto_index(::MsrSelDlg::build_win) [list source [file join $dir msrselection.itb]]
-set auto_index(::MsrSelDlg::doit) [list source [file join $dir msrselection.itb]]
-set auto_index(::MsrSelDlg::cancel) [list source [file join $dir msrselection.itb]]
-set auto_index(::MsrSelDlg::list_msrs) [list source [file join $dir msrselection.itb]]
-set auto_index(::MsrSelDlg::select_msr) [list source [file join $dir msrselection.itb]]
-set auto_index(::MsrSelDlg::clear_msr_selection) [list source [file join $dir msrselection.itb]]
-set auto_index(display_cpu_info) [list source [file join $dir cpuinfo.tcl]]
diff --git a/gdb/gdbtk/plugins/plugins.tcl b/gdb/gdbtk/plugins/plugins.tcl
deleted file mode 100644
index b9b1f926713..00000000000
--- a/gdb/gdbtk/plugins/plugins.tcl
+++ /dev/null
@@ -1,30 +0,0 @@
-# Only load the rhabout plugin if it was installed.
-foreach dir $::gdb_plugins {
- if {[file exists [file join $dir rhabout]]} {
- package require RHABOUT 1.0
- $Menu add command Other "About Red Hat" \
- {ManagedWin::open RHAbout} -underline 0
-
- # To activate the PlugIn sample, uncomment the next line
- set plugins_available 1
- }
-}
-
-# Only load the Intel Pentium plugin for x86 targets.
-if {[string match "i?86-*" $::GDBStartup(target_name)] && ![TargetSelection::native_debugging]} {
- package require INTELPENTIUM 1.0
-
- # Add a new cascading-style menu to plugin menu
- $Menu add cascade intel "Intel Pentium" 0
-
- # Add MSR selection dialog menu item.
- $Menu add command None "MSR Selection..." \
- {ManagedWin::open_dlg MsrSelDlg} -underline 0
-
- # Add CPU info menu item.
- $Menu add command None "CPU Information..." \
- display_cpu_info -underline 0
-
- # Activate the PlugIn.
- set plugins_available 1
-}
diff --git a/gdb/gdbtk/plugins/rhabout/ChangeLog b/gdb/gdbtk/plugins/rhabout/ChangeLog
deleted file mode 100644
index f87b23b37ca..00000000000
--- a/gdb/gdbtk/plugins/rhabout/ChangeLog
+++ /dev/null
@@ -1,24 +0,0 @@
-2004-12-08 Keith Seitz <kseitz@sources.redhat.com>
-
- From Ben Elliston (bje@gnu.org):
- * rhabout.c (extra_text): Convert to object interface.
- (Rhabout_Init): Use Tcl_CreateObjCommand instead of older argc/argv
- Tcl_CreateCommand.
-
-2003-03-12 Martin M. Hunt <hunt@redhat.com>
-
- * rhabout.itcl (RHAbout): Fix call
- to open_help. We no longer use HTMLViewer.
-
-2002-08-14 Keith Seitz <keiths@redhat.com>
-
- Merged from Red Hat internal branch:
- 2001-11-30 Keith Seitz <keiths@redhat.com>
- * rhabout.c: Update for building a DLL on cygwin.
- (DllMain): New function.
- * rhabout.tcl: Moved from ../ and renamed to
- rhabout.tcl.in: configure needs to tweak the shared library name.
- * rhabout.tcl.in: "New" file.
- * Makefile.in: New (template) file.
- * Makefile: Remove.
- * pkgIndex.tcl: Moved from ../ here.
diff --git a/gdb/gdbtk/plugins/rhabout/Makefile.in b/gdb/gdbtk/plugins/rhabout/Makefile.in
deleted file mode 100644
index e63e568d6f4..00000000000
--- a/gdb/gdbtk/plugins/rhabout/Makefile.in
+++ /dev/null
@@ -1,9 +0,0 @@
-# Plugin definitions
-PLUGIN = rhabout
-PLUGIN_OBJS = rhabout.$(OBJEXT)
-PLUGIN_IMAGE_BASE = 0x65000000
-PLUGIN_INSTALL_SRCDIR = rhabout.itcl
-# Comment out this to install the example plugin
-PLUGIN_INSTALL_TARGET = nothing
-
-nothing:
diff --git a/gdb/gdbtk/plugins/rhabout/pkgIndex.tcl b/gdb/gdbtk/plugins/rhabout/pkgIndex.tcl
deleted file mode 100644
index b56e703e31f..00000000000
--- a/gdb/gdbtk/plugins/rhabout/pkgIndex.tcl
+++ /dev/null
@@ -1,2 +0,0 @@
-package ifneeded RHABOUT 1.0 [list source [file join $dir rhabout.tcl]]
-
diff --git a/gdb/gdbtk/plugins/rhabout/rhabout.c b/gdb/gdbtk/plugins/rhabout/rhabout.c
deleted file mode 100644
index fd043dc355a..00000000000
--- a/gdb/gdbtk/plugins/rhabout/rhabout.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Sample command procedure library for a plug-in. */
-
-/* You have to include the Tcl headers, of course. */
-#include <tcl.h>
-
-/* Define the functions that implement your commands as required by Tcl */
-#ifdef __CYGWIN__
-# define EXPORT __declspec(dllexport)
-#else
-# define EXPORT /* nothing */
-#endif
-
-int extra_text (ClientData clientData,
- Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[]);
-
-/* Here you actually do whatever you want, like calling your target
- libraries etc. Here we just return a string. */
-
-int
-extra_text (ClientData clientData,
- Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[])
-{
- interp->result = "\nThis is a sample plug-in\n";
- return TCL_OK;
-}
-
-/* Initialization function required in Tcl libraries. */
-
-int EXPORT
-Rhabout_Init (Tcl_Interp *interp)
-{
- /* Register your command as a Tcl command with this interpreter. */
- Tcl_CreateObjCommand (interp, "rhabout_extra_text", extra_text,
- (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL);
-
- /* Register this package */
- Tcl_PkgProvide (interp, "RHABOUT", "1.0");
- return TCL_OK;
-}
-
-/* This is REQUIRED for cygwin */
-#ifdef __CYGWIN__
-#include <windows.h>
-#include <tclInt.h>
-
-struct _reent *_impure_ptr;
-extern struct _reent *_imp__reent_data;
-
-BOOL APIENTRY
-DllMain (HINSTANCE hInstance, DWORD reason, LPVOID reserved)
-{
- _impure_ptr = _imp__reent_data;
- return TRUE;
-}
-#endif
diff --git a/gdb/gdbtk/plugins/rhabout/rhabout.itcl b/gdb/gdbtk/plugins/rhabout/rhabout.itcl
deleted file mode 100644
index 02a83517dfd..00000000000
--- a/gdb/gdbtk/plugins/rhabout/rhabout.itcl
+++ /dev/null
@@ -1,87 +0,0 @@
-class RHAbout {
- inherit PluginWindow
- constructor {args} {
- global gdb_ImageDir
-
- # What about a menu?
- $menubar add menubutton file "File" 0
- $menubar add command None "Close" \
- [code $this destroy_toplevel] \
- -underline 1
- $menubar add menubutton help "Help" 0
- $menubar add command Other "Help Topics" \
- {open_help index.html} \
- -underline 0
- $menubar add separator
- $menubar add command Other "About GDB..." \
- {ManagedWin::open About -transient} \
- -underline 0
-
- # The menu only shows up if you do this:
- $menubar show
-
- # Do you want a toolbar?
- $toolbar add button con Other {ManagedWin::open Console} \
- "Console (Ctrl+N)" -image console_img
-
- # The toolbar will only show up if you do this:
- $toolbar show
-
- # Now, fill the childsite with some graphics and text
-
- # Remember to use the childsite, do not pack in the widget hull
- set f [childsite]
-
- # Put in some graphics
- label $f.image1 -bg white -image \
- [image create photo -file [file join $gdb_ImageDir insight.gif]]
-
- # Here we call an interface function provided by GDBTCL
- set text [gdb_cmd {show version}]
-
- # Here we call a command procedure that we created, if it exists
- catch {append text [rhabout_extra_text]}
-
- # Now add the text
- message $f.m -bg white -fg black -text $text -aspect 500 -relief flat
-
- # Add a status bar so we can show some dynamic information
- set _status [label $f.stat -relief sunken -bd 3 \
- -font global/status -height 1]
-
- # pack everything
- pack $f.image1 $f.m -fill both -expand yes
- pack $f.stat -expand 1 -fill both
- pack $itk_interior
-
- # Give our sample window a name
- window_name "About Red Hat Insight Plug-In"
- }
-
- # You can overload the base class busy method, but make sure
- # to call it as well or the menu and button status will not be updated
- # (unless this is what you want)
- public method busy {event} {
- debug
- # Call the baseclass version
- PluginWindow::busy $event
-
- # Display something in the status area
- $_status configure -text "Running..."
- }
-
- # You can overload the base class idle method, but make sure
- # to call it as well or the menu and button status will not be updated
- # (unless this is what you want)
- private method idle {} {
- debug
- # First call the baseclass version
- PluginWindow::idle
-
- # Display something in the status area
- $_status configure -text "Stopped."
- }
-
- # Path to the status area
- private variable _status
-}
diff --git a/gdb/gdbtk/plugins/rhabout/rhabout.tcl.in b/gdb/gdbtk/plugins/rhabout/rhabout.tcl.in
deleted file mode 100644
index 61533da7501..00000000000
--- a/gdb/gdbtk/plugins/rhabout/rhabout.tcl.in
+++ /dev/null
@@ -1,5 +0,0 @@
-package provide RHABOUT 1.0
-set dirname [file dirname [info script]]
-lappend auto_path $dirname
-set TCL_DBGX "@TCL_DBGX@" ; # needed for cygwin
-catch {load [file join $dirname rhabout@TCL_SHLIB_SUFFIX@]}
diff --git a/gdb/gdbtk/plugins/rhabout/tclIndex b/gdb/gdbtk/plugins/rhabout/tclIndex
deleted file mode 100644
index 6a7b8a87329..00000000000
--- a/gdb/gdbtk/plugins/rhabout/tclIndex
+++ /dev/null
@@ -1,9 +0,0 @@
-# Tcl autoload index file, version 2.0
-# This file is generated by the "auto_mkindex" command
-# and sourced to set up indexing information for one or
-# more commands. Typically each line is a command that
-# sets an element in the auto_index array, where the
-# element name is the name of a command and the value is
-# a script that loads the command.
-
-set auto_index(RHAbout) [list source [file join $dir rhabout.itcl]]
diff --git a/gdb/infcall.c b/gdb/infcall.c
index c4435e58229..80144cc65ea 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -780,7 +780,7 @@ You must use a pointer to function type variable. Command ignored."), arg_name);
signal. Further execution of the FUNCTION is not
allowed. */
- if (unwind_on_signal_p)
+ if (unwind_on_signal_p || 1 /* FIXME restoring state */)
{
/* The user wants the context restored. */
@@ -819,6 +819,12 @@ Evaluation of the expression containing the function (%s) will be abandoned."),
}
}
+ if (!stop_stack_dummy && 1 /* FIXME restoring state */)
+ {
+ error (_("\
+The program being debugged stopped while in a function called from GDB.\n\
+GDB has restored the context to what it was before the call."));
+ }
if (!stop_stack_dummy)
{
/* We hit a breakpoint inside the FUNCTION. */
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index a1a64c0572c..ddc69ec1ced 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -1266,6 +1266,8 @@ finish_command_continuation (struct continuation_arg *arg)
/* "finish": Set a temporary breakpoint at the place the selected
frame will return to, then continue. */
+static void finish_backwards (struct symbol *);
+
static void
finish_command (char *arg, int from_tty)
{
@@ -1306,16 +1308,6 @@ finish_command (char *arg, int from_tty)
clear_proceed_status ();
- sal = find_pc_line (get_frame_pc (frame), 0);
- sal.pc = get_frame_pc (frame);
-
- breakpoint = set_momentary_breakpoint (sal, get_frame_id (frame), bp_finish);
-
- if (!target_can_async_p ())
- old_chain = make_cleanup_delete_breakpoint (breakpoint);
- else
- old_chain = make_exec_cleanup_delete_breakpoint (breakpoint);
-
/* Find the function we will return from. */
function = find_pc_function (get_frame_pc (get_selected_frame (NULL)));
@@ -1324,10 +1316,31 @@ finish_command (char *arg, int from_tty)
source. */
if (from_tty)
{
- printf_filtered (_("Run till exit from "));
+ if (target_get_execution_direction () == EXEC_REVERSE)
+ printf_filtered ("Run back to call of ");
+ else
+ printf_filtered ("Run till exit from ");
+
print_stack_frame (get_selected_frame (NULL), 1, LOCATION);
}
+ if (target_get_execution_direction () == EXEC_REVERSE)
+ {
+ /* Split off at this point. */
+ finish_backwards (function);
+ return;
+ }
+
+ sal = find_pc_line (get_frame_pc (frame), 0);
+ sal.pc = get_frame_pc (frame);
+
+ breakpoint = set_momentary_breakpoint (sal, get_frame_id (frame), bp_finish);
+
+ if (!target_can_async_p ())
+ old_chain = make_cleanup_delete_breakpoint (breakpoint);
+ else
+ old_chain = make_exec_cleanup_delete_breakpoint (breakpoint);
+
/* If running asynchronously and the target support asynchronous
execution, set things up for the rest of the finish command to be
completed later on, when gdb has detected that the target has
@@ -1384,6 +1397,66 @@ finish_command (char *arg, int from_tty)
do_cleanups (old_chain);
}
}
+
+static void
+finish_backwards (struct symbol *function)
+{
+ struct symtab_and_line sal;
+ struct breakpoint *breakpoint;
+ struct cleanup *old_chain;
+ CORE_ADDR func_addr;
+ int back_up;
+
+ if (find_pc_partial_function (get_frame_pc (get_current_frame ()),
+ NULL, &func_addr, NULL) == 0)
+ internal_error (__FILE__, __LINE__,
+ "Finish: couldn't find function.");
+
+ sal = find_pc_line (func_addr, 0);
+
+ /* Let's cheat and not worry about async until later. */
+
+ /* We don't need a return value. */
+ proceed_to_finish = 0;
+ /* Special case: if we're sitting at the function entry point,
+ then all we need to do is take a reverse singlestep. We
+ don't need to set a breakpoint, and indeed it would do us
+ no good to do so.
+
+ Note that this can only happen at frame #0, since there's
+ no way that a function up the stack can have a return address
+ that's equal to its entry point. */
+
+ if (sal.pc != read_pc ())
+ {
+ /* Set breakpoint and continue. */
+ breakpoint =
+ set_momentary_breakpoint (sal,
+ get_frame_id (get_selected_frame (NULL)),
+ bp_breakpoint);
+ /* Tell the breakpoint to keep quiet. We won't be done
+ until we've done another reverse single-step. */
+ breakpoint_silence (breakpoint);
+ old_chain = make_cleanup_delete_breakpoint (breakpoint);
+ proceed ((CORE_ADDR) -1, TARGET_SIGNAL_DEFAULT, 0);
+ /* We will be stopped when proceed returns. */
+ back_up = bpstat_find_breakpoint (stop_bpstat, breakpoint) != NULL;
+ do_cleanups (old_chain);
+ }
+ else
+ back_up = 1;
+ if (back_up)
+ {
+ /* If in fact we hit the step-resume breakpoint (and not
+ some other breakpoint), then we're almost there --
+ we just need to back up by one more single-step. */
+ /* (Kludgy way of letting wait_for_inferior know...) */
+ step_range_start = step_range_end = 1;
+ proceed ((CORE_ADDR) -1, TARGET_SIGNAL_DEFAULT, 1);
+ }
+ return;
+}
+
static void
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 8fd0376debb..672fa818203 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -899,7 +899,9 @@ enum inferior_stop_reason
/* Inferior exited. */
EXITED,
/* Inferior received signal, and user asked to be notified. */
- SIGNAL_RECEIVED
+ SIGNAL_RECEIVED,
+ /* Reverse execution -- target ran out of history info. */
+ NO_HISTORY
};
/* This structure contains what used to be local variables in
@@ -1517,6 +1519,12 @@ handle_inferior_event (struct execution_control_state *ecs)
stop_signal = ecs->ws.value.sig;
break;
+ case TARGET_WAITKIND_NO_HISTORY:
+ /* Reverse execution: target ran out of history info. */
+ print_stop_reason (NO_HISTORY, 0);
+ stop_stepping (ecs);
+ return;
+
/* We had an event in the inferior, but we are not interested
in handling it at this level. The lower layers have already
done what needs to be done, if anything.
@@ -2182,6 +2190,17 @@ process_event_stop_test:
keep_going (ecs);
return;
}
+ if (stop_pc == ecs->stop_func_start &&
+ target_get_execution_direction () == EXEC_REVERSE)
+ {
+ /* We are stepping over a function call in reverse, and
+ just hit the step-resume breakpoint at the start
+ address of the function. Go back to single-stepping,
+ which should take us back to the function call. */
+ ecs->another_trap = 1;
+ keep_going (ecs);
+ return;
+ }
break;
case BPSTAT_WHAT_THROUGH_SIGTRAMP:
@@ -2365,7 +2384,22 @@ process_event_stop_test:
fprintf_unfiltered (gdb_stdlog, "infrun: stepping inside range [0x%s-0x%s]\n",
paddr_nz (step_range_start),
paddr_nz (step_range_end));
- keep_going (ecs);
+
+ /* When stepping backward, stop at beginning of line range
+ (unles it's the function entry point, in which case
+ keep going back to the call point). */
+ if (stop_pc == step_range_start &&
+ stop_pc != ecs->stop_func_start &&
+ target_get_execution_direction () == EXEC_REVERSE)
+ {
+ stop_step = 1;
+ print_stop_reason (END_STEPPING_RANGE, 0);
+ stop_stepping (ecs);
+ }
+ else
+ {
+ keep_going (ecs);
+ }
return;
}
@@ -2454,10 +2488,31 @@ process_event_stop_test:
if (step_over_calls == STEP_OVER_ALL)
{
- /* We're doing a "next", set a breakpoint at callee's return
- address (the address at which the caller will
- resume). */
- insert_step_resume_breakpoint_at_caller (get_current_frame ());
+ /* We're doing a "next".
+
+ Normal (forward) execution: set a breakpoint at the
+ callee's return address (the address at which the caller
+ will resume).
+
+ Reverse (backward) execution. set the step-resume
+ breakpoint at the start of the function that we just
+ stepped into (backwards), and continue to there. When we
+ get there, we'll need to single-step back to the
+ caller. */
+
+ if (target_get_execution_direction () == EXEC_REVERSE)
+ {
+ /* FIXME: I'm not sure if we've handled the frame for
+ recursion. */
+
+ struct symtab_and_line sr_sal;
+ init_sal (&sr_sal);
+ sr_sal.pc = ecs->stop_func_start;
+ insert_step_resume_breakpoint_at_sal (sr_sal, null_frame_id);
+ }
+ else
+ insert_step_resume_breakpoint_at_caller (get_current_frame ());
+
keep_going (ecs);
return;
}
@@ -2518,9 +2573,22 @@ process_event_stop_test:
return;
}
- /* Set a breakpoint at callee's return address (the address at
- which the caller will resume). */
- insert_step_resume_breakpoint_at_caller (get_current_frame ());
+ if (target_get_execution_direction () == EXEC_REVERSE)
+ {
+ /* Set a breakpoint at callee's start address.
+ From there we can step once and be back in the caller. */
+ /* FIXME: I'm not sure we've handled the frame for recursion. */
+ struct symtab_and_line sr_sal;
+ init_sal (&sr_sal);
+ sr_sal.pc = ecs->stop_func_start;
+ insert_step_resume_breakpoint_at_sal (sr_sal, null_frame_id);
+ }
+ else
+ {
+ /* Set a breakpoint at callee's return address (the address
+ at which the caller will resume). */
+ insert_step_resume_breakpoint_at_caller (get_current_frame ());
+ }
keep_going (ecs);
return;
}
@@ -2649,17 +2717,38 @@ process_event_stop_test:
if (ecs->stop_func_end && ecs->sal.end >= ecs->stop_func_end)
{
- /* If this is the last line of the function, don't keep stepping
- (it would probably step us out of the function).
- This is particularly necessary for a one-line function,
- in which after skipping the prologue we better stop even though
- we will be in mid-line. */
- if (debug_infrun)
- fprintf_unfiltered (gdb_stdlog, "infrun: stepped to a different function\n");
- stop_step = 1;
- print_stop_reason (END_STEPPING_RANGE, 0);
- stop_stepping (ecs);
- return;
+ if (target_get_execution_direction () != EXEC_REVERSE)
+ {
+ /* If this is the last line of the function, don't keep
+ stepping (it would probably step us out of the function).
+ This is particularly necessary for a one-line function,
+ in which after skipping the prologue we better stop even
+ though we will be in mid-line. */
+ if (debug_infrun)
+ fprintf_unfiltered (gdb_stdlog,
+ "infrun: stepped to a different function\n");
+ stop_step = 1;
+ print_stop_reason (END_STEPPING_RANGE, 0);
+ stop_stepping (ecs);
+ return;
+ }
+ else
+ {
+ /* If we stepped backward into the last line of a function,
+ then we've presumably stepped thru a return. We want to
+ keep stepping backward until we reach the beginning of
+ the new line. */
+ step_range_start = ecs->sal.pc;
+ step_range_end = ecs->sal.end;
+ step_frame_id = get_frame_id (get_current_frame ());
+ ecs->current_line = ecs->sal.line;
+ ecs->current_symtab = ecs->sal.symtab;
+ /* Adjust for prologue, in case of a one-line function. */
+ if (in_prologue (step_range_start, ecs->stop_func_start))
+ step_range_start = SKIP_PROLOGUE (step_range_start);
+ keep_going (ecs);
+ return;
+ }
}
step_range_start = ecs->sal.pc;
step_range_end = ecs->sal.end;
@@ -2722,6 +2811,28 @@ step_into_function (struct execution_control_state *ecs)
if (s && s->language != language_asm)
ecs->stop_func_start = SKIP_PROLOGUE (ecs->stop_func_start);
+ if (target_get_execution_direction () == EXEC_REVERSE)
+ {
+ ecs->sal = find_pc_line (stop_pc, 0);
+
+ /* OK, we're just gonna keep stepping here. */
+ if (ecs->sal.pc == stop_pc)
+ {
+ /* We're there already. Just stop stepping now. */
+ stop_step = 1;
+ print_stop_reason (END_STEPPING_RANGE, 0);
+ stop_stepping (ecs);
+ return;
+ }
+ /* Else just reset the step range and keep going.
+ No step-resume breakpoint, they don't work for
+ epilogues, which can have multiple entry paths. */
+ step_range_start = ecs->sal.pc;
+ step_range_end = ecs->sal.end;
+ keep_going (ecs);
+ return;
+ }
+ /* else... */
ecs->sal = find_pc_line (ecs->stop_func_start, 0);
/* Use the step_resume_break to step until the end of the prologue,
even if that involves jumps (as it seems to on the vax under
@@ -3042,6 +3153,10 @@ print_stop_reason (enum inferior_stop_reason stop_reason, int stop_info)
annotate_signal_string_end ();
ui_out_text (uiout, ".\n");
break;
+ case NO_HISTORY:
+ /* Reverse execution: target ran out of history info. */
+ ui_out_text (uiout, "\nNo more reverse-execution history.\n");
+ break;
default:
internal_error (__FILE__, __LINE__,
_("print_stop_reason: unrecognized enum value"));
@@ -3675,6 +3790,7 @@ save_inferior_status (int restore_stack_info)
inf_status->registers = regcache_dup (current_regcache);
inf_status->selected_frame_id = get_frame_id (get_selected_frame (NULL));
+ current_target.to_doing_call (1);
return inf_status;
}
@@ -3723,6 +3839,8 @@ restore_inferior_status (struct inferior_status *inf_status)
regcache_xfree (stop_registers);
stop_registers = inf_status->stop_registers;
+ current_target.to_doing_call (0);
+
/* The inferior can be gone if the user types "print exit(0)"
(and perhaps other times). */
if (target_has_execution)
@@ -3770,6 +3888,7 @@ make_cleanup_restore_inferior_status (struct inferior_status *inf_status)
void
discard_inferior_status (struct inferior_status *inf_status)
{
+ warning (_("Discarding inferior status"));
/* See save_inferior_status for info on stop_bpstat. */
bpstat_clear (&inf_status->stop_bpstat);
regcache_xfree (inf_status->registers);
diff --git a/gdb/remote.c b/gdb/remote.c
index 866c477b748..0fd8c2482d8 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -2851,7 +2851,15 @@ remote_resume (ptid_t ptid, int step, enum target_signal siggnal)
set_thread (pid, 0); /* Run this thread. */
buf = rs->buf;
- if (siggnal != TARGET_SIGNAL_0)
+ if (target_get_execution_direction () == EXEC_REVERSE)
+ {
+ /* We don't pass signals to the target in reverse exec mode. */
+ if (info_verbose && siggnal != TARGET_SIGNAL_0)
+ warning (" - Can't pass signal %d to target in reverse: ignored.\n",
+ siggnal);
+ strcpy (buf, step ? "bs" : "bc");
+ }
+ else if (siggnal != TARGET_SIGNAL_0)
{
buf[0] = step ? 'S' : 'C';
buf[1] = tohex (((int) siggnal >> 4) & 0xf);
@@ -3125,6 +3133,11 @@ remote_wait (ptid_t ptid, struct target_waitstatus *status)
switch (buf[0])
{
case 'E': /* Error of some sort. */
+ if (buf[1] == '0' && buf[2] == '6')
+ {
+ status->kind = TARGET_WAITKIND_NO_HISTORY;
+ goto got_status;
+ }
warning (_("Remote failure reply: %s"), buf);
continue;
case 'F': /* File-I/O request. */
@@ -6110,6 +6123,47 @@ remote_read_description (struct target_ops *target)
return NULL;
}
+/* Reverse execution.
+ FIXME: set up as a capability. */
+static enum exec_direction_kind remote_execdir = EXEC_FORWARD;
+
+static enum exec_direction_kind remote_get_execdir (void)
+{
+ if (remote_debug && info_verbose)
+ printf_filtered ("remote execdir is %s\n",
+ remote_execdir == EXEC_FORWARD ? "forward" :
+ remote_execdir == EXEC_REVERSE ? "reverse" :
+ "unknown");
+ return remote_execdir;
+}
+
+static int remote_set_execdir (enum exec_direction_kind dir)
+{
+ if (remote_debug && info_verbose)
+ printf_filtered ("Set remote execdir: %s\n",
+ dir == EXEC_FORWARD ? "forward" :
+ dir == EXEC_REVERSE ? "reverse" :
+ "bad direction");
+
+ /* FIXME: check target for capability. */
+ if (dir == EXEC_FORWARD || dir == EXEC_REVERSE)
+ return (remote_execdir = dir);
+ else
+ return EXEC_ERROR;
+}
+
+static void
+remote_doing_call (int starting)
+{
+ struct remote_state *rs = get_remote_state ();
+
+ if (starting)
+ strcpy (rs->buf, "QStartCall");
+ else
+ strcpy (rs->buf, "QEndCall");
+ remote_send (&rs->buf, &rs->buf_size);
+}
+
static void
init_remote_ops (void)
{
@@ -6157,11 +6211,14 @@ Specify the serial device it is connected to\n\
remote_ops.to_has_registers = 1;
remote_ops.to_has_execution = 1;
remote_ops.to_has_thread_control = tc_schedlock; /* can lock scheduler */
+ remote_ops.to_get_execdir = remote_get_execdir;
+ remote_ops.to_set_execdir = remote_set_execdir;
remote_ops.to_magic = OPS_MAGIC;
remote_ops.to_memory_map = remote_memory_map;
remote_ops.to_flash_erase = remote_flash_erase;
remote_ops.to_flash_done = remote_flash_done;
remote_ops.to_read_description = remote_read_description;
+ remote_ops.to_doing_call = remote_doing_call;
}
/* Set up the extended remote vector by making a copy of the standard
@@ -6294,7 +6351,8 @@ Specify the serial device it is connected to (e.g. /dev/ttya).";
remote_async_ops.to_memory_map = remote_memory_map;
remote_async_ops.to_flash_erase = remote_flash_erase;
remote_async_ops.to_flash_done = remote_flash_done;
- remote_ops.to_read_description = remote_read_description;
+ remote_async_ops.to_read_description = remote_read_description;
+ remote_async_ops.to_doing_call = remote_doing_call;
}
/* Set up the async extended remote vector by making a copy of the standard
diff --git a/gdb/reverse.c b/gdb/reverse.c
new file mode 100644
index 00000000000..29f7320c263
--- /dev/null
+++ b/gdb/reverse.c
@@ -0,0 +1,197 @@
+/* Reverse execution and reverse debugging.
+
+ Copyright (C) 2006 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
+
+#include "defs.h"
+#include "gdb_string.h"
+#include "target.h"
+#include "top.h"
+#include "cli/cli-cmds.h"
+#include "cli/cli-decode.h"
+
+/* User interface for reverse debugging:
+ Set exec-direction / show exec-direction commands
+ (returns error unles target implements to_set_execdir method). */
+
+static const char exec_forward[] = "forward";
+static const char exec_reverse[] = "reverse";
+static const char *exec_direction = exec_forward;
+static const char *exec_direction_names[] = {
+ exec_forward,
+ exec_reverse,
+ NULL
+};
+
+static void
+set_exec_direction_func (char *args, int from_tty,
+ struct cmd_list_element *cmd)
+{
+ if (target_get_execution_direction () != EXEC_ERROR)
+ {
+ enum exec_direction_kind dir = EXEC_ERROR;
+
+ if (!strcmp (exec_direction, exec_forward))
+ dir = EXEC_FORWARD;
+ else if (!strcmp (exec_direction, exec_reverse))
+ dir = EXEC_REVERSE;
+
+ if (target_set_execution_direction (dir) != EXEC_ERROR)
+ return;
+ }
+ error (_("Target `%s' does not support execution-direction."),
+ target_shortname);
+}
+
+static void
+show_exec_direction_func (struct ui_file *out, int from_tty,
+ struct cmd_list_element *cmd, const char *value)
+{
+ enum exec_direction_kind dir = target_get_execution_direction ();
+
+ switch (dir) {
+ case EXEC_FORWARD:
+ fprintf_filtered (out, "Forward.\n");
+ break;
+ case EXEC_REVERSE:
+ fprintf_filtered (out, "Reverse.\n");
+ break;
+ case EXEC_ERROR:
+ default:
+ error (_("Target `%s' does not support execution-direction."),
+ target_shortname);
+ break;
+ }
+}
+
+/* User interface:
+ reverse-step, reverse-next etc.
+ (returns error unles target implements to_set_execdir method). */
+
+static void execdir_default (void *notused)
+{
+ /* Return execution direction to default state. */
+ target_set_execution_direction (EXEC_FORWARD);
+}
+
+static void
+exec_reverse_once (char *cmd, char *args, int from_tty)
+{
+ /* String buffer for command consing. */
+ char reverse_command[512];
+ enum exec_direction_kind dir = target_get_execution_direction ();
+
+ if (dir == EXEC_ERROR)
+ error (_("Target %s does not support this command."), target_shortname);
+
+ if (dir == EXEC_REVERSE)
+ error (_("Already in reverse mode. Use '%s' or 'set exec-dir forward'."),
+ cmd);
+
+ if (target_set_execution_direction (EXEC_REVERSE) == EXEC_ERROR)
+ error (_("Target %s does not support this command."), target_shortname);
+
+ make_cleanup (execdir_default, NULL);
+ sprintf (reverse_command, "%s %s", cmd, args ? args : "");
+ execute_command (reverse_command, from_tty);
+}
+
+static void
+reverse_step (char *args, int from_tty)
+{
+ exec_reverse_once ("step", args, from_tty);
+}
+
+static void
+reverse_stepi (char *args, int from_tty)
+{
+ exec_reverse_once ("stepi", args, from_tty);
+}
+
+static void
+reverse_next (char *args, int from_tty)
+{
+ exec_reverse_once ("next", args, from_tty);
+}
+
+static void
+reverse_nexti (char *args, int from_tty)
+{
+ exec_reverse_once ("nexti", args, from_tty);
+}
+
+static void
+reverse_continue (char *args, int from_tty)
+{
+ exec_reverse_once ("continue", args, from_tty);
+}
+
+static void
+reverse_finish (char *args, int from_tty)
+{
+ exec_reverse_once ("finish", args, from_tty);
+}
+
+void
+_initialize_reverse (void)
+{
+ add_setshow_enum_cmd ("exec-direction", class_run, exec_direction_names,
+ &exec_direction, "Set direction of execution.\n\
+Options are 'forward' or 'reverse'.",
+ "Show direction of execution (forward/reverse).",
+ "Tells gdb whether to execute forward or backward.",
+ set_exec_direction_func, show_exec_direction_func,
+ &setlist, &showlist);
+
+ add_com ("reverse-step", class_run, reverse_step, _("\
+Step program backward until it reaches the beginning of another source line.\n\
+Argument N means do this N times (or till program stops for another reason).")
+ );
+ add_com_alias ("rs", "reverse-step", class_alias, 1);
+
+ add_com ("reverse-next", class_run, reverse_next, _("\
+Step program backward, proceeding through subroutine calls.\n\
+Like the \"reverse-step\" command as long as subroutine calls do not happen;\n\
+when they do, the call is treated as one instruction.\n\
+Argument N means do this N times (or till program stops for another reason).")
+ );
+ add_com_alias ("rn", "reverse-next", class_alias, 1);
+
+ add_com ("reverse-stepi", class_run, reverse_stepi, _("\
+Step backward exactly one instruction.\n\
+Argument N means do this N times (or till program stops for another reason).")
+ );
+ add_com_alias ("rsi", "reverse-stepi", class_alias, 0);
+
+ add_com ("reverse-nexti", class_run, reverse_nexti, _("\
+Step backward one instruction, but proceed through called subroutines.\n\
+Argument N means do this N times (or till program stops for another reason).")
+ );
+ add_com_alias ("rni", "reverse-nexti", class_alias, 0);
+
+ add_com ("reverse-continue", class_run, reverse_continue, _("\
+Continue program being debugged, running in reverse.\n\
+If proceeding from breakpoint, a number N may be used as an argument,\n\
+which means to set the ignore count of that breakpoint to N - 1 (so that\n\
+the breakpoint won't break until the Nth time it is reached)."));
+ add_com_alias ("rc", "reverse-continue", class_alias, 0);
+
+ add_com ("reverse-finish", class_run, reverse_finish, _("\
+Execute backward until just before selected stack frame is called."));
+}
diff --git a/gdb/target.c b/gdb/target.c
index b4857ca034d..b3e2a9d0013 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -466,6 +466,9 @@ update_current_target (void)
INHERIT (to_find_memory_regions, t);
INHERIT (to_make_corefile_notes, t);
INHERIT (to_get_thread_local_address, t);
+ INHERIT (to_get_execdir, t);
+ INHERIT (to_set_execdir, t);
+ INHERIT (to_doing_call, t);
/* Do not inherit to_read_description. */
INHERIT (to_magic, t);
/* Do not inherit to_memory_map. */
@@ -644,6 +647,9 @@ update_current_target (void)
de_fault (to_async,
(void (*) (void (*) (enum inferior_event_type, void*), void*))
tcomplain);
+ de_fault (to_doing_call,
+ (void (*) (int))
+ target_ignore);
current_target.to_read_description = NULL;
#undef de_fault
diff --git a/gdb/target.h b/gdb/target.h
index d9f1ca17cea..454193e0899 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -131,7 +131,11 @@ enum target_waitkind
inferior, rather than being stuck in the remote_async_wait()
function. This way the event loop is responsive to other events,
like for instance the user typing. */
- TARGET_WAITKIND_IGNORE
+ TARGET_WAITKIND_IGNORE,
+
+ /* The target has run out of history information,
+ and cannot run backward any further. */
+ TARGET_WAITKIND_NO_HISTORY
};
struct target_waitstatus
@@ -150,6 +154,14 @@ struct target_waitstatus
value;
};
+/* Reverse execution. */
+enum exec_direction_kind
+ {
+ EXEC_FORWARD,
+ EXEC_REVERSE,
+ EXEC_ERROR
+ };
+
/* Possible types of events that the inferior handler will have to
deal with. */
enum inferior_event_type
@@ -500,6 +512,13 @@ struct target_ops
was available. */
const struct target_desc *(*to_read_description) (struct target_ops *ops);
+ /* Set execution direction (forward/reverse). */
+ int (*to_set_execdir) (enum exec_direction_kind);
+ /* Get execution direction (forward/reverse). */
+ enum exec_direction_kind (*to_get_execdir) (void);
+
+ void (*to_doing_call) (int starting);
+
int to_magic;
/* Need sub-structure for target machine related rather than comm related?
*/
@@ -1194,6 +1213,18 @@ extern int target_stopped_data_address_p (struct target_ops *);
#define target_stopped_data_address_p(CURRENT_TARGET) (1)
#endif
+/* Forward/reverse execution direction.
+ These will only be implemented by a target that supports reverse execution.
+*/
+#define target_get_execution_direction() \
+ (current_target.to_get_execdir ? \
+ (*current_target.to_get_execdir) () : EXEC_ERROR)
+
+#define target_set_execution_direction(DIR) \
+ (current_target.to_set_execdir ? \
+ (*current_target.to_set_execdir) (DIR) : EXEC_ERROR)
+
+
extern const struct target_desc *target_read_description (struct target_ops *);
/* Routines for maintenance of the target structures...
diff --git a/gdb/testsuite/gdb.gdbtk/ChangeLog b/gdb/testsuite/gdb.gdbtk/ChangeLog
deleted file mode 100644
index 3360312e41b..00000000000
--- a/gdb/testsuite/gdb.gdbtk/ChangeLog
+++ /dev/null
@@ -1,339 +0,0 @@
-2007-02-08 Andreas Schwab <schwab@suse.de>
-
- * insight-support.exp (gdbtk_start): Return error status instead
- of aborting the whole testsuite run.
-
-2006-09-19 Keith Seitz <keiths@redhat.com>
-
- * Makefile.in: Change all instances of configure.in to refer to
- configure.ac.
-
-2005-01-27 Keith Seitz <keiths@redhat.com>
-
- * configure.in: Rename to ...
- * configure.ac: ... this.
- * configure: Regnerate.
-
-2004-07-19 Martin Hunt <hunt@redhat.com>
-
- * All: Updated load_lib calls to find new location
- of insight-support.exp.
-
-2004-07-16 Andrew Cagney <cagney@redhat.com>
-
- * insight-support.exp: Moved to here from ../lib.
-
-2003-02-28 Martin M. Hunt <hunt@redhat.com>
-
- * c_variable.test: Fix result for 6.22.
-
-2003-02-27 Martin M. Hunt <hunt@redhat.com>
-
- * cpp_variable.test: Major changes required because varobj_update
- now returns "-1" if a variable is out of scope.
-
- * c_variable.test: Major changes required because varobj_update
- now returns "-1" if a variable is out of scope. This fixes a bunch
- of XFAILS. Change bug reporting address.
-
- * windows.test: Remove HtmlViewer from list of windows.
-
- * srcwin.test: Use "list get" instead of "listget" to
- get contents of comboboxes.
- (2.1): Be less sensitive.
-
- * srcwin2.test: Use "list get" instead of "listget" to
- get contents of comboboxes
- (2-1.3): Accept assembly == mixed
- for no source tests.
-
- * srcwin3.test: Use "list get" instead of "listget" to
- get contents of comboboxes
-
-2002-09-09 Fred Fish <fnf@intrinsity.com>
-
- * simple.c: Pass addresses to strncpy, not chars.
-
-2002-04-26 Martin M. Hunt <hunt@redhat.com>
-
- * defs (gdbtk_test_done): Call gdbtk_force_quit.
-
-2002-04-26 Martin M. Hunt <hunt@redhat.com>
-
- * srcwin.test (click): Take a button number as an arg.
- Generate a ButtonPress event then a ButtonRelease event
- for that button number.
- (4.4): Fix args for click().
- (5.1): Fix results again.
-
-2002-03-07 Martin M. Hunt <hunt@redhat.com>
-
- * srcwin.test (5.1): Adjust line numbers to
- test now runs correctly.
-
-2002-01-18 Keith Seitz <keiths@redhat.com>
-
- * console.test: Don't rely on "event generate" to do
- keystrokes. It just doesn't work. Use the console window's
- "test" method instead.
- Use Console::test instead of Console::get_text.
-
-2002-01-15 Keith Seitz <keiths@redhat.com>
-
- * c_variable.test (1.4,2.14): Remove test for local frame
- variables. Varobj now forces evaluation in the current frame
- by default.
- (2.15): Ignore any changes and only check for out of scope
- locals (which is still unsupported).
- * cpp_variable.test (1.1): Support alternative names for
- local scope.
- (1.6a): Catch call to gdb_cmd to prevent an error from
- throwing testsuite into la-la land. Add to test.
- (1.7): Ignore results from children during step, since
- they may or may not change value when the parent changes.
- (2.2a): New test incorperating gdb_cmd (also wrapped in
- catch).
- (2.22a): Likewise.
- (2.71a): Likewise.
-
-2001-12-20 Keith Seitz <keiths@redhat.com>
-
- * cpp_variable.test: Catch non-test calls in case we
- could not run.
-
-2001-10-25 Keith Seitz <keiths@redhat.com>
-
- * defs (_report_error): Fix typo.
- (show_warning): Redefine the standard warning handler
- so that we don't end up stalling tests with a warning dialog.
-
- * windows.exp: New file.
- * windows.test: New file.
-
-2001-10-08 Keith Seitz <keiths@redhat.com>
-
- * c_variable.test (check_update): Forget about returning
- the "unchanged" list. It unneccessarily complicates things.
- Update all callers.
- * cpp_variable.test: Likewise.
-
-2001-08-30 Keith Seitz <keiths@redhat.com>
-
- * README: Update documentation to reflect recent changes.
- * browser.exp: Load the insight testsuite support library.
- * c_variable.exp: Likewise.
- * console.exp: Likewise.
- * cpp_variable.exp: Likewise.
- * srcwin.exp: Likewise.
-
-2001-08-16 Keith Seitz <keiths@redhat.com>
-
- * cpp_variable.test (2.29, 2.30, 2.43, 2.63, 2.72): Char
- pointers can now be dereferenced. Update test to reflect
- this change in varobj.
- * c_variable.test (4.9, 4.10, 4.47, 4.48, 5.1, 5.2, 5.3,
- 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 5.17, 5.18, 5.43, 5.44, 5.47,
- 5.48, 5.49, 5.50, 5.51, 5.53, 6.30): Likewise.
-
-2001-08-13 Jeff Holcomb <jeffh@redhat.com>
-
- * cpp_variable.test: Use gdbtk_test_run to start the test
- program.
-
-2001-05-07 Keith Seitz <keiths@cygnus.com>
-
- * README: New file.
-
- * configure.in: Check for executable filename extension.
- * Makefile.in: Add filename extensions.
- * configure: Regenerated.
-
- * defs: Fix typo setting _test(verbose).
- (gdbtk_test_file): New proc to load executables into gdbtk.
- (gdbtk_test_run): New proc to run executables on gdbtk.
- * browser.exp: Don't check if DISPLAY is set: let
- gdbtk_initialize_display do it all for us.
- Call gdbtk_done when finished with tests.
- * c_variable.exp: Ditto.
- * console.exp: Ditto.
- * cpp_variable.exp: Ditto.
- Only run tests if c++ is supported in the configuration.
- * srcwin.exp: Ditto the DISPLAY stuff.
- Accumulate all test results for the end and report them then.
-
- * browser.test: Use gdbtk_test_file and gdbtk_test_run
- to load and run an executable.
- * c_variable.test: Use gdbtk_test_file and gdbtk_test_run
- to load and run an executable.
- * srcwin.test: Ditto.
- * srcwin1.test: Ditto.
- * srcwin2.test: Ditto.
-
- * browser.test: (set_search_mode): Use "configure
- -value" not "entryset" to set the combobox's value. We need
- to have the command fired.
- (browser-3.5): Remove trailing whitespace which causes test to
- fail.
- (browser-4.4): Expect something rational. Regexp "\_1$" cannot
- match "func_10"!
- (browser-4.5): Ditto.
- (browser-5.12): Select all files for search to make test
- match description.
- (browser-6.2): Renamed from another test also calledd 6.1.
- (browser-7.1): Delete all breakpoints at once without from_tty.
- Select all entries in the comobox before invoking BP set/delete
- button.
- (browser-7.2): Ditto.
-
- * list0.c, list1.c, list0.h: New files. Grabbed from gdb.base.
- * srcwin.exp: Use these local files instead of those in gdb.base.
-
-1999-09-17 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * cpp_variable.test: Add test (2.75) to verify
- that a baseclass member value was effectively changed.
-
-1999-09-17 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * cpp_variable.test: Update for new variable
- code.
-
-1999-09-17 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * c_variable.test: Update for new variable code.
-
-1999-09-17 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * cpp_variable.h (class V): Add type to virtual function
- declaration.
-
-1999-06-08 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * browser.exp: Use untested and not warning when DISPLAY is
- not found.
- * c_variable.exp: Same.
- * console.exp: Same.
- * cpp_variable.exp: Same.
- * srcwin.exp: Same.
-
-1999-04-12 Keith Seitz <keiths@cygnus.com>
-
- * cpp_variable.exp: Pass the "c++" flag to gdb_compile so
- that it can grab the right compiler.
-
-1999-03-16 Martin Hunt <hunt@cygnus.com>
-
- * srcwin.test (srcwin-4.5): Change variable name
- to $b so test will run again.
-
-1999-03-03 James Ingham <jingham@cygnus.com>
-
- * browser.test: Fixed up to match the new function browser.
- This is not done yet...
-
- * srcwin.test: Check for errors when the bbox is called for a text
- item that is not on screen (so bbox is ""). Return something more
- useful.
-
-1999-03-01 James Ingham <jingham@cygnus.com>
-
- Changelog entries merged over from gdb development branch.
-
- 1999-01-12 Martin Hunt <hunt@cygnus.com>
- * srcwin.test: Add a bunch of tests for the source
- window filename and function comboboxes. Add in stack tests.
-
- 1999-01-11 Martin Hunt <hunt@cygnus.com>
- * srcwin.test: New file. Source Window tests.
- * srcwin.exp: New file. Source Window tests.
-
- Wed Jan 6 09:22:52 1999 Keith Seitz <keiths@cygnus.com>
- * c_variable.test (c_variable-1.9): Add new
- test to check for creation of a variable that is really a type.
- (c_variable-7.81): Use "output" instead of "print" to get PC.
- Include missing bits of test.
-
- * cpp_variable.test (cpp_variable-1.6): Default format
- is now "natural", not "hexadecimal"
- (cpp_variable-2.22): Ditto.
- (cpp_variable-2.24): Force format to hex before getting value.
-
- * cpp_variable.exp: Supply missing arg to gdbtk_analyze_results.
-
- Tue Jan 5 12:40:52 1999 Keith Seitz <keiths@cygnus.com>
- * gdb.gdbtk/c_variable.c, c_variable.test, c_variable.exp: New C
- language tests for variable object interface.
-
- * gdb.gdbtk/cpp_variable.h, cpp_variable.cc, cpp_variable.test,
- cpp_variable.exp: New C++ language tests for variable object
- interface.
-
- * gdb.gdbtk/Makefile.in (EXECUTABLES): Add c_variable and cpp_variable.
-
- Tue Jan 5 12:33:47 1999 Keith Seitz <keiths@cygnus.com>
- lib/gdb.exp (gdbtk_analyze_results): Generic function
- for outputting results of test run.
-
- * gdb.gdbtk/defs (gdbtk_test): Handle xpass and xfail.
- (gdbtk_test_error): New proc which handles error aborts.
-
- * gdb.gdbtk/console.exp: Use gdbtk_analyze_results.
- Check if we have a valid DISPLAY before running.
- * gdb.gdbtk/browser.exp: Ditto.
-
- 1998-12-07 Martin M. Hunt <hunt@cygnus.com>
- * lib/gdb.exp (gdbtk_start): Fix path for itcl library.
- * gdb.gdbtk/browser.test: Change "manage open" to ManagedWin::open.
- * gdb.gdbtk/console.test: Same.
- * gdb.gdbtk/*: Update from devo.
-
- Fri Jul 24 14:57:19 1998 Keith Seitz <keiths@cygnus.com>
- * gdb.gdbtk/Makefile.in: Add new example program "stack".
- * gdb.gdbtk/browser.test,browser.exp: Add browser window
- tests.
- * gdb.gdbtk/stack1.c,stack2.c: Test case for browser window.
-
-1999-02-22 Martin Hunt <hunt@cygnus.com>
-
- * srcwin.test (move_mouse_to): Fix typo.
-
-1999-02-03 Martin Hunt <hunt@cygnus.com>
-
- * console.test (clear_command_line): Add tests 1.5 - 1.8,
- which test the new Shift-Up and Shift-Down bindings.
-
-1999-02-01 Martin Hunt <hunt@cygnus.com>
-
- * srcwin.test (srcwin-4.3): Fix bp test.
-
-1999-01-29 Martin Hunt <hunt@cygnus.com>
-
- * srcwin.test (click): New function that generates an event
- at a location.
- (srcwin-4.4): New test. Simulate a click on a line and
- check for breakpoint set.
- (srcwin-4.5): New test. Right-click on a line and select "Continue
- to Here" from popup.
-
- * srcwin.exp: Source srcwin3.test, which will test source window
- assembly debugging on executables built without "-g".
-
-1999-01-29 Martin Hunt <hunt@cygnus.com>
-
- * srcwin.exp: Add srcwin2.test, which are basically the same
- tests as srcwin.test, but run with a missing source file.
-
- * srcwin2.test: New file.
-
- * srcwin.test: Add tests for setting breakpoints in the source window,
- testing BP balloons, variable balloons, and mixed-mode disassembly
- of include files.
-
-Sun Jun 28 22:34:34 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * gdb.gdbtk/simple.c (main): Make main return an
- int so compiler will stop complaining.
-
-Fri Jun 26 14:27:13 1998 Keith Seitz <keiths@cygnus.com>
-
- * gdb.gdbtk/console.{exp, test}: New console window tests.
diff --git a/gdb/testsuite/gdb.gdbtk/Makefile.in b/gdb/testsuite/gdb.gdbtk/Makefile.in
deleted file mode 100644
index 4df262ac964..00000000000
--- a/gdb/testsuite/gdb.gdbtk/Makefile.in
+++ /dev/null
@@ -1,36 +0,0 @@
-VPATH = @srcdir@
-srcdir = @srcdir@
-
-EXEEXT = @EXEEXT@
-
-EXECUTABLES = simple$(EXEEXT) stack$(EXEEXT) c_variable$(EXEEXT) \
- cpp_variable$(EXEEXT)
-
-# uuencoded format to avoid SCCS/RCS problems with binary files.
-CROSS_EXECUTABLES =
-
-all:
- @echo "Nothing to be done for all..."
-
-info:
-install-info:
-dvi:
-install:
-uninstall: force
-installcheck:
-check:
-
-clean mostlyclean:
- -rm -f *~ *.o a.out xgdb *.x $(CROSS_EXECUTABLES) *.ci *.tmp
- -rm -f core core.coremaker coremaker.core corefile $(EXECUTABLES)
- -rm -f twice-tmp.c
-
-distclean maintainer-clean realclean: clean
- -rm -f *~ core
- -rm -f Makefile config.status config.log
- -rm -f arch.inc
- -rm -f *-init.exp
- -rm -fr *.log summary detail *.plog *.sum *.psum site.*
-
-Makefile : $(srcdir)/Makefile.in $(srcdir)/configure.ac
- $(SHELL) ./config.status --recheck
diff --git a/gdb/testsuite/gdb.gdbtk/README b/gdb/testsuite/gdb.gdbtk/README
deleted file mode 100644
index b70488647b4..00000000000
--- a/gdb/testsuite/gdb.gdbtk/README
+++ /dev/null
@@ -1,421 +0,0 @@
- The Insight Testsuite
- ---------------------
- Keith Seitz (keiths@cygnus.com)
- May 1, 2001
-
-RUNNING THE TESTSUITE
-
-The Insight testsuite is run in much the same way that gdb's testsuites
-are run. The one big difference is the environment variable GDB_DISPLAY,
-which governs what display should be used for the tests.
-
-When GDB_DISPLAY is not set in the user's environment, the Insight testsuite
-will attempt to run Xvfb, an X server with a virtual frame buffer. Using
-Xvfb, the testsuite can run without interuppting the user.
-
-When Xvfb is not available, the testsuite will mark the Insight tests
-"untested" and print out some appropriate warning to the testsuite log
-file.
-
-If GDB_DISPLAY is set in the user's environment, the testsuite will attempt
-to use this display for the tests. If this display is a desktop display,
-it is very likely that any interaction between the user and his desktop
-will interfere with the tests. Some tests warp the cursor, i.e., they
-force the mouse to move on the screen. If you don't want this to happen to
-you, put Xvfb in your path.
-
-On Cygwin systems, Xvfb is not supported. Only two choices are available in
-this environment: run the testsuites using the desktop or do not run the
-testsuite. To run the testsuite on Cygwin, just define the environment
-variable GDB_DISPLAY to anything.
-
-The examples below summarize the usage of the environment variable GDB_DISPLAY
-on unix/X-Windows hosts and Cygwin hosts. In all examples, assume that DISPLAY
-set to the local workstation's main display (:0).
-
-To run the testsuite using Xvfb -- unix only (Xvfb must be in PATH):
-$ make check
-
-To run the testsuite using a given display (either the desktop or a peviously
-started Xvfb):
-$ GDB_DISPLAY=$DISPLAY make check
-
-To run the testsuite on Cygwin:
-$ GDB_DISPLAY=foo make check
-
-
-TESTSUITE INFRASTRUCTURE
-
-The rest of this document deals with writing tests for Insight. This reading
-is only noteworthy for developers and contributors.
-
-The Insight testsuite consists of two large portions of code: code which is
-run in dejagnu and code which runs in Insight's built-in Tcl interpreter. Files
-containing dejagnu code (those files ending in ".exp" in the testsuite directory)
-are "glue code" between gdb's dejagnu testsuite and Insight's Tcl testsuite.
-
-Dejagnu testsuite files are considered "drivers" for any particular set of
-tests, since they allow dejagnu to control Insight's Tcl testsuite.
-
-
-Dejagnu Testsuite Infrastructure
-
-The dejagnu code is responsible for doing several things. Some of the more
-important responsibilities include:
-
-o Initializing the display
-o Determining if tests should be run
-o Results accounting
-o Compiling testcases in various languages
-o Repoting results to gdb's testsuite
-
-There are various functions defined to facilitate the writing of tests. These
-functions currently reside in gdb's gdb.exp (src/gdb/testsuite/lib/gdb.exp) and
-include:
-
-Pulic functions:
-proc gdbtk_initialize_display {}
-
- gdbtk_initialize_display should be the first function called from the
- (dejagnu) test file. It initializes the DISPLAY variable on unix systems
- and determines (for all host systems) whether or not the testsuite should
- run. It returns 1 if the test should run. If tests should not run, it
- marks the test as "untested" and leaves a suitable message about why
- the test should not run. If gdbtk_initialize_display returns zero, a test
- should simply exit.
-
-proc gdbtk_start {test}
-
- This function marks the start of a test and will execute Insight for
- testing. The TEST parameter should be the file name of the Tcl test
- file to load into Insight's Tcl interpreter. It returns a list of
- test results suitable for passing to gdbtk_done or gdbtk_analyze_results.
- See gdbtk_analyze_results for more information on the format of results.
-
- gdbtk_start is responsible for communicating target startup information
- to Insight, so that Insight's testsuite may be run on any target supported
- by gdb. It does this by setting several environment variables just before
- it starts Insight. These environment variables are:
-
- OBJDIR
- The object directory of the dejagnu testsuite (i.e.,
- objdir/gdb/testsuite).
- SRCDIR
- The dejagnu source directory in which the tests are located (i.e,
- src/gdb/testsuite)
- SUBDIR
- The dejagnu testsuite subdirectory for the test (i.e., gdb.gdbtk)
- DEFS
- The location of the testsuite definitions file (i.e.,
- src/gdb/testsuite/gdb.gdbtk/defs)
-
- Note that DEFS is converted to abs$lute tcl-style paths. On unix,
- this means that DEFS would point to, for example,
- /home/keiths/insight/src/gdb/testsuite/gdb.gdbtk/defs. On Cygwin it
- would point to C:/cygwin/home/keiths/insight/src/gdb/testsuite/gdb.gdbtk/defs.
- This is because of a descrepency between Cygwin's posix paths and Tcl's
- not-quite-posix paths.
-
-proc gdbtk_analyze_results {results}
- This function translates the list of results in RESULTS into dejagnu
- results, reporting the number of failures, errors, passes, and expected
- failures and passes. It currently does not deal with "untested" and other
- test statuses from dejagnu since Insight's tcl testsuite does not
- issue such results.
-
- The format of the results expected by gdbtk_analyze_results is simple:
- it is a list of {status name description msg}. "status" is the execution
- status of one of the tcl tests run. This can be "PASS", "FAIL", "ERROR",
- "XFAIL", or "XPASS".
-
- "name" is the name of the test, and it is reported in all testsuite
- results in dejagnu. This speeds location of the failing test. This
- "name" may also be given to Insight's testsuite, telling it to
- only run this test. See "do_tests" in Tcl Testsuite Infrastructure
- for more information.
-
- "description" is a textual description of the test given by "name".
-
- "msg" is currently not used.
-
-proc gdbtk_done {{results {}}}
- gdbtk_done takes any RESULTS and passes it gdbtk_analyze_results for
- outputting to the dejagnu part of the testsuite. It may be called
- without an argument, in which case it will only terminate Xvfb if it
- was started. Tests must call gdbtk_done _once_ at the end of their
- test drivers.
-
-Private functions:
-proc _gdbtk_export_target_info
- This functin exports information about the target into the environment
- so that Insight's testsuite may run programs on any supported gdb
- target. This target information is passed into the Tcl testsuite
- via an environment variable, TARGET_INFO, which is really a Tcl array,
- i.e., the array is constructed in tcl and exported into the environment
- with Tcl's "array get" command).
-
- There are four elements to the array:
- TARGET_INFO(init) - (optional) A list of commands to execute in gdb
- to initialize the session. This usually includes
- setting baud rates and remote protocol options.
- TARGET_INFO(target) - (required) The complete "target" command to connect
- to the given target.
- TARGET_INFO(load) - (optional) The complete "load" command to load an
- executable into a target.
- TARGET_INFO(run) - (required) The complete "run" command, sans arguments,
- to start a process on the target. For remote targets,
- this is usually just "continue".
-
-proc _gdbtk_xvfb_init
- This procedure actually determines whether the an Insight test should
- run and what DISPLAY it should use for that test. It is called by
- gdbtk_initialize_display to do most of the dirty work.
-
- It has a simple heuristic: If GDB_DISPLAY is not set and Xvfb is available
- (on unix), it starts Xvfb, using the current process id as the screen number.
- If Xvfb is not available and GDB_DISPLAY was not set, it skips the tests.
-
-proc _gdbtk_xvfb_exit
- _gdbtk_xvfb_exit will kill any previously started Xvfb.
-
-Private globals:
-global _xvfb_spawn_id
- This variable holds the spawn_id of any Xvfb process started
- by the testsuite (or it is left undefined).
-
-global _using_windows
- A global variable which indicates whether the testsuite is running
- on cygwin. Unfortunately, as of writing, the global variable
- tcl_platform(platform) is "unix" on Cygwin, so it is not possible
- to rely on this for platform-dependent operations.
-
- Instead, this variable is set by gdbtk_initialize_display. The test
- it uses to determine if Cygwin is being used: it looks for the program
- cygpath in the PATH. Therefore, cygpath is REQUIRED to run the testsuite
- on Cygwin. (gdbtk_start also uses cygpath to determine Windows
- pathnames for Cygwin.)
-
-
-Testsuite Driver Basics
-
-Given the above interfaces for connecting Insight's Tcl testsuite and
-gdb's dejagnu testsuite, the basic testsuite driver file should look
-(minimally) like this:
-
-File: mytest.exp
-1 load_lib "insight-support.exp"
-2 if {[gdbtk_initialize_display]} {
-3 # We found a display to use
-4 gdb_exit; # Make sure any previous gdb is gone
-5 set results [gdbtk_start mytest.test]
-6
-7 # Done!
-8 gdbtk_done [split $results \n]
-9 }
-
-Line 1 loads the insight testsuite support library which contains definitions
-for all the procedures used in dejagnu to initialize and run the Insight testsuite.
-Line 2 calls gdbtk_initialize_display to ascertain whether there is a display
-to use for the test. This could use an existing display (if GDB_DISPLAY is
-set in the environment) or gdbk_initialize_display could startup an Xvfb
-for use by the testsuite.
-
-Line 4 forces any previously executing gdb to terminate.
-
-Line 5 signals the start of the test run. "mytest.test" is the name of the
-Tcl test file to execute in Insight's built-in Tcl interpreter. The output
-of gdbtk_start_test is all of the results of the Tcl test from Insight, which
-is subsequently passed to gdbk_analyze_results via gdbtk_done on Line 8.
-
-Note how nothing happens if gdbtk_initialize_display returns false.
-
-
-Tcl Testsuite Infrastructure
-
-The heart of Insight's testsuite is its Tcl testsuite. It is these tests
-which run directly in Insight's Tcl interpreter and allow test writers
-access to Insight's internals. Tcl testsuite files have the filename suffix
-".test" to distinguish them from their driver files, which end in ".exp".
-
-The design of the Insight Tcl testsuite parallels Tcl's testsuite. It has
-many powerful features, including the ability to run ANY test in a given
-Tcl test file. See the description of utility routines below for more
-information about running any set of tests from a file.
-
-The bulk of the code implementing the Tcl testsuite infrastructure in
-Insight is contained in the testsuite definitions file, "defs", located
-in src/gdb/testsuite/gdb.gdbtk. This file contains routines necessary
-to write tests for Insight.
-
-Public functions:
-proc gdbtk_read_defs {}
- This function, located in Insight's core Tcl library, attempts to load
- the testsuite definitions file. If it fails, it will either pop up
- a dialog box with the error (if running interactively) or it will
- print the error to stderr and exit (if running non-interactively).
-
- If successful, it will return true.
-
-proc gdbtk_test_file {filename}
- This function is used to load the file given by FILENAME into
- Insight. It will automatically append ".exe" to any FILENAME
- on Cygwin-hosted systems.
-
- If successful, it will load the given file into Insight and
- return the output of gdb's file command. It will call "error"
- if it was succesful, therefore all calls to "gdbtk_test_file"
- should be called using "catch".
-
- Test authors should not use "gdb_cmd {file FILENAME}" to load
- files into gdb unless they are testing interface code between
- gdb and Insight.
-
-proc gdbtk_test_run {{prog_args {}}}
- gdbtk_test_run runs the previoiusly loaded executable, passing
- the given arguments to the inferior. Like Insight's Run button,
- it will do whatever is necessary to get the executable running,
- including any target initialization (setting baud rate and remote
- protocol options), downloading the executable to the target, and
- finally starting execution.
-
- Test authors should NEVER use "gdb_cmd {run ARGUMENTS}" to run an
- executable. Doing so will insure that your tests will only run on
- a native debugger.
-
- It returns true if successful or false otherwise. It will report
- the error in a dialog box (if running interactively) or it will
- print the error to stderr.
-
-proc gdbtk_test {name description script answer}
- This is Tcl testsuite equivalent of "expect". "name" is a canonical
- name of the test, usually of the form "shortname-major.minor". This is
- the name that is used when running selected tests from a given file.
- If "name" starts with an asterisk (*), it designates that the test
- is expected to fail.
-
- "description" is a short textual description of the test to help
- humans understand what it does.
-
- "script" is the actual test script to run. The result of this script
- will be compared against "answer" to determine if the test passed
- or failed.
-
- It calls gdbtk_print_verbose to print out the results to the terminal
- (if running interactively) or to the log file.
-
-proc gdbtk_test_done {}
- gdbtk_test_done is called at the very end of all tcl tests. It is used
- to exit Insight and return control back to the dejagnu driver which
- started the tests.
-
-proc gdbtk_dotests {file args}
- Obsolete.
-
-proc do_test {{file {}} {verbose {}} {tests {}}}
- This procedure is used to invoke the Insight test(s) given in FILE
- which match the regular expression(s) in TESTS. This is invoked
- from Insight's console window to run tests interactively.
-
- VERBOSE sets the verbosity of the test run. When set to one,
- the testsuite will report all results in human readable form.
- When set greater than one, it will print out results as a list,
- i.e., for passing to gdbtk_analyze_results. If zero, it will only
- print errors and failures in human readable form.
-
-Public global variables:
-objdir - The objdir from dejagnu. See gdbtk_start for more information.
-srcdir - The srcdir from dejagnu. See gdbtk_start for more information.
-test_ran - Indicates whether the last test ran or not. See example below.
-
-Private functions:
-proc gdbtk_test_error {desc}
- An internal function used to report a framework error in the testsuite.
- "desc" is a description of the error. It calls gdbtk_test_done.
-
-proc gdbtk_print_verbose {status name description script code answer}
- A helper procedure to gdbtk_test which prints out results to the terminal
- or the logfile (or both or none).
-
-Private global variables:
-_test - An array used by the testsuite internals.
-
-
-Tcl Test Basics
-
-Armed with the basic interface described above, it is possible to test Insight's
-GUI. Please do not write tests which attempt to imitate a user (moving the
-mouse and clicking buttons), unless there is no other way to test the functionality.
-
-The basic test file (with one test) looks like this (nonsensical one):
-File: mytest.test
-1 if {![gdbtk_read_defs]} {
-2 break
-3 }
-4
-5 global objdir test_ran
-6 set program [file join $objdir mytest]
-7 if {[catch {gdbtk_test_file $program} t]} {
-8 gdbtk_test_error "loading \"$program\": $t"
-9 }
-10 if {![gdbtk_test_run]} { exit 1 }
-11
-12 global foo
-13 set foo 1
-14
-15 # Test: mytest-1.1
-16 # Desc: check if a source window was created
-17 gdbtk_test mytest-1.1 {source window created} {
-18 set window [ManagedWin::find SrcWin]
-19 llength $window
-20 set foo 13
-21 } {1}
-22
-23 if {$test_ran} {
-24 set foo 1
-25 }
-26
-27 # Done
-28 gdbtk_test_done
-
-Line 1 calls the Inisght function gdbtk_read_defs to read in the testsuite
-definitions file.
-
-Line 6 then specifies the name of a file (mytest) in the object directory
-which is loaded into gdb on Line 7. If loading the file into Insight
-failed, gdbtk_test_error is called to publish the error (and terminate the
-test run for this file).
-
-Line 10 runs the executable on the target, and exits if it was unable
-to do so.
-
-Line 13 simply sets a global variable foo to illustrate the purpose
-of the global "test_ran". Before the test "mytest-1.1" runs, foo is set to
-one. In order to support running specific tests, the state of the debugger
-cannot be altered INSIDE gdbtk_test scripts, since the contents of the
-script may not be run if the user requested only a specific test to run.
-
-Line 20 in the middle of the test modifies the global foo. If subsequent
-test relied on foo being one, we would have a state violation, since
-mytest-1.1 may have (or may have not) run.
-
-Therefore, we can check if a test ran and reset foo by checking the
-global "test_ran". If set, we know that the previous test (mytest-1.1)
-was run, and that foo is now thirteen. We reset the result back to one.
-
-(Aside: Some tests do not follow this rule explicitly: they can assume
-that all tests run sequentially. In these cases, running a specific
-test in the file will probably fail, since the debugger is not brought
-to a known state along the way.)
-
-Lines 17-21 contain the actual test. The test's name is "mytest-1.1". It
-is this name that may be referred to when asking the testsuite to run
-a specific test. The description of this test is "source window created",
-indicating that mytest-1.1's purpose is to check whether a source window
-was created.
-
-If gdbtk_test determines that this test is to run, it will execute the
-next part, lines 18-20, and compare the output of that script (llength
-$window) with "1". If the result is not "1", a failure is recorded. If
-it is "1", a pass is recorded.
-
-Finally, the test file is done and exits on line 28.
diff --git a/gdb/testsuite/gdb.gdbtk/browser.exp b/gdb/testsuite/gdb.gdbtk/browser.exp
deleted file mode 100644
index 475bdb506a1..00000000000
--- a/gdb/testsuite/gdb.gdbtk/browser.exp
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 1998, 1999, 2001, 2004 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-load_lib ../gdb.gdbtk/insight-support.exp
-
-if {[gdbtk_initialize_display]} {
- if {$tracelevel} {
- strace $tracelevel
- }
-
- #
- # test browser window
- #
- set prms_id 0
- set bug_id 0
-
- set testfile "stack"
- set binfile ${objdir}/${subdir}/${testfile}
- set r [gdb_compile "${srcdir}/${subdir}/stack1.c ${srcdir}/${subdir}/stack2.c" "${binfile}" executable {debug}]
- if { $r != "" } {
- gdb_suppress_entire_file \
- "Testcase compile failed, so some tests in this file will automatically fail."
- }
-
- # Start with a fresh gdbtk
- gdb_exit
- set results [gdbtk_start [file join $srcdir $subdir browser.test]]
- set results [split $results \n]
-
- # Analyze results
- gdbtk_done $results
-}
diff --git a/gdb/testsuite/gdb.gdbtk/browser.test b/gdb/testsuite/gdb.gdbtk/browser.test
deleted file mode 100644
index 9e358dab1a5..00000000000
--- a/gdb/testsuite/gdb.gdbtk/browser.test
+++ /dev/null
@@ -1,686 +0,0 @@
-# Browser Window Tests
-# Copyright 1998, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# This file was written by Keith Seitz (keiths@cygnus.com)
-
-# Read in the standard defs file
-
-if {![gdbtk_read_defs]} {
- break
-}
-
-global objdir test_ran
-set _files(stupid_initializer) -100
-
-##### #####
-# #
-# Helper functions for this module #
-# #
-##### #####
-
-# Set the search expression
-proc set_regexp {exp} {
- global browser
-
- $browser component filt_entry delete 0 end
- $browser component filt_entry insert 0 $exp
-}
-
-# Do the search
-proc do_search {} {
- global browser
- $browser search
- set m [$browser component func_box get 0 end]
-
- return $m
-}
-
-# Set search to use regular expressions.
-proc set_search_mode {val} {
- global browser
- pref set gdb/search/filter_mode $val
-
- # Use configure instead of entryset: need to have
- # combobox's command fire
- $browser component filt_type configure -value $val
-}
-
-# Highlight a file
-proc select {filename} {
- global browser _files
-
- if {[info exists _files($filename)]} {
- $browser component file_box selection set $_files($filename)
- } else {
- set files [$browser component file_box get 0 end]
- set i [lsearch $files $filename]
- set _files($filename) $i
- $browser component file_box selection set $i
- }
- $browser search
-}
-
-proc select_all {} {
- global browser
-
- $browser component file_all invoke
-
-}
-
-# clear all files
-proc clear {} {
- global browser
-
- $browser component file_box selection clear 0 end
- $browser search
-}
-
-##### #####
-# #
-# BROWSER TESTS #
-# #
-##### #####
-
-# Load the test executable
-set program [file join $objdir stack]
-if {[catch {gdbtk_test_file $program} t]} {
- # This isn't a test case, since if this fails, we're hosed.
- gdbtk_test_error "loading \"$program\": $t"
-}
-
-# Open a browser
-set browser [ManagedWin::open BrowserWin]
-
-# Test: browser-1.1
-# Desc: Check file listbox contents
-gdbtk_test browser-1.1 {file listbox contents} {
- set m [$browser component file_box get 0 end]
- set f {}
- if {[lsearch $m stack1.c] == -1} {
- lappend f 0
- } else {
- lappend f 1
- }
- if {[lsearch $m stack2.c] == -1} {
- lappend f 0
- } else {
- lappend f 1
- }
-
- join $f \
-} {1 1}
-
-# Tests 2.* test starts with search mode.
-# Test: browser-2.1
-# Desc: Check all files/all funcs
-gdbtk_test browser-2.1 {all files/all funcs} {
- set_search_mode "starts with"
- set_regexp ""
- select_all
- set m [do_search]
- set r 0
- foreach f {extern_func1_1 extern_func1_10 extern_func1_11 extern_func1_12 \
- extern_func1_13 extern_func1_14 extern_func1_15 extern_func1_2 \
- extern_func1_3 extern_func1_4 extern_func1_5 extern_func1_6 \
- extern_func1_7 extern_func1_8 extern_func1_9 func_1 \
- func_10 func_11 func_12 func_13 \
- func_14 func_15 func_2 func_3 \
- func_4 func_5 func_6 func_7 \
- func_8 func_9 main static_func_1 \
- static_func_10 static_func_11 static_func_12 static_func_13 \
- static_func_14 static_func_15 static_func_2 static_func_3 \
- static_func_4 static_func_5 static_func_6 static_func_7 \
- static_func_8 static_func_9} {
- if {[lsearch $m $f] != -1} {
- incr r
- }
- }
-
- set r
-} {46}
-
-# Test: browser-2.2
-# Desc: Check all functions in stack1.c
-gdbtk_test browser-2.2 {all functions in stack1.c} {
- set_regexp ""
- clear
- select stack1.c
- set m [do_search]
-
- set r 0
- foreach f {func_1 func_10 func_11 func_12 \
- func_13 func_14 func_15 func_2 \
- func_3 func_4 func_5 func_6 \
- func_7 func_8 func_9 main \
- static_func_1 static_func_10 static_func_11 static_func_12 \
- static_func_13 static_func_14 static_func_15 static_func_2 \
- static_func_3 static_func_4 static_func_5 static_func_6 \
- static_func_7 static_func_8 static_func_9} {
- if {[lsearch $m $f] != -1} {
- incr r
- }
- }
-
- set r
-} {31}
-if {$test_ran} {
- clear
-}
-
-# Test: browser-2.3
-# Desc: Check all functions in stack2.c
-gdbtk_test browser-2.3 {all functions in stack2.c} {
- set_regexp ""
- clear
- select stack2.c
- set m [do_search]
-
- set r 0
- foreach f {extern_func1_1 extern_func1_10 extern_func1_11 \
- extern_func1_12 extern_func1_13 extern_func1_14 extern_func1_15 \
- extern_func1_2 extern_func1_3 extern_func1_4 extern_func1_5 \
- extern_func1_6 extern_func1_7 extern_func1_8 extern_func1_9} {
- if {[lsearch $m $f] != -1} {
- incr r
- }
- }
-
- set r
-} {15}
-if {$test_ran} {
- clear
-}
-
-# Test: browser-2.4
-# Desc: Check for all functions matching "func" - mode starts with
-gdbtk_test browser-2.4 {all functions matching "func" - "mode starts with"} {
- set_search_mode "starts with"
- select_all
- set_regexp func
- do_search
-} {func_1 func_10 func_11 func_12 func_13 func_14 func_15 func_2 func_3 func_4 func_5 func_6 func_7 func_8 func_9}
-
-# Test: browser-2.5
-# Desc: Check all functions matching "func" in stack1.c - mode starts with
-gdbtk_test browser-2.5 {all functions matching "func" in stack1.c - "mode starts with"} {
- set_search_mode "starts with"
- set_regexp func
- clear
- select stack1.c
- do_search
-} {func_1 func_10 func_11 func_12 func_13 func_14 func_15 func_2 func_3 func_4 func_5 func_6 func_7 func_8 func_9}
-
-# Test: browser-2.6
-# Desc: Check all functions matching "funcs" in stack2.c - mode starts with
-gdbtk_test browser-2.6 {all functions matching "func" in stack2.c - mode "starts with"} {
- set_search_mode "starts with"
- set_regexp func
- clear
- select stack2.c
- do_search
-} {}
-if {$test_ran} {
- clear
-}
-
-# Test: browser-2.7
-# Desc: Check all functions matching "foobar"
-gdbtk_test browser-2.7 {all functions matching "foobar"} {
- set_search_mode "starts with"
- select_all
- set_regexp foobar
- do_search
-} {}
-
-# Test: browser-2.8
-# Desc: Check all functions matching "foobar" in stack1.c
-gdbtk_test browser-2.8 {functions matching "foobar" in stack1.c} {
- set_search_mode "starts with"
- set_regexp foobar
- clear
- select stack1.c
- do_search
-} {}
-
-# Tests 3.* test "contains" search mode.
-# Test: browser-3.1
-# Desc: Check all files/all funcs
-gdbtk_test browser-3.1 {all files/all funcs} {
- set_search_mode "contains"
- set_regexp ""
- select_all
- set m [do_search]
- set r 0
- foreach f {extern_func1_1 extern_func1_10 extern_func1_11 extern_func1_12 \
- extern_func1_13 extern_func1_14 extern_func1_15 extern_func1_2 \
- extern_func1_3 extern_func1_4 extern_func1_5 extern_func1_6 \
- extern_func1_7 extern_func1_8 extern_func1_9 func_1 \
- func_10 func_11 func_12 func_13 \
- func_14 func_15 func_2 func_3 \
- func_4 func_5 func_6 func_7 \
- func_8 func_9 main static_func_1 \
- static_func_10 static_func_11 static_func_12 static_func_13 \
- static_func_14 static_func_15 static_func_2 static_func_3 \
- static_func_4 static_func_5 static_func_6 static_func_7 \
- static_func_8 static_func_9} {
- if {[lsearch $m $f] != -1} {
- incr r
- }
- }
-
- set r
-} {46}
-
-# Test: browser-3.2
-# Desc: Check all functions in stack1.c
-gdbtk_test browser-3.2 {all functions in stack1.c} {
- set_regexp ""
- set_search_mode "contains"
- clear
- select stack1.c
- set m [do_search]
-
- set r 0
- foreach f {func_1 func_10 func_11 func_12 \
- func_13 func_14 func_15 func_2 \
- func_3 func_4 func_5 func_6 \
- func_7 func_8 func_9 main \
- static_func_1 static_func_10 static_func_11 static_func_12 \
- static_func_13 static_func_14 static_func_15 static_func_2 \
- static_func_3 static_func_4 static_func_5 static_func_6 \
- static_func_7 static_func_8 static_func_9} {
- if {[lsearch $m $f] != -1} {
- incr r
- }
- }
-
- set r
-} {31}
-
-if {$test_ran} {
- clear
-}
-
-# Test: browser-3.3
-# Desc: Check all functions in stack2.c
-gdbtk_test browser-3.3 {all functions in stack2.c} {
- set_regexp ""
- set_search_mode "contains"
- clear
- select stack2.c
- set m [do_search]
-
- set r 0
- foreach f {extern_func1_1 extern_func1_10 extern_func1_11 \
- extern_func1_12 extern_func1_13 extern_func1_14 extern_func1_15 \
- extern_func1_2 extern_func1_3 extern_func1_4 extern_func1_5 \
- extern_func1_6 extern_func1_7 extern_func1_8 extern_func1_9} {
- if {[lsearch $m $f] != -1} {
- incr r
- }
- }
-
- set r
-} {15}
-if {$test_ran} {
- clear
-}
-
-# Test: browser-3.4
-# Desc: Check for all functions matching "func" - mode contains
-gdbtk_test browser-3.4 {all functions matching "func_1" - "mode contains"} {
- set_search_mode "contains"
- set_regexp "func_1"
- select_all
- do_search
-} {func_1 func_10 func_11 func_12 func_13 func_14 func_15 static_func_1 static_func_10 static_func_11 static_func_12 static_func_13 static_func_14 static_func_15}
-
-# Test: browser-3.5
-# Desc: Check all functions matching "func_1" in stack1.c - mode contains
-gdbtk_test browser-3.5 {all functions matching "func_1" in stack1.c - "mode contains"} {
- set_search_mode "contains"
- set_regexp "func_1"
- clear
- select stack1.c
- do_search
-} {func_1 func_10 func_11 func_12 func_13 func_14 func_15 static_func_1 static_func_10 static_func_11 static_func_12 static_func_13 static_func_14 static_func_15}
-
-# Test: browser-3.6
-# Desc: Check all functions matching "func_1" in stack2.c - mode contains
-gdbtk_test browser-3.6 {all functions matching "func" in stack2.c - mode "contains"} {
- set_search_mode "contains"
- set_regexp func_1
- clear
- select stack2.c
- do_search
-} {}
-
-# Test: browser-3.7
-# Desc: Check all functions matching "foobar"
-gdbtk_test browser-3.7 {all functions matching "foobar"} {
- set_search_mode "contains"
- select_all
- set_regexp foobar
- do_search
-} {}
-
-# Test: browser-3.8
-# Desc: Check all functions matching "foobar" in stack1.c
-gdbtk_test browser-3.8 {functions matching "foobar" in stack1.c} {
- set_search_mode "contains"
- set_regexp foobar
- clear
- select stack1.c
- do_search
-} {}
-
-# Tests 4.* test "ends with" search mode.
-# Test: browser-4.1
-# Desc: Check all files/all funcs
-gdbtk_test browser-4.1 {all files/all funcs} {
- set_search_mode "ends with"
- set_regexp ""
- select_all
- set m [do_search]
- set r 0
- foreach f {extern_func1_1 extern_func1_10 extern_func1_11 extern_func1_12 \
- extern_func1_13 extern_func1_14 extern_func1_15 extern_func1_2 \
- extern_func1_3 extern_func1_4 extern_func1_5 extern_func1_6 \
- extern_func1_7 extern_func1_8 extern_func1_9 func_1 \
- func_10 func_11 func_12 func_13 \
- func_14 func_15 func_2 func_3 \
- func_4 func_5 func_6 func_7 \
- func_8 func_9 main static_func_1 \
- static_func_10 static_func_11 static_func_12 static_func_13 \
- static_func_14 static_func_15 static_func_2 static_func_3 \
- static_func_4 static_func_5 static_func_6 static_func_7 \
- static_func_8 static_func_9} {
- if {[lsearch $m $f] > -1} {
- incr r
- }
- }
-
- set r
-} {46}
-
-# Test: browser-4.2
-# Desc: Check all functions in stack1.c
-gdbtk_test browser-4.2 {all functions in stack1.c} {
- set_regexp ""
- set_search_mode "ends with"
- clear
- select stack1.c
- set m [do_search]
-
- set r 0
- foreach f {func_1 func_10 func_11 func_12 \
- func_13 func_14 func_15 func_2 \
- func_3 func_4 func_5 func_6 \
- func_7 func_8 func_9 main \
- static_func_1 static_func_10 static_func_11 static_func_12 \
- static_func_13 static_func_14 static_func_15 static_func_2 \
- static_func_3 static_func_4 static_func_5 static_func_6 \
- static_func_7 static_func_8 static_func_9} {
- if {[lsearch $m $f] != -1} {
- incr r
- }
- }
-
- set r
-} {31}
-
-if {$test_ran} {
- clear
-}
-
-# Test: browser-4.3
-# Desc: Check all functions in stack2.c
-gdbtk_test browser-4.3 {all functions in stack2.c} {
- set_regexp ""
- set_search_mode "ends with"
- clear
- select stack2.c
- set m [do_search]
-
- set r 0
- foreach f {extern_func1_1 extern_func1_10 extern_func1_11 \
- extern_func1_12 extern_func1_13 extern_func1_14 extern_func1_15 \
- extern_func1_2 extern_func1_3 extern_func1_4 extern_func1_5 \
- extern_func1_6 extern_func1_7 extern_func1_8 extern_func1_9} {
- if {[lsearch $m $f] != -1} {
- incr r
- }
- }
-
- set r
-} {15}
-if {$test_ran} {
- clear
-}
-
-# Test: browser-4.4
-# Desc: Check for all functions matching "func_1" - mode ends with
-gdbtk_test browser-4.4 {all functions matching "func_1" - "mode ends with"} {
- set_search_mode "ends with"
- set_regexp "func_1"
- select_all
- do_search
-} {func_1 static_func_1}
-
-# Test: browser-4.5
-# Desc: Check all functions matching "func_1" in stack1.c - mode ends with
-gdbtk_test browser-4.5 {all functions matching "func_1" in stack1.c - "mode ends with"} {
- set_search_mode "ends with"
- set_regexp "func_1"
- clear
- select stack1.c
- do_search
-} {func_1 static_func_1}
-if {$test_ran} {
- clear
-}
-
-# Test: browser-4.6
-# Desc: Check all functions matching "func_1" in stack2.c - mode ends with
-gdbtk_test browser-4.6 {all functions matching "func" in stack2.c - mode "ends with"} {
- set_search_mode "ends with"
- set_regexp func_1
- clear
- select stack2.c
- do_search
-} {}
-
-# Test: browser-4.7
-# Desc: Check all functions matching "foobar"
-gdbtk_test browser-4.7 {all functions matching "foobar"} {
- set_search_mode "ends with"
- select_all
- set_regexp foobar
- do_search
-} {}
-
-# Test: browser-4.8
-# Desc: Check all functions matching "foobar" in stack1.c
-gdbtk_test browser-4.8 {functions matching "foobar" in stack1.c} {
- set_search_mode "ends with"
- set_regexp foobar
- clear
- select stack1.c
- do_search
-} {}
-if {$test_ran} {
- clear
-}
-
-# Test: browser-5.10
-# Desc: Check all functions matching regexp "func"
-gdbtk_test browser-5.10 {all functions matching regexp "func"} {
- set_search_mode "matches regexp"
- set_regexp func
- select_all
- do_search
-} {extern_func1_1 extern_func1_10 extern_func1_11 extern_func1_12 extern_func1_13 extern_func1_14 extern_func1_15 extern_func1_2 extern_func1_3 extern_func1_4 extern_func1_5 extern_func1_6 extern_func1_7 extern_func1_8 extern_func1_9 func_1 func_10 func_11 func_12 func_13 func_14 func_15 func_2 func_3 func_4 func_5 func_6 func_7 func_8 func_9 static_func_1 static_func_10 static_func_11 static_func_12 static_func_13 static_func_14 static_func_15 static_func_2 static_func_3 static_func_4 static_func_5 static_func_6 static_func_7 static_func_8 static_func_9}
-
-# Test: browser-5.11
-# Desc: Check all functions matching regexp "func" in stack1.c
-gdbtk_test browser-5.11 {all functions matching regexp "func" in stack1.c} {
- set_search_mode "matches regexp"
- set_regexp func
- clear
- select stack1.c
- do_search
-} {func_1 func_10 func_11 func_12 func_13 func_14 func_15 func_2 func_3 func_4 func_5 func_6 func_7 func_8 func_9 static_func_1 static_func_10 static_func_11 static_func_12 static_func_13 static_func_14 static_func_15 static_func_2 static_func_3 static_func_4 static_func_5 static_func_6 static_func_7 static_func_8 static_func_9}
-
-# Test: browser-5.12
-# Desc: Check all functions matching regexp "func" in stack2.c
-gdbtk_test browser-5.12 {all functions matching regexp "func" in stack2.c} {
- set_regexp func
- clear
- select stack2.c
- do_search
-} {extern_func1_1 extern_func1_10 extern_func1_11 extern_func1_12 extern_func1_13 extern_func1_14 extern_func1_15 extern_func1_2 extern_func1_3 extern_func1_4 extern_func1_5 extern_func1_6 extern_func1_7 extern_func1_8 extern_func1_9}
-
-# Test: browser-5.13
-# Desc: Check all functions matching regexp "\_1$"
-gdbtk_test browser-5.13 {all functions matching regexp "\_1$"} {
- set_search_mode "matches regexp"
- set_regexp {\_1$}
- select_all
- do_search
-} {extern_func1_1 func_1 static_func_1}
-
-# Test: browser-5.14
-# Desc: Check all functions matching regexp "\_1$" in stack1.c
-gdbtk_test browser-5.14 {all functions matching regexp "\_1$" in stack1.c} {
- set_search_mode "matches regexp"
- set_regexp {\_1$}
- clear
- select stack1.c
- do_search
-} {func_1 static_func_1}
-
-# Test: browser-5.15
-# Desc: Check all functions matching regexp "\_1$" in stack2.c
-gdbtk_test browser-5.15 {all functions matching regexp "\_1$" in stack2.c} {
- set_search_mode "matches regexp"
- set_regexp {\_1$}
- clear
- select stack2.c
- do_search
-} {extern_func1_1}
-
-# Test: browser-5.16
-# Desc: Check all functions matching regexp "foobar"
-gdbtk_test browser-5.16 {all functions matching regexp "foobar"} {
- set_search_mode "matches regexp"
- set_regexp foobar
- select_all
- do_search
-} {}
-
-# Test: browser-5.17
-# Desc: Check all functions matching regexp "foobar" in stack1.c
-gdbtk_test browser-5.17 {all functions matching regexp "foobar" in stack1.c} {
- set_search_mode "matches regexp"
- set_regexp foobar
- clear
- select stack1.c
- do_search
-} {}
-
-
-# Test: browser-6.1
-# Desc: Check select button function
-gdbtk_test browser-6.1 {select button - select all} {
- clear
- select_all
- set m [$browser component file_box curselection]
-
- expr {[llength $m] >= 2}
-} {1}
-
-# Test: browser-6.2
-# Desc: Check that search expressions are saved
-gdbtk_test browser-6.2 {save last search expression} {
- set_regexp hello
- select_all
- do_search
- pref get gdb/search/last_symbol
-} {hello}
-
-# Test: browser-7.1
-# Desc: Toggle all bps on
-gdbtk_test browser-7.1 {toggle_all_bp on} {
- set_regexp {\_1$}
- set_search_mode "matches regexp"
- select_all
- set funcs [do_search]
-
- # select all to set bp on
- $browser component func_box selection set 0 end
- $browser component func_add_bp invoke
-
- set bps {}
- foreach f $funcs {
- if {![catch {gdb_loc $f} ls]} {
- if {[bp_exists $ls] != -1} {
- lappend bps $f
- }
- }
- }
-
- catch {gdb_cmd "delete" 0}
- join [lsort $bps]
-} {extern_func1_1 func_1 static_func_1}
-
-# Test: browser-7.2
-# Desc: Toggle some bps off
-gdbtk_test browser-7.2 {toggle_some_bp off} {
- set_regexp {\_1$}
- set_search_mode "matches regexp"
- select_all
- set funcs [do_search]
-
- $browser component func_box selection set 0 end
- $browser component func_add_bp invoke
-
- # Turn off all the "static_func_*" bps
- set_regexp {^static.*_1$}
- do_search
- $browser component func_box selection set 0 end
- $browser component func_remove_bp invoke
- set bps {}
- foreach f $funcs {
- if {![catch {gdb_loc $f} ls]} {
- if {[bp_exists $ls] != -1} {
- lappend bps $f
- }
- }
- }
-
- catch {gdb_cmd "delete" 0}
-
- join [lsort $bps]
-} {extern_func1_1 func_1}
-
-#
-# Exit
-#
-gdbtk_test_done
diff --git a/gdb/testsuite/gdb.gdbtk/c_variable.c b/gdb/testsuite/gdb.gdbtk/c_variable.c
deleted file mode 100644
index 461d5cee2fa..00000000000
--- a/gdb/testsuite/gdb.gdbtk/c_variable.c
+++ /dev/null
@@ -1,296 +0,0 @@
-struct _simple_struct {
- int integer;
- unsigned int unsigned_integer;
- char character;
- signed char signed_character;
- char *char_ptr;
- int array_of_10[10];
-};
-
-typedef struct _simple_struct simpleton;
-
-simpleton global_simple;
-
-enum foo {
- bar = 1,
- baz
-};
-
-typedef enum foo efoo;
-
-union named_union
-{
- int integer;
- char *char_ptr;
-};
-
-typedef struct _struct_decl {
- int integer;
- char character;
- char *char_ptr;
- long long_int;
- int **int_ptr_ptr;
- long long_array[10];
-
- void (*func_ptr) (void);
- struct _struct_decl (*func_ptr_struct) (int, char *, long);
- struct _struct_decl *(*func_ptr_ptr) (int, char *, long);
- union {
- int a;
- char *b;
- long c;
- enum foo d;
- } u1;
-
- struct {
- union {
- struct {
- int d;
- char e[10];
- int *(*func) (void);
- efoo foo;
- } u1s1;
-
- long f;
- struct {
- char array_ptr[2];
- int (*func) (int, char *);
- } u1s2;
- } u2;
-
- int g;
- char h;
- long i[10];
- } s2;
-} weird_struct;
-
-struct _struct_n_pointer {
- char ****char_ptr;
- long ****long_ptr;
- struct _struct_n_pointer *ptrs[3];
- struct _struct_n_pointer *next;
-};
-
-void do_locals_tests (void);
-void do_block_tests (void);
-void subroutine1 (int, long *);
-void nothing (void);
-void do_children_tests (void);
-void do_special_tests (void);
-void incr_a (int);
-
-void incr_a (int a)
-{
- int b;
- b = a;
-}
-
-void
-do_locals_tests ()
-{
- int linteger;
- int *lpinteger;
- char lcharacter;
- char *lpcharacter;
- long llong;
- long *lplong;
- float lfloat;
- float *lpfloat;
- double ldouble;
- double *lpdouble;
- struct _simple_struct lsimple;
- struct _simple_struct *lpsimple;
- void (*func) (void);
-
- /* Simple assignments */
- linteger = 1234;
- lpinteger = &linteger;
- lcharacter = 'a';
- lpcharacter = &lcharacter;
- llong = 2121L;
- lplong = &llong;
- lfloat = 2.1;
- lpfloat = &lfloat;
- ldouble = 2.718281828459045;
- lpdouble = &ldouble;
- lsimple.integer = 1234;
- lsimple.unsigned_integer = 255;
- lsimple.character = 'a';
- lsimple.signed_character = 21;
- lsimple.char_ptr = &lcharacter;
- lpsimple = &lsimple;
- func = nothing;
-
- /* Check pointers */
- linteger = 4321;
- lcharacter = 'b';
- llong = 1212L;
- lfloat = 1.2;
- ldouble = 5.498548281828172;
- lsimple.integer = 255;
- lsimple.unsigned_integer = 4321;
- lsimple.character = 'b';
- lsimple.signed_character = 0;
-
- subroutine1 (linteger, &llong);
-}
-
-void
-nothing ()
-{
-}
-
-void
-subroutine1 (int i, long *l)
-{
- global_simple.integer = i + 3;
- i = 212;
- *l = 12;
-}
-
-void
-do_block_tests ()
-{
- int cb = 12;
-
- {
- int foo;
- foo = 123;
- {
- int foo2;
- foo2 = 123;
- {
- int foo;
- foo = 321;
- }
- foo2 = 0;
- }
- foo = 0;
- }
-
- cb = 21;
-}
-
-void
-do_children_tests (void)
-{
- weird_struct *weird;
- struct _struct_n_pointer *psnp;
- struct _struct_n_pointer snp0, snp1, snp2;
- char a0, *a1, **a2, ***a3;
- char b0, *b1, **b2, ***b3;
- char c0, *c1, **c2, ***c3;
- long z0, *z1, **z2, ***z3;
- long y0, *y1, **y2, ***y3;
- long x0, *x1, **x2, ***x3;
- int *foo;
- int bar;
-
- struct _struct_decl struct_declarations;
- weird = &struct_declarations;
-
- struct_declarations.integer = 123;
- weird->char_ptr = "hello";
- bar = 2121;
- foo = &bar;
- struct_declarations.int_ptr_ptr = &foo;
- weird->long_array[0] = 1234;
- struct_declarations.long_array[1] = 2345;
- weird->long_array[2] = 3456;
- struct_declarations.long_array[3] = 4567;
- weird->long_array[4] = 5678;
- struct_declarations.long_array[5] = 6789;
- weird->long_array[6] = 7890;
- struct_declarations.long_array[7] = 8901;
- weird->long_array[8] = 9012;
- struct_declarations.long_array[9] = 1234;
-
- weird->func_ptr = nothing;
-
- /* Struct/pointer/array tests */
- a0 = '0';
- a1 = &a0;
- a2 = &a1;
- a3 = &a2;
- b0 = '1';
- b1 = &b0;
- b2 = &b1;
- b3 = &b2;
- c0 = '2';
- c1 = &c0;
- c2 = &c1;
- c3 = &c2;
- z0 = 0xdead + 0;
- z1 = &z0;
- z2 = &z1;
- z3 = &z2;
- y0 = 0xdead + 1;
- y1 = &y0;
- y2 = &y1;
- y3 = &y2;
- x0 = 0xdead + 2;
- x1 = &x0;
- x2 = &x1;
- x3 = &x2;
- snp0.char_ptr = &a3;
- snp0.long_ptr = &z3;
- snp0.ptrs[0] = &snp0;
- snp0.ptrs[1] = &snp1;
- snp0.ptrs[2] = &snp2;
- snp0.next = &snp1;
- snp1.char_ptr = &b3;
- snp1.long_ptr = &y3;
- snp1.ptrs[0] = &snp0;
- snp1.ptrs[1] = &snp1;
- snp1.ptrs[2] = &snp2;
- snp1.next = &snp2;
- snp2.char_ptr = &c3;
- snp2.long_ptr = &x3;
- snp2.ptrs[0] = &snp0;
- snp2.ptrs[1] = &snp1;
- snp2.ptrs[2] = &snp2;
- snp2.next = 0x0;
- psnp = &snp0;
- snp0.char_ptr = &b3;
- snp1.char_ptr = &c3;
- snp2.char_ptr = &a3;
- snp0.long_ptr = &y3;
- snp1.long_ptr = &x3;
- snp2.long_ptr = &z3;
-}
-
-void
-do_special_tests (void)
-{
- union named_union u;
- union {
- int a;
- char b;
- long c;
- } anonu;
- struct _simple_struct s;
- struct {
- int a;
- char b;
- long c;
- } anons;
- enum foo e;
- enum { A, B, C } anone;
- int array[21];
- int a;
-
- a = 1;
- incr_a(2);
-}
-
-int
-main (int argc, char *argv [])
-{
- do_locals_tests ();
- do_block_tests ();
- do_children_tests ();
- do_special_tests ();
- exit (0);
-}
-
-
diff --git a/gdb/testsuite/gdb.gdbtk/c_variable.exp b/gdb/testsuite/gdb.gdbtk/c_variable.exp
deleted file mode 100644
index 0fcd652e2be..00000000000
--- a/gdb/testsuite/gdb.gdbtk/c_variable.exp
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999, 2001, 2004 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-load_lib ../gdb.gdbtk/insight-support.exp
-
-if {[gdbtk_initialize_display]} {
- if {$tracelevel} {
- strace $tracelevel
- }
-
- #
- # test variable API
- #
- set prms_id 0
- set bug_id 0
-
- set testfile "c_variable"
- set srcfile ${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
- set r [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}]
- if { $r != "" } {
- gdb_suppress_entire_file \
- "Testcase compile failed, so some tests in this file will automatically fail."
- }
-
- # Start with a fresh gdbtk
- gdb_exit
- set results [gdbtk_start [file join $srcdir $subdir ${testfile}.test]]
- set results [split $results \n]
-
- # Analyze results
- gdbtk_done $results
-}
diff --git a/gdb/testsuite/gdb.gdbtk/c_variable.test b/gdb/testsuite/gdb.gdbtk/c_variable.test
deleted file mode 100644
index 625ac7c017d..00000000000
--- a/gdb/testsuite/gdb.gdbtk/c_variable.test
+++ /dev/null
@@ -1,2071 +0,0 @@
-# Varobj Tests (C language)
-# Copyright 1998, 2001, 2003 Red Hat, Inc.
-#
-# This Program Is Free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# insight@sources.redhat.com
-
-# This file was written by Keith Seitz (keiths@cygnus.com)
-
-# Read in the standard defs file
-if {![gdbtk_read_defs]} {
- break
-}
-
-global objdir test_ran
-
-# Load in a file
-set program [file join $objdir c_variable]
-if {[catch {gdbtk_test_file $program} t]} {
- # This isn't a test case, since if this fails, we're hosed.
- gdbtk_test_error "loading \"$program\": $t"
-}
-
-# The variables that are created are stored in an array called "var".
-
-# proc to tell us which of the variables are changed/out of scope
-proc check_update {} {
- global var
-
- set out {}
- set changed {}
- foreach ind [array names var] {
- set ret [$var($ind) update]
- if {$ret == -1} {
- lappend out $ind
- } elseif {$ret != ""} {
- lappend changed $ret
- }
- }
- return [list $changed $out]
-}
-
-# proc to create a variable
-proc create_variable {expr} {
- global var
-
- set err [catch {gdb_variable create "$expr" -expr $expr} v]
- if {!$err} {
- set var($expr) $v
- }
-
- return $err
-}
-
-# proc to get the children
-# Children are stored in the global "var" as
-# PARENT.child. So for struct _foo {int a; int b} bar;,
-# the children returned are {a b} and var(bar.a) and var(bar.b)
-# map the actual objects to their names.
-proc get_children {parent} {
- global var
-
- set kiddies [$var($parent) children]
- set children {}
- foreach child $kiddies {
- set name [lindex [split $child .] end]
- lappend children $name
- set var($parent.$name) $child
- }
-
- return $children
-}
-
-proc delete_variable {varname} {
- global var
-
- if {[info exists var($varname)]} {
- # This has to be caught, since deleting a parent
- # will erase all children.
- $var($varname) delete
- set vars [array names var $varname*]
- foreach v $vars {
- if {[info exists var($v)]} {
- unset var($v)
- }
- }
- }
-}
-
-# Compare the values of variable V in format FMT
-# with gdb's value.
-proc value {v fmt} {
- global var
- global _test
-
- set value [$var($v) value]
- set gdb [gdb_cmd "output/$fmt $v"]
- if {$value == $gdb} {
- set result ok
- } else {
- set result $v
- puts $_test(logfile) "output/$fmt $v"
- puts $_test(logfile) "gdbtk: $value <> gdb: $gdb"
- }
-
- return $result
-}
-
-proc delete_all_variables {} {
- global var
-
- foreach variable [array names var] {
- delete_variable $variable
- }
-}
-
-proc editable_variables {} {
- global var
-
- set yes {}
- set no {}
- foreach name [array names var] {
- if {[$var($name) editable]} {
- lappend yes $name
- } else {
- lappend no $name
- }
- }
-
- return [list $yes $no]
-}
-
-
-##### #####
-# #
-# Variable Creation tests #
-# #
-##### #####
-
-# Test: c_variable-1.1
-# Desc: Create global variable
-gdbtk_test c_variable-1.1 {create global variable} {
- create_variable global_simple
-} {0}
-
-# Test: c_variable-1.2
-# Desc: Create non-existent variable
-gdbtk_test c_variable-1.2 {create non-existent variable} {
- create_variable bogus_unknown_variable
-} {1}
-
-# Test: c_variable-1.3
-# Desc: Create out of scope variable
-gdbtk_test c_variable-1.3 {create out of scope variable} {
- create_variable argc
-} {1}
-
-# Break in main and run
-gdb_cmd "break do_locals_tests"
-gdbtk_test_run
-
-# Test: c_variable-1.4
-# Desc: create local variables
-gdbtk_test c_variable-1.4 {create local variables} {
- set results {}
- foreach v {linteger lpinteger lcharacter lpcharacter llong lplong lfloat lpfloat ldouble lpdouble lsimple lpsimple func} {
- lappend results [create_variable $v]
- }
- set results
-} {0 0 0 0 0 0 0 0 0 0 0 0 0}
-
-# Test: c_variable-1.5
-# Desc: create lsimple.character
-gdbtk_test c_variable-1.5 {create lsimple.character} {
- create_variable lsimple.character
-} {0}
-
-# Test: c_variable-1.6
-# Desc: create lpsimple->integer
-gdbtk_test c_variable-1.6 {create lpsimple->integer} {
- create_variable lpsimple->integer
-} {0}
-
-# Test: c_variable-1.7
-# Desc: create lsimple.integer
-gdbtk_test c_variable-1.7 {create lsimple.integer} {
- create_variable lsimple.integer
-} {0}
-
-# Test: c_variable-1.8
-# Desc: names of editable variables
-gdbtk_test c_variable-1.8 {names of editable variables} {
- editable_variables
-} {{lsimple.character lsimple.integer lpsimple lcharacter lpcharacter linteger lpinteger lfloat lpfloat func llong lplong lpsimple->integer ldouble lpdouble} {lsimple global_simple}}
-
-# Test: c_variable-1.9
-# Desc: create type name
-# Type names (like int, long, etc..) are all proper expressions to gdb.
-# make sure variable code does not allow users to create variables, though.
-gdbtk_test c_variable-1.9 {create type name} {
- create_variable int
-} {1}
-
-##### #####
-# #
-# Value changed tests #
-# #
-##### #####
-
-# Test: c_variable-2.1
-# Desc: check whether values changed at do_block_tests
-gdbtk_test c_variable-2.1 {check whether values changed at do_block_tests} {
- check_update
-} {{} {}}
-
-# Step over "linteger = 1234;"
-gdb_cmd "step"
-
-# Test: c_variable-2.2
-# Desc: check whether only linteger changed values
-gdbtk_test c_variable-2.2 {check whether only linteger changed values} {
- check_update
-} {linteger {}}
-
-# Step over "lpinteger = &linteger;"
-gdb_cmd "step"
-
-# Test: c_variable-2.3
-# Desc: check whether only lpinteger changed
-gdbtk_test c_variable-2.3 {check whether only lpinteger changed} {
- check_update
-} {lpinteger {}}
-
-# Step over "lcharacter = 'a';"
-gdb_cmd "step"
-
-# Test: c_variable-2.4
-# Desc: check whether only lcharacter changed
-gdbtk_test c_variable-2.4 {check whether only lcharacter changed} {
- check_update
-} {lcharacter {}}
-
-# Step over "lpcharacter = &lcharacter;"
-gdb_cmd "step"
-
-# Test: c_variable-2.5
-# Desc: check whether only lpcharacter changed
-gdbtk_test c_variable-2.5 {check whether only lpcharacter changed} {
- check_update
-} {lpcharacter {}}
-
-# Step over:
-# llong = 2121L;
-# lplong = &llong;
-# lfloat = 2.1;
-# lpfloat = &lfloat;
-# ldouble = 2.718281828459045;
-# lpdouble = &ldouble;
-# lsimple.integer = 1234;
-# lsimple.unsigned_integer = 255;
-# lsimple.character = 'a';
-for {set i 0} {$i < 9} {incr i} {
- gdb_cmd "step"
-}
-
-# Test: c_variable-2.6
-# Desc: check whether llong, lplong, lfloat, lpfloat, ldouble, lpdouble, lsimple.integer,
-# lsimple.unsigned_character lsimple.integer lsimple.character changed
-gdbtk_test c_variable-2.6 {check whether llong -- lsimple.character changed} {
- check_update
-} {{lsimple.character lsimple.integer lfloat lpfloat llong lplong ldouble lpdouble} {}}
-
-# Step over:
-# lsimple.signed_character = 21;
-# lsimple.char_ptr = &lcharacter;
-# lpsimple = &lsimple;
-# func = nothing;
-for {set i 0} {$i < 4} {incr i} {
- gdb_cmd "step"
-}
-
-# Test: c_variable-2.7
-# Desc: check whether lsimple.signed_character, lsimple.char_ptr, lpsimple, func changed
-gdbtk_test c_variable-2.7 {check whether lsimple.signed_character, lsimple.char_ptr, lpsimple, func changed} {
- check_update
-} {{lpsimple func lpsimple->integer} {}}
-
-# Step over
-# linteger = 4321;
-# lcharacter = 'b';
-# llong = 1212L;
-# lfloat = 1.2;
-# ldouble = 5.498548281828172;
-# lsimple.integer = 255;
-# lsimple.unsigned_integer = 4321;
-# lsimple.character = 'b';
-for {set i 0} {$i < 8} {incr i} {
- gdb_cmd "step"
-}
-
-# Test: c_variable-2.8
-# Desc: check whether linteger, lcharacter, llong, lfoat, ldouble, lsimple.integer,
-# lpsimple.integer lsimple.character changed
-# Note: this test also checks that lpsimple->integer and lsimple.integer have
-# changed (they are the same)
-gdbtk_test c_variable-2.8 {check whether linteger -- lsimple.integer changed} {
- check_update
-} {{lsimple.character lsimple.integer lcharacter linteger lfloat llong lpsimple->integer ldouble} {}}
-
-gdb_cmd "break subroutine1"
-gdb_cmd "continue"
-
-# Test: c_variable-2.9
-# Desc: stop in subroutine1
-gdbtk_test c_variable-2.9 {stop in subroutine1} {
- lindex [gdb_loc] 1
-} {subroutine1}
-
-# Test: c_variable-2.10
-# Desc: create variable for locals i,l in subroutine1
-gdbtk_test c_variable-2.10 {create variable for locals i,l in subroutine1} {
- set r [create_variable i]
- lappend r [create_variable l]
-} {0 0}
-
-# Test: c_variable-2.11
-# Desc: create do_locals_tests local in subroutine1
-gdbtk_test c_variable-2.11 {create do_locals_tests local in subroutine1} {
- create_variable linteger
-} {1}
-
-# Step over
-# global_simple.integer = i + 3;
-gdb_cmd "step"
-
-# Test: c_variable-2.12
-# Desc: change global_simple.integer
-# Note: This also tests whether we are reporting changes in structs properly.
-# gdb normally would say that global_simple has changed, but we
-# special case that, since it is not what a human expects to see.
-gdbtk_test c_variable-2.12 {change global_simple.integer} {
- check_update
-} {{} {lsimple.character lsimple.integer lpsimple lsimple lcharacter lpcharacter linteger lpinteger lfloat lpfloat func llong lplong lpsimple->integer ldouble lpdouble}}
-
-# Step over
-# i = 212;
-gdb_cmd "step"
-
-# Test: c_variable-2.13
-# Desc: change subroutine1 local i
-gdbtk_test c_variable-2.13 {change subroutine1 local i} {
- check_update
-} {i {lsimple.character lsimple.integer lpsimple lsimple lcharacter lpcharacter linteger lpinteger lfloat lpfloat func llong lplong lpsimple->integer ldouble lpdouble}}
-
-# Step over
-# *l = 12
-gdb_cmd "step"
-
-# This test is no longer valid, since varobj now forces
-# re-evaluation in the current frame by default.
-# Test: c_variable-2.14
-# Desc: change do_locals_tests local llong
-#gdbtk_test c_variable-2.14 {change do_locals_tests local llong} {
-# check_update
-#} {llong {}}
-
-# Leave subroutine1
-gdb_cmd "next"
-
-# Test: c_variable-2.15
-# Desc: check for out of scope subroutine1 locals
-gdbtk_test c_variable-2.15 {check for out of scope subroutine1 locals} {
- lindex [check_update] 1
-} {i l}
-
-# Test: c_variable-2.16
-# Desc: names of all editable variables
-gdbtk_test c_variable-2.16 {names of all editable variables} {
- editable_variables
-} {{lsimple.character lsimple.integer lpsimple i lcharacter lpcharacter linteger lpinteger lfloat lpfloat l func llong lplong lpsimple->integer ldouble lpdouble} {lsimple global_simple}}
-
-# Done with locals/globals tests. Erase all variables
-delete_all_variables
-
-##### #####
-# #
-# Block tests #
-# #
-##### #####
-gdb_cmd "break do_block_tests"
-gdb_cmd "continue"
-
-# Test: c_variable-3.1
-# Desc: stop in do_block_tests
-gdbtk_test c_variable-3.1 {stop in do_block_tests} {
- lindex [gdb_loc] 1
-} {do_block_tests}
-
-# Test: c_variable-3.2
-# Desc: create cb and foo
-gdbtk_test c_variable-3.2 {create cb and foo} {
- set r [create_variable cb]
- lappend r [create_variable foo]
-} {0 1}
-
-# step to "foo = 123;"
-gdb_cmd "step"
-
-# Be paranoid and assume 3.2 created foo
-delete_variable foo
-
-# Test: c_variable-3.3
-# Desc: create foo
-gdbtk_test c_variable-3.3 {create foo} {
- create_variable foo
-} {0}
-
-# step to "foo2 = 123;"
-gdb_cmd "step"
-
-# Test: c_variable-3.4
-# Desc: check foo, cb changed
-gdbtk_test c_variable-3.4 {check foo,cb changed} {
- check_update
-} {{foo cb} {}}
-
-# step to "foo = 321;"
-gdb_cmd "step"
-
-# Test: c_variable-3.5
-# Desc: create inner block foo
-gdbtk_test c_variable-3.5 {create inner block foo} {
- global var
- set err [catch {gdb_variable create inner_foo -expr foo} v]
- if {!$err} {
- set var(inner_foo) $v
- }
-
- set err
-} {0}
-
-# step to "foo2 = 0;"
-gdb_cmd "step"
-
-# Test: c_variable-3.6
-# Desc: create foo2
-gdbtk_test c_variable-3.6 {create foo2} {
- create_variable foo2
-} {0}
-
-# Test: c_variable-3.7
-# Desc: check that outer foo in scope and inner foo out of scope
-
-# Disabled for now because varobjs don't work this way. If you create a varobj named "foo"
-# it will display the correct value for any variable named "foo" in scope. So inner_foo
-# is not out of scope because there is another variable named "foo" in scope. It is
-# instead marked as changed.
-
-#gdbtk_test *c_variable-3.7 {check that outer foo in scope and inner foo out of scope} {
-# check_update
-#} {{} inner_foo}
-
-delete_variable inner_foo
-
-# step to "foo = 0;"
-gdb_cmd "step"
-
-# Test: c_variable-3.8
-# Desc: check that foo2 out of scope
-gdbtk_test c_variable-3.8 {check that foo2 out of scope} {
- check_update
-} {{} foo2}
-
-# step to "cb = 21;"
-gdb_cmd "step"
-
-# Test: c_variable-3.9
-# Desc: check that only cb is in scope
-gdbtk_test c_variable-3.9 {check that only cb is in scope} {
- check_update
-} {{} {foo foo2}}
-
-# Test: c_variable-3.10
-# Desc: names of editable variables
-gdbtk_test c_variable-3.10 {names of editable variables} {
- editable_variables
-} {{foo cb foo2} {}}
-
-# Done with block tests
-delete_all_variables
-
-##### #####
-# #
-# children tests #
-# #
-##### #####
-
-gdb_cmd "break do_children_tests"
-gdb_cmd "continue"
-
-# Test: c_variable-4.1
-# Desc: stopped in do_children_tests
-gdbtk_test c_variable-4.1 {stopped in do_children_tests} {
- lindex [gdb_loc] 1
-} {do_children_tests}
-
-# Test: c_variable-4.2
-# Desc: create variable "struct_declarations"
-gdbtk_test c_variable-4.2 {create variable "struct_declarations"} {
- create_variable struct_declarations
-} {0}
-
-# Test: c_variable-4.3
-# Desc: children of struct_declarations
-gdbtk_test c_variable-4.3 {children of struct_declarations} {
- get_children struct_declarations
-} {integer character char_ptr long_int int_ptr_ptr long_array func_ptr func_ptr_struct func_ptr_ptr u1 s2}
-
-# Test: c_variable-4.4
-# Desc: number of children of struct_declarations
-gdbtk_test c_variable-4.4 {number of children of struct_declarations} {
- $var(struct_declarations) numChildren
-} {11}
-
-# Test: c_variable-4.5
-# Desc: children of struct_declarations.integer
-gdbtk_test c_variable-4.5 {children of struct_declarations.integer} {
- get_children struct_declarations.integer
-} {}
-
-# Test: c_variable-4.6
-# Desc: number of children of struct_declarations.integer
-gdbtk_test c_variable-4.6 {number of children of struct_declarations.integer} {
- $var(struct_declarations.integer) numChildren
-} {0}
-
-# Test: c_variable-4.7
-# Desc: children of struct_declarations.character
-gdbtk_test c_variable-4.7 {children of struct_declarations.character} {
- get_children struct_declarations.character
-} {}
-
-# Test: c_variable-4.8
-# Desc: number of children of struct_declarations.character
-gdbtk_test c_variable-4.8 {number of children of struct_declarations.character} {
- $var(struct_declarations.character) numChildren
-} {0}
-
-# Test: c_variable-4.9
-# Desc: children of struct_declarations.char_ptr
-gdbtk_test c_variable-4.9 {children of struct_declarations.char_ptr} {
- get_children struct_declarations.char_ptr
-} {*char_ptr}
-
-# Test: c_variable-4.10
-# Desc: number of children of struct_declarations.char_ptr
-gdbtk_test c_variable-4.10 {number of children of struct_declarations.char_ptr} {
- $var(struct_declarations.char_ptr) numChildren
-} {1}
-
-# Test: c_variable-4.11
-# Desc: children of struct_declarations.long_int
-gdbtk_test c_variable-4.11 {children of struct_declarations.long_int} {
-
- get_children struct_declarations.long_int
-} {}
-
-# Test: c_variable-4.12
-# Desc: number of children of struct_declarations.long_int
-gdbtk_test c_variable-4.12 {number of children of struct_declarations.long_int} {
- $var(struct_declarations.long_int) numChildren
-} {0}
-
-# Test: c_variable-4.13
-# Desc: children of int_ptr_ptr
-gdbtk_test c_variable-4.13 {children of int_ptr_ptr} {
- get_children struct_declarations.int_ptr_ptr
-} {*int_ptr_ptr}
-
-# Test: c_variable-4.14
-# Desc: number of children of int_ptr_ptr
-gdbtk_test c_variable-4.14 {number of children of int_ptr_ptr} {
- $var(struct_declarations.int_ptr_ptr) numChildren
-} {1}
-
-# Test: c_variable-4.15
-# Desc: children of struct_declarations.long_array
-gdbtk_test c_variable-4.15 {children of struct_declarations.long_array} {
- get_children struct_declarations.long_array
-} {0 1 2 3 4 5 6 7 8 9}
-
-# Test: c_variable-4.16
-# Desc: number of children of struct_declarations.long_array
-gdbtk_test c_variable-4.16 {number of children of struct_declarations.long_array} {
- $var(struct_declarations.long_array) numChildren
-} {10}
-
-# Test: c_variable-4.17
-# Desc: children of struct_declarations.func_ptr
-gdbtk_test c_variable-4.17 {children of struct_declarations.func_ptr} {
- get_children struct_declarations.func_ptr
-} {}
-
-# Test: c_variable-4.18
-# Desc: number of children of struct_declarations.func_ptr
-gdbtk_test c_variable-4.18 {number of children of struct_declarations.func_ptr} {
- $var(struct_declarations.func_ptr) numChildren
-} {0}
-
-# Test: c_variable-4.19
-# Desc: children of struct_declarations.func_ptr_struct
-gdbtk_test c_variable-4.19 {children of struct_declarations.func_ptr_struct} {
- get_children struct_declarations.func_ptr_struct
-} {}
-
-# Test: c_variable-4.20
-# Desc: number of children of struct_declarations.func_ptr_struct
-gdbtk_test c_variable-4.20 {number of children of struct_declarations.func_ptr_struct} {
- $var(struct_declarations.func_ptr_struct) numChildren
-} {0}
-
-# Test: c_variable-4.21
-# Desc: children of struct_declarations.func_ptr_ptr
-gdbtk_test c_variable-4.21 {children of struct_declarations.func_ptr_ptr} {
- get_children struct_declarations.func_ptr_ptr
-} {}
-
-# Test: c_variable-4.22
-# Desc: number of children of struct_declarations.func_ptr_ptr
-gdbtk_test c_variable-4.22 {number of children of struct_declarations.func_ptr_ptr} {
- $var(struct_declarations.func_ptr_ptr) numChildren
-} {0}
-
-# Test: c_variable-4.23
-# Desc: children of struct_declarations.u1
-gdbtk_test c_variable-4.23 {children of struct_declarations.u1} {
- get_children struct_declarations.u1
-} {a b c d}
-
-# Test: c_variable-4.24
-# Desc: number of children of struct_declarations.u1
-gdbtk_test c_variable-4.24 {number of children of struct_declarations.u1} {
- $var(struct_declarations.u1) numChildren
-} {4}
-
-# Test: c_variable-4.25
-# Desc: children of struct_declarations.s2
-gdbtk_test c_variable-4.25 {children of struct_declarations.s2} {
- get_children struct_declarations.s2
-} {u2 g h i}
-
-# Test: c_variable-4.26
-# Desc: number of children of struct_declarations.s2
-gdbtk_test c_variable-4.26 {number of children of struct_declarations.s2} {
- $var(struct_declarations.s2) numChildren
-} {4}
-
-# Test: c_variable-4.27
-# Desc: children of struct_declarations.long_array.1
-gdbtk_test c_variable-4.27 {children of struct_declarations.long_array.1} {
- get_children struct_declarations.long_array.1
-} {}
-
-# Test: c_variable-4.28
-# Desc: number of children of struct_declarations.long_array.1
-gdbtk_test c_variable-4.28 {number of children of struct_declarations.long_array.1} {
- $var(struct_declarations.long_array.1) numChildren
-} {0}
-
-# Test: c_variable-4.29
-# Desc: children of struct_declarations.long_array.2
-gdbtk_test c_variable-4.29 {children of struct_declarations.long_array.2} {
- get_children struct_declarations.long_array.2
-} {}
-
-# Test: c_variable-4.30
-# Desc: number of children of struct_declarations.long_array.2
-gdbtk_test c_variable-4.30 {number of children of struct_declarations.long_array.2} {
- $var(struct_declarations.long_array.2) numChildren
-} {0}
-
-# Test: c_variable-4.31
-# Desc: children of struct_declarations.long_array.3
-gdbtk_test c_variable-4.31 {children of struct_declarations.long_array.3} {
- get_children struct_declarations.long_array.3
-} {}
-
-# Test: c_variable-4.32
-# Desc: number of children of struct_declarations.long_array.3
-gdbtk_test c_variable-4.32 {number of children of struct_declarations.long_array.3} {
- $var(struct_declarations.long_array.3) numChildren
-} {0}
-
-# Test: c_variable-4.33
-# Desc: children of struct_declarations.long_array.4
-gdbtk_test c_variable-4.33 {children of struct_declarations.long_array.4} {
- get_children struct_declarations.long_array.4
-} {}
-
-# Test: c_variable-4.34
-# Desc: number of children of struct_declarations.long_array.4
-gdbtk_test c_variable-4.34 {number of children of struct_declarations.long_array.4} {
- $var(struct_declarations.long_array.4) numChildren
-} {0}
-
-# Test: c_variable-4.35
-# Desc: children of struct_declarations.long_array.5
-gdbtk_test c_variable-4.35 {children of struct_declarations.long_array.5} {
- get_children struct_declarations.long_array.5
-} {}
-
-# Test: c_variable-4.36
-# Desc: number of children of struct_declarations.long_array.5
-gdbtk_test c_variable-4.36 {number of children of struct_declarations.long_array.5} {
- $var(struct_declarations.long_array.5) numChildren
-} {0}
-
-# Test: c_variable-4.37
-# Desc: children of struct_declarations.long_array.6
-gdbtk_test c_variable-4.37 {children of struct_declarations.long_array.6} {
- get_children struct_declarations.long_array.6
-} {}
-
-# Test: c_variable-4.38
-# Desc: number of children of struct_declarations.long_array.6
-gdbtk_test c_variable-4.38 {number of children of struct_declarations.long_array.6} {
- $var(struct_declarations.long_array.6) numChildren
-} {0}
-
-# Test: c_variable-4.39
-# Desc: children of struct_declarations.long_array.7
-gdbtk_test c_variable-4.39 {children of struct_declarations.long_array.7} {
- get_children struct_declarations.long_array.7
-} {}
-
-# Test: c_variable-4.40
-# Desc: number of children of struct_declarations.long_array.7
-gdbtk_test c_variable-4.40 {number of children of struct_declarations.long_array.7} {
- $var(struct_declarations.long_array.7) numChildren
-} {0}
-
-# Test: c_variable-4.41
-# Desc: children of struct_declarations.long_array.8
-gdbtk_test c_variable-4.41 {children of struct_declarations.long_array.8} {
- get_children struct_declarations.long_array.8
-} {}
-
-# Test: c_variable-4.42
-# Desc: number of children of struct_declarations.long_array.8
-gdbtk_test c_variable-4.42 {number of children of struct_declarations.long_array.8} {
- $var(struct_declarations.long_array.8) numChildren
-} {0}
-
-# Test: c_variable-4.43
-# Desc: children of struct_declarations.long_array.9
-gdbtk_test c_variable-4.43 {children of struct_declarations.long_array.9} {
- get_children struct_declarations.long_array.9
-} {}
-
-# Test: c_variable-4.44
-# Desc: number of children of struct_declarations.long_array.9
-gdbtk_test c_variable-4.44 {number of children of struct_declarations.long_array.9} {
- $var(struct_declarations.long_array.9) numChildren
-} {0}
-
-# Test: c_variable-4.45
-# Desc: children of struct_declarations.u1.a
-gdbtk_test c_variable-4.45 {children of struct_declarations.u1.a} {
- get_children struct_declarations.u1.a
-} {}
-
-# Test: c_variable-4.46
-# Desc: number of children of struct_declarations.u1.a
-gdbtk_test c_variable-4.46 {number of children of struct_declarations.u1.a} {
- $var(struct_declarations.u1.a) numChildren
-} {0}
-
-# Test: c_variable-4.47
-# Desc: children of struct_declarations.u1.b
-gdbtk_test c_variable-4.47 {children of struct_declarations.u1.b} {
- get_children struct_declarations.u1.b
-} {*b}
-
-# Test: c_variable-4.48
-# Desc: number of children of struct_declarations.u1.b
-gdbtk_test c_variable-4.48 {number of children of struct_declarations.u1.b} {
- $var(struct_declarations.u1.b) numChildren
-} {1}
-
-# Test: c_variable-4.49
-# Desc: children of struct_declarations.u1.c
-gdbtk_test c_variable-4.49 {children of struct_declarations.u1.c} {
- get_children struct_declarations.u1.c
-} {}
-
-# Test: c_variable-4.50
-# Desc: number of children of struct_declarations.u1.c
-gdbtk_test c_variable-4.50 {number of children of struct_declarations.u1.c} {
- $var(struct_declarations.u1.c) numChildren
-} {0}
-
-# Test: c_variable-4.51
-# Desc: children of struct_declarations.u1.d
-gdbtk_test c_variable-4.51 {children of struct_declarations.u1.d} {
- get_children struct_declarations.u1.d
-} {}
-
-# Test: c_variable-4.52
-# Desc: number of children of struct_declarations.u1.d
-gdbtk_test c_variable-4.52 {number of children of struct_declarations.u1.d} {
- $var(struct_declarations.u1.d) numChildren
-} {0}
-
-# Test: c_variable-4.53
-# Desc: children of struct_declarations.s2.u2
-gdbtk_test c_variable-4.53 {children of struct_declarations.s2.u2} {
- get_children struct_declarations.s2.u2
-} {u1s1 f u1s2}
-
-# Test: c_variable-4.54
-# Desc: number of children of struct_declarations.s2.u2
-gdbtk_test c_variable-4.54 {number of children of struct_declarations.s2.u2} {
- $var(struct_declarations.s2.u2) numChildren
-} {3}
-
-# Test: c_variable-4.55
-# Desc: children of struct_declarations.s2.g
-gdbtk_test c_variable-4.55 {children of struct_declarations.s2.g} {
- get_children struct_declarations.s2.g
-} {}
-
-# Test: c_variable-4.56
-# Desc: number of children of struct_declarations.s2.g
-gdbtk_test c_variable-4.56 {number of children of struct_declarations.s2.g} {
- $var(struct_declarations.s2.g) numChildren
-} {0}
-
-# Test: c_variable-4.57
-# Desc: children of struct_declarations.s2.h
-gdbtk_test c_variable-4.57 {children of struct_declarations.s2.h} {
- get_children struct_declarations.s2.h
-} {}
-
-# Test: c_variable-4.58
-# Desc: number of children of struct_declarations.s2.h
-gdbtk_test c_variable-4.58 {number of children of struct_declarations.s2.h} {
- $var(struct_declarations.s2.h) numChildren
-} {0}
-
-# Test: c_variable-4.59
-# Desc: children of struct_declarations.s2.i
-gdbtk_test c_variable-4.59 {children of struct_declarations.s2.i} {
- get_children struct_declarations.s2.i
-} {0 1 2 3 4 5 6 7 8 9}
-
-# Test: c_variable-4.60
-# Desc: number of children of struct_declarations.s2.i
-gdbtk_test c_variable-4.60 {number of children of struct_declarations.s2.i} {
- $var(struct_declarations.s2.i) numChildren
-} {10}
-
-# Test: c_variable-4.61
-# Desc: children of struct_declarations.s2.u2.u1s1
-gdbtk_test c_variable-4.61 {children of struct_declarations.s2.u2.u1s1} {
- get_children struct_declarations.s2.u2.u1s1
-} {d e func foo}
-
-# Test: c_variable-4.62
-# Desc: number of children of struct_declarations.s2.u2.u1s1
-gdbtk_test c_variable-4.62 {number of children of struct_declarations.s2.u2.u1s1} {
- $var(struct_declarations.s2.u2.u1s1) numChildren
-} {4}
-
-# Test: c_variable-4.63
-# Desc: children of struct_declarations.s2.u2.f
-gdbtk_test c_variable-4.63 {children of struct_declarations.s2.u2.f} {
- get_children struct_declarations.s2.u2.f
-} {}
-
-# Test: c_variable-4.64
-# Desc: number of children of struct_declarations.s2.u2.f
-gdbtk_test c_variable-4.64 {number of children of struct_declarations.s2.u2.f} {
- $var(struct_declarations.s2.u2.f) numChildren
-} {0}
-
-# Test: c_variable-4.65
-# Desc: children of struct_declarations.s2.u2.u1s2
-gdbtk_test c_variable-4.65 {children of struct_declarations.s2.u2.u1s2} {
- get_children struct_declarations.s2.u2.u1s2
-} {array_ptr func}
-
-# Test: c_variable-4.66
-# Desc: number of children of struct_declarations.s2.u2.u1s2
-gdbtk_test c_variable-4.66 {number of children of struct_declarations.s2.u2.u1s2} {
- $var(struct_declarations.s2.u2.u1s2) numChildren
-} {2}
-
-# Test: c_variable-4.67
-# Desc: children of struct_declarations.s2.u2.u1s1.d
-gdbtk_test c_variable-4.67 {children of struct_declarations.s2.u2.u1s1.d} {
- get_children struct_declarations.s2.u2.u1s1.d
-} {}
-
-# Test: c_variable-4.68
-# Desc: number of children of struct_declarations.s2.u2.u1s1.d
-gdbtk_test c_variable-4.68 {number of children of struct_declarations.s2.u2.u1s1.d} {
- $var(struct_declarations.s2.u2.u1s1.d) numChildren
-} {0}
-
-# Test: c_variable-4.69
-# Desc: children of struct_declarations.s2.u2.u1s1.e
-gdbtk_test c_variable-4.69 {children of struct_declarations.s2.u2.u1s1.e} {
- get_children struct_declarations.s2.u2.u1s1.e
-} {0 1 2 3 4 5 6 7 8 9}
-
-# Test: c_variable-4.70
-# Desc: number of children of struct_declarations.s2.u2.u1s1.e
-gdbtk_test c_variable-4.70 {number of children of struct_declarations.s2.u2.u1s1.e} {
- $var(struct_declarations.s2.u2.u1s1.e) numChildren
-} {10}
-
-# Test: c_variable-4.71
-# Desc: children of struct_declarations.s2.u2.u1s1.func
-gdbtk_test c_variable-4.71 {children of struct_declarations.s2.u2.u1s1.func} {
- get_children struct_declarations.s2.u2.u1s1.func
-} {}
-
-# Test: c_variable-4.72
-# Desc: number of children of struct_declarations.s2.u2.u1s1.func
-gdbtk_test c_variable-4.72 {number of children of struct_declarations.s2.u2.u1s1.func} {
- $var(struct_declarations.s2.u2.u1s1.func) numChildren
-} {0}
-
-# Test: c_variable-4.73
-# Desc: children of struct_declarations.s2.u2.u1s1.foo
-gdbtk_test c_variable-4.73 {children of struct_declarations.s2.u2.u1s1.foo} {
- get_children struct_declarations.s2.u2.u1s1.foo
-} {}
-
-# Test: c_variable-4.74
-# Desc: number of children of struct_declarations.s2.u2.u1s1.foo
-gdbtk_test c_variable-4.74 {number of children of struct_declarations.s2.u2.u1s1.foo} {
- $var(struct_declarations.s2.u2.u1s1.foo) numChildren
-} {0}
-
-# Test: c_variable-4.75
-# Desc: children of struct_declarations.s2.u2.u1s2.array_ptr
-gdbtk_test c_variable-4.75 {children of struct_declarations.s2.u2.u1s2.array_ptr} {
- get_children struct_declarations.s2.u2.u1s2.array_ptr
-} {0 1}
-
-# Test: c_variable-4.76
-# Desc: number of children of struct_declarations.s2.u2.u1s2.array_ptr
-gdbtk_test c_variable-4.76 {number of children of struct_declarations.s2.u2.u1s2.array_ptr} {
- $var(struct_declarations.s2.u2.u1s2.array_ptr) numChildren
-} {2}
-
-# Test: c_variable-4.77
-# Desc: children of struct_declarations.s2.u2.u1s2.func
-gdbtk_test c_variable-4.77 {children of struct_declarations.s2.u2.u1s2.func} {
- get_children struct_declarations.s2.u2.u1s2.func
-} {}
-
-# Test: c_variable-4.78
-# Desc: number of children of struct_declarations.s2.u2.u1s2.func
-gdbtk_test c_variable-4.78 {number of children of struct_declarations.s2.u2.u1s2.func} {
- $var(struct_declarations.s2.u2.u1s2.func) numChildren
-} {0}
-
-# Test: c_variable-4.79
-# Desc: children of struct_declarations.*int_ptr_ptr
-gdbtk_test c_variable-4.79 {children of struct_declarations.*int_ptr_ptr} {
- get_children struct_declarations.int_ptr_ptr.*int_ptr_ptr
-} {**int_ptr_ptr}
-
-# Test: c_variable-4.80
-# Desc: Number of children of struct_declarations.*int_ptr_ptr
-gdbtk_test c_variable-4.80 {Number of children of struct_declarations.*int_ptr_ptr} {
- $var(struct_declarations.int_ptr_ptr.*int_ptr_ptr) numChildren
-} {1}
-
-# Step to "struct_declarations.integer = 123;"
-gdb_cmd "step"
-
-# Test: c_variable-4.81
-# Desc: create local variable "weird"
-gdbtk_test c_variable-4.81 {create local variable "weird"} {
- create_variable weird
-} {0}
-
-# Test: c_variable-4.82
-# Desc: children of weird
-gdbtk_test c_variable-4.82 {children of weird} {
- get_children weird
-} {integer character char_ptr long_int int_ptr_ptr long_array func_ptr func_ptr_struct func_ptr_ptr u1 s2}
-
-# Test: c_variable-4.83
-# Desc: number of children of weird
-gdbtk_test c_variable-4.83 {number of children of weird} {
- $var(weird) numChildren
-} {11}
-
-# Test: c_variable-4.84
-# Desc: children of weird->long_array
-gdbtk_test c_variable-4.84 {children of weird->long_array} {
- get_children weird.long_array
-} {0 1 2 3 4 5 6 7 8 9}
-
-# Test: c_variable-4.85
-# Desc: number of children of weird->long_array
-gdbtk_test c_variable-4.85 {number of children of weird->long_array} {
- $var(weird.long_array) numChildren
-} {10}
-
-# Test: c_variable-4.86
-# Desc: children of weird->int_ptr_ptr
-gdbtk_test c_variable-4.86 {children of weird->int_ptr_ptr} {
- get_children weird.int_ptr_ptr
-} {*int_ptr_ptr}
-
-# Test: c_variable-4.87
-# Desc: number of children of weird->int_ptr_ptr
-gdbtk_test c_variable-4.87 {number of children of weird->int_ptr_ptr} {
- $var(weird.int_ptr_ptr) numChildren
-} {1}
-
-# Test: c_variable-4.88
-# Desc: children of *weird->int_ptr_ptr
-gdbtk_test c_variable-4.88 {children of *weird->int_ptr_ptr} {
- get_children weird.int_ptr_ptr.*int_ptr_ptr
-} {**int_ptr_ptr}
-
-# Test: c_variable-4.89
-# Desc: number of children *weird->int_ptr_ptr
-gdbtk_test c_variable-4.89 {number of children *weird->int_ptr_ptr} {
- $var(weird.int_ptr_ptr.*int_ptr_ptr) numChildren
-} {1}
-
-# Test: c_variable-4.90
-# Desc: create weird->int_ptr_ptr
-gdbtk_test c_variable-4.90 {create weird->int_ptr_ptr} {
- create_variable weird->int_ptr_ptr
-} {0}
-
-# Test: c_variable-4.91
-# Desc: children of weird->int_ptr_ptr
-gdbtk_test c_variable-4.91 {children of weird->int_ptr_ptr} {
- get_children weird->int_ptr_ptr
-} {*weird->int_ptr_ptr}
-
-# Test: c_variable-4.92
-# Desc: number of children of (weird->int_ptr_ptr)
-gdbtk_test c_variable-4.92 {number of children of (weird->int_ptr_ptr)} {
- $var(weird->int_ptr_ptr) numChildren
-} {1}
-
-# Test: c_variable-4.93
-# Desc: children of *(weird->int_ptr_ptr)
-gdbtk_test c_variable-4.93 {children of *(weird->int_ptr_ptr)} {
- get_children weird->int_ptr_ptr.*weird->int_ptr_ptr
-} {**weird->int_ptr_ptr}
-
-# Test: c_variable-4.94
-# Desc: number of children of *(weird->int_ptr_ptr)
-gdbtk_test c_variable-4.94 {number of children of *(weird->int_ptr_ptr)} {
- $var(weird->int_ptr_ptr.*weird->int_ptr_ptr) numChildren
-} {1}
-
-# Test: c_variable-4.95
-# Desc: children of *(*(weird->int_ptr_ptr))
-gdbtk_test c_variable-4.95 {children of *(*(weird->int_ptr_ptr))} {
- get_children weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr
-} {}
-
-# Test: c_variable-4.96
-# Desc: number of children of *(*(weird->int_ptr_ptr))
-gdbtk_test c_variable-4.96 {number of children of **weird->int_ptr_ptr} {
- $var(weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr) numChildren
-} {0}
-
-# Test: c_variable-4.97
-# Desc: is weird editable
-gdbtk_test c_variable-4.97 {is weird editable} {
- $var(weird) editable
-} {1}
-
-# Test: c_variable-4.98
-# Desc: is weird->int_ptr_ptr editable
-gdbtk_test c_variable-4.98 {is weird->int_ptr_ptr editable} {
- $var(weird.int_ptr_ptr) editable
-} {1}
-
-# Test: c_variable-4.99
-# Desc: is *(weird->int_ptr_ptr) editable
-gdbtk_test c_variable-4.99 {is *(weird->int_ptr_ptr) editable} {
- $var(weird.int_ptr_ptr.*int_ptr_ptr) editable
-} {1}
-
-# Test: c_variable-4.100
-# Desc: is *(*(weird->int_ptr_ptr)) editable
-gdbtk_test c_variable-4.100 {is *(*(weird->int_ptr_ptr)) editable} {
- $var(weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr) editable
-} {1}
-
-# Test: c_variable-4.101
-# Desc: is weird->u1 editable
-gdbtk_test c_variable-4.101 {is weird->u1 editable} {
- $var(weird.u1) editable
-} {0}
-
-# Test: c_variable-4.102
-# Desc: is weird->s2 editable
-gdbtk_test c_variable-4.102 {is weird->s2 editable} {
- $var(weird.s2) editable
-} {0}
-
-# Test: c_variable-4.103
-# Desc: is struct_declarations.u1.a editable
-gdbtk_test c_variable-4.103 {is struct_declarations.u1.a editable} {
- $var(struct_declarations.u1.a) editable
-} {1}
-
-# Test: c_variable-4.104
-# Desc: is struct_declarations.u1.b editable
-gdbtk_test c_variable-4.104 {is struct_declarations.u1.b editable} {
- $var(struct_declarations.u1.b) editable
-} {1}
-
-# Test: c_variable-4.105
-# Desc: is struct_declarations.u1.c editable
-gdbtk_test c_variable-4.105 {is struct_declarations.u1.c editable} {
- $var(struct_declarations.u1.c) editable
-} {1}
-
-# Test: c_variable-4.106
-# Desc: is struct_declarations.long_array editable
-gdbtk_test c_variable-4.106 {is struct_declarations.long_array editable} {
- $var(struct_declarations.long_array) editable
-} {0}
-
-# Test: c_variable-4.107
-# Desc: is struct_declarations.long_array[0] editable
-gdbtk_test c_variable-4.107 {is struct_declarations.long_array[0] editable} {
- $var(struct_declarations.long_array.0) editable
-} {1}
-
-# Test: c_variable-4.108
-# Desc: is struct_declarations editable
-gdbtk_test c_variable-4.108 {is struct_declarations editable} {
- $var(struct_declarations) editable
-} {0}
-
-delete_variable weird
-
-##### #####
-# #
-# children and update tests #
-# #
-##### #####
-
-# Test: c_variable-5.1
-# Desc: check that nothing changed
-gdbtk_test c_variable-5.1 {check that nothing changed} {
- check_update
-} {{} {struct_declarations.s2.i.3 struct_declarations.func_ptr_ptr struct_declarations.s2.i.4 struct_declarations.s2.i.5 struct_declarations.s2.i.6 struct_declarations.func_ptr struct_declarations.s2.i.7 struct_declarations.s2.i.8 struct_declarations.s2.i.9 struct_declarations.s2.u2.u1s1.d struct_declarations.func_ptr_struct struct_declarations.s2.u2.u1s1.e struct_declarations.u1 struct_declarations.char_ptr.*char_ptr struct_declarations.long_int struct_declarations.s2.u2.u1s2.func struct_declarations.integer struct_declarations.s2.u2 struct_declarations.s2.u2.u1s1.e.0 struct_declarations.s2.u2.u1s1.e.1 struct_declarations.long_array.0 struct_declarations.s2.u2.u1s1.e.2 struct_declarations.long_array.1 struct_declarations.u1.a struct_declarations.s2.u2.u1s1.e.3 struct_declarations.long_array.2 struct_declarations.u1.b struct_declarations.s2.u2.u1s1.e.4 struct_declarations.long_array.3 struct_declarations.u1.c struct_declarations.s2.u2.u1s1.e.5 struct_declarations.long_array.4 struct_declarations.u1.d struct_declarations.u1.b.*b struct_declarations.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr struct_declarations.s2.u2.u1s1.e.6 struct_declarations.long_array.5 struct_declarations.s2.u2.u1s1.e.7 struct_declarations.long_array.6 struct_declarations.s2.u2.u1s1.e.8 struct_declarations.long_array.7 struct_declarations.s2.u2.u1s1.e.9 struct_declarations.long_array.8 struct_declarations.character struct_declarations.long_array.9 struct_declarations.int_ptr_ptr.*int_ptr_ptr struct_declarations.s2.u2.u1s1.func struct_declarations.s2.u2.u1s2.array_ptr struct_declarations.s2.u2.f struct_declarations.s2.u2.u1s1.foo struct_declarations.s2.u2.u1s1 struct_declarations.s2.u2.u1s2.array_ptr.0 struct_declarations.char_ptr struct_declarations.s2.u2.u1s2 struct_declarations.s2.u2.u1s2.array_ptr.1 struct_declarations.int_ptr_ptr struct_declarations.s2 struct_declarations.long_array struct_declarations.s2.g struct_declarations.s2.i.0 struct_declarations.s2.h struct_declarations.s2.i.1 struct_declarations.s2.i struct_declarations.s2.i.2}}
-
-# Step over "struct_declarations.integer = 123;"
-gdb_cmd "step"
-
-# Test: c_variable-5.2
-# Desc: check that integer changed
-gdbtk_test c_variable-5.2 {check that integer changed} {
- check_update
-} {struct_declarations.integer {struct_declarations.s2.i.3 struct_declarations.func_ptr_ptr struct_declarations.s2.i.4 struct_declarations.s2.i.5 struct_declarations.s2.i.6 struct_declarations.func_ptr struct_declarations.s2.i.7 struct_declarations.s2.i.8 struct_declarations.s2.i.9 struct_declarations.s2.u2.u1s1.d struct_declarations.func_ptr_struct struct_declarations.s2.u2.u1s1.e struct_declarations.u1 struct_declarations.char_ptr.*char_ptr struct_declarations.long_int struct_declarations.s2.u2.u1s2.func struct_declarations.integer struct_declarations.s2.u2 struct_declarations.s2.u2.u1s1.e.0 struct_declarations.s2.u2.u1s1.e.1 struct_declarations.long_array.0 struct_declarations.s2.u2.u1s1.e.2 struct_declarations.long_array.1 struct_declarations.u1.a struct_declarations.s2.u2.u1s1.e.3 struct_declarations.long_array.2 struct_declarations.u1.b struct_declarations.s2.u2.u1s1.e.4 struct_declarations.long_array.3 struct_declarations.u1.c struct_declarations.s2.u2.u1s1.e.5 struct_declarations.long_array.4 struct_declarations.u1.d struct_declarations.u1.b.*b struct_declarations.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr struct_declarations.s2.u2.u1s1.e.6 struct_declarations.long_array.5 struct_declarations.s2.u2.u1s1.e.7 struct_declarations.long_array.6 struct_declarations.s2.u2.u1s1.e.8 struct_declarations.long_array.7 struct_declarations.s2.u2.u1s1.e.9 struct_declarations.long_array.8 struct_declarations.character struct_declarations.long_array.9 struct_declarations.int_ptr_ptr.*int_ptr_ptr struct_declarations.s2.u2.u1s1.func struct_declarations.s2.u2.u1s2.array_ptr struct_declarations.s2.u2.f struct_declarations.s2.u2.u1s1.foo struct_declarations.s2.u2.u1s1 struct_declarations.s2.u2.u1s2.array_ptr.0 struct_declarations.char_ptr struct_declarations.s2.u2.u1s2 struct_declarations.s2.u2.u1s2.array_ptr.1 struct_declarations.int_ptr_ptr struct_declarations.s2 struct_declarations.long_array struct_declarations.s2.g struct_declarations.s2.i.0 struct_declarations.s2.h struct_declarations.s2.i.1 struct_declarations.s2.i struct_declarations.s2.i.2}}
-
-# Step over:
-# weird->char_ptr = "hello";
-# bar = 2121;
-# foo = &bar;
-for {set i 0} {$i < 3} {incr i} {
- gdb_cmd "step"
-}
-
-# Test: c_variable-5.3
-# Desc: check that char_ptr changed
-gdbtk_test c_variable-5.3 {check that char_ptr changed} {
- check_update
-} {{{struct_declarations.char_ptr struct_declarations.char_ptr.*char_ptr}} {struct_declarations.s2.i.3 struct_declarations.func_ptr_ptr struct_declarations.s2.i.4 struct_declarations.s2.i.5 struct_declarations.s2.i.6 struct_declarations.func_ptr struct_declarations.s2.i.7 struct_declarations.s2.i.8 struct_declarations.s2.i.9 struct_declarations.s2.u2.u1s1.d struct_declarations.func_ptr_struct struct_declarations.s2.u2.u1s1.e struct_declarations.u1 struct_declarations.char_ptr.*char_ptr struct_declarations.long_int struct_declarations.s2.u2.u1s2.func struct_declarations.integer struct_declarations.s2.u2 struct_declarations.s2.u2.u1s1.e.0 struct_declarations.s2.u2.u1s1.e.1 struct_declarations.long_array.0 struct_declarations.s2.u2.u1s1.e.2 struct_declarations.long_array.1 struct_declarations.u1.a struct_declarations.s2.u2.u1s1.e.3 struct_declarations.long_array.2 struct_declarations.u1.b struct_declarations.s2.u2.u1s1.e.4 struct_declarations.long_array.3 struct_declarations.u1.c struct_declarations.s2.u2.u1s1.e.5 struct_declarations.long_array.4 struct_declarations.u1.d struct_declarations.u1.b.*b struct_declarations.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr struct_declarations.s2.u2.u1s1.e.6 struct_declarations.long_array.5 struct_declarations.s2.u2.u1s1.e.7 struct_declarations.long_array.6 struct_declarations.s2.u2.u1s1.e.8 struct_declarations.long_array.7 struct_declarations.s2.u2.u1s1.e.9 struct_declarations.long_array.8 struct_declarations.character struct_declarations.long_array.9 struct_declarations.int_ptr_ptr.*int_ptr_ptr struct_declarations.s2.u2.u1s1.func struct_declarations.s2.u2.u1s2.array_ptr struct_declarations.s2.u2.f struct_declarations.s2.u2.u1s1.foo struct_declarations.s2.u2.u1s1 struct_declarations.s2.u2.u1s2.array_ptr.0 struct_declarations.char_ptr struct_declarations.s2.u2.u1s2 struct_declarations.s2.u2.u1s2.array_ptr.1 struct_declarations.int_ptr_ptr struct_declarations.s2 struct_declarations.long_array struct_declarations.s2.g struct_declarations.s2.i.0 struct_declarations.s2.h struct_declarations.s2.i.1 struct_declarations.s2.i struct_declarations.s2.i.2}}
-
-# Step over "struct_declarations.int_ptr_ptr = &foo;"
-gdb_cmd "step"
-
-# Test: c_variable-5.4
-# Desc: check that int_ptr_ptr and children changed
-gdbtk_test c_variable-5.4 {check that int_ptr_ptr and children changed} {
- check_update
-} {{{struct_declarations.int_ptr_ptr struct_declarations.int_ptr_ptr.*int_ptr_ptr struct_declarations.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr}} {struct_declarations.s2.i.3 struct_declarations.func_ptr_ptr struct_declarations.s2.i.4 struct_declarations.s2.i.5 struct_declarations.s2.i.6 struct_declarations.func_ptr struct_declarations.s2.i.7 struct_declarations.s2.i.8 struct_declarations.s2.i.9 struct_declarations.s2.u2.u1s1.d struct_declarations.func_ptr_struct struct_declarations.s2.u2.u1s1.e struct_declarations.u1 struct_declarations.char_ptr.*char_ptr struct_declarations.long_int struct_declarations.s2.u2.u1s2.func struct_declarations.integer struct_declarations.s2.u2 struct_declarations.s2.u2.u1s1.e.0 struct_declarations.s2.u2.u1s1.e.1 struct_declarations.long_array.0 struct_declarations.s2.u2.u1s1.e.2 struct_declarations.long_array.1 struct_declarations.u1.a struct_declarations.s2.u2.u1s1.e.3 struct_declarations.long_array.2 struct_declarations.u1.b struct_declarations.s2.u2.u1s1.e.4 struct_declarations.long_array.3 struct_declarations.u1.c struct_declarations.s2.u2.u1s1.e.5 struct_declarations.long_array.4 struct_declarations.u1.d struct_declarations.u1.b.*b struct_declarations.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr struct_declarations.s2.u2.u1s1.e.6 struct_declarations.long_array.5 struct_declarations.s2.u2.u1s1.e.7 struct_declarations.long_array.6 struct_declarations.s2.u2.u1s1.e.8 struct_declarations.long_array.7 struct_declarations.s2.u2.u1s1.e.9 struct_declarations.long_array.8 struct_declarations.character struct_declarations.long_array.9 struct_declarations.int_ptr_ptr.*int_ptr_ptr struct_declarations.s2.u2.u1s1.func struct_declarations.s2.u2.u1s2.array_ptr struct_declarations.s2.u2.f struct_declarations.s2.u2.u1s1.foo struct_declarations.s2.u2.u1s1 struct_declarations.s2.u2.u1s2.array_ptr.0 struct_declarations.char_ptr struct_declarations.s2.u2.u1s2 struct_declarations.s2.u2.u1s2.array_ptr.1 struct_declarations.int_ptr_ptr struct_declarations.s2 struct_declarations.long_array struct_declarations.s2.g struct_declarations.s2.i.0 struct_declarations.s2.h struct_declarations.s2.i.1 struct_declarations.s2.i struct_declarations.s2.i.2}}
-
-# Step over "weird->long_array[0] = 1234;"
-gdb_cmd "step"
-
-# Test: c_variable-5.5
-# Desc: check that long_array[0] changed
-gdbtk_test c_variable-5.5 {check that long_array[0] changed} {
- check_update
-} {struct_declarations.long_array.0 {struct_declarations.s2.i.3 struct_declarations.func_ptr_ptr struct_declarations.s2.i.4 struct_declarations.s2.i.5 struct_declarations.s2.i.6 struct_declarations.func_ptr struct_declarations.s2.i.7 struct_declarations.s2.i.8 struct_declarations.s2.i.9 struct_declarations.s2.u2.u1s1.d struct_declarations.func_ptr_struct struct_declarations.s2.u2.u1s1.e struct_declarations.u1 struct_declarations.char_ptr.*char_ptr struct_declarations.long_int struct_declarations.s2.u2.u1s2.func struct_declarations.integer struct_declarations.s2.u2 struct_declarations.s2.u2.u1s1.e.0 struct_declarations.s2.u2.u1s1.e.1 struct_declarations.long_array.0 struct_declarations.s2.u2.u1s1.e.2 struct_declarations.long_array.1 struct_declarations.u1.a struct_declarations.s2.u2.u1s1.e.3 struct_declarations.long_array.2 struct_declarations.u1.b struct_declarations.s2.u2.u1s1.e.4 struct_declarations.long_array.3 struct_declarations.u1.c struct_declarations.s2.u2.u1s1.e.5 struct_declarations.long_array.4 struct_declarations.u1.d struct_declarations.u1.b.*b struct_declarations.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr struct_declarations.s2.u2.u1s1.e.6 struct_declarations.long_array.5 struct_declarations.s2.u2.u1s1.e.7 struct_declarations.long_array.6 struct_declarations.s2.u2.u1s1.e.8 struct_declarations.long_array.7 struct_declarations.s2.u2.u1s1.e.9 struct_declarations.long_array.8 struct_declarations.character struct_declarations.long_array.9 struct_declarations.int_ptr_ptr.*int_ptr_ptr struct_declarations.s2.u2.u1s1.func struct_declarations.s2.u2.u1s2.array_ptr struct_declarations.s2.u2.f struct_declarations.s2.u2.u1s1.foo struct_declarations.s2.u2.u1s1 struct_declarations.s2.u2.u1s2.array_ptr.0 struct_declarations.char_ptr struct_declarations.s2.u2.u1s2 struct_declarations.s2.u2.u1s2.array_ptr.1 struct_declarations.int_ptr_ptr struct_declarations.s2 struct_declarations.long_array struct_declarations.s2.g struct_declarations.s2.i.0 struct_declarations.s2.h struct_declarations.s2.i.1 struct_declarations.s2.i struct_declarations.s2.i.2}}
-
-# Step over "struct_declarations.long_array[1] = 2345;"
-gdb_cmd "step"
-
-# Test: c_variable-5.6
-# Desc: check that long_array[1] changed
-gdbtk_test c_variable-5.6 {check that long_array[1] changed} {
- check_update
-} {struct_declarations.long_array.1 {struct_declarations.s2.i.3 struct_declarations.func_ptr_ptr struct_declarations.s2.i.4 struct_declarations.s2.i.5 struct_declarations.s2.i.6 struct_declarations.func_ptr struct_declarations.s2.i.7 struct_declarations.s2.i.8 struct_declarations.s2.i.9 struct_declarations.s2.u2.u1s1.d struct_declarations.func_ptr_struct struct_declarations.s2.u2.u1s1.e struct_declarations.u1 struct_declarations.char_ptr.*char_ptr struct_declarations.long_int struct_declarations.s2.u2.u1s2.func struct_declarations.integer struct_declarations.s2.u2 struct_declarations.s2.u2.u1s1.e.0 struct_declarations.s2.u2.u1s1.e.1 struct_declarations.long_array.0 struct_declarations.s2.u2.u1s1.e.2 struct_declarations.long_array.1 struct_declarations.u1.a struct_declarations.s2.u2.u1s1.e.3 struct_declarations.long_array.2 struct_declarations.u1.b struct_declarations.s2.u2.u1s1.e.4 struct_declarations.long_array.3 struct_declarations.u1.c struct_declarations.s2.u2.u1s1.e.5 struct_declarations.long_array.4 struct_declarations.u1.d struct_declarations.u1.b.*b struct_declarations.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr struct_declarations.s2.u2.u1s1.e.6 struct_declarations.long_array.5 struct_declarations.s2.u2.u1s1.e.7 struct_declarations.long_array.6 struct_declarations.s2.u2.u1s1.e.8 struct_declarations.long_array.7 struct_declarations.s2.u2.u1s1.e.9 struct_declarations.long_array.8 struct_declarations.character struct_declarations.long_array.9 struct_declarations.int_ptr_ptr.*int_ptr_ptr struct_declarations.s2.u2.u1s1.func struct_declarations.s2.u2.u1s2.array_ptr struct_declarations.s2.u2.f struct_declarations.s2.u2.u1s1.foo struct_declarations.s2.u2.u1s1 struct_declarations.s2.u2.u1s2.array_ptr.0 struct_declarations.char_ptr struct_declarations.s2.u2.u1s2 struct_declarations.s2.u2.u1s2.array_ptr.1 struct_declarations.int_ptr_ptr struct_declarations.s2 struct_declarations.long_array struct_declarations.s2.g struct_declarations.s2.i.0 struct_declarations.s2.h struct_declarations.s2.i.1 struct_declarations.s2.i struct_declarations.s2.i.2}}
-
-# Step over "weird->long_array[2] = 3456;"
-gdb_cmd "step"
-
-# Test: c_variable-5.7
-# Desc: check that long_array[2] changed
-gdbtk_test c_variable-5.7 {check that long_array[2] changed} {
- check_update
-} {struct_declarations.long_array.2 {struct_declarations.s2.i.3 struct_declarations.func_ptr_ptr struct_declarations.s2.i.4 struct_declarations.s2.i.5 struct_declarations.s2.i.6 struct_declarations.func_ptr struct_declarations.s2.i.7 struct_declarations.s2.i.8 struct_declarations.s2.i.9 struct_declarations.s2.u2.u1s1.d struct_declarations.func_ptr_struct struct_declarations.s2.u2.u1s1.e struct_declarations.u1 struct_declarations.char_ptr.*char_ptr struct_declarations.long_int struct_declarations.s2.u2.u1s2.func struct_declarations.integer struct_declarations.s2.u2 struct_declarations.s2.u2.u1s1.e.0 struct_declarations.s2.u2.u1s1.e.1 struct_declarations.long_array.0 struct_declarations.s2.u2.u1s1.e.2 struct_declarations.long_array.1 struct_declarations.u1.a struct_declarations.s2.u2.u1s1.e.3 struct_declarations.long_array.2 struct_declarations.u1.b struct_declarations.s2.u2.u1s1.e.4 struct_declarations.long_array.3 struct_declarations.u1.c struct_declarations.s2.u2.u1s1.e.5 struct_declarations.long_array.4 struct_declarations.u1.d struct_declarations.u1.b.*b struct_declarations.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr struct_declarations.s2.u2.u1s1.e.6 struct_declarations.long_array.5 struct_declarations.s2.u2.u1s1.e.7 struct_declarations.long_array.6 struct_declarations.s2.u2.u1s1.e.8 struct_declarations.long_array.7 struct_declarations.s2.u2.u1s1.e.9 struct_declarations.long_array.8 struct_declarations.character struct_declarations.long_array.9 struct_declarations.int_ptr_ptr.*int_ptr_ptr struct_declarations.s2.u2.u1s1.func struct_declarations.s2.u2.u1s2.array_ptr struct_declarations.s2.u2.f struct_declarations.s2.u2.u1s1.foo struct_declarations.s2.u2.u1s1 struct_declarations.s2.u2.u1s2.array_ptr.0 struct_declarations.char_ptr struct_declarations.s2.u2.u1s2 struct_declarations.s2.u2.u1s2.array_ptr.1 struct_declarations.int_ptr_ptr struct_declarations.s2 struct_declarations.long_array struct_declarations.s2.g struct_declarations.s2.i.0 struct_declarations.s2.h struct_declarations.s2.i.1 struct_declarations.s2.i struct_declarations.s2.i.2}}
-
-# Step over:
-# struct_declarations.long_array[3] = 4567;
-# weird->long_array[4] = 5678;
-# struct_declarations.long_array[5] = 6789;
-# weird->long_array[6] = 7890;
-# struct_declarations.long_array[7] = 8901;
-# weird->long_array[8] = 9012;
-# struct_declarations.long_array[9] = 1234;
-for {set i 0} {$i < 7} {incr i} {
- gdb_cmd "step"
-}
-
-# Test: c_variable-5.8
-# Desc: check that long_array[3-9] changed
-gdbtk_test c_variable-5.8 {check that long_array[3-9] changed} {
- check_update
-} {{{struct_declarations.long_array.3 struct_declarations.long_array.4 struct_declarations.long_array.5 struct_declarations.long_array.6 struct_declarations.long_array.7 struct_declarations.long_array.8 struct_declarations.long_array.9}} {struct_declarations.s2.i.3 struct_declarations.func_ptr_ptr struct_declarations.s2.i.4 struct_declarations.s2.i.5 struct_declarations.s2.i.6 struct_declarations.func_ptr struct_declarations.s2.i.7 struct_declarations.s2.i.8 struct_declarations.s2.i.9 struct_declarations.s2.u2.u1s1.d struct_declarations.func_ptr_struct struct_declarations.s2.u2.u1s1.e struct_declarations.u1 struct_declarations.char_ptr.*char_ptr struct_declarations.long_int struct_declarations.s2.u2.u1s2.func struct_declarations.integer struct_declarations.s2.u2 struct_declarations.s2.u2.u1s1.e.0 struct_declarations.s2.u2.u1s1.e.1 struct_declarations.long_array.0 struct_declarations.s2.u2.u1s1.e.2 struct_declarations.long_array.1 struct_declarations.u1.a struct_declarations.s2.u2.u1s1.e.3 struct_declarations.long_array.2 struct_declarations.u1.b struct_declarations.s2.u2.u1s1.e.4 struct_declarations.long_array.3 struct_declarations.u1.c struct_declarations.s2.u2.u1s1.e.5 struct_declarations.long_array.4 struct_declarations.u1.d struct_declarations.u1.b.*b struct_declarations.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr struct_declarations.s2.u2.u1s1.e.6 struct_declarations.long_array.5 struct_declarations.s2.u2.u1s1.e.7 struct_declarations.long_array.6 struct_declarations.s2.u2.u1s1.e.8 struct_declarations.long_array.7 struct_declarations.s2.u2.u1s1.e.9 struct_declarations.long_array.8 struct_declarations.character struct_declarations.long_array.9 struct_declarations.int_ptr_ptr.*int_ptr_ptr struct_declarations.s2.u2.u1s1.func struct_declarations.s2.u2.u1s2.array_ptr struct_declarations.s2.u2.f struct_declarations.s2.u2.u1s1.foo struct_declarations.s2.u2.u1s1 struct_declarations.s2.u2.u1s2.array_ptr.0 struct_declarations.char_ptr struct_declarations.s2.u2.u1s2 struct_declarations.s2.u2.u1s2.array_ptr.1 struct_declarations.int_ptr_ptr struct_declarations.s2 struct_declarations.long_array struct_declarations.s2.g struct_declarations.s2.i.0 struct_declarations.s2.h struct_declarations.s2.i.1 struct_declarations.s2.i struct_declarations.s2.i.2}}
-
-# Step over "weird->func_ptr = nothing;"
-gdb_cmd "step"
-
-# Test: c_variable-5.9
-# Desc: check that func_ptr changed
-gdbtk_test c_variable-5.9 {check that func_ptr changed} {
- check_update
-} {struct_declarations.func_ptr {struct_declarations.s2.i.3 struct_declarations.func_ptr_ptr struct_declarations.s2.i.4 struct_declarations.s2.i.5 struct_declarations.s2.i.6 struct_declarations.func_ptr struct_declarations.s2.i.7 struct_declarations.s2.i.8 struct_declarations.s2.i.9 struct_declarations.s2.u2.u1s1.d struct_declarations.func_ptr_struct struct_declarations.s2.u2.u1s1.e struct_declarations.u1 struct_declarations.char_ptr.*char_ptr struct_declarations.long_int struct_declarations.s2.u2.u1s2.func struct_declarations.integer struct_declarations.s2.u2 struct_declarations.s2.u2.u1s1.e.0 struct_declarations.s2.u2.u1s1.e.1 struct_declarations.long_array.0 struct_declarations.s2.u2.u1s1.e.2 struct_declarations.long_array.1 struct_declarations.u1.a struct_declarations.s2.u2.u1s1.e.3 struct_declarations.long_array.2 struct_declarations.u1.b struct_declarations.s2.u2.u1s1.e.4 struct_declarations.long_array.3 struct_declarations.u1.c struct_declarations.s2.u2.u1s1.e.5 struct_declarations.long_array.4 struct_declarations.u1.d struct_declarations.u1.b.*b struct_declarations.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr struct_declarations.s2.u2.u1s1.e.6 struct_declarations.long_array.5 struct_declarations.s2.u2.u1s1.e.7 struct_declarations.long_array.6 struct_declarations.s2.u2.u1s1.e.8 struct_declarations.long_array.7 struct_declarations.s2.u2.u1s1.e.9 struct_declarations.long_array.8 struct_declarations.character struct_declarations.long_array.9 struct_declarations.int_ptr_ptr.*int_ptr_ptr struct_declarations.s2.u2.u1s1.func struct_declarations.s2.u2.u1s2.array_ptr struct_declarations.s2.u2.f struct_declarations.s2.u2.u1s1.foo struct_declarations.s2.u2.u1s1 struct_declarations.s2.u2.u1s2.array_ptr.0 struct_declarations.char_ptr struct_declarations.s2.u2.u1s2 struct_declarations.s2.u2.u1s2.array_ptr.1 struct_declarations.int_ptr_ptr struct_declarations.s2 struct_declarations.long_array struct_declarations.s2.g struct_declarations.s2.i.0 struct_declarations.s2.h struct_declarations.s2.i.1 struct_declarations.s2.i struct_declarations.s2.i.2}}
-
-# Delete all variables
-delete_all_variables
-
-# Step over all lines:
-# ...
-# psnp = &snp0;
-for {set i 0} {$i < 43} {incr i} {
- gdb_cmd "step"
-}
-
-# Test: c_variable-5.10
-# Desc: create psnp->char_ptr
-gdbtk_test c_variable-5.10 {create psnp->char_ptr} {
- create_variable psnp->char_ptr
-} {0}
-
-# Test: c_variable-5.11
-# Desc: children of psnp->char_ptr
-gdbtk_test c_variable-5.11 {children of psnp->char_ptr} {
- get_children psnp->char_ptr
-} {*psnp->char_ptr}
-
-# Test: c_variable-5.12
-# Desc: number of children of psnp->char_ptr
-gdbtk_test c_variable-5.12 {number of children of psnp->char_ptr} {
- $var(psnp->char_ptr) numChildren
-} {1}
-
-# Test: c_variable-5.13
-# Desc: children of *(psnp->char_ptr)
-gdbtk_test c_variable-5.13 {children of *(psnp->char_ptr)} {
- get_children psnp->char_ptr.*psnp->char_ptr
-} {**psnp->char_ptr}
-
-# Test: c_variable-5.14
-# Desc: number of children of *(psnp->char_ptr)
-gdbtk_test c_variable-5.14 {number of children of *(psnp->char_ptr)} {
- $var(psnp->char_ptr.*psnp->char_ptr) numChildren
-} {1}
-
-# Test: c_variable-5.15
-# Desc: children of *(*(psnp->char_ptr))
-gdbtk_test c_variable-5.15 {children of *(*(psnp->char_ptr))} {
- get_children psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr
-} {***psnp->char_ptr}
-
-# Test: c_variable-5.16
-# Desc: number of children of *(*(psnp->char_ptr))
-gdbtk_test c_variable-5.16 {number of children of *(*(psnp->char_ptr))} {
- $var(psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr) numChildren
-} {1}
-
-# Test: c_variable-5.17
-# Desc: children of *(*(*(psnp->char_ptr)))
-gdbtk_test c_variable-5.17 {children of *(*(*(psnp->char_ptr)))} {
- get_children psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr
-} {****psnp->char_ptr}
-
-# Test: c_variable-5.18
-# Desc: number of children of *(*(*(psnp->char_ptr)))
-gdbtk_test c_variable-5.18 {number of children of *(*(*(psnp->char_ptr)))} {
- $var(psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr) numChildren
-} {1}
-
-# Test: c_variable-5.19
-# Desc: create psnp->long_ptr
-gdbtk_test c_variable-5.19 {create psnp->long_ptr} {
- create_variable psnp->long_ptr
-} {0}
-
-# Test: c_variable-5.20
-# Desc: children of psnp->long_ptr
-gdbtk_test c_variable-5.20 {children of psnp->long_ptr} {
- get_children psnp->long_ptr
-} {*psnp->long_ptr}
-
-# Test: c_variable-5.21
-# Desc: number of children of psnp->long_ptr
-gdbtk_test c_variable-5.21 {number of children of psnp->long_ptr} {
- $var(psnp->long_ptr) numChildren
-} {1}
-
-# Test: c_variable-5.22
-# Desc: children of *(psnp->long_ptr)
-gdbtk_test c_variable-5.22 {children of *(psnp->long_ptr)} {
- get_children psnp->long_ptr.*psnp->long_ptr
-} {**psnp->long_ptr}
-
-# Test: c_variable-5.23
-# Desc: number of children of *(psnp->long_ptr)
-gdbtk_test c_variable-5.23 {number of children of *(psnp->long_ptr)} {
- $var(psnp->long_ptr.*psnp->long_ptr) numChildren
-} {1}
-
-# Test: c_variable-5.24
-# Desc: children of *(*(psnp->long_ptr))
-gdbtk_test c_variable-5.24 {children of *(*(psnp->long_ptr))} {
- get_children psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr
-} {***psnp->long_ptr}
-
-# Test: c_variable-5.25
-# Desc: number of children of *(*(psnp->long_ptr))
-gdbtk_test c_variable-5.25 {number of children of *(*(psnp->long_ptr))} {
- $var(psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr) numChildren
-} {1}
-
-# Test: c_variable-5.26
-# Desc: children of *(*(*(psnp->long_ptr)))
-gdbtk_test c_variable-5.26 {children of *(*(*(psnp->long_ptr)))} {
- get_children psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr
-} {****psnp->long_ptr}
-
-# Test: c_variable-5.27
-# Desc: number of children of *(*(*(psnp->long_ptr)))
-gdbtk_test c_variable-5.27 {number of children of *(*(*(psnp->long_ptr)))} {
- $var(psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr) numChildren
-} {1}
-
-# Test: c_variable-5.28
-# Desc: children of *(*(*(*(psnp->long_ptr))))
-gdbtk_test c_variable-5.29 {children of *(*(*(*(psnp->long_ptr))))} {
- get_children psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr
-} {}
-
-# Test: c_variable-5.29
-# Desc: number of children of *(*(*(*(psnp->long_ptr))))
-gdbtk_test c_variable-5.29 {number of children of *(*(*(*(psnp->long_ptr))))} {
- $var(psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr) numChildren
-} {0}
-
-# Test: c_variable-5.30
-# Desc: create psnp->ptrs
-gdbtk_test c_variable-5.30 {create psnp->ptrs} {
- create_variable psnp->ptrs
-} {0}
-
-# Test: c_variable-5.31
-# Desc: children of psnp->ptrs
-gdbtk_test c_variable-5.31 {children of psnp->ptrs} {
- get_children psnp->ptrs
-} {0 1 2}
-
-# Test: c_variable-5.32
-# Desc: number of children of psnp->ptrs
-gdbtk_test c_variable-5.32 {number of children of psnp->ptrs} {
- $var(psnp->ptrs) numChildren
-} {3}
-
-# Test: c_variable-5.33
-# Desc: children of psnp->ptrs[0]
-gdbtk_test c_variable-5.33 {children of psnp->ptrs[0]} {
- get_children psnp->ptrs.0
-} {char_ptr long_ptr ptrs next}
-
-# Test: c_variable-5.34
-# Desc: number of children of psnp->ptrs[0]
-gdbtk_test c_variable-5.34 {number of children of psnp->ptrs[0]} {
- $var(psnp->ptrs.0) numChildren
-} {4}
-
-# Test: c_variable-5.35
-# Desc: children of psnp->ptrs[0]->next
-gdbtk_test c_variable-5.35 {children of psnp->ptrs.0.next} {
- get_children psnp->ptrs.0.next
-} {char_ptr long_ptr ptrs next}
-
-# Test: c_variable-5.36
-# Desc: number of children of psnp->ptrs[0]->next
-gdbtk_test c_variable-5.36 {number of children of psnp->ptrs[0]->next} {
- $var(psnp->ptrs.0.next) numChildren
-} {4}
-
-# Test: c_variable-5.37
-# Desc: children of psnp->ptrs[0]->next->char_ptr
-gdbtk_test c_variable-5.37 {children of psnp->ptrs[0]->next->char_ptr} {
- get_children psnp->ptrs.0.next.char_ptr
-} {*char_ptr}
-
-# Test: c_variable-5.38
-# Desc: number of children of psnp->ptrs[0]->next->char_ptr
-gdbtk_test c_variable-5.38 {number of children of psnp->ptrs[0]->next->char_ptr} {
- $var(psnp->ptrs.0.next.char_ptr) numChildren
-} {1}
-
-# Test: c_variable-5.39
-# Desc: children of *psnp->ptrs[0]->next->char_ptr
-gdbtk_test c_variable-5.39 {children of *psnp->ptrs[0]->next->char_ptr} {
- get_children psnp->ptrs.0.next.char_ptr.*char_ptr
-} {**char_ptr}
-
-# Test: c_variable-5.40
-# Desc: number of children of *psnp->ptrs[0]->next->char_ptr
-gdbtk_test c_variable-5.40 {number of children of *psnp->ptrs[0]->next->char_ptr} {
- $var(psnp->ptrs.0.next.char_ptr.*char_ptr) numChildren
-} {1}
-
-# Test: c_variable-5.41
-# Desc: children of **psnp->ptrs[0]->next->char_ptr
-gdbtk_test c_variable-5.41 {children of **psnp->ptrs[0]->next->char_ptr} {
- get_children psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr
-} {***char_ptr}
-
-# Test: c_variable-5.42
-# Desc: number of children of **psnp->ptrs[0]->next->char_ptr
-gdbtk_test c_variable-5.42 {number of children of **psnp->ptrs[0]->next->char_ptr} {
- $var(psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr) numChildren
-} {1}
-
-# Test: c_variable-5.43
-# Desc: children of ***psnp->ptrs[0]->next->char_ptr
-gdbtk_test c_variable-5.43 {children of ***psnp->ptrs[0]->next->char_ptr} {
- get_children psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr
-} {****char_ptr}
-
-# Test: c_variable-5.44
-# Desc: number of children of ***psnp->ptrs[0]->next->char_ptr
-gdbtk_test c_variable-5.44 {number of children of ***psnp->ptrs[0]->next->char_ptr} {
- $var(psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr) numChildren
-} {1}
-
-# Test: c_variable-5.45
-# Desc: children of psnp->ptrs[0]->next->next
-gdbtk_test c_variable-5.45 {children of psnp->ptrs[0]->next->next} {
- get_children psnp->ptrs.0.next.next
-} {char_ptr long_ptr ptrs next}
-
-# Test: c_variable-5.46
-# Desc: children of psnp->ptrs[0]->next->next->ptrs
-gdbtk_test c_variable-5.46 {children of psnp->ptrs[0]->next->next->ptrs} {
- get_children psnp->ptrs.0.next.next.ptrs
-} {0 1 2}
-
-# Step over "snp0.char_ptr = &b3;"
-gdb_cmd "step"
-
-# Test: c_variable-5.47
-# Desc: check that psnp->char_ptr (and [0].char_ptr) changed
-gdbtk_test c_variable-5.47 {check that psnp->char_ptr (and [0].char_ptr) changed} {
- check_update
-} {{psnp->ptrs.0.char_ptr {psnp->char_ptr psnp->char_ptr.*psnp->char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr}} {psnp->ptrs.0.next psnp->ptrs.0.next.ptrs psnp->ptrs.0.next.next psnp->ptrs.0.next.next.char_ptr psnp->ptrs.0.next.next.long_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr psnp->ptrs.0.next.char_ptr psnp->ptrs.0.next.long_ptr psnp->ptrs.0.next.next.ptrs psnp->ptrs.0.next.char_ptr.*char_ptr psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr psnp->ptrs.0.next.next.next psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr psnp->char_ptr.*psnp->char_ptr psnp->ptrs.0.next.next.ptrs.0 psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr psnp->long_ptr.*psnp->long_ptr psnp->ptrs.0.next.next.ptrs.1 psnp->ptrs.0.next.next.ptrs.2 psnp->ptrs.0.char_ptr psnp->ptrs.0.long_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr.****char_ptr psnp->ptrs.0.ptrs psnp->ptrs.0 psnp->ptrs.1 psnp->ptrs.2 psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr}}
-
-# Step over "snp1.char_ptr = &c3;"
-gdb_cmd "step"
-
-# Test: c_variable-5.48
-# Desc: check that psnp->next->char_ptr (and [1].char_ptr) changed
-gdbtk_test c_variable-5.48 {check that psnp->next->char_ptr (and [1].char_ptr) changed} {
- check_update
-} {{{psnp->ptrs.0.next.char_ptr psnp->ptrs.0.next.char_ptr.*char_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr.****char_ptr}} {psnp->ptrs.0.next psnp->ptrs.0.next.ptrs psnp->ptrs.0.next.next psnp->ptrs.0.next.next.char_ptr psnp->ptrs.0.next.next.long_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr psnp->ptrs.0.next.char_ptr psnp->ptrs.0.next.long_ptr psnp->ptrs.0.next.next.ptrs psnp->ptrs.0.next.char_ptr.*char_ptr psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr psnp->ptrs.0.next.next.next psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr psnp->char_ptr.*psnp->char_ptr psnp->ptrs.0.next.next.ptrs.0 psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr psnp->long_ptr.*psnp->long_ptr psnp->ptrs.0.next.next.ptrs.1 psnp->ptrs.0.next.next.ptrs.2 psnp->ptrs.0.char_ptr psnp->ptrs.0.long_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr.****char_ptr psnp->ptrs.0.ptrs psnp->ptrs.0 psnp->ptrs.1 psnp->ptrs.2 psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr}}
-
-# Step over "snp2.char_ptr = &a3;"
-gdb_cmd "step"
-
-# Test: c_variable-5.49
-# Desc: check that psnp->next->next->char_ptr (and [2].char_ptr) changed
-gdbtk_test c_variable-5.49 {heck that psnp->next->next->char_ptr (and [2].char_ptr) changed} {
- check_update
-} {psnp->ptrs.0.next.next.char_ptr {psnp->ptrs.0.next psnp->ptrs.0.next.ptrs psnp->ptrs.0.next.next psnp->ptrs.0.next.next.char_ptr psnp->ptrs.0.next.next.long_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr psnp->ptrs.0.next.char_ptr psnp->ptrs.0.next.long_ptr psnp->ptrs.0.next.next.ptrs psnp->ptrs.0.next.char_ptr.*char_ptr psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr psnp->ptrs.0.next.next.next psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr psnp->char_ptr.*psnp->char_ptr psnp->ptrs.0.next.next.ptrs.0 psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr psnp->long_ptr.*psnp->long_ptr psnp->ptrs.0.next.next.ptrs.1 psnp->ptrs.0.next.next.ptrs.2 psnp->ptrs.0.char_ptr psnp->ptrs.0.long_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr.****char_ptr psnp->ptrs.0.ptrs psnp->ptrs.0 psnp->ptrs.1 psnp->ptrs.2 psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr}}
-
-# Step over "snp0.long_ptr = &y3;"
-gdb_cmd "step"
-
-# Test: c_variable-5.50
-# Desc: check that psnp->long_ptr (and [0].long_ptr) changed
-gdbtk_test c_variable-5.50 {check that psnp->long_ptr (and [0].long_ptr) changed} {
- check_update
-} {{psnp->ptrs.0.long_ptr {psnp->long_ptr psnp->long_ptr.*psnp->long_ptr psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr}} {psnp->ptrs.0.next psnp->ptrs.0.next.ptrs psnp->ptrs.0.next.next psnp->ptrs.0.next.next.char_ptr psnp->ptrs.0.next.next.long_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr psnp->ptrs.0.next.char_ptr psnp->ptrs.0.next.long_ptr psnp->ptrs.0.next.next.ptrs psnp->ptrs.0.next.char_ptr.*char_ptr psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr psnp->ptrs.0.next.next.next psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr psnp->char_ptr.*psnp->char_ptr psnp->ptrs.0.next.next.ptrs.0 psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr psnp->long_ptr.*psnp->long_ptr psnp->ptrs.0.next.next.ptrs.1 psnp->ptrs.0.next.next.ptrs.2 psnp->ptrs.0.char_ptr psnp->ptrs.0.long_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr.****char_ptr psnp->ptrs.0.ptrs psnp->ptrs.0 psnp->ptrs.1 psnp->ptrs.2 psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr}}
-
-# Step over "snp1.long_ptr = &x3;"
-gdb_cmd "step"
-
-# Test: c_variable-5.51
-# Desc: check that psnp->next->long_ptr (and [1].long_ptr) changed
-gdbtk_test c_variable-5.51 {check that psnp->next->long_ptr (and [1].long_ptr) changed} {
- check_update
-} {psnp->ptrs.0.next.long_ptr {psnp->ptrs.0.next psnp->ptrs.0.next.ptrs psnp->ptrs.0.next.next psnp->ptrs.0.next.next.char_ptr psnp->ptrs.0.next.next.long_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr psnp->ptrs.0.next.char_ptr psnp->ptrs.0.next.long_ptr psnp->ptrs.0.next.next.ptrs psnp->ptrs.0.next.char_ptr.*char_ptr psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr psnp->ptrs.0.next.next.next psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr psnp->char_ptr.*psnp->char_ptr psnp->ptrs.0.next.next.ptrs.0 psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr psnp->long_ptr.*psnp->long_ptr psnp->ptrs.0.next.next.ptrs.1 psnp->ptrs.0.next.next.ptrs.2 psnp->ptrs.0.char_ptr psnp->ptrs.0.long_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr.****char_ptr psnp->ptrs.0.ptrs psnp->ptrs.0 psnp->ptrs.1 psnp->ptrs.2 psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr}}
-
-# Step over "snp2.long_ptr = &z3;"
-gdb_cmd "step"
-
-# Test: c_variable-5.52
-# Desc: check that psnp->next->next->long_ptr (and [2].long_ptr) changed
-gdbtk_test c_variable-5.52 {check that psnp->next->next->long_ptr (and [2].long_ptr) changed} {
- check_update
-} {psnp->ptrs.0.next.next.long_ptr {psnp->ptrs.0.next psnp->ptrs.0.next.ptrs psnp->ptrs.0.next.next psnp->ptrs.0.next.next.char_ptr psnp->ptrs.0.next.next.long_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr psnp->ptrs.0.next.char_ptr psnp->ptrs.0.next.long_ptr psnp->ptrs.0.next.next.ptrs psnp->ptrs.0.next.char_ptr.*char_ptr psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr psnp->ptrs.0.next.next.next psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr psnp->char_ptr.*psnp->char_ptr psnp->ptrs.0.next.next.ptrs.0 psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr psnp->long_ptr.*psnp->long_ptr psnp->ptrs.0.next.next.ptrs.1 psnp->ptrs.0.next.next.ptrs.2 psnp->ptrs.0.char_ptr psnp->ptrs.0.long_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr.****char_ptr psnp->ptrs.0.ptrs psnp->ptrs.0 psnp->ptrs.1 psnp->ptrs.2 psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr}}
-
-# Test: c_variable-5.53
-# Desc: names of editable variables
-gdbtk_test c_variable-5.53 {names of editable variables} {
- editable_variables
-} {{psnp->ptrs.0.next psnp->ptrs.0.next.next psnp->ptrs.0.next.next.char_ptr psnp->ptrs.0.next.next.long_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr psnp->ptrs.0.next.char_ptr psnp->ptrs.0.next.long_ptr psnp->ptrs.0.next.char_ptr.*char_ptr psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr psnp->ptrs.0.next.next.next psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr psnp->char_ptr.*psnp->char_ptr psnp->ptrs.0.next.next.ptrs.0 psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr psnp->long_ptr.*psnp->long_ptr psnp->ptrs.0.next.next.ptrs.1 psnp->ptrs.0.next.next.ptrs.2 psnp->ptrs.0.char_ptr psnp->ptrs.0.long_ptr psnp->char_ptr psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr.****char_ptr psnp->long_ptr psnp->ptrs.0 psnp->ptrs.1 psnp->ptrs.2 psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr} {psnp->ptrs.0.next.ptrs psnp->ptrs.0.next.next.ptrs psnp->ptrs psnp->ptrs.0.ptrs}}
-
-##### #####
-# #
-# Display tests #
-# #
-##### #####
-
-delete_all_variables
-
-# Test: c_variable-6.1
-# Desc: create variable bar
-gdbtk_test c_variable-6.1 {create variable bar} {
- create_variable bar
-} {0}
-
-# Test: c_variable-6.2
-# Desc: type of variable bar
-gdbtk_test c_variable-6.2 {type of variable bar} {
- $var(bar) type
-} {int}
-
-# Test: c_variable-6.3
-# Desc: format of variable bar
-gdbtk_test c_variable-6.3 {format of variable bar} {
- $var(bar) format
-} {natural}
-
-# Test: c_variable-6.4
-# Desc: value of variable bar
-gdbtk_test c_variable-6.4 {value of variable bar} {
- value bar d
-} {ok}
-
-# Test: c_variable-6.5
-# Desc: change format of bar to hex
-gdbtk_test c_variable-6.5 {change format of bar to hex} {
- $var(bar) format hex
- $var(bar) format
-} {hexadecimal}
-
-# Test: c_variable-6.6
-# Desc: value of bar with new format
-gdbtk_test c_variable-6.6 {value of bar with new format} {
- value bar x
-} {ok}
-
-# Test: c_variable-6.7
-# Desc: change value of bar
-gdbtk_test c_variable-6.7 {change value of bar} {
- $var(bar) value 3
- value bar x
-} {ok}
-
-# Test: c_variable-6.8
-# Desc: check new value of bar
-gdbtk_test c_variable-6.8 {change value of bar} {
- $var(bar) format decimal
- $var(bar) value
-} {3}
-
-delete_variable bar
-
-# Test: c_variable-6.11
-# Desc: create variable foo
-gdbtk_test c_variable-6.11 {create variable foo} {
- create_variable foo
-} {0}
-
-# Test: c_variable-6.12
-# Desc: type of variable foo
-gdbtk_test c_variable-6.12 {type of variable foo} {
- $var(foo) type
-} {int *}
-
-# Test: c_variable-6.13
-# Desc: format of variable foo
-gdbtk_test c_variable-6.13 {format of variable foo} {
- $var(foo) format
-} {natural}
-
-# Test: c_variable-6.14
-# Desc: value of variable foo
-gdbtk_test c_variable-6.14 {value of variable foo} {
- value foo x
-} {ok}
-
-# Test: c_variable-6.15
-# Desc: change format of var to octal
-gdbtk_test c_variable-6.15 {change format of foo to octal} {
- $var(foo) format octal
- $var(foo) format
-} {octal}
-
-# Test: c_variable-6.16
-# Desc: value of foo with new format
-gdbtk_test c_variable-6.16 {value of foo with new format} {
- value foo o
-} {ok}
-
-# Test: c_variable-6.17
-# Desc: change value of foo
-gdbtk_test c_variable-6.17 {change value of foo} {
- $var(foo) value 3
- value foo o
-} {ok}
-
-# Test: c_variable-6.18
-# Desc: check new value of foo
-gdbtk_test c_variable-6.18 {check new value of foo} {
- $var(foo) format decimal
- $var(foo) value
-} {3}
-
-delete_variable foo
-
-# Test: c_variable-6.21
-# Desc: create variable weird and children
-gdbtk_test c_variable-6.21 {create variable foo} {
- if {![create_variable weird]} {
- lsort [get_children weird]
- }
-} {char_ptr character func_ptr func_ptr_ptr func_ptr_struct int_ptr_ptr integer long_array long_int s2 u1}
-
-# Test: c_variable-6.22
-# Desc: type of weird and children
-gdbtk_test c_variable-6.22 {type of weird and children} {
- set types {}
- foreach v [lsort [array names var]] {
- lappend types [$var($v) type]
- }
-
- set types
-} {{weird_struct *} {char *} char {void (*)(void)} {struct _struct_decl *(*)(int, char *, long int)} {struct _struct_decl (*)(int, char *, long int)} {int **} int {long int [10]} {long int} struct union}
-
-# Test: c_variable-6.23
-# Desc: change format of weird.func_ptr and weird.func_ptr_ptr
-gdbtk_test c_variable-6.23 {change format of weird.func_ptr and weird.func_ptr_ptr} {
- $var(weird.func_ptr) format hexadecimal
- $var(weird.func_ptr_ptr) format hexadecimal
- set result {}
- lappend result [$var(weird.func_ptr) format]
- lappend result [$var(weird.func_ptr_ptr) format]
- set result
-} {hexadecimal hexadecimal}
-
-# Test: c_variable-6.24
-# Desc: format of weird and children
-gdbtk_test c_variable-6.24 {format of weird and children} {
- set formats {}
- foreach v [lsort [array names var]] {
- lappend formats [$var($v) format]
- }
-
- set formats
-} {natural natural natural hexadecimal hexadecimal natural natural natural natural natural natural natural}
-
-# Test: c_variable-6.25
-# Desc: value of weird and children
-gdbtk_test c_variable-6.25 {value of weird and children} {
- set values {}
- foreach v [lsort [array names var]] f [list x "" "" x x x x d d d d d] {
- lappend values [value $v $f]
- }
-
- set values
-} {ok ok ok ok ok ok ok ok weird.long_array ok weird.s2 weird.u1}
-
-# Test: c_variable-6.26
-# Desc: change format of weird and children to octal
-gdbtk_test c_variable-6.26 {change format of weird and children to octal} {
- set formats {}
- foreach v [lsort [array names var]] {
- $var($v) format octal
- lappend formats [$var($v) format]
- }
-
- set formats
-} {octal octal octal octal octal octal octal octal octal octal octal octal}
-
-# Test: c_variable-6.27
-# Desc: value of weird and children with new format
-gdbtk_test c_variable-6.27 {value of foo with new format} {
- set values {}
- foreach v [lsort [array names var]] {
- lappend values [value $v o]
- }
-
- set values
-} {ok ok ok ok ok ok ok ok weird.long_array ok weird.s2 weird.u1}
-
-# Test: c_variable-6.30
-# Desc: create more children of weird
-gdbtk_test c_variable-6.30 {create more children of weird} {
- foreach v [array names var] {
- get_children $v
- }
-
- # Do it twice to get more children
- foreach v [array names var] {
- get_children $v
- }
-
- lsort [array names var]
-} {weird weird.char_ptr weird.char_ptr.*char_ptr weird.character weird.func_ptr weird.func_ptr_ptr weird.func_ptr_struct weird.int_ptr_ptr weird.int_ptr_ptr.*int_ptr_ptr weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr weird.integer weird.long_array weird.long_array.0 weird.long_array.1 weird.long_array.2 weird.long_array.3 weird.long_array.4 weird.long_array.5 weird.long_array.6 weird.long_array.7 weird.long_array.8 weird.long_array.9 weird.long_int weird.s2 weird.s2.g weird.s2.h weird.s2.i weird.s2.i.0 weird.s2.i.1 weird.s2.i.2 weird.s2.i.3 weird.s2.i.4 weird.s2.i.5 weird.s2.i.6 weird.s2.i.7 weird.s2.i.8 weird.s2.i.9 weird.s2.u2 weird.s2.u2.f weird.s2.u2.u1s1 weird.s2.u2.u1s2 weird.u1 weird.u1.a weird.u1.b weird.u1.b.*b weird.u1.c weird.u1.d}
-
-# Test: c_variable-6.31
-# Desc: check that all children of weird change
-# Ok, obviously things like weird.s2 and weird.u1 will not change!
-gdbtk_test c_variable-6.31 {check that all children of weird change (ops, we are now reporting array names as changed in this case - seems harmless though)} {
- $var(weird) value 0x2121
- check_update
-} {{{weird weird.integer weird.character weird.char_ptr weird.char_ptr.*char_ptr weird.long_int weird.int_ptr_ptr weird.int_ptr_ptr.*int_ptr_ptr weird.long_array.0 weird.long_array.1 weird.long_array.2 weird.long_array.3 weird.long_array.4 weird.long_array.5 weird.long_array.6 weird.long_array.7 weird.long_array.8 weird.long_array.9 weird.func_ptr weird.func_ptr_struct weird.func_ptr_ptr weird.u1.a weird.u1.b weird.u1.c weird.u1.d weird.s2.u2.f weird.s2.g weird.s2.h weird.s2.i.0 weird.s2.i.1 weird.s2.i.2 weird.s2.i.3 weird.s2.i.4 weird.s2.i.5 weird.s2.i.6 weird.s2.i.7 weird.s2.i.8 weird.s2.i.9}} {weird.char_ptr weird.s2.u2.f weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr weird.s2.g weird.s2.h weird.s2.i weird.func_ptr_ptr weird.func_ptr weird.s2.u2 weird.int_ptr_ptr weird.long_int weird.character weird.s2.u2.u1s1 weird.s2.u2.u1s2 weird.long_array.0 weird.u1.a weird.long_array.1 weird.s2 weird.func_ptr_struct weird.u1.b weird.long_array.2 weird.long_array weird.u1.c weird.long_array.3 weird.u1.d weird.long_array.4 weird.long_array.5 weird.s2.i.0 weird.long_array.6 weird.s2.i.1 weird.long_array.7 weird.s2.i.2 weird.long_array.8 weird.s2.i.3 weird.long_array.9 weird.s2.i.4 weird.integer weird.s2.i.5 weird.s2.i.6 weird.s2.i.7 weird.s2.i.8 weird.int_ptr_ptr.*int_ptr_ptr weird.s2.i.9 weird.char_ptr.*char_ptr weird.u1 weird.u1.b.*b}}
-
-delete_variable weird
-
-##### #####
-# #
-# Special Display Tests #
-# #
-##### #####
-
-# Stop in "do_special_tests"
-gdb_cmd "break do_special_tests"
-gdb_cmd "continue"
-
-# Test: c_variable-7.1
-# Desc: stop in do_special_tests
-gdbtk_test c_variable-7.1 {stop in do_special_tests} {
- lindex [gdb_loc] 1
-} {do_special_tests}
-
-# Test: c_variable-7.10
-# Desc: create union u
-gdbtk_test c_variable-7.10 {create union u} {
- create_variable u
-} {0}
-
-# Test: c_variable-7.11
-# Desc: value of u
-gdbtk_test c_variable-7.11 {value of u} {
- $var(u) value
-} {{...}}
-
-# Test: c_variable-7.12
-# Desc: type of u
-gdbtk_test c_variable-7.12 {type of u} {
- $var(u) type
-} {union named_union}
-
-# Test: c_variable-7.13
-# Desc: is u editable
-gdbtk_test c_variable-7.13 {is u editable} {
- $var(u) editable
-} {0}
-
-# Test: c_variable-7.14
-# Desc: number of children of u
-gdbtk_test c_variable-7.14 {number of children of u} {
- $var(u) numChildren
-} {2}
-
-# Test: c_variable-7.15
-# Desc: children of u
-gdbtk_test c_variable-7.15 {children of u} {
- get_children u
-} {integer char_ptr}
-
-# Test: c_variable-7.20
-# Desc: create anonu
-gdbtk_test c_variable-7.20 {create anonu} {
- create_variable anonu
-} {0}
-
-# Test: c_variable-7.21
-# Desc: value of anonu
-gdbtk_test c_variable-7.21 {value of anonu} {
- $var(anonu) value
-} {{...}}
-
-# Test: c_variable-7.22
-# Desc: type of anonu
-gdbtk_test c_variable-7.22 {type of anonu} {
- $var(anonu) type
-} {union}
-
-# Test: c_variable-7.23
-# Desc: is anonu editable
-gdbtk_test c_variable-7.23 {is anonu editable} {
- $var(anonu) editable
-} {0}
-
-# Test: c_variable-7.24
-# Desc: number of children of anonu
-gdbtk_test c_variable-7.24 {number of children of anonu} {
- $var(anonu) numChildren
-} {3}
-
-# Test: c_variable-7.25
-# Desc: children of anonu
-gdbtk_test c_variable-7.25 {children of anonu} {
- get_children anonu
-} {a b c}
-
-# Test: c_variable-7.30
-# Desc: create struct s
-gdbtk_test c_variable-7.30 {create struct s} {
- create_variable s
-} {0}
-
-# Test: c_variable-7.31
-# Desc: value of s
-gdbtk_test c_variable-7.31 {value of s} {
- $var(s) value
-} {{...}}
-
-# Test: c_variable-7.32
-# Desc: type of s
-gdbtk_test c_variable-7.32 {type of s} {
- $var(s) type
-} {struct _simple_struct}
-
-# Test: c_variable-7.33
-# Desc: is s editable
-gdbtk_test c_variable-7.33 {is s editable} {
- $var(s) editable
-} {0}
-
-# Test: c_variable-7.34
-# Desc: number of children of s
-gdbtk_test c_variable-7.34 {number of children of s} {
- $var(s) numChildren
-} {6}
-
-# Test: c_variable-7.35
-# Desc: children of s
-gdbtk_test c_variable-7.35 {children of s} {
- get_children s
-} {integer unsigned_integer character signed_character char_ptr array_of_10}
-
-# Test: c_variable-7.40
-# Desc: create anons
-gdbtk_test c_variable-7.40 {create anons} {
- create_variable anons
-} {0}
-
-# Test: c_variable-7.41
-# Desc: value of anons
-gdbtk_test c_variable-7.41 {value of anons} {
- $var(anons) value
-} {{...}}
-
-# Test: c_variable-7.42
-# Desc: type of anons
-gdbtk_test c_variable-7.42 {type of anons} {
- $var(anons) type
-} {struct}
-
-# Test: c_variable-7.43
-# Desc: is anons editable
-gdbtk_test c_variable-7.43 {is anons editable} {
- $var(anons) editable
-} {0}
-
-# Test: c_variable-7.44
-# Desc: number of children of anons
-gdbtk_test c_variable-7.44 {number of children of anons} {
- $var(anons) numChildren
-} {3}
-
-# Test: c_variable-7.45
-# Desc: children of anons
-gdbtk_test c_variable-7.45 {children of anons} {
- get_children anons
-} {a b c}
-
-# Test: c_variable-7.50
-# Desc: create enum e
-gdbtk_test c_variable-7.50 {create enum e} {
- create_variable e
-} {0}
-
-# Test: c_variable-7.51
-# Desc: value of e
-gdbtk_test c_variable-7.51 {value of e} {
- $var(e) value bar
- $var(e) value
-} {bar}
-
-# Test: c_variable-7.52
-# Desc: type of e
-gdbtk_test c_variable-7.52 {type of e} {
- $var(e) type
-} {enum foo}
-
-# Test: c_variable-7.53
-# Desc: is e editable
-gdbtk_test c_variable-7.53 {is e editable} {
- $var(e) editable
-} {1}
-
-# Test: c_variable-7.54
-# Desc: number of children of e
-gdbtk_test c_variable-7.54 {number of children of e} {
- $var(e) numChildren
-} {0}
-
-# Test: c_variable-7.55
-# Desc: children of e
-gdbtk_test c_variable-7.55 {children of e} {
- get_children e
-} {}
-
-# Test: c_variable-7.60
-# Desc: create anone
-gdbtk_test c_variable-7.60 {create anone} {
- create_variable anone
-} {0}
-
-# Test: c_variable-7.61
-# Desc: value of anone
-gdbtk_test c_variable-7.61 {value of e} {
- $var(e) value bar
- $var(e) value
-} {bar}
-
-# Test: c_variable-7.62
-# Desc: type of e
-gdbtk_test c_variable-7.62 {type of e} {
- $var(e) type
-} {enum foo}
-
-# Test: c_variable-7.63
-# Desc: is e editable
-gdbtk_test c_variable-7.63 {is e editable} {
- $var(e) editable
-} {1}
-
-# Test: c_variable-7.64
-# Desc: number of children of e
-gdbtk_test c_variable-7.64 {number of children of e} {
- $var(e) numChildren
-} {0}
-
-# Test: c_variable-7.65
-# Desc: children of e
-gdbtk_test c_variable-7.65 {children of e} {
- get_children e
-} {}
-
-# Test: c_variable-7.70
-# Desc: create anone
-gdbtk_test c_variable-7.70 {try to create anone again (duplicate obj name} {
- create_variable anone
-} {1}
-
-# Test: c_variable-7.71
-# Desc: value of anone
-gdbtk_test c_variable-7.71 {value of anone} {
- $var(anone) value A
- $var(anone) value
-} {A}
-
-# Test: c_variable-7.72
-# Desc: type of anone
-gdbtk_test c_variable-7.72 {type of anone} {
- $var(anone) type
-} {enum}
-
-# Test: c_variable-7.73
-# Desc: is anone editable
-gdbtk_test c_variable-7.73 {is anone editable} {
- $var(anone) editable
-} {1}
-
-# Test: c_variable-7.74
-# Desc: number of children of anone
-gdbtk_test c_variable-7.74 {number of children of anone} {
- $var(anone) numChildren
-} {0}
-
-# Test: c_variable-7.75
-# Desc: children of anone
-gdbtk_test c_variable-7.75 {children of anone} {
- get_children anone
-} {}
-
-# Record fp
-set fp [gdb_cmd "output/x \$fp"]
-gdb_cmd {break incr_a}
-gdb_cmd {continue}
-
-# Test: c_variable-7.80
-# Desc: stop in incr_a
-gdbtk_test c_variable-7.80 {stop in incr_a} {
- lindex [gdb_loc] 1
-} {incr_a}
-
-# Test: c_variable-7.81
-# Desc: Create variables in different scopes
-gdbtk_test c_variable-7.81 {create variables in different scopes} {
- set a1 [gdb_variable create -expr a]
- set a2 [gdb_variable create -expr a -frame $fp]
-
- set vals {}
- lappend vals [$a1 value]
- lappend vals [$a2 value]
- set vals
-} {2 1}
-
-# Exit
-#
-gdbtk_test_done
-
-#Local Variables:
-#mode: tcl
diff --git a/gdb/testsuite/gdb.gdbtk/configure b/gdb/testsuite/gdb.gdbtk/configure
deleted file mode 100644
index 16dc537ba46..00000000000
--- a/gdb/testsuite/gdb.gdbtk/configure
+++ /dev/null
@@ -1,2248 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59.
-#
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete. It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-ac_unique_file="defs"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os LIBOBJS LTLIBOBJS'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_option in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- eval "enable_$ac_feature=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_$ac_feature='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "with_$ac_package='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package | sed 's/-/_/g'`
- eval "with_$ac_package=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; }
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
- { (exit 1); exit 1; }; }
- ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
- eval "$ac_envvar='$ac_optarg'"
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
- localstatedir libdir includedir oldincludedir infodir mandir
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$0" : 'X\(//\)[^/]' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$0" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
- { (exit 1); exit 1; }; }
- else
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
- { (exit 1); exit 1; }; }
- fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
- { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
- { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
- cat <<_ACEOF
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --infodir=DIR info documentation [PREFIX/info]
- --mandir=DIR man documentation [PREFIX/man]
-_ACEOF
-
- cat <<\_ACEOF
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
- --target=TARGET configure for building compilers for TARGET [HOST]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
- cat <<\_ACEOF
-
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- ac_popdir=`pwd`
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d $ac_dir || continue
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
- cd $ac_dir
- # Check for guested configure; otherwise get Cygnus style configure.
- if test -f $ac_srcdir/configure.gnu; then
- echo
- $SHELL $ac_srcdir/configure.gnu --help=recursive
- elif test -f $ac_srcdir/configure; then
- echo
- $SHELL $ac_srcdir/configure --help=recursive
- elif test -f $ac_srcdir/configure.ac ||
- test -f $ac_srcdir/configure.in; then
- echo
- $ac_configure --help
- else
- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi
- cd $ac_popdir
- done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
- cat <<\_ACEOF
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_sep=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
- 2)
- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
- # Get rid of the leading space.
- ac_sep=" "
- ;;
- esac
- done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
- echo
- # The following way of writing the cache mishandles newlines in values,
-{
- (set) 2>&1 |
- case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- sed -n \
- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
- ;;
- *)
- sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
- ;;
- esac;
-}
- echo
-
- cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
- echo
- sed "/^$/d" confdefs.h | sort
- echo
- fi
- test "$ac_signal" != 0 &&
- echo "$as_me: caught signal $ac_signal"
- echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core &&
- rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
- ' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
- { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . $cache_file;;
- *) . ./$cache_file;;
- esac
- fi
-else
- { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val="\$ac_cv_env_${ac_var}_value"
- eval ac_new_val="\$ac_env_${ac_var}_value"
- case $ac_old_set,$ac_new_set in
- set,)
- { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
-echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
-echo "$as_me: current value: $ac_new_val" >&2;}
- ac_cache_corrupted=:
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CC=${CC-cc}
-
-ac_aux_dir=
-for ac_dir in `cd $srcdir;pwd`/../../.. $srcdir/`cd $srcdir;pwd`/../../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f $ac_dir/shtool; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \`cd $srcdir;pwd\`/../../.. $srcdir/\`cd $srcdir;pwd\`/../../.." >&5
-echo "$as_me: error: cannot find install-sh or install.sh in \`cd $srcdir;pwd\`/../../.. $srcdir/\`cd $srcdir;pwd\`/../../.." >&2;}
- { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-# Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
- { (exit 1); exit 1; }; }
-
-echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6
-if test "${ac_cv_build+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_build_alias=$build_alias
-test -z "$ac_cv_build_alias" &&
- ac_cv_build_alias=`$ac_config_guess`
-test -z "$ac_cv_build_alias" &&
- { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
- { (exit 1); exit 1; }; }
-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6
-build=$ac_cv_build
-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6
-if test "${ac_cv_host+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_host_alias=$host_alias
-test -z "$ac_cv_host_alias" &&
- ac_cv_host_alias=$ac_cv_build_alias
-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6
-host=$ac_cv_host
-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking target system type" >&5
-echo $ECHO_N "checking target system type... $ECHO_C" >&6
-if test "${ac_cv_target+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_target_alias=$target_alias
-test "x$ac_cv_target_alias" = "x" &&
- ac_cv_target_alias=$ac_cv_host_alias
-ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_target" >&5
-echo "${ECHO_T}$ac_cv_target" >&6
-target=$ac_cv_target
-target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-test -n "$target_alias" &&
- test "$program_prefix$program_suffix$program_transform_name" = \
- NONENONEs,x,x, &&
- program_prefix=${target_alias}-
-
-
-
- ac_config_files="$ac_config_files Makefile"
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-{
- (set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
- ;;
- esac;
-} |
- sed '
- t clear
- : clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
- if test -w $cache_file; then
- test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
- cat confcache >$cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[ ]*$//;
-}'
-fi
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then we branch to the quote section. Otherwise,
-# look for a macro that doesn't take arguments.
-cat >confdef2opt.sed <<\_ACEOF
-t clear
-: clear
-s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
-t quote
-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
-t quote
-d
-: quote
-s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
-s,\[,\\&,g
-s,\],\\&,g
-s,\$,$$,g
-p
-_ACEOF
-# We use echo to avoid assuming a particular line-breaking character.
-# The extra dot is to prevent the shell from consuming trailing
-# line-breaks from the sub-command output. A line-break within
-# single-quotes doesn't work because, if this script is created in a
-# platform that uses two characters for line-breaks (e.g., DOS), tr
-# would break.
-ac_LF_and_DOT=`echo; echo .`
-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
-rm -f confdef2opt.sed
-
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_i=`echo "$ac_i" |
- sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
- # 2. Add them.
- ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
- ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling. Logging --version etc. is OK.
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
- echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
- echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
- echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
- echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
-
-Configuration files:
-$config_files
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.59,
- with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value. By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=*)
- ac_option=`expr "x$1" : 'x\([^=]*\)='`
- ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- -*)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- *) # This is not an option, so the user has probably given explicit
- # arguments.
- ac_option=$1
- ac_need_defaults=false;;
- esac
-
- case $ac_option in
- # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --vers* | -V )
- echo "$ac_cs_version"; exit 0 ;;
- --he | --h)
- # Conflict between --help and --header
- { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; };;
- --help | --hel | -h )
- echo "$ac_cs_usage"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- CONFIG_FILES="$CONFIG_FILES $ac_optarg"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
- ac_need_defaults=false;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; } ;;
-
- *) ac_config_targets="$ac_config_targets $1" ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
- echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
- exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
- case "$ac_config_target" in
- # Handling of arguments.
- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
- trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
-} ||
-{
- tmp=./confstat$$-$RANDOM
- (umask 077 && mkdir $tmp)
-} ||
-{
- echo "$me: cannot create a temporary directory in ." >&2
- { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
- # Protect against being on the right side of a sed subst in config.status.
- sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
- s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@CC@,$CC,;t t
-s,@build@,$build,;t t
-s,@build_cpu@,$build_cpu,;t t
-s,@build_vendor@,$build_vendor,;t t
-s,@build_os@,$build_os,;t t
-s,@host@,$host,;t t
-s,@host_cpu@,$host_cpu,;t t
-s,@host_vendor@,$host_vendor,;t t
-s,@host_os@,$host_os,;t t
-s,@target@,$target,;t t
-s,@target_cpu@,$target_cpu,;t t
-s,@target_vendor@,$target_vendor,;t t
-s,@target_os@,$target_os,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
- cat >>$CONFIG_STATUS <<\_ACEOF
- # Split the substitutions into bite-sized pieces for seds with
- # small command number limits, like on Digital OSF/1 and HP-UX.
- ac_max_sed_lines=48
- ac_sed_frag=1 # Number of current file.
- ac_beg=1 # First line for current file.
- ac_end=$ac_max_sed_lines # Line after last line for current file.
- ac_more_lines=:
- ac_sed_cmds=
- while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- else
- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- fi
- if test ! -s $tmp/subs.frag; then
- ac_more_lines=false
- else
- # The purpose of the label and of the branching condition is to
- # speed up the sed processing (if there are no `@' at all, there
- # is no need to browse any of the substitutions).
- # These are the two extra sed commands mentioned above.
- (echo ':t
- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
- fi
- ac_sed_frag=`expr $ac_sed_frag + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_lines`
- fi
- done
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
- fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case $ac_file in
- - | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- * ) ac_file_in=$ac_file.in ;;
- esac
-
- # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
-
- if test x"$ac_file" != x-; then
- { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
- rm -f "$ac_file"
- fi
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- if test x"$ac_file" = x-; then
- configure_input=
- else
- configure_input="$ac_file. "
- fi
- configure_input=$configure_input"Generated from `echo $ac_file_in |
- sed 's,.*/,,'` by configure."
-
- # First look for the input files in the build tree, otherwise in the
- # src tree.
- ac_file_inputs=`IFS=:
- for f in $ac_file_in; do
- case $f in
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- echo "$f";;
- *) # Relative
- if test -f "$f"; then
- # Build tree
- echo "$f"
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo "$srcdir/$f"
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
- sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
- rm -f $tmp/stdin
- if test x"$ac_file" != x-; then
- mv $tmp/out $ac_file
- else
- cat $tmp/out
- rm -f $tmp/out
- fi
-
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || { (exit 1); exit 1; }
-fi
-
diff --git a/gdb/testsuite/gdb.gdbtk/configure.ac b/gdb/testsuite/gdb.gdbtk/configure.ac
deleted file mode 100644
index 5ab12edbf15..00000000000
--- a/gdb/testsuite/gdb.gdbtk/configure.ac
+++ /dev/null
@@ -1,18 +0,0 @@
-dnl Process this file file with autoconf to produce a configure script.
-dnl This file is a shell script fragment that supplies the information
-dnl necessary to tailor a template configure script into the configure
-dnl script appropriate for this directory. For more information, check
-dnl any existing configure script.
-
-AC_PREREQ(2.5)
-AC_INIT(defs)
-
-CC=${CC-cc}
-AC_SUBST(CC)
-AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../../..)
-AC_CANONICAL_SYSTEM
-
-dnl Check for exe extension set on certain hosts (e.g. Win32)
-AC_EXEEXT
-
-AC_OUTPUT(Makefile)
diff --git a/gdb/testsuite/gdb.gdbtk/console.exp b/gdb/testsuite/gdb.gdbtk/console.exp
deleted file mode 100644
index b17eaa11ee7..00000000000
--- a/gdb/testsuite/gdb.gdbtk/console.exp
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1998, 1999, 2001, 2004 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-load_lib ../gdb.gdbtk/insight-support.exp
-
-if {[gdbtk_initialize_display]} {
- if {$tracelevel} {
- strace $tracelevel
- }
-
- #
- # test console window
- #
- set prms_id 0
- set bug_id 0
-
- set testfile "simple"
- set srcfile ${testfile}.c
- set binfile ${objdir}/${subdir}/${testfile}
- set r [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}]
- if { $r != "" } {
- gdb_suppress_entire_file \
- "Testcase compile failed, so some tests in this file will automatically fail."
- }
-
- # Start with a fresh gdbtk
- gdb_exit
- set results [gdbtk_start [file join $srcdir $subdir console.test]]
- set results [split $results \n]
-
- # Analyze results
- gdbtk_done $results
-}
diff --git a/gdb/testsuite/gdb.gdbtk/console.test b/gdb/testsuite/gdb.gdbtk/console.test
deleted file mode 100644
index 41e79465cd2..00000000000
--- a/gdb/testsuite/gdb.gdbtk/console.test
+++ /dev/null
@@ -1,491 +0,0 @@
-# Copyright (C) 1998, 1999, 2002 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# This file was written by Keith Seitz (keiths@cygnus.com)
-
-# Read in the standard defs file
-
-if {![gdbtk_read_defs]} {
- break
-}
-
-global objdir test_ran
-global console text
-set console [ManagedWin::open Console]
-set text [$console test set _twin]
-
-##### #####
-# #
-# Helper functions for this module #
-# #
-##### #####
-
-# console_command --
-# Invoke STRING as a command in the console window and
-# return the result
-proc console_command {string} {
- global console text
-
- # Save current position
- set line [lindex [split [$text index cmdmark] .] 0]
- incr line 1
-
- # Insert and invoke command
- $text insert end $string
- $console invoke
- update
-
- # Get the result
- set end [lindex [split [$text index cmdmark] .] 0]
- incr end -1
- return [$text get $line.0 [list $end.0 lineend]]
-}
-
-# get_cmd_line --
-# Return the command line
-proc get_cmd_line {} {
- global text
-
- update
- set index [$text index cmdmark]
- return [$text get [list $index linestart] [list $index lineend]]
-}
-
-# clear_command_line --
-# Clear the command line
-proc clear_command_line {} {
- global text
- $text delete {cmdmark + 1 char} insert
-}
-
-##### #####
-# #
-# CONSOLE TESTS #
-# #
-##### #####
-
-#
-# Miscellaneous tests
-#
-
-# Test: console-misc-1
-# Desc: Change console prompt
-gdbtk_test console-misc-1 {change console prompt} {
- # Insert the "set prompt" command into the text widget
- console_command {set prompt (test) }
-
- $text get {cmdmark linestart} {cmdmark lineend}
-} {(test) }
-if {$test_ran} {
- console_command {set prompt (gdb) }
-}
-
-#
-# Paste tests
-#
-
-# Test: console-paste-1
-# Desc: Paste the X selection into console window
-gdbtk_test console-paste-1 {paste X text} {
- # This is cheesy, but it works... Create a text widget
- # which holds the current selection...
- text .test_text
- .test_text insert end "this is some pasted text"
- .test_text tag add sel 1.0 {1.0 lineend}
- event generate .test_text <<Copy>>
- event generate $text <<Paste>>
- get_cmd_line
-} {(gdb) this is some pasted text}
-if {$test_ran} {
- destroy .test_text
- clear_command_line
-}
-
-#
-# Test for errors
-#
-
-# Test: console-error-1
-# Desc: Check if console window reports internal gdb errors
-gdbtk_test console-error-1 {invoke unknown command} {
- console_command {this_command_doesn't_exist}
-} {Error: Undefined command: "this". Try "help".
-}
-
-#
-# History tests
-#
-
-# Test: console-history-1.1
-# Desc: Exercise the up-history functionality
-gdbtk_test console-history-1.1 {up history once} {
- # Add some commands into the command buffer
- console_command {show annotate}
- console_command {show complaints}
- console_command {show confirm}
- console_command {show height}
- console_command {show language}
- console_command {show print demangle}
- console_command {show remotebaud}
- console_command {show remotebreak}
- console_command {show remotecache}
- console_command {show remotedebug}
- console_command {show remotedevice}
- console_command {show remotelogbase}
- console_command {help quit}
- console_command {help si}
- # this doesn't seem to work reliably: event generate $text <Up>
- $console test _previous
- get_cmd_line
-} {(gdb) help si}
-if {$test_ran} {
- clear_command_line
-}
-
-# Test: console-history-1.2
-# Desc: Exercise the up-history functionality
-gdbtk_test console-history-1.2 {up history twice} {
- # Add some commands into the command buffer
- console_command {show annotate}
- console_command {show complaints}
- console_command {show confirm}
- console_command {show height}
- console_command {show language}
- console_command {show print demangle}
- console_command {show remotebaud}
- console_command {show remotebreak}
- console_command {show remotecache}
- console_command {show remotedebug}
- console_command {show remotedevice}
- console_command {show remotelogbase}
- console_command {help quit}
- console_command {help si}
- # this doesn't seem to work reliably: event generate $text <Up>
- # this doesn't seem to work reliably: event generate $text <Up>
- $console test _previous
- $console test _previous
- get_cmd_line
-} {(gdb) help quit}
-if {$test_ran} {
- clear_command_line
-}
-
-# Test: console-history-1.3
-# Desc: Exercise the up-history functionality
-gdbtk_test console-history-1.3 {up history four times} {
- # Add some commands into the command buffer
- console_command {show annotate}
- console_command {show complaints}
- console_command {show confirm}
- console_command {show height}
- console_command {show language}
- console_command {show print demangle}
- console_command {show remotebaud}
- console_command {show remotebreak}
- console_command {show remotecache}
- console_command {show remotedebug}
- console_command {show remotedevice}
- console_command {show remotelogbase}
- console_command {help quit}
- console_command {help si}
-
- for {set i 0} {$i < 4} {incr i} {
- # this doesn't seem to work reliably: event generate $text <Up>
- $console test _previous
- }
- get_cmd_line
-} {(gdb) show remotedevice}
-if {$test_ran} {
- clear_command_line
-}
-
-# Test: console-history-1.4
-# Desc: Exercise the up-history functionality
-gdbtk_test console-history-1.4 {up fourteen times} {
- # Add some commands into the command buffer
- console_command {show annotate}
- console_command {show complaints}
- console_command {show confirm}
- console_command {show height}
- console_command {show language}
- console_command {show print demangle}
- console_command {show remotebaud}
- console_command {show remotebreak}
- console_command {show remotecache}
- console_command {show remotedebug}
- console_command {show remotedevice}
- console_command {show remotelogbase}
- console_command {help quit}
- console_command {help si}
- for {set i 0} {$i < 14} {incr i} {
- # this doesn't seem to work reliably: event generate $text <Up>
- $console test _previous
- }
- get_cmd_line
-} {(gdb) show annotate}
-if {$test_ran} {
- clear_command_line
-}
-
-# Test: console-history-1.5
-# Desc: Exercise the up-history search functionality
-gdbtk_test console-history-1.5 {up search} {
- # Add some commands into the command buffer
- console_command {show height}
- console_command {show annotate}
- console_command {show complaints}
- console_command {print main}
- console_command {show remotelogbase}
- console_command {help quit}
- console_command {help si}
-
- $text insert end "sh"
- # this doesn't seem to work reliably: event generate $text <Shift-Up>
- # this doesn't seem to work reliably: event generate $text <Shift-Up>
- # this doesn't seem to work reliably: event generate $text <Shift-Up>
- $console test _search_history
- $console test _search_history
- $console test _search_history
- get_cmd_line
-} {(gdb) show annotate}
-
-
-# Test: console-history-1.6
-# Desc: Exercise the down-history search functionality
-gdbtk_test console-history-1.6 {down search} {
- # this doesn't seem to work reliably: event generate $text <Shift-Down>
- # this doesn't seem to work reliably: event generate $text <Shift-Down>
- $console test _rsearch_history
- $console test _rsearch_history
- get_cmd_line
-} {(gdb) show remotelogbase}
-
-# Test: console-history-1.7
-# Desc: Down-history search to bottom
-# We go back down until the original partialcommand is displayed
-gdbtk_test console-history-1.7 {down search to bottom} {
- # this doesn't seem to work reliably: event generate $text <Shift-Down>
- # this doesn't seem to work reliably: event generate $text <Shift-Down>
- $console test _rsearch_history
- $console test _rsearch_history
- get_cmd_line
-} {(gdb) sh}
-
-# Test: console-history-1.8
-# Desc: Up-history search to top
-# We go up until there are no matches
-gdbtk_test console-history-1.8 {up search to top} {
- for {set i 0} {$i < 100} {incr i} {
- # this doesn't seem to work reliably: event generate $text <Shift-Up>
- $console test _search_history
- }
- get_cmd_line
-} {(gdb) show annotate}
-
-if {$test_ran} {
- clear_command_line
-}
-
-# Test: console-history-2.1
-# Desc: Exercise the down-history functionality
-gdbtk_test console-history-2.1 {down once} {
- # Add some commands into the command buffer
- console_command {show annotate}
- console_command {show complaints}
- console_command {show confirm}
- console_command {show height}
- console_command {show language}
- console_command {show print demangle}
- console_command {show remotebaud}
- console_command {show remotebreak}
- console_command {show remotecache}
- console_command {show remotedebug}
- console_command {show remotedevice}
- console_command {show remotelogbase}
- console_command {help quit}
- console_command {help si}
-
- for {set i 0} {$i < 14} {incr i} {
- # this doesn't seem to work reliably: event generate $text <Up>
- $console test _previous
- }
- # this doesn't seem to work reliably: event generate $text <Down>
- $console test _next
- get_cmd_line
-} {(gdb) show complaints}
-if {$test_ran} {
- clear_command_line
-}
-
-# Test: console-history-2.2
-# Desc: Exercise the down-history functionality
-gdbtk_test console-history-2.2 {down twice} {
- # Add some commands into the command buffer
- console_command {show annotate}
- console_command {show complaints}
- console_command {show confirm}
- console_command {show height}
- console_command {show language}
- console_command {show print demangle}
- console_command {show remotebaud}
- console_command {show remotebreak}
- console_command {show remotecache}
- console_command {show remotedebug}
- console_command {show remotedevice}
- console_command {show remotelogbase}
- console_command {help quit}
- console_command {help si}
-
- for {set i 0} {$i < 14} {incr i} {
- # this doesn't seem to work reliably: event generate $text <Up>
- $console test _previous
- }
-
- # this doesn't seem to work reliably: event generate $text <Down>
- # this doesn't seem to work reliably: event generate $text <Down>
- $console test _next
- $console test _next
- get_cmd_line
-} {(gdb) show confirm}
-if {$test_ran} {
- clear_command_line
-}
-
-# Test: console-history-2.3
-# Desc: Exercise the down-history functionality
-gdbtk_test console-history-2.3 {down four times} {
- # Add some commands into the command buffer
- console_command {show annotate}
- console_command {show complaints}
- console_command {show confirm}
- console_command {show height}
- console_command {show language}
- console_command {show print demangle}
- console_command {show remotebaud}
- console_command {show remotebreak}
- console_command {show remotecache}
- console_command {show remotedebug}
- console_command {show remotedevice}
- console_command {show remotelogbase}
- console_command {help quit}
- console_command {help si}
-
- for {set i 0} {$i < 14} {incr i} {
- # this doesn't seem to work reliably: event generate $text <Up>
- $console test _previous
- }
-
- for {set i 0} {$i < 4} {incr i} {
- # this doesn't seem to work reliably: event generate $text <Down>
- $console test _next
- }
- get_cmd_line
-} {(gdb) show language}
-if {$test_ran} {
- clear_command_line
-}
-
-# Test: console-history-2.4
-# Desc: Exercise the down-history functionality
-gdbtk_test console-history-2.4 {down infinitely} {
- # Add some commands into the command buffer
- console_command {show annotate}
- console_command {show complaints}
- console_command {show confirm}
- console_command {show height}
- console_command {show language}
- console_command {show print demangle}
- console_command {show remotebaud}
- console_command {show remotebreak}
- console_command {show remotecache}
- console_command {show remotedebug}
- console_command {show remotedevice}
- console_command {show remotelogbase}
- console_command {help quit}
- console_command {help si}
- for {set i 0} {$i < 14} {incr i} {
- # this doesn't seem to work reliably: event generate $text <Up>
- $console test _previous
- }
-
- for {set i 0} {$i < 20} {incr i} {
- # this doesn't seem to work reliably: event generate $text <Down>
- $console test _next
- }
- get_cmd_line
-} {(gdb) }
-if {$test_ran} {
- clear_command_line
-}
-
-#
-# gdb - gdbtk Interface Tests
-#
-
-# Test: console-interface-1.1
-# Desc: Verify that a "file" command in the console window causes
-# gdb to invoke the pre-/post-add-symbol hooks
-set file_loaded 0
-gdbtk_test console-interface-1.1 {file command goes through hooks} {
- global TEST1_RESULT TEST2_RESULT
-
- # This is really ugly, but its the only way to do this...
- rename gdbtk_tcl_pre_add_symbol pre_add
- rename gdbtk_tcl_post_add_symbol post_add
-
- proc gdbtk_tcl_pre_add_symbol {file} {
- global TEST1_RESULT
-
- set TEST1_RESULT $file
- pre_add $file
- }
- proc gdbtk_tcl_post_add_symbol {} {
- global TEST2_RESULT
-
- set TEST2_RESULT ok
- post_add
- }
-
- # load a file and make sure we went through the pre/post_add_symbol hooks
- set TEST1_RESULT {}
- set TEST2_RESULT {}
- set file [file join $objdir simple]
- console_command "file $file"
- if {$TEST1_RESULT != $file} {
- set result "did not go through gdbtk_tcl_pre_add_symbol ($TEST1_RESULT)"
- } elseif {$TEST2_RESULT != "ok"} {
- set result "did not go through gdbtk_tcl_post_add_symbol"
- } else {
- set result {}
- set file_loaded 1
- }
-
- set result
-} {}
-if {$test_ran} {
- rename gdbtk_tcl_pre_add_symbol {}
- rename gdbtk_tcl_post_add_symbol {}
- rename pre_add gdbtk_tcl_pre_add_symbol
- rename post_add gdbtk_tcl_post_add_symbol
-}
-
-#
-# Exit
-#
-gdbtk_test_done
diff --git a/gdb/testsuite/gdb.gdbtk/cpp_variable.cc b/gdb/testsuite/gdb.gdbtk/cpp_variable.cc
deleted file mode 100644
index deecc295a7f..00000000000
--- a/gdb/testsuite/gdb.gdbtk/cpp_variable.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-#include "cpp_variable.h"
-
-static void do_simple_class_tests (void);
-
-int
-VB::fvb_pub () {return 300 + vb_pub_int;}
-
-int
-VB::vvb_pub () {return 400 + vb_pub_int;}
-
-int
-V::f () {return 600 + v_pub_int;}
-
-int
-V::vv () {return 400 + v_pub_int;}
-
-int
-VC::fvc () {return 300 + vc_pub_int;}
-
-int
-VC::vfvc () {return 100 + vc_pub_int;}
-
-main ()
-{
- do_simple_class_tests ();
-}
-
-static void
-do_simple_class_tests (void)
-{
- V *v = new V;
- V vv;
-}
diff --git a/gdb/testsuite/gdb.gdbtk/cpp_variable.exp b/gdb/testsuite/gdb.gdbtk/cpp_variable.exp
deleted file mode 100644
index a7764f67199..00000000000
--- a/gdb/testsuite/gdb.gdbtk/cpp_variable.exp
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 1999, 2001, 2004 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-load_lib ../gdb.gdbtk/insight-support.exp
-
-if {[gdbtk_initialize_display]} {
- if {$tracelevel} {
- strace $tracelevel
- }
-
- set results {}
- if {[skip_cplus_tests]} {
- # Target doesn't have c++ support
- verbose "No C++ support -- skipping test"
- } else {
- #
- # test variable API
- #
- set prms_id 0
- set bug_id 0
-
- set testfile "cpp_variable"
- set srcfile ${testfile}.cc
- set binfile ${objdir}/${subdir}/${testfile}
- set r [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}]
- if { $r != "" } {
- gdb_suppress_entire_file \
- "Testcase compile failed, so some tests in this file will automatically fail."
- }
-
- # Start with a fresh gdbtk
- gdb_exit
- set results [gdbtk_start [file join $srcdir $subdir ${testfile}.test]]
- set results [split $results \n]
- }
-
- # Analyze results
- gdbtk_done $results
-}
diff --git a/gdb/testsuite/gdb.gdbtk/cpp_variable.h b/gdb/testsuite/gdb.gdbtk/cpp_variable.h
deleted file mode 100644
index 40fda99a4dd..00000000000
--- a/gdb/testsuite/gdb.gdbtk/cpp_variable.h
+++ /dev/null
@@ -1,54 +0,0 @@
-struct _foo
-{
- int a[10];
- char *p;
-};
-
-class VA
-{
- public:
- int va_pub_int;
- char *va_pub_charp;
-
- private:
- int va_priv_int;
- char *va_priv_charp;
-
- protected:
- struct _foo bar;
-};
-
-class VB
-{
- public:
- int vb_pub_int;
-
- int fvb_pub ();
- virtual int vvb_pub ();
-
- private:
- int vb_priv_int;
- char *vb_priv_charp;
-};
-
-class VC
-{
- public:
- int vc_pub_int;
-
- int fvc ();
- virtual int vfvc ();
-};
-
-class V : public VA, public VB, public VC
-{
- public:
- int f ();
- virtual int vv ();
- int v_pub_int;
- char *v_pub_charp;
-
- private:
- int v_priv_int;
- char *v_priv_charp;
-};
diff --git a/gdb/testsuite/gdb.gdbtk/cpp_variable.test b/gdb/testsuite/gdb.gdbtk/cpp_variable.test
deleted file mode 100644
index d2de6f3deea..00000000000
--- a/gdb/testsuite/gdb.gdbtk/cpp_variable.test
+++ /dev/null
@@ -1,594 +0,0 @@
-# Varobj Tests (C++ language)
-# Copyright (C) 1998, 2003 Red Hat, Inc.
-#
-# This Program Is Free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# insight@sources.redhat.com
-
-# This file was written by Keith Seitz (keiths@cygnus.com)
-
-# Read in the standard defs file
-if {![gdbtk_read_defs]} {
- break
-}
-
-global objdir test_ran
-
-# Load in a file
-set program [file join $objdir cpp_variable]
-if {[catch {gdbtk_test_file $program} t]} {
- # This isn't a test case, since if this fails, we're hosed.
- gdbtk_test_error "loading \"$program\": $t"
-}
-
-# The variables that are created are stored in an array called "var".
-
-# proc to tell us which of the variables are changed/out of scope
-proc check_update {} {
- global var
-
- set out {}
- set changed {}
- foreach ind [array names var] {
- set ret [$var($ind) update]
- if {$ret == -1} {
- lappend out $ind
- } elseif {$ret != ""} {
- lappend changed $ret
- }
- }
- return [list $changed $out]
-}
-
-
-# proc to create a variable
-proc create_variable {expr} {
- global var
-
- set err [catch {gdb_variable create "$expr" -expr $expr} v]
- if {!$err} {
- set var($expr) $v
- }
-
- return $err
-}
-
-# proc to get the children
-# Children are stored in the global "var" as
-# PARENT.child. So for struct _foo {int a; int b} bar;,
-# the children returned are {a b} and var(bar.a) and var(bar.b)
-# map the actual objects to their names.
-proc get_children {parent} {
- global var
-
- set kiddies [$var($parent) children]
- set children {}
- foreach child $kiddies {
- set name [lindex [split $child .] end]
- lappend children $name
- set var($parent.$name) $child
- }
-
- return $children
-}
-
-proc delete_variable {varname} {
- global var
-
- if {[info exists var($varname)]} {
- # This has to be caught, since deleting a parent
- # will erase all children.
- $var($varname) delete
- set vars [array names var $varname*]
- foreach v $vars {
- if {[info exists var($v)]} {
- unset var($v)
- }
- }
- }
-}
-
-# Compare the values of variable V in format FMT with value of OBJ
-# with gdb's value.
-proc cppvalue {obj v fmt} {
- global var
- global _test
-
- puts $_test(logfile) "obj=$obj v=$v fmt=$fmt"
- puts $_test(logfile) "var(\$obj)=$var($obj)"
-
- set value [$var($obj) value]
- set gdb [gdb_cmd "output/$fmt $v"]
- puts $_test(logfile) "output/$fmt $v"
- if {$value == $gdb} {
- puts $_test(logfile) "gdbtk: $value == gdb: $gdb"
- set result ok
- } else {
- set result $v
- puts $_test(logfile) "gdbtk: $value <> gdb: $gdb"
- }
-
- return $result
-}
-
-proc delete_all_variables {} {
- global var
-
- foreach variable [array names var] {
- delete_variable $variable
- }
-}
-
-##### #####
-# #
-# Simple Class Tests #
-# #
-##### #####
-
-# run to "do_simple_class_tests"
-gdb_cmd "break do_simple_class_tests"
-gdbtk_test_run
-
-# Test: cpp_variable-1.1
-# Desc: stopped in do_simple_class_tests
-gdbtk_test cpp_variable-1.1 {stopped in do_simple_class_tests} {
- # G++ can output "do_simple_class_tests(void)". Strip the "(void)" part.
- set loc [lindex [gdb_loc] 1]
- set index [string first \( $loc]
- if {$index > 0} {
- set loc [string range $loc 0 [expr {$index-1}]]
- }
- set loc
-} {do_simple_class_tests}
-
-# Test: cpp_variable-1.2
-# Desc: create variable v
-gdbtk_test cpp_variable-1.2 {create variable v} {
- create_variable v
-} {0}
-
-# Test: cpp_variable-1.3
-# Desc: number of children of v
-gdbtk_test cpp_variable-1.3 {number of children of v} {
- $var(v) numChildren
-} {5}
-
-# Test: cpp_variable-1.4a
-# Desc: children of v
-gdbtk_test cpp_variable-1.4a {children of v} {
- get_children v
-} {VA VB VC public private}
-
-# Test: cpp_variable-1.4b
-# Desc: public children of v
-gdbtk_test cpp_variable-1.4b {public children of v} {
- get_children v.public
-} {v_pub_int v_pub_charp}
-
-# Test: cpp_variable-1.4c
-# Desc: private children of v
-gdbtk_test cpp_variable-1.4c {private children of v} {
- get_children v.private
-} {v_priv_int v_priv_charp}
-
-# Test: cpp_variable-1.5
-# Desc: type of v
-gdbtk_test cpp_variable-1.5 {type of v} {
- $var(v) type
-} {V *}
-
-# Test: cpp_variable-1.6
-# Desc: format of v
-gdbtk_test cpp_variable-1.6 {format of v} {
- $var(v) format
-} {natural}
-
-set value {}
-catch {$var(v) value} value
-
-# Test: cpp_variable-1.6a
-# Desc: Step over "V *v = new V;"
-gdbtk_test cpp_variable-1.6a {step over "V *v = new V;"} {
- catch {gdb_cmd "next"}
-} {0}
-
-# Test: cpp_variable-1.7
-# Desc: check value of v changed
-gdbtk_test cpp_variable-1.7 {check value of v changed} {
- set changes [check_update]
- # It is undefined whether the children will change values
- # or not, so ignore them.
- expr {[lsearch [lindex [lindex $changes 0] 0] v] != -1}
-} {1}
-
-# Test: cpp_variable-1.8
-# Desc: check values of v
-gdbtk_test cpp_variable-1.8 {check values of v} {
- set new [$var(v) value]
- expr {$new != $value}
-} {1}
-
-# Test: cpp_variable-1.9
-# Desc: v editable
-gdbtk_test cpp_variable-1.9 {v editable} {
- $var(v) editable
-} {1}
-
-##### #####
-# #
-# Children of v tests #
-# #
-##### #####
-
-# Test: cpp_variable-2.1
-# Desc: type of v.v_pub_int
-gdbtk_test cpp_variable-2.1 {type of v.v_pub_int} {
- $var(v.public.v_pub_int) type
-} {int}
-
-# Test: cpp_variable-2.2
-# Desc: format of v.v_pub_int
-gdbtk_test cpp_variable-2.2 {format of v.v_pub_int} {
- $var(v.public.v_pub_int) format
-} {natural}
-
-# Test: cpp_variable-2.2a
-# Desc: set variable v->v_pub_int=2112
-gdbtk_test cpp_variable-2.2a {set variable v.v_pub_int=2112} {
- set err [catch {gdb_cmd "set variable v.v_pub_int=2112"} txt]
- if {$err} {
- set txt
- } else {
- set err
- }
-} {0}
-
-# Test: cpp_variable-2.3
-# Desc: value of v.v_pub_int changed
-gdbtk_test cpp_variable-2.3 {value of v.v_pub_int changed} {
- check_update
-} {v.public.v_pub_int {v.private.v_priv_charp v.VB v.private.v_priv_int v.VC v.public.v_pub_charp v.public.v_pub_int v.private v.public v.VA}}
-
-# Test: cpp_variable-2.4
-# Desc: value of v.v_pub_int
-gdbtk_test cpp_variable-2.4 {value of v.v_pub_int} {
- $var(v.public.v_pub_int) value
-} {2112}
-
-# Test: cpp_variable-2.5
-# Desc: changed format of v.v_pub_int
-gdbtk_test cpp_variable-2.5 {changed format of v.v_pub_int} {
- $var(v.public.v_pub_int) format octal
- $var(v.public.v_pub_int) format
-} {octal}
-
-# Test: cpp_variable-2.6
-# Desc: value of v.v_pub_int with new format
-gdbtk_test cpp_variable-2.6 {value of v.v_pub_int with new format} {
- $var(v.public.v_pub_int) value
-} {04100}
-
-# Test: cpp_variable-2.7
-# Desc: change value of v.v_pub_int (decimal)
-gdbtk_test cpp_variable-2.7 {change value of v.v_pub_int (decimal)} {
- $var(v.public.v_pub_int) value 3
- cppvalue v.public.v_pub_int v.v_pub_int o
-} {ok}
-
-# Test: cpp_variable-2.8
-# Desc: change value of v.v_pub_int (hexadecimal)
-gdbtk_test cpp_variable-2.8 {change value of v.v_pub_int (hexadecimal)} {
- $var(v.public.v_pub_int) value 0x21
- cppvalue v.public.v_pub_int v.v_pub_int o
-} {ok}
-
-# Test: cpp_variable-2.9
-# Desc: number of children of v_pub_int
-gdbtk_test cpp_variable-2.9 {number of children of v_pub_int} {
- $var(v.public.v_pub_int) numChildren
-} {0}
-
-# Test: cpp_variable-2.10
-# Desc: children of v.v_pub_int
-gdbtk_test cpp_variable-2.10 {children of v.v_pub_int} {
- get_children v.public.v_pub_int
-} {}
-
-# Test: cpp_variable-2.11
-# Desc: v.v_pub_int editable
-gdbtk_test cpp_variable-2.11 {v.v_pub_int editable} {
- $var(v.public.v_pub_int) editable
-} {1}
-
-# Test: cpp_variable-2.21
-# Desc: type of v.v_priv_charp
-gdbtk_test cpp_variable-2.21 {type of v.v_priv_charp} {
- $var(v.private.v_priv_charp) type
-} {char *}
-
-# Test: cpp_variable-2.22
-# Desc: format of v.v_priv_charp
-gdbtk_test cpp_variable-2.22 {format of v.v_priv_charp} {
- $var(v.private.v_priv_charp) format
-} {natural}
-
-# Test: cpp_variable-2.22a
-# Desc: set variable v->v_priv_charp=2112
-gdbtk_test cpp_variable-2.22a {set variable v->v_priv_charp=2112} {
- set err [catch {gdb_cmd "set variable v->v_priv_charp=2112"} txt]
- if {$err} {
- set txt
- } else {
- set err
- }
-} {0}
-
-# Test: cpp_variable-2.23
-# Desc: value of v.v_priv_charp changed
-gdbtk_test cpp_variable-2.23 {value of v.v_priv_charp changed} {
- check_update
-} {{{v.public.v_pub_int v.private.v_priv_charp}} {v.private.v_priv_charp v.VB v.private.v_priv_int v.VC v.public.v_pub_charp v.public.v_pub_int v.private v.public v.VA}}
-
-# Test: cpp_variable-2.24
-# Desc: value of v.v_priv_charp
-gdbtk_test cpp_variable-2.24 {value of v.v_priv_charp} {
- $var(v.private.v_priv_charp) format hexadecimal
- $var(v.private.v_priv_charp) value
-} {0x840}
-
-# Test: cpp_variable-2.25
-# Desc: changed format of v.v_priv_charp
-gdbtk_test cpp_variable-2.25 {changed format of v.v_priv_charp} {
- $var(v.private.v_priv_charp) format octal
- $var(v.private.v_priv_charp) format
-} {octal}
-
-# Test: cpp_variable-2.26
-# Desc: value of v.v_priv_charp with new format
-gdbtk_test cpp_variable-2.26 {value of v.v_priv_charp with new format} {
- $var(v.private.v_priv_charp) value
-} {04100}
-
-# Test: cpp_variable-2.27
-# Desc: change value of v.v_priv_charp (decimal)
-gdbtk_test cpp_variable-2.27 {change value of v.v_priv_charp (decimal)} {
- $var(v.private.v_priv_charp) value 3
- cppvalue v.private.v_priv_charp v.v_priv_charp o
-} {ok}
-
-# Test: cpp_variable-2.28
-# Desc: change value of v.v_priv_charp (hexadecimal)
-gdbtk_test cpp_variable-2.28 {change value of v.v_priv_charp (hexadecimal)} {
- $var(v.private.v_priv_charp) value 0x21
- cppvalue v.private.v_priv_charp v.v_priv_charp o
-} {ok}
-
-# Test: cpp_variable-2.29
-# Desc: number of children of v_priv_charp
-gdbtk_test cpp_variable-2.29 {number of children of v_priv_charp} {
- $var(v.private.v_priv_charp) numChildren
-} {1}
-
-# Test: cpp_variable-2.30
-# Desc: children of v.v_priv_charp
-gdbtk_test cpp_variable-2.30 {children of v.v_priv_charp} {
- get_children v.private.v_priv_charp
-} {*v_priv_charp}
-
-# Test: cpp_variable-2.31
-# Desc: v.v_priv_int editable
-gdbtk_test cpp_variable-2.31 {v.v_priv_int editable} {
- $var(v.private.v_priv_int) editable
-} {1}
-
-# Test: cpp_variable-2.41
-# Desc: type of v.VA
-gdbtk_test cpp_variable-2.41 {type of v.VA} {
- $var(v.VA) type
-} {VA}
-
-# Test: cpp_variable-2.42
-# Desc: format of v.VA
-gdbtk_test cpp_variable-2.42 {format of v.VA} {
- $var(v.VA) format
-} {natural}
-
-# Test: cpp_variable-2.43
-# Desc: value of v.VA changed
-gdbtk_test cpp_variable-2.43 {value of v.VA changed} {
- check_update
-} {v.private.v_priv_charp {v.private.v_priv_charp v.VB v.private.v_priv_int v.VC v.public.v_pub_charp v.private.v_priv_charp.*v_priv_charp v.public.v_pub_int v.private v.public v.VA}}
-
-# Test: cpp_variable-2.44
-# Desc: value of v.VA
-gdbtk_test cpp_variable-2.44 {value of v.VA} {
- $var(v.VA) value
-} {{...}}
-
-# Test: cpp_variable-2.45
-# Desc: changed format of v.VA
-gdbtk_test cpp_variable-2.45 {changed format of v.VA} {
- $var(v.VA) format octal
- $var(v.VA) format
-} {octal}
-
-# Test: cpp_variable-2.46
-# Desc: value of v.VA with new format
-gdbtk_test cpp_variable-2.46 {value of v.VA with new format} {
- $var(v.VA) value
-} {{...}}
-
-# Test: cpp_variable-2.47
-# Desc: number of children of VA
-gdbtk_test cpp_variable-2.47 {number of children of VA} {
- $var(v.VA) numChildren
-} {3}
-
-# Test: cpp_variable-2.48a
-# Desc: children of v.VA
-gdbtk_test cpp_variable-2.48a {children of v.VA} {
- get_children v.VA
-} {public private protected}
-
-# Test: cpp_variable-2.48b
-# Desc: public children of v.VA
-gdbtk_test cpp_variable-2.48b {children of v.VA} {
- get_children v.VA.public
-} {va_pub_int va_pub_charp}
-
-# Test: cpp_variable-2.48c
-# Desc: private children of v.VA
-gdbtk_test cpp_variable-2.48c {children of v.VA} {
- get_children v.VA.private
-} {va_priv_int va_priv_charp}
-
-# Test: cpp_variable-2.48d
-# Desc: protected children of v.VA
-gdbtk_test cpp_variable-2.48d {children of v.VA} {
- get_children v.VA.protected
-} {bar}
-
-# Test: cpp_variable-2.49
-# Desc: v.VA editable
-gdbtk_test cpp_variable-2.49 {v.VA editable} {
- $var(v.VA) editable
-} {0}
-
-# Test: cpp_variable-2.61
-# Desc: type of v.VB
-gdbtk_test cpp_variable-2.61 {type of v.VB} {
- $var(v.VB) type
-} {VB}
-
-# Test: cpp_variable-2.62
-# Desc: format of v.VB
-gdbtk_test cpp_variable-2.62 {format of v.VB} {
- $var(v.VB) format
-} {natural}
-
-# Test: cpp_variable-2.63
-# Desc: value of v.VB changed
-gdbtk_test cpp_variable-2.63 {value of v.VB changed} {
- check_update
-} {{} {v.VA.protected v.private.v_priv_charp.*v_priv_charp v.VA.private v.VA.public.va_pub_int v.private.v_priv_int v.public.v_pub_int v.VA.public.va_pub_charp v.private.v_priv_charp v.VA.public v.public.v_pub_charp v.VA.private.va_priv_int v.VA v.public v.VB v.VC v.VA.protected.bar v.VA.private.va_priv_charp v.private}}
-
-# Test: cpp_variable-2.64
- # Desc: value of v.VB
-gdbtk_test cpp_variable-2.64 {value of v.VB} {
- $var(v.VB) value
-} {{...}}
-
-# Test: cpp_variable-2.65
-# Desc: changed format of v.VB
-gdbtk_test cpp_variable-2.65 {changed format of v.VB} {
- $var(v.VB) format octal
- $var(v.VB) format
-} {octal}
-
-# Test: cpp_variable-2.66
-# Desc: value of v.VB with new format
-gdbtk_test cpp_variable-2.66 {value of v.VB with new format} {
- $var(v.VB) value
-} {{...}}
-
-# Note: The next two tests show whether or not the logic
-# concerning vptr tables is working.
-# Test: cpp_variable-2.67
-# Desc: number of children of VB
-gdbtk_test cpp_variable-2.67 {number of children of VB} {
- $var(v.VB) numChildren
-} {2}
-
-# Test: cpp_variable-2.68a
-# Desc: children of v.VB
-gdbtk_test cpp_variable-2.68a {children of v.VB} {
- get_children v.VB
-} {public private}
-
-# Test: cpp_variable-2.68b
-# Desc: public children of v.VB
-gdbtk_test cpp_variable-2.68b {children of v.VB} {
- get_children v.VB.public
-} {vb_pub_int}
-
-# Test: cpp_variable-2.68c
-# Desc: private children of v.VB
-gdbtk_test cpp_variable-2.68c {children of v.VB} {
- get_children v.VB.private
-} {vb_priv_int vb_priv_charp}
-
-# Test: cpp_variable-2.69
-# Desc: v.VB editable
-gdbtk_test cpp_variable-2.69 {v.VB editable} {
- $var(v.VB) editable
-} {0}
-
-# Test: cpp_variable-2.70
-# Desc: v.VB.public editable
-gdbtk_test cpp_variable-2.70 {v.VB.public editable} {
- $var(v.VB.public) editable
-} {0}
-
-# Test: cpp_variable-2.71
-# Desc: v.VB.vb_pub_int editable
-gdbtk_test cpp_variable-2.71 {v.VB.vb_pub_int editable} {
- $var(v.VB.public.vb_pub_int) editable
-} {1}
-
-# Test: cpp_variable-2.71a
-# Desc: set variable v->vb_pub_int=2112
-gdbtk_test cpp_variable-2.71a {set variable v->v_pub_int=2112} {
- set err [catch {gdb_cmd "set variable v->vb_pub_int=2112"} txt]
- if {$err} {
- set txt
- } else {
- set err
- }
-} {0}
-
-# Test: cpp_variable-2.72
-# Desc: value of v.vb_pub_int changed
-gdbtk_test cpp_variable-2.72 {value of v.vb_pub_int changed} {
- check_update
-} {v.VB.public.vb_pub_int {v.VB.public v.VA.protected v.private.v_priv_charp.*v_priv_charp v.VA.private v.VB.private.vb_priv_int v.VB.private v.VA.public.va_pub_int v.private.v_priv_int v.VB.public.vb_pub_int v.public.v_pub_int v.VB.private.vb_priv_charp v.VA.public.va_pub_charp v.private.v_priv_charp v.VA.public v.public.v_pub_charp v.VA.private.va_priv_int v.VA v.public v.VB v.VC v.VA.protected.bar v.VA.private.va_priv_charp v.private}}
-
-# Test: cpp_variable-2.73
-# Desc: value of v.VB.vb_pub_int
-gdbtk_test cpp_variable-2.73 {changed value of v.vb_pub_int} {
- $var(v.VB.public.vb_pub_int) value
-} {2112}
-
-# Test: cpp_variable-2.74
-# Desc: change value of v.VB.vb_pub_int
-gdbtk_test cpp_variable-2.74 {change value of v.VB.public.vb_pub_int} {
- $var(v.VB.public.vb_pub_int) value 3
- cppvalue v.VB.public.vb_pub_int v.vb_pub_int d
-} {ok}
-
-# Test: cpp_variable-2.75
-# Desc: value of v.VB.vb_pub_int
-gdbtk_test cpp_variable-2.75 {changed value of v.VB.public.vb_pub_int} {
- $var(v.VB.public.vb_pub_int) value
-} {3}
-
-
-# Exit
-#
-gdbtk_test_done
-
-#Local Variables:
-#mode: tcl
-
diff --git a/gdb/testsuite/gdb.gdbtk/defs b/gdb/testsuite/gdb.gdbtk/defs
deleted file mode 100644
index 8e3fe5b4531..00000000000
--- a/gdb/testsuite/gdb.gdbtk/defs
+++ /dev/null
@@ -1,306 +0,0 @@
-# This file contains support code for the gdbtk test suite.
-# Copyright 2001 Red Hat, Inc.
-#
-# Based on the Tcl testsuite support code, portions of this file
-# are Copyright (c) 1990-1994 The Regents of the University of California and
-# Copyright (c) 1994-1996 Sun Microsystems, Inc.
-#
-global _test env srcdir objdir
-
-if {![info exists srcdir]} {
- if {[info exists env(SRCDIR)]} {
- set srcdir $env(SRCDIR)
- } else {
- set srcdir .
- }
-}
-
-if {![info exists objdir]} {
- if {[info exists env(OBJDIR)]} {
- set objdir $env(OBJDIR)
- } elseif {$_test(interactive)} {
- # If running interactively, assume that the objdir is
- # relative to the executable's location
- set objdir [file join [file dirname [info nameofexecutable]] testsuite gdb.gdbtk]
- } else {
- set objdir .
- }
-}
-
-if {![info exists _test(verbose)]} {
- if {[info exists env(GDBTK_VERBOSE)]} {
- set _test(verbose) $env(GDBTK_VERBOSE)
- } else {
- set _test(verbose) 0
- }
-}
-if {![info exists _test(tests)]} {
-
- if {[info exists env(GDBTK_TESTS)]} {
- set _test(tests) $env(GDBTK_TESTS)
- } else {
- set _test(tests) {}
- }
-}
-
-if {[info exists env(GDBTK_LOGFILE)]} {
- set _test(logfile) [open $env(GDBTK_LOGFILE) a+]
- fconfigure $_test(logfile) -buffering none
-} else {
- set _test(logfile) {}
-}
-
-# Informs gdbtk internals that testsuite is running. An example
-# where this is needed is the window manager, which must place
-# all windows at some place on the screen so that the system's
-# window manager does not interfere. This is reset in gdbtk_test_done.
-set env(GDBTK_TEST_RUNNING) 1
-
-# The gdb "file" command to use for gdbtk testing
-# NOTE: This proc appends ".exe" to all windows' programs
-proc gdbtk_test_file {filename} {
- global tcl_platform
-
- if {$tcl_platform(platform) == "windows"} {
- append filename ".exe"
- }
-
- set err [catch {gdb_cmd "file $filename" 1} text]
- if {$err} {
- error $text
- }
-
- return $text
-}
-
-proc gdbtk_test_run {{prog_args {}}} {
- global env
-
- # Get the target_info array from the testsuite
- array set target_info $env(TARGET_INFO)
-
- # We get the target ready by:
- # 1. Run all init commands
- # 2. Issue target command
- # 3. Issue load command
- # 4. Issue run command
- foreach cmd $target_info(init) {
- set err [catch {gdb_cmd $cmd 0} txt]
- if {$err} {
- _report_error "Target initialization command \"$cmd\" failed: $txt"
- return 0
- }
- }
-
- if {$target_info(target) != ""} {
- set err [catch {gdb_cmd $target_info(target) 0} txt]
- if {$err} {
- _report_error "Failed to connect to target: $txt"
- return 0
- }
- }
-
- if {$target_info(load) != ""} {
- set err [catch {gdb_cmd $target_info(load) 0} txt]
- if {$err} {
- _report_error "Failed to load: $txt"
- return 0
- }
- }
-
- if {$target_info(run) != ""} {
- set err [catch {gdb_cmd $target_info(run) 0} txt]
- if {$err} {
- _report_error "Could not run target with \"$target_info(run)\": $txt"
- return 0
- }
- }
-
- return 1
-}
-
-proc _report_error {msg} {
- global _test
-
- if {[info exists _test(interactive)] && $_test(interactive)} {
- # Dialog
- tk_messageBox -message $msg -icon error -type ok
- } else {
- # to stderr
- puts stderr $msg
- }
-}
-
-proc gdbtk_print_verbose {status name description script code answer} {
- global _test
-
- switch $code {
- 0 {
- set code_words {}
- }
- 1 {
- set code_words "Test generated error: $answer"
- }
-
- 2 {
- set code_words "Test generated return exception; result was: $answer"
- }
-
- 3 {
- set code_words "Test generated break exception"
- }
-
- 4 {
- set code_words "Test generated continue exception"
- }
-
- 5 {
- set code_words "Test generated exception $code; message was:$answer"
- }
- }
-
- if {$_test(verbose) > 1 \
- || ($_test(verbose) != 1 && ($status == "ERROR" || $status == "FAIL"))} {
- # Printed when user verbose mode (verbose > 1) or an error/failure occurs
- # not running the testsuite (dejagnu)
- puts stdout "\n"
- puts stdout "==== $name $description"
- puts stdout "==== Contents of test case:"
- puts stdout "$script"
- if {$code_words != ""} {
- puts stdout $code_words
- }
- puts stdout "==== Result was:"
- puts stdout "$answer"
- } elseif {$_test(verbose)} {
- # Printed for the testsuite (verbose = 1)
- puts stdout "[list $status $name $description $code_words]"
-
- if {$_test(logfile) != ""} {
- puts $_test(logfile) "\n"
- puts $_test(logfile) "==== $name $description"
- puts $_test(logfile) "==== Contents of test case:"
- puts $_test(logfile) "$script"
- if {$code_words != ""} {
- puts $_test(logfile) $code_words
- }
- puts $_test(logfile) "==== Result was:"
- puts $_test(logfile) "$answer"
- }
- }
-}
-
-# gdbtk_test
-#
-# This procedure runs a test and prints an error message if the
-# test fails.
-#
-# Arguments:
-# name - Name of test, in the form foo-1.2.
-# description - Short textual description of the test, to
-# help humans understand what it does.
-# script - Script to run to carry out the test. It must
-# return a result that can be checked for
-# correctness.
-# answer - Expected result from script.
-
-proc gdbtk_test {name description script answer} {
- global _test test_ran
-
- set test_ran 0
- if {[string compare $_test(tests) ""] != 0} then {
- set ok 0
- foreach test $_test(tests) {
- if [string match $test $name] then {
- set ok 1
- break
- }
- }
- if !$ok then return
- }
-
- set code [catch {uplevel $script} result]
- set test_ran 1
- if {$code != 0} {
- # Error
- gdbtk_print_verbose ERROR $name $description $script \
- $code $result
- } elseif {[string compare $result $answer] == 0} {
- if {[string index $name 0] == "*"} {
- # XPASS
- set HOW XPASS
- } else {
- set HOW PASS
- }
-
- if {$_test(verbose)} {
- gdbtk_print_verbose $HOW $name $description $script \
- $code $result
- if {$_test(verbose) != 1} {
- puts stdout "++++ $name ${HOW}ED"
- }
- }
- if {$_test(logfile) != ""} {
- puts $_test(logfile) "++++ $name ${HOW}ED"
- }
- } else {
- if {[string index $name 0] == "*"} {
- # XFAIL
- set HOW XFAIL
- } else {
- set HOW FAIL
- }
-
- gdbtk_print_verbose $HOW $name $description $script \
- $code $result
- if {$_test(verbose) != 1} {
- puts stdout "---- Result should have been:"
- puts stdout "$answer"
- puts stdout "---- $name ${HOW}ED"
- }
- if {$_test(logfile) != ""} {
- puts $_test(logfile) "---- Result should have been:"
- puts $_test(logfile) "$answer"
- puts $_test(logfile) "---- $name ${HOW}ED"
- }
- }
-}
-
-proc gdbtk_dotests {file args} {
- global _test
- set savedTests $_test(tests)
- set _test(tests) $args
- source $file
- set _test(tests) $savedTests
-}
-
-proc gdbtk_test_done {} {
- global _test env
-
- if {$_test(logfile) != ""} {
- close $_test(logfile)
- }
-
- set env(GDBTK_TEST_RUNNING) 0
- if {![info exists _test(interactive)] || !$_test(interactive)} {
- gdbtk_force_quit
- }
-}
-
-proc gdbtk_test_error {desc} {
- set desc [join [split $desc \n] |]
- puts "ERROR \{$desc\} \{\} \{\}"
- gdbtk_test_done
-}
-
-# Override the warning dialog. We don't want to see them.
-rename show_warning real_show_warning
-proc show_warning {msg} {
- global _test
-
- set str "INSIGHT TESTSUITE WARNING: $msg"
- puts stdout $str
- if {$_test(logfile) != ""} {
- puts $_test(logfile) $str
- }
-}
diff --git a/gdb/testsuite/gdb.gdbtk/insight-support.exp b/gdb/testsuite/gdb.gdbtk/insight-support.exp
deleted file mode 100644
index e5815206353..00000000000
--- a/gdb/testsuite/gdb.gdbtk/insight-support.exp
+++ /dev/null
@@ -1,319 +0,0 @@
-# GDB Testsuite Support for Insight.
-#
-# Copyright 2001, 2004 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# Initializes the display for gdbtk testing.
-# Returns 1 if tests should run, 0 otherwise.
-proc gdbtk_initialize_display {} {
- global _using_windows
-
- # This is hacky, but, we don't have much choice. When running
- # expect under Windows, tcl_platform(platform) is "unix".
- if {![info exists _using_windows]} {
- set _using_windows [expr {![catch {exec cygpath --help}]}]
- }
-
- if {![_gdbtk_xvfb_init]} {
- if {$_using_windows} {
- untested "No GDB_DISPLAY -- skipping tests"
- } else {
- untested "No GDB_DISPLAY or Xvfb -- skipping tests"
- }
-
- return 0
- }
-
- return 1
-}
-
-# From dejagnu:
-# srcdir = testsuite src dir (e.g., devo/gdb/testsuite)
-# objdir = testsuite obj dir (e.g., gdb/testsuite)
-# subdir = subdir of testsuite (e.g., gdb.gdbtk)
-#
-# To gdbtk:
-# env(DEFS)=the "defs" files (e.g., devo/gdb/testsuite/gdb.gdbtk/defs)
-# env(SRCDIR)=directory containing the test code (e.g., *.test)
-# env(OBJDIR)=directory which contains any executables
-# (e.g., gdb/testsuite/gdb.gdbtk)
-proc gdbtk_start {test} {
- global verbose
- global GDB
- global GDBFLAGS
- global env srcdir subdir objdir
-
- gdb_stop_suppressing_tests;
-
- # Need to convert ::GDB to use (-)?insight...
- if {[regsub {gdb$} $GDB insight newGDB]} {
- set INSIGHT $newGDB
- } else {
- perror "Cannot find Insight executable"
- return "ERROR gdbtk_start"
- }
-
- verbose "Starting $INSIGHT -nx -q --tclcommand=$test"
-
- set real_test [which $test]
- if {$real_test == 0} {
- perror "$test is not found"
- return "ERROR gdbtk_start"
- }
-
- if {![is_remote host]} {
- if { [which $INSIGHT] == 0 } {
- perror "$INSIGHT does not exist."
- return "ERROR gdbtk_start"
- }
- }
-
- set wd [pwd]
-
- # Find absolute path to test
- set test [to_tcl_path -abs $test]
-
- # Set some environment variables
- cd $srcdir
- set abs_srcdir [pwd]
- set env(DEFS) [to_tcl_path -abs [file join $abs_srcdir $subdir defs]]
-
- cd $wd
- cd [file join $objdir $subdir]
- set env(OBJDIR) [pwd]
- cd $wd
-
- # Set info about target into env
- _gdbtk_export_target_info
-
- set env(SRCDIR) $abs_srcdir
- set env(GDBTK_VERBOSE) 1
- set env(GDBTK_LOGFILE) [to_tcl_path [file join $objdir gdb.log]]
- unset -nocomplain env(TCL_LIBRARY)
-
- set err [catch {exec $INSIGHT -nx -q --tclcommand=$test} res]
- if { $err } {
- perror "Execing $INSIGHT failed: $res"
- append res "\nERROR gdb-crash"
- }
- return $res
-}
-
-# Start xvfb when using it.
-# The precedence is:
-# 1. If GDB_DISPLAY is set (and not ""), use it
-# 2. If Xvfb exists, use it (not on cygwin)
-# 3. Skip tests
-proc _gdbtk_xvfb_init {} {
- global env spawn_id _xvfb_spawn_id _using_windows
-
- if {[info exists env(GDB_DISPLAY)]} {
- if {$env(GDB_DISPLAY) != ""} {
- set env(DISPLAY) $env(GDB_DISPLAY)
- } else {
- # Suppress tests
- return 0
- }
- } elseif {!$_using_windows && [which Xvfb] != 0} {
- set screen ":[getpid]"
- set pid [spawn Xvfb $screen -ac]
- set _xvfb_spawn_id $spawn_id
- set env(DISPLAY) localhost$screen
- } else {
- # No Xvfb found -- skip test
- return 0
- }
-
- return 1
-}
-
-# Kill xvfb
-proc _gdbtk_xvfb_exit {} {
- global objdir subdir env _xvfb_spawn_id
-
- if {[info exists _xvfb_spawn_id]} {
- exec kill [exp_pid -i $_xvfb_spawn_id]
- wait -i $_xvfb_spawn_id
- }
-}
-
-# help proc for setting tcl-style paths from unix-style paths
-# pass "-abs" to make it an absolute path
-proc to_tcl_path {unix_path {arg {}}} {
- global _using_windows
-
- if {[string compare $unix_path "-abs"] == 0} {
- set unix_path $arg
- set wd [pwd]
- cd [file dirname $unix_path]
- set dirname [pwd]
- set unix_name [file join $dirname [file tail $unix_path]]
- cd $wd
- }
-
- if {$_using_windows} {
- set unix_path [exec cygpath -aw $unix_path]
- set unix_path [join [split $unix_path \\] /]
- }
-
- return $unix_path
-}
-
-# Set information about the target into the environment
-# variable TARGET_INFO. This array will contain a list
-# of commands that are necessary to run a target.
-#
-# This is mostly devined from how dejagnu works, what
-# procs are defined, and analyzing unix.exp, monitor.exp,
-# and sim.exp.
-#
-# Array elements exported:
-# Index Meaning
-# ----- -------
-# init list of target/board initialization commands
-# target target command for target/board
-# load load command for target/board
-# run run command for target_board
-proc _gdbtk_export_target_info {} {
- global env
-
- # Figure out what "target class" the testsuite is using,
- # i.e., sim, monitor, native
- if {[string compare [info proc gdb_target_monitor] gdb_target_monitor] == 0} {
- # Using a monitor/remote target
- set target monitor
- } elseif {[string compare [info proc gdb_target_sim] gdb_target_sim] == 0} {
- # Using a simulator target
- set target simulator
- } elseif {[string compare [info proc gdb_target_sid] gdb_target_sid] == 0} {
- # Using sid
- set target sid
- } else {
- # Assume native
- set target native
- }
-
- # Now setup the array to be exported.
- set info(init) {}
- set info(target) {}
- set info(load) {}
- set info(run) {}
-
- switch $target {
- simulator {
- set opts "[target_info gdb,target_sim_options]"
- set info(target) "target sim $opts"
- set info(load) "load"
- set info(run) "run"
- }
-
- monitor {
- # Setup options for the connection
- if {[target_info exists baud]} {
- lappend info(init) "set remotebaud [target_info baud]"
- }
- if {[target_info exists binarydownload]} {
- lappend info(init) "set remotebinarydownload [target_info binarydownload]"
- }
- if {[target_info exists disable_x_packet]} {
- lappend info(init) "set remote X-packet disable"
- }
- if {[target_info exists disable_z_packet]} {
- lappend info(init) "set remote Z-packet disable"
- }
-
- # Get target name and connection info
- if {[target_info exists gdb_protocol]} {
- set targetname "[target_info gdb_protocol]"
- } else {
- set targetname "not_specified"
- }
- if {[target_info exists gdb_serial]} {
- set serialport "[target_info gdb_serial]"
- } elseif {[target_info exists netport]} {
- set serialport "[target_info netport]"
- } else {
- set serialport "[target_info serial]"
- }
-
- set info(target) "target $targetname $serialport"
- set info(load) "load"
- set info(run) "continue"
- }
-
- sid {
- # We must start sid first, since Insight won't have a clue
- # about how to do this.
- sid_start
- set info(target) "target [target_info gdb_protocol] [target_info netport]"
- set info(load) "load"
- set info(run) "continue"
- }
-
- native {
- set info(run) "run"
- }
- }
-
- # Export the array to the environment
- set env(TARGET_INFO) [array get info]
-}
-
-# gdbtk tests call this function to print out the results of the
-# tests. The argument is a proper list of lists of the form:
-# {status name description msg}. All of these things typically
-# come from the testsuite harness.
-proc gdbtk_analyze_results {results} {
- foreach test $results {
- set status [lindex $test 0]
- set name [lindex $test 1]
- set description [lindex $test 2]
- set msg [lindex $test 3]
-
- switch $status {
- PASS {
- pass "$description ($name)"
- }
-
- FAIL {
- fail "$description ($name)"
- }
-
- ERROR {
- perror "$name"
- }
-
- XFAIL {
- xfail "$description ($name)"
- }
-
- XPASS {
- xpass "$description ($name)"
- }
- }
- }
-}
-
-proc gdbtk_done {{results {}}} {
- global _xvfb_spawn_id
- gdbtk_analyze_results $results
-
- # Kill off xvfb if using it
- if {[info exists _xvfb_spawn_id]} {
- _gdbtk_xvfb_exit
- }
-
- # Yich. If we're using sid, we must kill it
- if {[string compare [info proc gdb_target_sid] gdb_target_sid] == 0} {
- sid_exit
- }
-}
diff --git a/gdb/testsuite/gdb.gdbtk/list0.c b/gdb/testsuite/gdb.gdbtk/list0.c
deleted file mode 100644
index b50fdd4323d..00000000000
--- a/gdb/testsuite/gdb.gdbtk/list0.c
+++ /dev/null
@@ -1,43 +0,0 @@
-#include "list0.h"
-
-int main ()
-{
- int x;
-#ifdef usestubs
- set_debug_traps();
- breakpoint();
-#endif
- x = 0;
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- foo (x++);
- return 0;
-}
-
-static void
-unused ()
-{
- /* Not used for anything */
-}
diff --git a/gdb/testsuite/gdb.gdbtk/list0.h b/gdb/testsuite/gdb.gdbtk/list0.h
deleted file mode 100644
index d46833060e5..00000000000
--- a/gdb/testsuite/gdb.gdbtk/list0.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* An include file that actually causes code to be generated in the including file. This is known to cause problems on some systems. */
-#ifdef PROTOTYPES
-extern void bar(int);
-static void foo (int x)
-#else
-static void foo (x) int x;
-#endif
-{
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
- bar (x++);
-}
diff --git a/gdb/testsuite/gdb.gdbtk/list1.c b/gdb/testsuite/gdb.gdbtk/list1.c
deleted file mode 100644
index 6094104b9cd..00000000000
--- a/gdb/testsuite/gdb.gdbtk/list1.c
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <stdio.h>
-
-#ifdef PROTOTYPES
-void long_line (); int oof (int);
-void bar (int x)
-#else
-void bar (x) int x;
-#endif
-{
- printf ("%d\n", x);
-
- long_line ();
-}
-
-static void
-unused ()
-{
- /* Not used for anything */
-}
-/* This routine has a very long line that will break searching in older versions of GDB. */
-#ifdef PROTOTYPES
-void
-#endif
-long_line ()
-{
- oof (67);
-
- oof (6789);
-
- oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 5 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 10 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 15 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 20 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 25 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 30 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 35 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 40 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 45 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 50 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 55 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 60 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* 65 */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (12); /* */ oof (12); oof (12); oof (12); oof (12); oof (12); oof (1234); /* 70 */
-}
-#ifdef PROTOTYPES
-int oof (int n)
-#else
-oof (n) int n;
-#endif
-{
- return n + 1;
-}
diff --git a/gdb/testsuite/gdb.gdbtk/simple.c b/gdb/testsuite/gdb.gdbtk/simple.c
deleted file mode 100644
index 969f6880636..00000000000
--- a/gdb/testsuite/gdb.gdbtk/simple.c
+++ /dev/null
@@ -1,20 +0,0 @@
-int
-main(int argc, char * argv[])
-{
- int i;
- char *a;
- char *b = "abc";
- long foo;
-
- a = (char *) malloc (300);
-
- for (i=0; i < 50; i++)
- {
- int j = i % 3;
- int k = 3 - j;
- strncpy (&a[i], &b[k], j);
- foo = (long) j * k / i + 2 * k * k * k;
- }
- return 0;
-}
-
diff --git a/gdb/testsuite/gdb.gdbtk/srcwin.exp b/gdb/testsuite/gdb.gdbtk/srcwin.exp
deleted file mode 100644
index c9267d805e3..00000000000
--- a/gdb/testsuite/gdb.gdbtk/srcwin.exp
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright 1999, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-load_lib ../gdb.gdbtk/insight-support.exp
-
-if {[gdbtk_initialize_display]} {
- if {$tracelevel} {
- strace $tracelevel
- }
-
- #
- # test source window
- #
- set prms_id 0
- set bug_id 0
-
- set testfile "list"
- set s1 "$srcdir/$subdir/list0.c"
- set sources "$s1 $srcdir/$subdir/list1.c"
- set binfile $objdir/$subdir/$testfile
- if {[file exists $s1.save]} {
- catch {file delete $s1}
- file rename $s1.save $s1
- }
- set r [gdb_compile $sources "$binfile" executable debug]
- if { $r != "" } {
- gdb_suppress_entire_file \
- "Testcase compile failed, so some tests in this file will automatically fail."
- }
-
- # Start with a fresh gdbtk
- gdb_exit
- set results [gdbtk_start [file join $srcdir $subdir srcwin.test]]
- set results [split $results \n]
- set all_results $results
-
- # move file with "main" out of the way
- file rename $s1 $s1.save
-
- # run slightly different set of tests
- gdb_exit
- set results [gdbtk_start [file join $srcdir $subdir srcwin2.test]]
- set results [split $results \n]
- set all_results [concat $all_results $results]
-
- # restore file
- file rename $s1.save $s1
-
- set r [gdb_compile $sources "$binfile" executable ""]
- if { $r != "" } {
- gdb_suppress_entire_file \
- "Testcase compile failed, so some tests in this file will automatically fail."
- }
- # run slightly different set of tests
- gdb_exit
- set results [gdbtk_start [file join $srcdir $subdir srcwin3.test]]
- set results [split $results \n]
- set all_results [concat $all_results $results]
-
- # Analyze results
- gdbtk_done $all_results
-}
diff --git a/gdb/testsuite/gdb.gdbtk/srcwin.test b/gdb/testsuite/gdb.gdbtk/srcwin.test
deleted file mode 100644
index eaa9ba8530e..00000000000
--- a/gdb/testsuite/gdb.gdbtk/srcwin.test
+++ /dev/null
@@ -1,1192 +0,0 @@
-# Copyright (C) 1999, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# This file was written by Martin Hunt (hunt@cygnus.com)
-
-# Read in the standard defs file
-
-if {![gdbtk_read_defs]} {
- break
-}
-
-global objdir srcdir
-
-
-# move the pointer to the center of the bbox relative to $win
-proc move_mouse_to {win bbox} {
- if {[llength $bbox] != 4} {
- return 0
- }
- set x [expr [lindex $bbox 0] + [lindex $bbox 2] / 2]
- set y [expr [lindex $bbox 1] + [lindex $bbox 3] / 2]
- warp_pointer . [winfo rootx $win] [winfo rooty $win]
-
- set nx 0
- set ny 0
-
- while {$nx != $x || $ny != $y} {
- if {$nx < $x} {incr nx}
- if {$ny < $y} {incr ny}
- warp_pointer $win $nx $ny
- }
- return 1
-}
-
-proc click {win bbox bnum} {
- if {![move_mouse_to $win $bbox]} {
- return 0
- }
- update
-
- set x [expr [lindex $bbox 0] + [lindex $bbox 2] / 2]
- set y [expr [lindex $bbox 1] + [lindex $bbox 3] / 2]
-
- if {[catch {event generate $win <Button-$bnum> -x $x -y $y} result]} {
- return 0
- }
- if {[catch {event generate $win <ButtonRelease-$bnum> -x $x -y $y} result]} {
- return 0
- }
- return 1
-}
-
-
-##### #####
-# #
-# SECTION 1: Mode Tests #
-# #
-##### #####
-
-# Load the test executable
-set program [file join $objdir list]
-if {[catch {gdbtk_test_file $program} t]} {
- # This isn't a test case, since if this fails, we're hosed.
- gdbtk_test_error "loading \"$program\": $t"
-}
-
-set srcwin [ManagedWin::open SrcWin]
-set stw [$srcwin test_get twin]
-set twin [$stw test_get twin]
-
-# get things started
-gdb_cmd "break main"
-gdbtk_test_run
-
-# Test: srcwin-1.1
-# Desc: Check for something in source window
-gdbtk_test srcwin-1.1 "source window has contents" {
- set file1(source) [$twin get 1.0 end]
- expr {![string compare $file1(source) ""]}
-} {0}
-
-
-# Test: srcwin-1.2
-# Desc: source->assembly mode change
-gdbtk_test srcwin-1.2 "source->assembly mode change" {
- $srcwin mode "" ASSEMBLY
- set twin [$stw test_get twin]
- set file1(assembly) [$twin get 1.0 end]
- expr {![string compare $file1(source) $file1(assembly)]}
-} {0}
-
-# Test: srcwin-1.3
-# Desc: assembly->mixed mode change
-gdbtk_test srcwin-1.3 "assembly->mixed mode change" {
- $srcwin mode "" MIXED
- set twin [$stw test_get twin]
- set file1(mixed) [$twin get 1.0 end]
- expr {![string compare $file1(mixed) $file1(assembly)]}
-} {0}
-
-# Test: srcwin-1.4
-# Desc: mixed->src+asm mode change
-gdbtk_test srcwin-1.4 "mixed->src+asm mode change" {
- $srcwin mode "" SRC+ASM
- set twin [$stw test_get twin]
- set bwin [$stw test_get bwin]
- set s [$twin get 1.0 end]
- set a [$bwin get 1.0 end]
- list [string compare $a $file1(assembly)] [string compare $s $file1(source)] [winfo ismapped $bwin]
-} {0 0 1}
-
-# Test: srcwin-1.5
-# Desc: src+asm->source mode change
-gdbtk_test srcwin-1.5 "src+asm->source mode change" {
- $srcwin mode "" SOURCE
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- set bwin [$stw test_get bwin]
- list [string compare $file1(source) $a] [winfo ismapped $bwin]
-} {0 0}
-
-# Test: srcwin-1.6
-# Desc: source->mixed mode change
-gdbtk_test srcwin-1.6 "source->mixed mode change" {
- $srcwin mode "" MIXED
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- string compare $file1(mixed) $a
-} {0}
-
-# Test: srcwin-1.7
-# Desc: mixed->source mode change
-gdbtk_test srcwin-1.7 "mixed->source mode change" {
- $srcwin mode "" SOURCE
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- string compare $file1(source) $a
-} {0}
-
-# Test: srcwin-1.8
-# Desc: source->src+asm mode change
-gdbtk_test srcwin-1.8 "source->src+asm mode change" {
- $srcwin mode "" SRC+ASM
- set twin [$stw test_get twin]
- set bwin [$stw test_get bwin]
- set s [$twin get 1.0 end]
- set a [$bwin get 1.0 end]
- list [string compare $a $file1(assembly)] [string compare $s $file1(source)] [winfo ismapped $bwin]
-} {0 0 1}
-
-# Test: srcwin-1.9
-# Desc: src+asm->assembly mode change
-gdbtk_test srcwin-1.9 "src+asm->assembly mode change" {
- $srcwin mode "" ASSEMBLY
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- string compare $file1(assembly) $a
-} {0}
-
-# Test: srcwin-1.10
-# Desc: assembly->src+asm mode change
-gdbtk_test srcwin-1.10 "assembly->src+asm mode change" {
- $srcwin mode "" SRC+ASM
- set twin [$stw test_get twin]
- set bwin [$stw test_get bwin]
- set s [$twin get 1.0 end]
- set a [$bwin get 1.0 end]
- list [string compare $a $file1(assembly)] [string compare $s $file1(source)] [winfo ismapped $bwin]
-} {0 0 1}
-
-# Test: srcwin-1.11
-# Desc: src+asm->mixed mode change
-gdbtk_test srcwin-1.11 "src+asm->mixed mode change" {
- $srcwin mode "" MIXED
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- set bwin [$stw test_get bwin]
- expr {[string compare $file1(mixed) $a] ||
- [winfo ismapped $bwin]}
-} {0}
-
-# Test: srcwin-1.12
-# Desc: mixed->assembly mode change
-gdbtk_test srcwin-1.12 "mixed->assembly mode change" {
- $srcwin mode "" ASSEMBLY
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- string compare $file1(assembly) $a
-} {0}
-
-# Test: srcwin-1.13
-# Desc: assembly->source mode change
-gdbtk_test srcwin-1.13 "assembly->source mode change" {
- $srcwin mode "" SOURCE
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- string compare $file1(source) $a
-} {0}
-
-
-##### #####
-# #
-# SECTION 2: Basic Operations #
-# #
-##### #####
-
-# Test: srcwin-2.1
-# Desc: check contents of filename combobox
-gdbtk_test srcwin-2.1 "check contents of filename combobox" {
- set statbar [$srcwin test_get _statbar]
- set names [$statbar.name list get 0 end]
- set r 0
- foreach f {list0.c list1.c} {
- if {[lsearch $names $f] != -1} {
- incr r
- }
- }
- set r
-} {2}
-
-# Test: srcwin-2.2
-# Desc: check contents of function combobox
-gdbtk_test srcwin-2.2 "check contents of function combobox" {
- set names [$statbar.func list get 0 end]
- set r 0
- foreach f {main foo unused} {
- if {[lsearch $names $f] != -1} {
- incr r
- }
- }
- set r
-} {3}
-
-# Test: srcwin-2.3
-# Desc: goto filename
-gdbtk_test srcwin-2.3 "goto filename" {
- set func [$srcwin test_get _name 1]
- $func "" list1.c
- set twin [$stw test_get twin]
- set file2(source) [$twin get 1.0 end]
- expr {![string compare $file1(source) $file2(source)]}
-} {0}
-
-# Test: srcwin-2.4
-# Desc: check contents of function combobox
-gdbtk_test srcwin-2.4 "check contents of function combobox" {
- set names [$statbar.func list get 0 end]
- set r 0
- foreach f {bar long_line oof unused} {
- if {[lsearch $names $f] != -1} {
- incr r
- }
- }
- set r
-} {4}
-
-# Test: srcwin-2.5
-# Desc: function combobox entry field should be empty after switching to a new file
-gdbtk_test srcwin-2.5 "function combobox entry field should be empty" {
- set names [$statbar.func get]
- string length $names
-} {0}
-
-# Test: srcwin-2.6
-# Desc: goto function
-gdbtk_test srcwin-2.6 "goto function bar" {
- $srcwin goto_func "" bar
- set r 0
-
- # now get a dump of all tags and check that only one line is
- # marked BROWSE_TAG and no lines are STACK_TAG or PC_TAG.
-
- # We know that list1.c should have BROWSE_TAG set at index 5.2
- # for function "bar". If list1.c is changed or the layout of the source
- # window is changed, this must be updated.
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "BROWSE_TAG"} {
- if {$i == "10.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} { incr r 10}
- if {$v == "PC_TAG"} { incr r 100}
- }
- }
- } else {
- set r -1
- }
-
- if {$r == 1} {
- # things are OK so far, so just verify the function name is displayed
- # in the combobox entry field.
- set names [$statbar.func get]
- if {[string compare $names "bar"]} {set r -2}
- }
- set r
-} {1}
-
-# Test: srcwin-2.7
-# Desc: goto function "oof". This tests that the correct line is highlighted
-# with BROWSE_TAG and no other lines are highlighted. It also checks that
-# the combobox has the correct function name in it. Finally, list1.c
-# has an extremely long line, line 32, that breaks some functions. We verify
-# that the GDBtk has the correct line number.
-
-gdbtk_test srcwin-2.7 "goto function oof" {
- $srcwin goto_func "" oof
- set r 0
-
- # now get a dump of all tags and check that only one line is
- # marked BROWSE_TAG and no lines are STACK_TAG or PC_TAG.
-
- # We know that list1.c should have BROWSE_TAG set at index 32.2
- # for function "oof". If list1.c is changed or the layout of the source
- # window is changed, this must be updated.
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "BROWSE_TAG"} {
- if {$i == "38.2"} {
- set line_number [$twin get "$i wordstart" "$i wordend"]
- if {$line_number == "38"} {
- incr r
- } else {
- incr r -100
- }
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "PC_TAG"} {incr r 100}
- }
- }
- } else {
- set r -1
- }
-
- if {$r == 1} {
- # things are OK so far, so just verify the function name is displayed
- # in the combobox entry field.
- set names [$statbar.func get]
- if {[string compare $names "oof"]} {set r -2}
- }
- set r
-} {1}
-
-# Test: srcwin-2.8
-# Desc: This test issues a next command while browsing list1.c.
-# It should display list0.c and highlight the correct line.
-gdbtk_test srcwin-2.8 "step while browsing" {
- gdb_immediate "next" 1
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list0.c"} {set r -1}
- if {$func != "main"} {set r -2}
-
- # check that correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $file1(source) $a]} {set r -3}
-
- # check for PC_TAG on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- if {$i == "11.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Test: srcwin-2.9
-# Desc: This test issues a next command while the current
-# PC is ready to call a function. It should not go into the function and
-# should update the PC highlight correctly.
-gdbtk_test srcwin-2.9 "next" {
- gdb_immediate "next" 1
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list0.c"} {set r -1}
- if {$func != "main"} {set r -2}
-
- # check that correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $file1(source) $a]} {set r -3}
-
- # check for PC_TAG on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- if {$i == "12.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Test: srcwin-2.10
-# Desc: This test issues a step command while the current
-# PC is ready to call a function. It should step into the function.
-gdbtk_test srcwin-2.10 "step" {
- gdb_immediate "step" 1
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list0.h"} {set r -1}
- if {$func != "foo"} {set r -2}
-
- # check that a new file is displayed
- set twin [$stw test_get twin]
- set file3(source) [$twin get 1.0 end]
- if {![string compare $file1(source) $file3(source)]} {set r -3}
-
- # check for PC_TAG on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- if {$i == "9.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Test: srcwin-2.11
-# Desc: This test issues a break and a continue
-gdbtk_test srcwin-2.11 "set BP and continue" {
- gdb_immediate "break oof" 1
- gdb_immediate "continue" 1
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list1.c"} {set r -1}
- if {$func != "oof"} {set r -2}
-
- # check that the correct file is displayed
- # we must clear the breakpoint first so it doesn't mess up the
- # comparison...
- gdb_immediate "clear oof" 1
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $file2(source) $a]} {set r -3}
-
- # check for PC_TAG on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- if {$i == "38.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-##### #####
-# #
-# SECTION 3: Stack Operations #
-# #
-##### #####
-
-# Test: srcwin-3.1
-# Desc: This tests "stack up"
-gdbtk_test srcwin-3.1 "stack up (1)" {
- $srcwin stack up
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list1.c"} {set r -1}
- if {$func != "long_line"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $file2(source) $a]} {set r -3}
-
- # check for PC_TAG and STACK_TAG on correct lines
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- # return n + 1;
- if {$i == "38.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {
- # oof (67);
- if {$i == "26.2"} {
- incr r
- } else {
- incr r 10
- }
- }
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {2}
-
-# Test: srcwin-3.2
-# Desc: Another "stack up" test
-gdbtk_test srcwin-3.2 "stack up (2)" {
- $srcwin stack up
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list1.c"} {set r -1}
- if {$func != "bar"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $file2(source) $a]} {set r -3}
-
- # check for PC_TAG and STACK_TAG on correct lines
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- # return n + 1;
- if {$i == "38.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {
- # long_line ();
- if {$i == "12.2"} {
- incr r
- } else {
- incr r 10
- }
- }
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {2}
-
-# Test: srcwin-3.3
-# Desc: Another "stack up" test
-gdbtk_test srcwin-3.3 "stack up (3)" {
- $srcwin stack up
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list0.h"} {set r -1}
- if {$func != "foo"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {![string compare $file2(source) $a]} {set r -3}
-
- # check for PC_TAG and STACK_TAG on correct lines
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "STACK_TAG"} {
- if {$i == "9.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "PC_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Test: srcwin-3.4
-# Desc: Another "stack up" test
-gdbtk_test srcwin-3.4 "stack up (4)" {
- $srcwin stack up
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list0.c"} {set r -1}
- if {$func != "main"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $file1(source) $a]} {set r -3}
-
- # check for PC_TAG and STACK_TAG on correct lines
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "STACK_TAG"} {
- if {$i == "12.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "PC_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Disabled for now because there are different correct results.
-# Test should be rewritten to include those.
-# Test: srcwin-3.5
-# Desc: "stack up" when we are at the top
-#gdbtk_test srcwin-3.5 "stack up when at the top" {
-# $srcwin stack up
-# set r 0
-# set name [$statbar.name get]
-# set func [$statbar.func get]
-#
- # check contents of name and function comboboxes
-# if {$name != "list0.c"} {set r -1}
-# if {$func != "main"} {set r -2}
-
- # check that the correct file is displayed
-# set twin [$stw test_get twin]
-# set a [$twin get 1.0 end]
-# if {[string compare $file1(source) $a]} {set r -3}
-
- # check for PC_TAG and STACK_TAG on correct lines
-# if {$r == 0} {
-# if {![catch {set z [$twin dump -tag 1.0 end]}]} {
-# foreach {k v i} $z {
-# if {$k == "tagon"} {
-# if {$v == "STACK_TAG"} {
-# if {$i == "12.2"} {
-# incr r
-# } else {
-# incr r 5
-# }
-# }
-# if {$v == "PC_TAG"} {incr r 10}
-# if {$v == "BROWSE_TAG"} {incr r 100}
-# }
-# }
-# } else {
-# set r -4
-# }
-# }
-# set r
-#} {1}
-
-# Test: srcwin-3.6
-# Desc: "stack down" test
-gdbtk_test srcwin-3.6 "stack down" {
- $srcwin stack down
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list0.h"} {set r -1}
- if {$func != "foo"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {![string compare $file2(source) $a]} {set r -3}
-
- # check for PC_TAG and STACK_TAG on correct lines
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "STACK_TAG"} {
- if {$i == "9.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "PC_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Test: srcwin-3.7
-# Desc: "stack bottom" test
-gdbtk_test srcwin-3.7 "stack bottom" {
- $srcwin stack bottom
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list1.c"} {set r -1}
- if {$func != "oof"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $file2(source) $a]} {set r -3}
-
- # check for PC_TAG on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- if {$i == "38.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Test: srcwin-3.8
-# Desc: "stack down" when at bottom
-gdbtk_test srcwin-3.8 "stack down when at bottom" {
- $srcwin stack down
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list1.c"} {set r -1}
- if {$func != "oof"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $file2(source) $a]} {set r -3}
-
- # check for PC_TAG on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- if {$i == "38.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# 4 - BREAKPOINTS
-
-# Test: srcwin-4.1
-# Desc: Set BP in another file. Tests bp and cache functions
-gdbtk_test srcwin-4.1 "set BP in another file" {
- gdb_immediate "break foo" 1
- $srcwin goto_func "" foo
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list0.h"} {set r -1}
- if {$func != "foo"} {set r -2}
-
- set twin [$stw test_get twin]
-
- # check for BROWSE_TAG and BP image on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "BROWSE_TAG"} {
- if {$i == "9.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "PC_TAG"} {incr r 100}
- } elseif {$k == "image"} {
- if {$i == "9.0"} {
- incr r
- } else {
- set r -200
- }
- }
- }
- } else {
- set r -4
- }
- }
-
- if {$r == 2} {
- # clear BP and compare with previous contents. This should succeed,
- gdb_immediate "clear foo" 1
- set a [$twin get 1.0 end]
- if {[string compare $file3(source) $a]} {set r -3}
- }
-
- set r
-} {2}
-
-# Test: srcwin-4.2
-# Desc: Test temporary BP
-gdbtk_test srcwin-4.2 "temporary BP" {
- set r 0
- if {[catch {gdb_immediate "tbreak foo" 1} msg]} {
- set r -500
- }
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list0.h"} {set r -1}
- if {$func != "foo"} {set r -2}
-
- set twin [$stw test_get twin]
-
- # check for BROWSE_TAG and BP image on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "BROWSE_TAG"} {
- if {$i == "9.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "PC_TAG"} {incr r 100}
- } elseif {$k == "image"} {
- if {$i == "9.0"} {
- incr r
- } else {
- set r -200
- }
- }
- }
- } else {
- set r -4
- }
- }
-
- gdb_immediate "continue" 1
-
- # now check for PC_TAG and no image
- if {$r == 2} {
- if {![catch {set z [$twin dump 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- if {$i == "9.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- } elseif {$k == "image"} {
- set r -200
- }
- }
- } else {
- set r -4
- }
- }
-
- set r
-} {3}
-
-# Test: srcwin-4.3
-# Desc: Test BP balloons
-gdbtk_test srcwin-4.3 "BP Balloons" {
- # move pointer out of the way
- warp_pointer . 0 0
- set r 0
- gdb_immediate "break 10" 1
- gdb_immediate "tbreak 10" 1
-
- set twin [$stw test_get twin]
-
- # check for BROWSE_TAG and BP image on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- if {$i == "9.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- } elseif {$k == "image"} {
- if {$i == "10.0"} {
- incr r
- # we found the bp image, now we will test the bp balloon messages
- set balloon [winfo toplevel [namespace tail $srcwin]].__balloon
- # shouldn't be mapped yet
- if {[winfo ismapped $balloon]} {
- set r -3000
- break
- }
- move_mouse_to $twin [$twin bbox $i]
- #wait a second for the balloon message to appear
- sleep 1
- if {![winfo ismapped $balloon]} {
- set r -4000
- break
- }
- # read the contents of the balloon and parse it into lines
- set a [split [$balloon.label cget -text] \n]
- set i 0
- # foreach line parse it and check the type and make sure it is enabled
- foreach line $a {
- if {[lindex $line 0] == "breakpoint"} {continue}
- incr i
- set enabled [lindex $line 0]
- set bptype [lindex $line 2]
- switch $i {
- 1 {
- if {$bptype != "donttouch"} {set r -1000}
- }
- 2 {
- if {$bptype != "delete"} {set r -2000}
- }
- }
- }
- } else {
- set r -200
- }
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {2}
-
-#ManagedWin::open DebugWin
-
-# Test: srcwin-4.4
-# Desc: Click on line to set BP
-gdbtk_test srcwin-4.4 "Click on line to set BP" {
- set r 0
-
- # click mouse button 1 at index 20.1
- if {![click $twin [$twin bbox 20.1] 1]} {
- set r "Click failed on line 20.1"
- } else {
-
- # now look for BP at line 20
- foreach bpnum [gdb_get_breakpoint_list] {
- set bpinfo [gdb_get_breakpoint_info $bpnum]
- lassign $bpinfo file func line pc type enabled disposition \
- ignore_count commands cond thread hit_count
- set file [lindex [file split $file] end]
- if {$file == "list0.h"} {
- if {$line == "20"} {
- if {$enabled == "1"} {incr r}
- if {$func == "foo"} {incr r}
- if {$type == "breakpoint"} {incr r}
- if {$disposition == "donttouch"} {incr r}
- }
- }
- }
- }
- set r
-} {4}
-
-
-# Test: srcwin-4.5
-# Desc: Continue till here popup
-gdbtk_test srcwin-4.5 "Continue till here popup" {
- set twin [$stw test_get twin]
-
- # Get coordinates of line 16
- set b [$twin bbox 16.1]
- set y [expr {[lindex $b 1] + ([lindex $b 3] / 2)}]
-
- # Continue to here
- $stw continue_to_here $twin $y
-
- # Where is the PC_TAG?
- set pcs {}
- set tags [$twin tag ranges PC_TAG]
- foreach {start end} $tags {
- lappend pcs [expr {int($start)}]
- }
-
- # Where are breakpoints?
- set bps {}
- set imgs [$twin dump -image 1.0 end]
- foreach {foo bar line} $imgs {
- lappend bps $line
- }
-
- list $pcs $bps
-} {16 {10.0 20.0}}
-
-# 5.1 balloon variables
-# Test: srcwin-5.1
-# Desc: variable balloon test
-# continues to BP at line 20 and checks to see that value was updated
-gdbtk_test srcwin-5.1 "variable balloon test" {
- # move pointer out of the way
- warp_pointer . 0 0
- set r 0
- set twin [$stw test_get twin]
-
- # move pointer to variable "x" and check balloon
- set index [string first "x++" [$twin get 20.0 20.end]]
- move_mouse_to $twin [$twin bbox 20.$index]
- sleep 1
- if {[winfo ismapped $balloon]} {
- if {![string compare "x=9" [$balloon.label cget -text]]} {incr r}
- gdb_immediate "continue" 1
- sleep 1
- if {![string compare "x=13" [$balloon.label cget -text]]} {incr r}
- } else {
- set r -1
- }
-
- set r
-} {2}
-
-# 6.1 mixed mode disassembly of include file
-# Test: srcwin-6.1
-# Desc: Some versions of GDBtk can't do mixed-mode disassembly of a function
-# that is in an include file. PR# mi/1101
-
-gdbtk_test srcwin-6.1 "mixed mode disassembly of include file (mi/1101)" {
- set r 0
- $srcwin mode "" MIXED
-
- # check contents of name and function comboboxes
- set name [$statbar.name get]
- set func [$statbar.func get]
- if {$name != "list0.h"} {set r -1}
- if {$func != "foo"} {set r -2}
-
- # check contents of source window
- set twin [$stw test_get twin]
- set text [$twin get 1.0 end]
- # Is it correct? I don't know. Guess we look for some pieces of source...
- if {[string first "static void" $text] != -1 &&
- [string first "foo (x)" $text] != -1 &&
- [string first "bar (x++);" $text] != -1} {
- set r 1
- }
-
- set r
-} {1}
-
-gdbtk_test_done
diff --git a/gdb/testsuite/gdb.gdbtk/srcwin2.test b/gdb/testsuite/gdb.gdbtk/srcwin2.test
deleted file mode 100644
index ee693e269cb..00000000000
--- a/gdb/testsuite/gdb.gdbtk/srcwin2.test
+++ /dev/null
@@ -1,899 +0,0 @@
-# Copyright (C) 1999, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# This file was written by Martin Hunt (hunt@cygnus.com)
-
-
-# same as srcwin.test, except test debugging executables
-# when source files are missing.
-
-# Read in the standard defs file
-
-if {![gdbtk_read_defs]} {
- break
-}
-
-global objdir srcdir
-
-##### #####
-# #
-# SECTION 1: Mode Tests #
-# #
-##### #####
-
-# Load the test executable
-set program [file join $objdir list]
-if {[catch {gdbtk_test_file $program} t]} {
- # This isn't a test case, since if this fails, we're hosed.
- gdbtk_test_error "loading \"$program\": $t"
-}
-
-set srcwin [ManagedWin::open SrcWin]
-set stw [$srcwin test_get twin]
-set twin [$stw test_get twin]
-set statbar [$srcwin test_get _statbar]
-
-# get things started
-gdb_cmd "break main"
-gdbtk_test_run
-
-# Test: srcwin2-1.1
-# Desc: Check for something in source window
-gdbtk_test srcwin2-1.1 "source window has contents" {
- set r 0
- set file1(source) [$twin get 1.0 end]
- if {$file1(source) == ""} {set r -1}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin2-1.2
-# Desc: source->assembly mode change
-gdbtk_test srcwin2-1.2 "source->assembly mode change" {
- $srcwin mode "" ASSEMBLY
- set twin [$stw test_get twin]
- set file1(assembly) [$twin get 1.0 end]
- # source == assembly because for there is no source
- string compare $file1(source) $file1(assembly)
-} {0}
-
-# Test: srcwin2-1.3
-# Desc: assembly->mixed mode change
-gdbtk_test srcwin2-1.3 "assembly->mixed mode change" {
- set r 0
- $srcwin mode "" MIXED
- set twin [$stw test_get twin]
- set file1(mixed) [$twin get 1.0 end]
- # mixed != assembly because the lines with source should
- # be noted, even if source in unavailable. This behaviour is
- # different for different debug formats, so we accept either.
- if {$file1(mixed) == ""} {set r -1}
- if {[$statbar.mode get] != "MIXED"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin2-1.4
-# Desc: mixed->src+asm mode change
-gdbtk_test srcwin2-1.4 "mixed->src+asm mode change" {
- set r 0
- # mode change may fail if fallover to ASSEMBLY fails
- if {[catch {$srcwin mode "" SRC+ASM}]} { set r -5 }
- set twin [$stw test_get twin]
- if {[$twin get 1.0 end] != $file1(assembly)} {set r -1}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin2-1.5
-# Desc: src+asm->source mode change
-gdbtk_test srcwin2-1.5 "src+asm->source mode change" {
- set r 0
- $srcwin mode "" SOURCE
- set twin [$stw test_get twin]
- if {[$stw test_get bwin] != ""} {set r -2}
- if {[$twin get 1.0 end] != $file1(assembly)} {set r -1}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -3}
- set r
-} {0}
-
-# Test: srcwin2-1.6
-# Desc: source->mixed mode change
-gdbtk_test srcwin2-1.6 "source->mixed mode change" {
- set r 0
- $srcwin mode "" MIXED
- set twin [$stw test_get twin]
- if {[$twin get 1.0 end] != $file1(mixed)} {set r -1}
- if {[$statbar.mode get] != "MIXED"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin2-1.7
-# Desc: mixed->source mode change
-gdbtk_test srcwin2-1.7 "mixed->source mode change" {
- set r 0
- $srcwin mode "" SOURCE
- set twin [$stw test_get twin]
- if {[$twin get 1.0 end] != $file1(source)} {set r -1}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin2-1.8
-# Desc: source->src+asm mode change
-gdbtk_test srcwin2-1.8 "source->src+asm mode change" {
- set r 0
- # mode change may fail if fallover to ASSEMBLY fails
- if {[catch {$srcwin mode "" SRC+ASM}]} { set r -5 }
- set twin [$stw test_get twin]
- set bwin [$stw test_get bwin]
- if {[$twin get 1.0 end] != $file1(assembly)} {set r -1}
- if {$bwin != ""} {set r -2}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -3}
- set r
-} {0}
-
-# Test: srcwin2-1.9
-# Desc: src+asm->assembly mode change
-gdbtk_test srcwin2-1.9 "src+asm->assembly mode change" {
- set r 0
- $srcwin mode "" ASSEMBLY
- set twin [$stw test_get twin]
- if {[$twin get 1.0 end] != $file1(assembly)} {set r -1}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin2-1.10
-# Desc: assembly->src+asm mode change
-gdbtk_test srcwin2-1.10 "assembly->src+asm mode change" {
- set r 0
- # mode change may fail if fallover to ASSEMBLY fails
- if {[catch {$srcwin mode "" SRC+ASM}]} { set r -5 }
- set twin [$stw test_get twin]
- set bwin [$stw test_get bwin]
- if {[$twin get 1.0 end] != $file1(assembly)} {set r -1}
- if {$bwin != ""} {set r -2}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -3}
- set r
-} {0}
-
-# Test: srcwin2-1.11
-# Desc: src+asm->mixed mode change
-gdbtk_test srcwin2-1.11 "src+asm->mixed mode change" {
- set r 0
- $srcwin mode "" MIXED
- set twin [$stw test_get twin]
- if {[$twin get 1.0 end] != $file1(mixed)} {set r -1}
- if {[$statbar.mode get] != "MIXED"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin2-1.12
-# Desc: mixed->assembly mode change
-gdbtk_test srcwin2-1.12 "mixed->assembly mode change" {
- set r 0
- $srcwin mode "" ASSEMBLY
- set twin [$stw test_get twin]
- if {[$twin get 1.0 end] != $file1(assembly)} {set r -1}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin2-1.13
-# Desc: assembly->source mode change
-gdbtk_test srcwin2-1.13 "assembly->source mode change" {
- set r 0
- $srcwin mode "" SOURCE
- set twin [$stw test_get twin]
- if {[$twin get 1.0 end] != $file1(source)} {set r -1}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -2}
- set r
-} {0}
-
-
-##### #####
-# #
-# SECTION 2: Basic Operations #
-# #
-##### #####
-
-# Test: srcwin2-2.1
-# Desc: check contents of filename combobox
-gdbtk_test srcwin2-2.1 "check contents of filename combobox" {
- set names [$statbar.name list get 0 end]
- set r 0
- foreach f {list0.c list1.c} {
- if {[lsearch $names $f] != -1} {
- incr r
- }
- }
- set r
-} {2}
-
-# Test: srcwin2-2.2
-# Desc: check contents of function combobox
-gdbtk_test srcwin2-2.2 "check contents of function combobox" {
- set names [$statbar.func list get 0 end]
- set r 0
- foreach f {main foo unused} {
- if {[lsearch $names $f] != -1} {
- incr r
- }
- }
- set r
-} {3}
-
-# Test: srcwin2-2.3
-# Desc: goto filename
-gdbtk_test srcwin2-2.3 "goto filename" {
- set func [$srcwin test_get _name 1]
- $func "" list1.c
- set twin [$stw test_get twin]
- set file2(source) [$twin get 1.0 end]
- expr {![string compare $file1(source) $file2(source)]}
-} {0}
-
-# Test: srcwin2-2.4
-# Desc: check contents of function combobox
-gdbtk_test srcwin2-2.4 "check contents of function combobox" {
- set names [$statbar.func list get 0 end]
- set r 0
- foreach f {bar long_line oof unused} {
- if {[lsearch $names $f] != -1} {
- incr r
- }
- }
- set r
-} {4}
-
-# Test: srcwin2-2.5
-# Desc: function combobox entry field should be empty after switching to a new file
-gdbtk_test srcwin2-2.5 "function combobox entry field should be empty" {
- set names [$statbar.func get]
- string length $names
-} {0}
-
-# Test: srcwin2-2.6
-# Desc: goto function
-gdbtk_test srcwin2-2.6 "goto function bar" {
- $srcwin goto_func "" bar
- set r 0
-
- # now get a dump of all tags and check that only one line is
- # marked BROWSE_TAG and no lines are STACK_TAG or PC_TAG.
-
- # We know that list1.c should have BROWSE_TAG set at index 10.2
- # for function "bar". If list1.c is changed or the layout of the source
- # window is changed, this must be updated.
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "BROWSE_TAG"} {
- if {$i == "10.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} { incr r 10}
- if {$v == "PC_TAG"} { incr r 100}
- }
- }
- } else {
- set r -1
- }
-
- if {$r == 1} {
- # things are OK so far, so just verify the function name is displayed
- # in the combobox entry field.
- set names [$statbar.func get]
- if {[string compare $names "bar"]} {set r -2}
- }
- set r
-} {1}
-
-# Test: srcwin2-2.7
-# Desc: goto function "oof". This tests that the correct line is highlighted
-# with BROWSE_TAG and no other lines are highlighted. It also checks that
-# the combobox has the correct function name in it. Finally, list1.c
-# has an extremely long line, line 32, that breaks some functions. We verify
-# that the GDBtk has the correct line number.
-
-gdbtk_test srcwin2-2.7 "goto function oof" {
- $srcwin goto_func "" oof
- set r 0
-
- # now get a dump of all tags and check that only one line is
- # marked BROWSE_TAG and no lines are STACK_TAG or PC_TAG.
-
- # We know that list1.c should have BROWSE_TAG set at index 38.2
- # for function "oof". If list1.c is changed or the layout of the source
- # window is changed, this must be updated.
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "BROWSE_TAG"} {
- if {$i == "38.2"} {
- set line_number [$twin get "$i wordstart" "$i wordend"]
- if {$line_number == "38"} {
- incr r
- } else {
- incr r -100
- }
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "PC_TAG"} {incr r 100}
- }
- }
- } else {
- set r -1
- }
-
- if {$r == 1} {
- # things are OK so far, so just verify the function name is displayed
- # in the combobox entry field.
- set names [$statbar.func get]
- if {[string compare $names "oof"]} {set r -2}
- }
- set r
-} {1}
-
-# Test: srcwin2-2.8
-# Desc: This test issues a next command while browsing list1.c.
-# It should display list0.c and highlight the correct line.
-gdbtk_test srcwin2-2.8 "step while browsing" {
- gdb_immediate "next" 1
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list0.c"} {set r -1}
- if {$func != "main"} {set r -2}
-
- # check that correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $file1(source) $a]} {set r -3}
-
- # check for PC_TAG
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- incr r
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Test: srcwin2-2.11
-# Desc: This test issues a break and a continue
-gdbtk_test srcwin2-2.11 "set BP and continue" {
- gdb_immediate "break oof" 1
- gdb_immediate "continue" 1
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list1.c"} {set r -1}
- if {$func != "oof"} {set r -2}
-
- # check that the correct file is displayed
- # we must clear the breakpoint first so it doesn't mess up the
- # comparison...
- gdb_immediate "clear oof" 1
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $file2(source) $a]} {set r -3}
-
- # check for PC_TAG on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- if {$i == "38.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-##### #####
-# #
-# SECTION 3: Stack Operations #
-# #
-##### #####
-
-# Test: srcwin2-3.1
-# Desc: This tests "stack up"
-gdbtk_test srcwin2-3.1 "stack up (1)" {
- $srcwin stack up
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list1.c"} {set r -1}
- if {$func != "long_line"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $file2(source) $a]} {set r -3}
-
- # check for PC_TAG and STACK_TAG on correct lines
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- if {$i == "38.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {
- if {$i == "26.2"} {
- incr r
- } else {
- incr r 10
- }
- }
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {2}
-
-# Test: srcwin2-3.2
-# Desc: Another "stack up" test
-gdbtk_test srcwin2-3.2 "stack up (2)" {
- $srcwin stack up
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list1.c"} {set r -1}
- if {$func != "bar"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $file2(source) $a]} {set r -3}
-
- # check for PC_TAG and STACK_TAG on correct lines
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- if {$i == "38.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {
- if {$i == "12.2"} {
- incr r
- } else {
- incr r 10
- }
- }
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {2}
-
-# Test: srcwin2-3.3
-# Desc: Another "stack up" test
-gdbtk_test srcwin2-3.3 "stack up (3)" {
- $srcwin stack up
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list0.h"} {set r -1}
- if {$func != "foo"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set file3(source) [$twin get 1.0 end]
- if {![string compare $file2(source) $file3(source)]} {set r -3}
-
- # check for PC_TAG and STACK_TAG on correct lines
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "STACK_TAG"} {
- if {$i == "9.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "PC_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Test: srcwin2-3.4
-# Desc: Another "stack up" test
-gdbtk_test srcwin2-3.4 "stack up (4)" {
- $srcwin stack up
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list0.c"} {set r -1}
- if {$func != "main"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $file1(source) $a]} {set r -3}
-
- # check for STACK_TAG
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "STACK_TAG"} {
- incr r
- }
- if {$v == "PC_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-
-# Disabled for now because there are different correct results.
-# Test should be rewritten to include those.
-# Test: srcwin2-3.5
-# Desc: "stack up" when we are at the top
-#gdbtk_test srcwin2-3.5 "stack up when at the top" {
-# $srcwin stack up
-# set r 0
-# set name [$statbar.name get]
-# set func [$statbar.func get]
-
- # check contents of name and function comboboxes
-# if {$name != "list0.c"} {set r -1}
-# if {$func != "main"} {set r -2}
-
- # check that the correct file is displayed
-# set twin [$stw test_get twin]
-# set a [$twin get 1.0 end]
-# if {[string compare $file1(source) $a]} {set r -3}
-
- # check for STACK_TAG
-# if {$r == 0} {
-# if {![catch {set z [$twin dump -tag 1.0 end]}]} {
-# foreach {k v i} $z {
-# if {$k == "tagon"} {
-# if {$v == "STACK_TAG"} {
-# incr r
-# }
-# if {$v == "PC_TAG"} {incr r 10}
-# if {$v == "BROWSE_TAG"} {incr r 100}
-# }
-# }
-# } else {
-# set r -4
-# }
-# }
-# set r
-#} {1}
-
-# Test: srcwin2-3.6
-# Desc: "stack down" test
-gdbtk_test srcwin2-3.6 "stack down" {
- $srcwin stack down
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list0.h"} {set r -1}
- if {$func != "foo"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {![string compare $file2(source) $a]} {set r -3}
-
- # check for PC_TAG and STACK_TAG on correct lines
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "STACK_TAG"} {
- if {$i == "9.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "PC_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Test: srcwin2-3.7
-# Desc: "stack bottom" test
-gdbtk_test srcwin2-3.7 "stack bottom" {
- $srcwin stack bottom
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list1.c"} {set r -1}
- if {$func != "oof"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $file2(source) $a]} {set r -3}
-
- # check for PC_TAG on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- if {$i == "38.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Test: srcwin2-3.8
-# Desc: "stack down" when at bottom
-gdbtk_test srcwin2-3.8 "stack down when at bottom" {
- $srcwin stack down
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list1.c"} {set r -1}
- if {$func != "oof"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $file2(source) $a]} {set r -3}
-
- # check for PC_TAG on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- if {$i == "38.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# 4.1 bp, multiple, balloon, etc
-
-# Test: srcwin2-4.1
-# Desc: Set BP in another file. Tests bp and cache functions
-gdbtk_test srcwin2-4.1 "set BP in another file" {
- gdb_immediate "break foo" 1
- $srcwin goto_func "" foo
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list0.h"} {set r -1}
- if {$func != "foo"} {set r -2}
-
- set twin [$stw test_get twin]
-
- # check for BROWSE_TAG and BP image on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "BROWSE_TAG"} {
- if {$i == "9.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "PC_TAG"} {incr r 100}
- } elseif {$k == "image"} {
- if {$i == "9.0"} {
- incr r
- } else {
- set r -200
- }
- }
- }
- } else {
- set r -4
- }
- }
-
- if {$r == 2} {
- # clear BP and compare with previous contents. This should succeed,
- gdb_immediate "clear foo" 1
- set a [$twin get 1.0 end]
- if {[string compare $file3(source) $a]} {set r -3}
- }
-
- set r
-} {2}
-
-# Test: srcwin2-4.2
-# Desc: Test temporary BP
-gdbtk_test srcwin2-4.2 "temporary BP" {
- set r 0
- if {[catch {gdb_immediate "tbreak foo" 1} msg]} {
- set r -500
- }
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != "list0.h"} {set r -1}
- if {$func != "foo"} {set r -2}
-
- set twin [$stw test_get twin]
-
- # check for BROWSE_TAG and BP image on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "BROWSE_TAG"} {
- if {$i == "9.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "PC_TAG"} {incr r 100}
- } elseif {$k == "image"} {
- if {$i == "9.0"} {
- incr r
- } else {
- set r -200
- }
- }
- }
- } else {
- set r -4
- }
- }
-
- gdb_immediate "continue" 1
-
- # now check for PC_TAG and no image
- if {$r == 2} {
- if {![catch {set z [$twin dump 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- if {$i == "9.2"} {
- incr r
- } else {
- incr r 5
- }
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- } elseif {$k == "image"} {
- set r -200
- }
- }
- } else {
- set r -4
- }
- }
-
- set r
-} {3}
-
-gdbtk_test_done
diff --git a/gdb/testsuite/gdb.gdbtk/srcwin3.test b/gdb/testsuite/gdb.gdbtk/srcwin3.test
deleted file mode 100644
index b9a1617bb5c..00000000000
--- a/gdb/testsuite/gdb.gdbtk/srcwin3.test
+++ /dev/null
@@ -1,789 +0,0 @@
-# Copyright (C) 1999, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# This file was written by Martin Hunt (hunt@cygnus.com)
-
-###########################################################
-# same as srcwin.test, except test debugging executables #
-# build without "-g" #
-###########################################################
-
-# Read in the standard defs file
-
-if {![gdbtk_read_defs]} {
- break
-}
-
-global objdir srcdir
-
-##### #####
-# #
-# SECTION 1: Mode Tests #
-# #
-##### #####
-
-# Load the test executable
-set program [file join $objdir list]
-if {[catch {gdbtk_test_file $program} t]} {
- # This isn't a test case, since if this fails, we're hosed.
- gdbtk_test_error "loading \"$program\": $t"
-}
-
-set srcwin [ManagedWin::open SrcWin]
-set stw [$srcwin test_get twin]
-set twin [$stw test_get twin]
-set statbar [$srcwin test_get _statbar]
-
-# get things started
-gdb_cmd "break main"
-gdbtk_test_run
-
-# Test: srcwin3-1.1
-# Desc: Check for something in source window
-gdbtk_test srcwin3-1.1 "source window has contents" {
- set r 0
- set source(main) [$twin get 1.0 end]
- if {$source(main) == ""} {set r -1}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin3-1.2
-# Desc: source->assembly mode change
-gdbtk_test srcwin3-1.2 "source->assembly mode change" {
- set r 0
- $srcwin mode "" ASSEMBLY
- set twin [$stw test_get twin]
- if {$source(main) != [$twin get 1.0 end]} {set r -1}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin3-1.3
-# Desc: assembly->mixed mode change
-gdbtk_test srcwin3-1.3 "assembly->mixed mode change" {
- set r 0
- $srcwin mode "" MIXED
- set twin [$stw test_get twin]
- if {$source(main) != [$twin get 1.0 end]} {set r -1}
- if {[$statbar.mode get] != "MIXED"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin3-1.4
-# Desc: mixed->src+asm mode change
-gdbtk_test srcwin3-1.4 "mixed->src+asm mode change" {
- set r 0
- # mode change may fail if fallover to ASSEMBLY fails
- if {[catch {$srcwin mode "" SRC+ASM}]} { set r -5 }
- set twin [$stw test_get twin]
- if {[$twin get 1.0 end] != $source(main)} {set r -1}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin3-1.5
-# Desc: src+asm->source mode change
-gdbtk_test srcwin3-1.5 "src+asm->source mode change" {
- set r 0
- $srcwin mode "" SOURCE
- set twin [$stw test_get twin]
- if {[$stw test_get bwin] != ""} {set r -2}
- if {[$twin get 1.0 end] != $source(main)} {set r -1}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -3}
- set r
-} {0}
-
-# Test: srcwin3-1.6
-# Desc: source->mixed mode change
-gdbtk_test srcwin3-1.6 "source->mixed mode change" {
- set r 0
- $srcwin mode "" MIXED
- set twin [$stw test_get twin]
- if {[$twin get 1.0 end] != $source(main)} {set r -1}
- if {[$statbar.mode get] != "MIXED"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin3-1.7
-# Desc: mixed->source mode change
-gdbtk_test srcwin3-1.7 "mixed->source mode change" {
- set r 0
- $srcwin mode "" SOURCE
- set twin [$stw test_get twin]
- if {[$twin get 1.0 end] != $source(main)} {set r -1}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin3-1.8
-# Desc: source->src+asm mode change
-gdbtk_test srcwin3-1.8 "source->src+asm mode change" {
- set r 0
- # mode change may fail if fallover to ASSEMBLY fails
- if {[catch {$srcwin mode "" SRC+ASM}]} { set r -5 }
- set twin [$stw test_get twin]
- set bwin [$stw test_get bwin]
- if {[$twin get 1.0 end] != $source(main)} {set r -1}
- if {$bwin != ""} {set r -2}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -3}
- set r
-} {0}
-
-# Test: srcwin3-1.9
-# Desc: src+asm->assembly mode change
-gdbtk_test srcwin3-1.9 "src+asm->assembly mode change" {
- set r 0
- $srcwin mode "" ASSEMBLY
- set twin [$stw test_get twin]
- if {[$twin get 1.0 end] != $source(main)} {set r -1}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin3-1.10
-# Desc: assembly->src+asm mode change
-gdbtk_test srcwin3-1.10 "assembly->src+asm mode change" {
- set r 0
- # mode change may fail if fallover to ASSEMBLY fails
- if {[catch {$srcwin mode "" SRC+ASM}]} { set r -5 }
- set twin [$stw test_get twin]
- set bwin [$stw test_get bwin]
- if {[$twin get 1.0 end] != $source(main)} {set r -1}
- if {$bwin != ""} {set r -2}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -3}
- set r
-} {0}
-
-# Test: srcwin3-1.11
-# Desc: src+asm->mixed mode change
-gdbtk_test srcwin3-1.11 "src+asm->mixed mode change" {
- set r 0
- $srcwin mode "" MIXED
- set twin [$stw test_get twin]
- if {[$twin get 1.0 end] != $source(main)} {set r -1}
- if {[$statbar.mode get] != "MIXED"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin3-1.12
-# Desc: mixed->assembly mode change
-gdbtk_test srcwin3-1.12 "mixed->assembly mode change" {
- set r 0
- $srcwin mode "" ASSEMBLY
- set twin [$stw test_get twin]
- if {[$twin get 1.0 end] != $source(main)} {set r -1}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -2}
- set r
-} {0}
-
-# Test: srcwin3-1.13
-# Desc: assembly->source mode change
-gdbtk_test srcwin3-1.13 "assembly->source mode change" {
- set r 0
- $srcwin mode "" SOURCE
- set twin [$stw test_get twin]
- if {[$twin get 1.0 end] != $source(main)} {set r -1}
- if {[$statbar.mode get] != "ASSEMBLY"} {set r -2}
- set r
-} {0}
-
-
-##### #####
-# #
-# SECTION 2: Basic Operations #
-# #
-##### #####
-
-# Test: srcwin3-2.2
-# Desc: check contents of function combobox
-# There won't be any because we have no debug info
-gdbtk_test srcwin3-2.2 "check contents of function combobox" {
- set names [$statbar.func list get 0 end]
- llength $names
-} {0}
-
-# Test: srcwin3-2.3
-# Desc: goto filename - this won't work, but should leave things as they were
-gdbtk_test srcwin3-2.3 "goto filename" {
- set func [$srcwin test_get _name 1]
- $func "" list1.c
- set twin [$stw test_get twin]
- string compare $source(main) [$twin get 1.0 end]
-} {0}
-
-# Test: srcwin3-2.6
-# Desc: goto function
-gdbtk_test srcwin3-2.6 "goto function bar" {
- $srcwin goto_func "" bar
- set r 0
- set twin [$stw test_get twin]
- set source(bar) [$twin get 1.0 end]
-
- if {$source(bar) == $source(main)} {set r -1000}
-
- # now get a dump of all tags and check that only one line is
- # marked BROWSE_TAG and no lines are STACK_TAG or PC_TAG.
-
- # We know that list1.c should have BROWSE_TAG set at index 5.2
- # for function "bar". If list1.c is changed or the layout of the source
- # window is changed, this must be updated.
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "BROWSE_TAG"} {
- incr r
- }
- if {$v == "STACK_TAG"} { incr r 10}
- if {$v == "PC_TAG"} { incr r 100}
- }
- }
- } else {
- set r -1
- }
-
- if {$r == 1} {
- # things are OK so far, so just verify the function name is displayed
- # in the combobox entry field.
- set names [$statbar.func get]
- if {[string compare $names "bar"]} {set r -2}
- }
- set r
-} {1}
-
-# Test: srcwin3-2.7
-# Desc: goto function "oof". This tests that the correct line is highlighted
-# with BROWSE_TAG and no other lines are highlighted. It also checks that
-# the combobox has the correct function name in it.
-
-gdbtk_test srcwin3-2.7 "goto function oof" {
- $srcwin goto_func "" oof
- set r 0
-
- set twin [$stw test_get twin]
- set source(oof) [$twin get 1.0 end]
-
- if {$source(bar) == $source(oof)} {set r -1000}
- if {$source(oof) == $source(main)} {set r -2000}
-
- # now get a dump of all tags and check that only one line is
- # marked BROWSE_TAG and no lines are STACK_TAG or PC_TAG.
-
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "BROWSE_TAG"} {
- incr r
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "PC_TAG"} {incr r 100}
- }
- }
- } else {
- set r -1
- }
-
- if {$r == 1} {
- # things are OK so far, so just verify the function name is displayed
- # in the combobox entry field.
- set names [$statbar.func get]
- if {[string compare $names "oof"]} {set r -2}
- }
- set r
-} {1}
-
-# Test: srcwin3-2.8
-# Desc: This test issues a nexti command while browsing oof.
-# It should jump back to main
-gdbtk_test srcwin3-2.8 "nexti while browsing" {
- gdb_immediate "nexti" 1
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of function combobox
- if {$func != "main"} {set r -2}
- if {$name != ""} {set r -1}
-
- # check that correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $source(main) $a]} {set r -3}
-
- # check for PC_TAG
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- incr r
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Test: srcwin3-2.11
-# Desc: This test issues a break and a continue
-gdbtk_test srcwin3-2.11 "set BP and continue" {
- gdb_immediate "break oof" 1
- gdb_immediate "continue" 1
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != ""} {set r -1}
- if {$func != "oof"} {set r -2}
-
- # check that the correct file is displayed
- # we must clear the breakpoint first so it doesn't mess up the
- # comparison...
- gdb_immediate "clear oof" 1
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $source(oof) $a]} {set r -3}
-
- # check for PC_TAG
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- incr r
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-##### #####
-# #
-# SECTION 3: Stack Operations #
-# #
-##### #####
-
-# Test: srcwin3-3.1
-# Desc: This tests "stack up"
-gdbtk_test srcwin3-3.1 "stack up (1)" {
- $srcwin stack up
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != ""} {set r -1}
- if {$func != "long_line"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set source(long_line) [$twin get 1.0 end]
- if {![string compare $source(long_line) $source(oof)]} {set r -3}
-
- # check for PC_TAG and STACK_TAG on correct lines
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {incr r 5}
- if {$v == "STACK_TAG"} {incr r}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Test: srcwin3-3.2
-# Desc: Another "stack up" test
-gdbtk_test srcwin3-3.2 "stack up (2)" {
- $srcwin stack up
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != ""} {set r -1}
- if {$func != "bar"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $source(bar) $a]} {set r -3}
-
- # check for PC_TAG and STACK_TAG on correct lines
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- set r -100
- }
- if {$v == "STACK_TAG"} {
- incr r
- }
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Test: srcwin3-3.3
-# Desc: Another "stack up" test
-gdbtk_test srcwin3-3.3 "stack up (3)" {
- $srcwin stack up
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != ""} {set r -1}
- if {$func != "foo"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set source(foo) [$twin get 1.0 end]
- if {![string compare $source(foo) $source(bar)]} {set r -3}
-
- # check for PC_TAG and STACK_TAG on correct lines
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "STACK_TAG"} {
- incr r
- }
- if {$v == "PC_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Test: srcwin3-3.4
-# Desc: Another "stack up" test
-gdbtk_test srcwin3-3.4 "stack up (4)" {
- $srcwin stack up
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != ""} {set r -1}
- if {$func != "main"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $source(main) $a]} {set r -3}
-
- # check for STACK_TAG
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "STACK_TAG"} {
- incr r
- }
- if {$v == "PC_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Disabled for now because there are different correct results.
-# Test should be rewritten to include those.
-# Test: srcwin3-3.5
-# Desc: "stack up" when we are at the top
-#gdbtk_test srcwin3-3.5 "stack up when at the top" {
-# $srcwin stack up
-# set r 0
-# set name [$statbar.name get]
-# set func [$statbar.func get]
-
- # check contents of name and function comboboxes
-# if {$name != ""} {set r -1}
-# if {$func != "main"} {set r -2}
-
- # check that the correct file is displayed
-# set twin [$stw test_get twin]
-# set a [$twin get 1.0 end]
-# if {[string compare $source(main) $a]} {set r -3}
-
- # check for STACK_TAG
-# if {$r == 0} {
-# if {![catch {set z [$twin dump -tag 1.0 end]}]} {
-# foreach {k v i} $z {
-# if {$k == "tagon"} {
-# if {$v == "STACK_TAG"} {
-# incr r
-# }
-# if {$v == "PC_TAG"} {incr r 10}
-# if {$v == "BROWSE_TAG"} {incr r 100}
-# }
-# }
-# } else {
-# set r -4
-# }
-# }
-# set r
-#} {1}
-
-# Test: srcwin3-3.6
-# Desc: "stack down" test
-gdbtk_test srcwin3-3.6 "stack down" {
- $srcwin stack down
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != ""} {set r -1}
- if {$func != "foo"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $source(foo) $a]} {set r -3}
-
- # check for PC_TAG and STACK_TAG on correct lines
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "STACK_TAG"} {
- incr r
- }
- if {$v == "PC_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Test: srcwin3-3.7
-# Desc: "stack bottom" test
-gdbtk_test srcwin3-3.7 "stack bottom" {
- $srcwin stack bottom
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != ""} {set r -1}
- if {$func != "oof"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $source(oof) $a]} {set r -3}
-
- # check for PC_TAG on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- incr r
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# Test: srcwin3-3.8
-# Desc: "stack down" when at bottom
-gdbtk_test srcwin3-3.8 "stack down when at bottom" {
- $srcwin stack down
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != ""} {set r -1}
- if {$func != "oof"} {set r -2}
-
- # check that the correct file is displayed
- set twin [$stw test_get twin]
- set a [$twin get 1.0 end]
- if {[string compare $source(oof) $a]} {set r -3}
-
- # check for PC_TAG on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump -tag 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- incr r
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- }
- }
- } else {
- set r -4
- }
- }
- set r
-} {1}
-
-# 4.1 bp, multiple, balloon, etc
-
-# Test: srcwin3-4.1
-# Desc: Set BP in another file. Tests bp and cache functions
-gdbtk_test srcwin3-4.1 "set BP in another file" {
- gdb_immediate "break foo" 1
- $srcwin goto_func "" foo
- set r 0
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != ""} {set r -1}
- if {$func != "foo"} {set r -2}
-
- set twin [$stw test_get twin]
-
- # check for BROWSE_TAG and BP image
- if {$r == 0} {
- if {![catch {set z [$twin dump 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "BROWSE_TAG"} {
- incr r
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "PC_TAG"} {incr r 100}
- } elseif {$k == "image"} {
- incr r
- }
- }
- } else {
- set r -4
- }
- }
-
- if {$r == 2} {
- # clear BP and compare with previous contents. This should succeed,
- gdb_immediate "clear foo" 1
- set a [$twin get 1.0 end]
- if {[string compare $source(foo) $a]} {set r -3}
- }
-
- set r
-} {2}
-
-# Test: srcwin3-4.2
-# Desc: Test temporary BP
-gdbtk_test srcwin3-4.2 "temporary BP" {
- set r 0
- if {[catch {gdb_immediate "tbreak foo" 1} msg]} {
- set r -500
- }
- set name [$statbar.name get]
- set func [$statbar.func get]
-
- # check contents of name and function comboboxes
- if {$name != ""} {set r -1}
- if {$func != "foo"} {set r -2}
-
- set twin [$stw test_get twin]
-
- # check for BROWSE_TAG and BP image on correct line
- if {$r == 0} {
- if {![catch {set z [$twin dump 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "BROWSE_TAG"} {
- incr r
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "PC_TAG"} {incr r 100}
- } elseif {$k == "image"} {
- incr r
- }
- }
- } else {
- set r -4
- }
- }
-
- gdb_immediate "continue" 1
-
- # now check for PC_TAG and no image
- if {$r == 2} {
- if {![catch {set z [$twin dump 1.0 end]}]} {
- foreach {k v i} $z {
- if {$k == "tagon"} {
- if {$v == "PC_TAG"} {
- incr r
- }
- if {$v == "STACK_TAG"} {incr r 10}
- if {$v == "BROWSE_TAG"} {incr r 100}
- } elseif {$k == "image"} {
- set r -200
- }
- }
- } else {
- set r -4
- }
- }
-
- set r
-} {3}
-
-gdbtk_test_done
diff --git a/gdb/testsuite/gdb.gdbtk/stack1.c b/gdb/testsuite/gdb.gdbtk/stack1.c
deleted file mode 100644
index 389260a22a5..00000000000
--- a/gdb/testsuite/gdb.gdbtk/stack1.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/* Functions defined in other files */
-extern void extern_func1_1 (int a, char *b, unsigned long c);
-
-/* Functions defined in this file */
-static void static_func_1 (int a, char *b, unsigned long c);
-static void static_func_2 (int a, char *b, unsigned long c);
-static void static_func_3 (int a, char *b, unsigned long c);
-static void static_func_4 (int a, char *b, unsigned long c);
-static void static_func_5 (int a, char *b, unsigned long c);
-static void static_func_6 (int a, char *b, unsigned long c);
-static void static_func_7 (int a, char *b, unsigned long c);
-static void static_func_8 (int a, char *b, unsigned long c);
-static void static_func_9 (int a, char *b, unsigned long c);
-static void static_func_10 (int a, char *b, unsigned long c);
-static void static_func_11 (int a, char *b, unsigned long c);
-static void static_func_12 (int a, char *b, unsigned long c);
-static void static_func_13 (int a, char *b, unsigned long c);
-static void static_func_14 (int a, char *b, unsigned long c);
-static void static_func_15 (int a, char *b, unsigned long c);
-
-void func_1 (int a, char *b, unsigned long c);
-void func_2 (int a, char *b, unsigned long c);
-void func_3 (int a, char *b, unsigned long c);
-void func_4 (int a, char *b, unsigned long c);
-void func_5 (int a, char *b, unsigned long c);
-void func_6 (int a, char *b, unsigned long c);
-void func_7 (int a, char *b, unsigned long c);
-void func_8 (int a, char *b, unsigned long c);
-void func_9 (int a, char *b, unsigned long c);
-void func_10 (int a, char *b, unsigned long c);
-void func_11 (int a, char *b, unsigned long c);
-void func_12 (int a, char *b, unsigned long c);
-void func_13 (int a, char *b, unsigned long c);
-void func_14 (int a, char *b, unsigned long c);
-void func_15 (int a, char *b, unsigned long c);
-
-int
-main (int argc, char *argv[])
-{
- int a;
- char *b;
- unsigned long c;
-
- a = 1;
- b = "This is a string.";
- c = 0xdeadL;
-
- func_1 (a, b, c);
-
- exit (0);
-}
-
-void
-func_1 (int a, char *b, unsigned long c)
-{
- func_2 (a, b, c);
-}
-
-void
-func_2 (int a, char *b, unsigned long c)
-{
- func_3 (a, b, c);
-}
-
-void
-func_3 (int a, char *b, unsigned long c)
-{
- func_4 (a, b, c);
-}
-
-void
-func_4 (int a, char *b, unsigned long c)
-{
- func_5 (a, b, c);
-}
-
-void
-func_5 (int a, char *b, unsigned long c)
-{
- func_6 (a, b, c);
-}
-
-void
-func_6 (int a, char *b, unsigned long c)
-{
- func_7 (a, b, c);
-}
-
-void
-func_7 (int a, char *b, unsigned long c)
-{
- func_8 (a, b, c);
-}
-
-void
-func_8 (int a, char *b, unsigned long c)
-{
- func_9 (a, b, c);
-}
-
-void
-func_9 (int a, char *b, unsigned long c)
-{
- func_10 (a, b, c);
-}
-
-void
-func_10 (int a, char *b, unsigned long c)
-{
- func_11 (a, b, c);
-}
-
-void
-func_11 (int a, char *b, unsigned long c)
-{
- func_12 (a, b, c);
-}
-
-void
-func_12 (int a, char *b, unsigned long c)
-{
- func_13 (a, b, c);
-}
-
-void
-func_13 (int a, char *b, unsigned long c)
-{
- func_14 (a, b, c);
-}
-
-void
-func_14 (int a, char *b, unsigned long c)
-{
- func_15 (a, b, c);
-}
-
-void
-func_15 (int a, char *b, unsigned long c)
-{
- static_func_1 (a, b, c);
-}
-
-static void
-static_func_1 (int a, char *b, unsigned long c)
-{
- static_func_2 (a, b, c);
-}
-
-static void
-static_func_2 (int a, char *b, unsigned long c)
-{
- static_func_3 (a, b, c);
-}
-
-static void
-static_func_3 (int a, char *b, unsigned long c)
-{
- static_func_4 (a, b, c);
-}
-
-static void
-static_func_4 (int a, char *b, unsigned long c)
-{
- static_func_5 (a, b, c);
-}
-
-static void
-static_func_5 (int a, char *b, unsigned long c)
-{
- static_func_6 (a, b, c);
-}
-
-static void
-static_func_6 (int a, char *b, unsigned long c)
-{
- static_func_7 (a, b, c);
-}
-
-static void
-static_func_7 (int a, char *b, unsigned long c)
-{
- static_func_8 (a, b, c);
-}
-
-static void
-static_func_8 (int a, char *b, unsigned long c)
-{
- static_func_9 (a, b, c);
-}
-
-static void
-static_func_9 (int a, char *b, unsigned long c)
-{
- static_func_10 (a, b, c);
-}
-
-static void
-static_func_10 (int a, char *b, unsigned long c)
-{
- static_func_11 (a, b, c);
-}
-
-static void
-static_func_11 (int a, char *b, unsigned long c)
-{
- static_func_12 (a, b, c);
-}
-
-static void
-static_func_12 (int a, char *b, unsigned long c)
-{
- static_func_13 (a, b, c);
-}
-
-static void
-static_func_13 (int a, char *b, unsigned long c)
-{
- static_func_14 (a, b, c);
-}
-
-static void
-static_func_14 (int a, char *b, unsigned long c)
-{
- static_func_15 (a, b, c);
-}
-
-static void
-static_func_15 (int a, char *b, unsigned long c)
-{
- extern_func1_1 (a, b, c);
-}
diff --git a/gdb/testsuite/gdb.gdbtk/stack2.c b/gdb/testsuite/gdb.gdbtk/stack2.c
deleted file mode 100644
index db47c469e6e..00000000000
--- a/gdb/testsuite/gdb.gdbtk/stack2.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Functions defined in this file */
-void extern_func1_1 (int, char *, unsigned long);
-void extern_func1_2 (int, char *, unsigned long);
-void extern_func1_3 (int, char *, unsigned long);
-void extern_func1_4 (int, char *, unsigned long);
-void extern_func1_5 (int, char *, unsigned long);
-void extern_func1_6 (int, char *, unsigned long);
-void extern_func1_7 (int, char *, unsigned long);
-void extern_func1_8 (int, char *, unsigned long);
-void extern_func1_9 (int, char *, unsigned long);
-void extern_func1_10 (int, char *, unsigned long);
-void extern_func1_11 (int, char *, unsigned long);
-void extern_func1_12 (int, char *, unsigned long);
-void extern_func1_13 (int, char *, unsigned long);
-void extern_func1_14 (int, char *, unsigned long);
-void extern_func1_15 (int, char *, unsigned long);
-
-void
-extern_func1_1 (int a, char *b, unsigned long c)
-{
- extern_func1_2 (a, b, c);
-}
-
-void
-extern_func1_2 (int a, char *b, unsigned long c)
-{
- extern_func1_3 (a, b, c);
-}
-
-void
-extern_func1_3 (int a, char *b, unsigned long c)
-{
- extern_func1_4 (a, b, c);
-}
-
-void
-extern_func1_4 (int a, char *b, unsigned long c)
-{
- extern_func1_5 (a, b, c);
-}
-
-void
-extern_func1_5 (int a, char *b, unsigned long c)
-{
- extern_func1_6 (a, b, c);
-}
-
-void
-extern_func1_6 (int a, char *b, unsigned long c)
-{
- extern_func1_7 (a, b, c);
-}
-
-void
-extern_func1_7 (int a, char *b, unsigned long c)
-{
- extern_func1_8 (a, b, c);
-}
-
-void
-extern_func1_8 (int a, char *b, unsigned long c)
-{
- extern_func1_9 (a, b, c);
-}
-
-void
-extern_func1_9 (int a, char *b, unsigned long c)
-{
- extern_func1_10 (a, b, c);
-}
-
-void
-extern_func1_10 (int a, char *b, unsigned long c)
-{
- extern_func1_11 (a, b, c);
-}
-
-void
-extern_func1_11 (int a, char *b, unsigned long c)
-{
- extern_func1_12 (a, b, c);
-}
-
-void
-extern_func1_12 (int a, char *b, unsigned long c)
-{
- extern_func1_13 (a, b, c);
-}
-
-void
-extern_func1_13 (int a, char *b, unsigned long c)
-{
- extern_func1_14 (a, b, c);
-}
-
-void
-extern_func1_14 (int a, char *b, unsigned long c)
-{
- extern_func1_15 (a, b, c);
-}
-
-void
-extern_func1_15 (int a, char *b, unsigned long c)
-{
- /* THE END */
- return;
-}
diff --git a/gdb/testsuite/gdb.gdbtk/windows.exp b/gdb/testsuite/gdb.gdbtk/windows.exp
deleted file mode 100644
index c5613de8b42..00000000000
--- a/gdb/testsuite/gdb.gdbtk/windows.exp
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2001, 2004 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-load_lib ../gdb.gdbtk/insight-support.exp
-
-if {[gdbtk_initialize_display]} {
- if {$tracelevel} {
- strace $tracelevel
- }
-
- #
- # Basic window tests (basic as in, "do they open")
- #
- set prms_id 0
- set bug_id 0
-
- set srcfile [file join $srcdir $subdir c_variable.c]
- set binfile [file join $objdir $subdir c_variable]
- set r [gdb_compile $srcfile $binfile executable {debug}]
- if { $r != "" } {
- gdb_suppress_entire_file \
- "Testcase compile failed, so some tests in this file will automatically fail."
- }
-
- # Start with a fresh gdbtk
- gdb_exit
- set results [gdbtk_start [file join $srcdir $subdir windows.test]]
- set results [split $results \n]
-
- # Analyze results
- gdbtk_done $results
-}
diff --git a/gdb/testsuite/gdb.gdbtk/windows.test b/gdb/testsuite/gdb.gdbtk/windows.test
deleted file mode 100644
index d8f72c549fe..00000000000
--- a/gdb/testsuite/gdb.gdbtk/windows.test
+++ /dev/null
@@ -1,131 +0,0 @@
-# Basic window tests
-# Copyright 2001, 2003 Red Hat, Inc.
-#
-# This Program Is Free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# This file was written by Keith Seitz (keiths@cygnus.com)
-
-# Read in the standard defs file
-if {![gdbtk_read_defs]} {
- break
-}
-
-global objdir test_ran
-
-# Windows to test
-# FIXME: TfindArgs needs to be updated before it can go in the list...
-set windows [list BpWin BrowserWin Console DebugWin KodWin LocalsWin \
- MemWin ProcessWin RegWin StackWin TdumpWin WatchWin]
-
-# Dialogs to test
-# FIXME: ActionhDlg,TraceDlg cannot be independently opened
-set dialogs [list About AttachDlg GlobalPref SrcPref TargetSelection]
-
-# Helper proc to do all the testing
-proc do_open_close {num winlist} {
- set i 1
- foreach win $winlist {
-
- # Test: windows-$num.*
- # Desc: Open each window before running
- set win_obj ""
- gdbtk_test windows-$num.$i "open $win before running" {
- set err [catch {ManagedWin::open $win} txt]
- if {$err} {
- # display error
- set txt
- } else {
- # display "0"
- set win_obj $txt
- set err
- }
- } {0}
-
- # Update screen
- update idletasks
-
- # Test: windows-{$num+1}.*
- # Desc: Close each window before running
- gdbtk_test windows-[expr {$num+1}].$i "close $win before running" {
- set err [catch {delete object $win_obj} txt]
- if {$err} {
- # display error
- set txt
- } else {
- # display "0"
- set err
- }
- } {0}
-
- # Update screen
- update idletasks
- incr i
- }
-}
-
-#
-# Tests start here
-#
-
-# Counter for tests. Increment by 2 after each call to do_open_close.
-set num 1
-
-#
-# Check if all windows open with no file loaded
-#
-do_open_close $num $windows
-incr num 2
-
-# Sadly, there is no good way to unpost dialogs (except for setting
-# an after callback). Until something better comes along, skip them.
-# do_open_close $num $dialogs
-# incr num 2
-
-#
-# Check if all windows open with file loaded
-#
-
-# Load in a file
-set program [file join $objdir c_variable]
-if {[catch {gdbtk_test_file $program} t]} {
- # This isn't a test case, since if this fails, we're hosed.
- gdbtk_test_error "loading \"$program\": $t"
-}
-
-do_open_close $num $windows
-incr num 2
-#do_open_close $num $dialogs
-incr num 2
-
-#
-# Check if all windows open after running
-#
-
-# Break in main and run
-gdb_cmd "break main"
-gdbtk_test_run
-
-do_open_close $num $windows
-incr num 2
-#do_open_close $num $dialogs
-#incr num 2
-
-#
-# Exit
-#
-gdbtk_test_done