diff options
author | Elena Zannoni <ezannoni@kwikemart.cygnus.com> | 2004-03-24 04:10:01 +0000 |
---|---|---|
committer | Elena Zannoni <ezannoni@kwikemart.cygnus.com> | 2004-03-24 04:10:01 +0000 |
commit | c4b3a45944f0638c35b7f94c94c0ebf73d16c194 (patch) | |
tree | ffc265f78503e66b9decc8bee3f7d8515d0df045 /gdb/gdbtk/library/process.itb | |
parent | 51771d455eee6505ad7ab5999cad8c9dc7a97d84 (diff) | |
download | gdb-ezannoni_pie-20040323-branch.tar.gz |
2004-03-23 Elena Zannoni <ezannoni@redhat.com>ezannoni_pie-20040323-branchcvs/ezannoni_pie-20040323-branch
* solib-svr4.c (svr4_solib_create_inferior_hook): Disable
breakpoints at startup.
(elf_locate_base): Find out where the entry point for the program
is, using the auxv vector, if possible. Compute the address of
.dynamic using it.
(svr4_current_sos): Don't ignore the first entry if we have PIE,
it's our main program. Delete code that was skipping over the
solib entry for main executable.
* solist.h (struct so_list): Add fields main and main_relocated.
(add_to_target_sections): Export.
* solib.c (symbol_add_stub): Handle main executable in shared
library list. Ignore it if it has been relocated already. Add it
as the main symbol file, otherwise.
* infrun.c (handle_inferior_event): Re-enable startup breakpoints.
* solib-svr4.c (elf_locate_base, first_link_map_member)
svr4_current_sos, enable_break): Add debugging output.
* solist.h (debug_solib): Export.
* solib.c (debug_solib): New variable to enable debugging output.
(symbol_add_stub, update_solib_list, update_solib_list)
(add_to_target_sections): Add debugging output.
(_initialize_solib): Add new comand to enable printing of
debugging output.
(add_to_target_sections): New function. Factored out from
update_solib_list.
(update_solib_list): Call add_to_target_sections.
* varobj.h (varobj_refresh): New prototype.
* varobj.c (varobj_refresh): New function.
* symfile.c (reread_symbols): Make sure that we recompute the
entry point for the program.
(symbol_file_clear): Clear the solibs as well, if we change symbol
files.
(clear_symtab_users): Refresh the varobjs that depend on the symtabs
we are clearing.
* objfiles.c (entry_point_address): Rewrite, to fetch entry point
from auxv vector, if possible.
Add include of elf/common.h.
* breakpoint.h (enum bptype): Add bp type bp_startup_disabled.
(re_enable_breakpoints_at_startup)
(disable_breakpoints_at_startup): Add prototypes
* breakpoint.c (re_enable_breakpoints_at_startup)
(disable_breakpoints_at_startup): New functions.
(describe_other_breakpoints, delete_breakpoint)
(breakpoint_re_set_one): Handle new bp type.
* auxv.h (target_auxv_parse, target_auxv_search): Update.
* auxv.c (target_auxv_parse, target_auxv_search)
(fprint_target_auxv): Use ULONGEST instead of CORE_ADDR for
variable. Change variable name to at_type.
Diffstat (limited to 'gdb/gdbtk/library/process.itb')
-rw-r--r-- | gdb/gdbtk/library/process.itb | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/gdb/gdbtk/library/process.itb b/gdb/gdbtk/library/process.itb deleted file mode 100644 index b3aad6f9d5c..00000000000 --- a/gdb/gdbtk/library/process.itb +++ /dev/null @@ -1,162 +0,0 @@ -# Process window for Insight. -# Copyright 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 -} |