diff options
author | Jim Blandy <jimb@codesourcery.com> | 2003-05-13 00:08:58 +0000 |
---|---|---|
committer | Jim Blandy <jimb@codesourcery.com> | 2003-05-13 00:08:58 +0000 |
commit | ad20141640f390ddb988537bf7d93316e5388e4b (patch) | |
tree | c1645477648a946f3973c701fb89b76e295e5bcc /gdb/gdbtk/library/watch.tcl | |
parent | ea1c83e1893b74392032336333d19c00a414611d (diff) | |
download | gdb-cvs/jimb-ppc64-linux-20030509-branch.tar.gz |
Patch from Will Schmidt <willschm@us.ibm.com>:jimb-ppc64-linux-20030509-branchcvs/jimb-ppc64-linux-20030509-branch
These changes enable support of PPC64 architecture.
* config/powerpc/ppc64linux.mh: New file.
* config/powerpc/ppc64linux.mt: New file.
* config/powerpc/tm-ppc64linux.h: New file.
* ppc64-linux-tdep.c: New file.
* configure.host: Add clause for powerpc64-*-linux*
* configure.tgt: Add clause for powerpc64-*-linux*
* elfread.c (record_minimal_symbol_and_info): If
DROP_TEXT_NAME_PREFIX_CHAR is #defined, then drop a leading
instance of that char from the names of text symbols.
(elf_symtab_read): If SKIP_DATA_IN_OPD is #defined, ignore data
symbols in the .opd section.
* ppc-linux-nat.c (PTRACE_XFER_TYPE): Change the default for this
to 'long'.
(PPC_PTRACE_POKEUSR_3264, PPC_PTRACE_PEEKUSR_3264,
PPC_PTRACE_POKEDATA_3264, PPC_PTRACE_PEEKDATA_3264): Provide
default definitions for these.
(ARCH64): New macro.
(ppc_wordsize_pid): New function.
(kernel_u_size): Handle 64-bit case.
(ppc_register_u_addr): Same.
(fetch_register): Use the *_3264 requests when
debugging a 64-bit process from a 32-bit GDB.
(store_register): Same.
(GDB_MAX_ALLOCA, child_xfer_memory, udot_info): Copied from
infptrace.c.
(_initialize_ppc_linux_nat): New function, to register our copy of
the udot_info command.
* ppc-linux-tdep.c (TDEP): New macro.
(ppc64_linux_svr4_fetch_link_map_offsets): New function.
(read_memory_addr): Copied from rs6000-tdep.c.
(ppc64_linux_convert_from_func_ptr_addr): New function.
* rs6000-tdep.c (skip_prologue): Recognize more instructions for
saving the 'lr' and 'cr' registers; don't just pre-emptively mask
in the 'st' opcode as soon as we see an 'mflr' or 'mfcr' opcode.
Recognize more instructions for updating the stack pointer, and
loading the TOC pointer.
(registers_powerpc64, registers_a35): New register tables.
(rs6000_gdbarch_init): Register the 64-bit solib functions.
* solib-svr4.c (solib_break_names): If SOLIB_BREAK_NAME is
#defined, include an entry for it.
(enable_break): Call CONVERT_FROM_FUNC_PTR_ADDR when trying to
guess the linker's base address.
* config/powerpc/tm-linux.h
(ppc64_linux_svr4_fetch_link_map_offsets,
ppc64_linux_convert_from_func_ptr_addr): New declarations.
Diffstat (limited to 'gdb/gdbtk/library/watch.tcl')
-rw-r--r-- | gdb/gdbtk/library/watch.tcl | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/gdb/gdbtk/library/watch.tcl b/gdb/gdbtk/library/watch.tcl deleted file mode 100644 index 6d2fd367410..00000000000 --- a/gdb/gdbtk/library/watch.tcl +++ /dev/null @@ -1,214 +0,0 @@ -# Watch window for Insight. -# Copyright 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. - - -# ---------------------------------------------------------------------- -# 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 - } - - # ------------------------------------------------------------------ - # 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 deleting - # the Watched list. - # ------------------------------------------------------------------ - method clear_file {} { - debug - set Watched {} - } - - # ------------------------------------------------------------------ - # 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 -} |