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/blockframe.itb | |
parent | ea1c83e1893b74392032336333d19c00a414611d (diff) | |
download | gdb-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/blockframe.itb')
-rw-r--r-- | gdb/gdbtk/library/blockframe.itb | 227 |
1 files changed, 0 insertions, 227 deletions
diff --git a/gdb/gdbtk/library/blockframe.itb b/gdb/gdbtk/library/blockframe.itb deleted file mode 100644 index 09977af732c..00000000000 --- a/gdb/gdbtk/library/blockframe.itb +++ /dev/null @@ -1,227 +0,0 @@ -# Block and frame class implementations for GDBtk. -# Copyright 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 -} - - |