diff options
author | Martin Hunt <hunt@redhat.com> | 2002-10-10 19:39:28 +0000 |
---|---|---|
committer | Martin Hunt <hunt@redhat.com> | 2002-10-10 19:39:28 +0000 |
commit | 4be076853d59c009bdd3c314d7bf499de6d71a8e (patch) | |
tree | 470e901728bf608ef6757d1003c455e18fd9bf26 /gdb | |
parent | 024a10323299ee4d77d97c77d0bd144b7a05dd08 (diff) | |
download | gdb-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/ChangeLog | 16 | ||||
-rw-r--r-- | gdb/gdbtk/library/interface.tcl | 17 | ||||
-rw-r--r-- | gdb/gdbtk/library/session.tcl | 25 |
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) + } } # |