+2010-05-17 Joel Brobecker <brobecker@adacore.com>
+
+ * lib/gdb.exp (banned_variables): New variable/constant.
+ (gdb_init): Add write trace on variables listed in banned_variables.
+ (gdb_finish): Remove write traces on variables listed in
+ banned_variables.
+
2010-05-17 Joel Brobecker <brobecker@adacore.com>
* gdb.base/gdb11530.exp: Delete setting of prms_id and bug_id.
set gdb_test_timeout $timeout
}
+# A list of global variables that GDB testcases should not use.
+# We try to prevent their use by monitoring write accesses and raising
+# an error when that happens.
+set banned_variables { bug_id prms_id }
+
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
global timeout
set timeout $gdb_test_timeout
+ # Block writes to all banned variables...
+ global banned_variables
+ foreach banned_var $banned_variables {
+ global "$banned_var"
+ trace variable "$banned_var" w error
+ }
+
return [eval default_gdb_init $args];
}
eval remote_file target delete $cleanfiles
set cleanfiles {}
}
+
+ # 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 debug_format