summaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorMartin Hunt <hunt@redhat.com>2002-10-10 19:39:28 +0000
committerMartin Hunt <hunt@redhat.com>2002-10-10 19:39:28 +0000
commit4be076853d59c009bdd3c314d7bf499de6d71a8e (patch)
tree470e901728bf608ef6757d1003c455e18fd9bf26 /gdb
parent024a10323299ee4d77d97c77d0bd144b7a05dd08 (diff)
downloadgdb-4be076853d59c009bdd3c314d7bf499de6d71a8e.tar.gz
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.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/gdbtk/ChangeLog16
-rw-r--r--gdb/gdbtk/library/interface.tcl17
-rw-r--r--gdb/gdbtk/library/session.tcl25
3 files changed, 52 insertions, 6 deletions
diff --git a/gdb/gdbtk/ChangeLog b/gdb/gdbtk/ChangeLog
index e289d820629..b1e42b2241e 100644
--- a/gdb/gdbtk/ChangeLog
+++ b/gdb/gdbtk/ChangeLog
@@ -1,5 +1,19 @@
-2002-10-09 Martin M. Hunt <hunt@redhat.com>
+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
diff --git a/gdb/gdbtk/library/interface.tcl b/gdb/gdbtk/library/interface.tcl
index 3bb03a15263..bddc3e76070 100644
--- a/gdb/gdbtk/library/interface.tcl
+++ b/gdb/gdbtk/library/interface.tcl
@@ -1075,8 +1075,8 @@ proc set_target_name {{prompt 1}} {
# ------------------------------------------------------------------
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"
+ #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
@@ -1099,8 +1099,10 @@ proc set_target {} {
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} {
@@ -1161,7 +1163,8 @@ proc run_executable { {auto_start 1} } {
# Attach
if {$gdb_target_name == "" || [pref get gdb/src/run_attach]} {
- if {[gdbtk_attach_remote] == "ATTACH_CANCELED"} {
+ set r [gdbtk_attach_remote]
+ if {$r == "ATTACH_CANCELED" || $r == "ATTACH_ERROR"} {
return
}
}
@@ -1548,6 +1551,14 @@ proc gdbtk_detach {} {
# 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
}
diff --git a/gdb/gdbtk/library/session.tcl b/gdb/gdbtk/library/session.tcl
index 531c7d7de01..6653760787f 100644
--- a/gdb/gdbtk/library/session.tcl
+++ b/gdb/gdbtk/library/session.tcl
@@ -171,7 +171,14 @@ namespace eval Session {
set values(dirs) $gdb_source_path
set values(pwd) $gdb_current_directory
set values(target) $gdb_target_name
+ set values(target_cmd) $::gdb_target_cmd
+ # 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]
@@ -194,8 +201,6 @@ namespace eval Session {
# the session, as returned by Session::list_names.
#
proc load {name} {
- global gdb_target_name
-
# gdb sessions are named after the executable.
set key gdb/session/$name
@@ -230,6 +235,12 @@ namespace eval Session {
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
@@ -258,7 +269,17 @@ namespace eval Session {
if {[info exists values(target)]} {
debug "Restoring Target: $values(target)"
set gdb_target_name $values(target)
+ 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)
+ }
}
#