* lib/gdb.exp (banned_variables_traced): New global variable.
(gdb_init, gdb_finish): Use new variable to avoid multiple tracing. (gdb_init): Use `trace add variable' instead of obsolete `trace variable'.
This commit is contained in:
parent
e4c0cfae7e
commit
41b2c92d4c
|
@ -1,3 +1,10 @@
|
|||
2010-06-22 Pierre Muller <muller@ics.u-strasbg.fr>
|
||||
|
||||
* lib/gdb.exp (banned_variables_traced): New global variable.
|
||||
(gdb_init, gdb_finish): Use new variable to avoid multiple tracing.
|
||||
(gdb_init): Use `trace add variable' instead of obsolete
|
||||
`trace variable'.
|
||||
|
||||
2010-06-21 Doug Evans <dje@google.com>
|
||||
|
||||
* gdb.gdb/selftest.exp: Remove support for gpl v1 and v2 gdb's.
|
||||
|
|
|
@ -2520,6 +2520,15 @@ if ![info exists gdb_test_timeout] {
|
|||
# an error when that happens.
|
||||
set banned_variables { bug_id prms_id }
|
||||
|
||||
# gdb_init is called by runtest at start, but also by several
|
||||
# tests directly; gdb_finish is only called from within runtest after
|
||||
# each test source execution.
|
||||
# Placing several traces by repetitive calls to gdb_init leads
|
||||
# to problems, as only one trace is removed in gdb_finish.
|
||||
# To overcome this possible problem, we add a variable that records
|
||||
# if the banned variables are traced.
|
||||
set banned_variables_traced 0
|
||||
|
||||
proc gdb_init { args } {
|
||||
# Reset the timeout value to the default. This way, any testcase
|
||||
# that changes the timeout value without resetting it cannot affect
|
||||
|
@ -2530,9 +2539,13 @@ proc gdb_init { args } {
|
|||
|
||||
# Block writes to all banned variables...
|
||||
global banned_variables
|
||||
foreach banned_var $banned_variables {
|
||||
global "$banned_var"
|
||||
trace variable "$banned_var" w error
|
||||
global banned_variables_traced
|
||||
if (!$banned_variables_traced) {
|
||||
foreach banned_var $banned_variables {
|
||||
global "$banned_var"
|
||||
trace add variable "$banned_var" write error
|
||||
}
|
||||
set banned_variables_traced 1
|
||||
}
|
||||
|
||||
return [eval default_gdb_init $args];
|
||||
|
@ -2552,9 +2565,13 @@ proc gdb_finish { } {
|
|||
# Unblock write access to the banned variables. Dejagnu typically
|
||||
# resets some of them between testcases.
|
||||
global banned_variables
|
||||
foreach banned_var $banned_variables {
|
||||
global "$banned_var"
|
||||
trace remove variable "$banned_var" write error
|
||||
global banned_variables_traced
|
||||
if ($banned_variables_traced) {
|
||||
foreach banned_var $banned_variables {
|
||||
global "$banned_var"
|
||||
trace remove variable "$banned_var" write error
|
||||
}
|
||||
set banned_variables_traced 0
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue