From: Sergio Durigan Junior <sergiodj@redhat.com>
To: Yao Qi <qiyaoltc@gmail.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [RFC] Unset tcl variable addr to avoid clashing
Date: Sat, 11 Apr 2015 17:03:00 -0000 [thread overview]
Message-ID: <87r3rqppgq.fsf@redhat.com> (raw)
In-Reply-To: <1428666671-12926-1-git-send-email-qiyaoltc@gmail.com> (Yao Qi's message of "Fri, 10 Apr 2015 12:51:11 +0100")
On Friday, April 10 2015, Yao Qi wrote:
> From: Yao Qi <yao.qi@linaro.org>
>
> Hi,
> I see some tcl ERRORs in gdb.sum recently:
>
> ERROR: tcl error sourcing ../../../../../binutils-gdb/gdb/testsuite/gdb.base/dmsym.exp.
> ERROR: can't set "addr": variable is array
> while executing
> "set addr "0x\[0-9a-zA-Z\]+""
> (file "../../../../../binutils-gdb/gdb/testsuite/gdb.base/dmsym.exp" line 45)
> invoked from within
> "source ../../../../../binutils-gdb/gdb/testsuite/gdb.base/dmsym.exp"
> ("uplevel" body line 1)
> invoked from within
> "uplevel #0 source ../../../../../binutils-gdb/gdb/testsuite/gdb.base/dmsym.exp"
> invoked from within
> "catch "uplevel #0 source $test_file_name""
>
> It is OK to run single dmsym.exp. This error is caused by the name
> clashing with coredump-filter.exp, and it can be reproduced,
It seems that coredump-filter.exp is causing lots of headaches
lately... Sorry about that.
> $ make check RUNTESTFLAGS='coredump-filter.exp dmsym.exp exception.exp stepi-random-signal.exp'
>
> as variable addr is used in all of them. This patch is to unset array
> addr, but manually unset variables isn't good to me. Is there any
> approaches we can do to avoid name clashing?
FWIW, there is not strong reason to keep the variable name as "addr" in
the testcase. So, an easier solution would be to rename the variable to
something else, like "coredump_var_addr" (I think this name is unique
enough). The patch below does that.
WDYT?
--
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/
gdb/testsuite/ChangeLog:
2015-04-11 Sergio Durigan Junior <sergiodj@redhat.com>
* gdb.base/coredump-filter.exp: Rename variable "addr" to
"coredump_var_addr" to avoid naming conflict with other
testcases.
diff --git a/gdb/testsuite/gdb.base/coredump-filter.exp b/gdb/testsuite/gdb.base/coredump-filter.exp
index f3203be..8c94e94 100644
--- a/gdb/testsuite/gdb.base/coredump-filter.exp
+++ b/gdb/testsuite/gdb.base/coredump-filter.exp
@@ -38,7 +38,7 @@ proc do_save_core { filter_flag core ipid } {
}
proc do_load_and_test_core { core var working_var working_value } {
- global hex decimal addr
+ global hex decimal coredump_var_addr
set core_loaded [gdb_core_cmd "$core" "load core"]
if { $core_loaded == -1 } {
@@ -47,9 +47,9 @@ proc do_load_and_test_core { core var working_var working_value } {
}
# Access the memory the addresses point to.
- gdb_test "print/x *(char *) $addr($var)" "\(\\\$$decimal = <error: \)?Cannot access memory at address $hex\(>\)?" \
+ gdb_test "print/x *(char *) $coredump_var_addr($var)" "\(\\\$$decimal = <error: \)?Cannot access memory at address $hex\(>\)?" \
"printing $var when core is loaded (should not work)"
- gdb_test "print/x *(char *) $addr($working_var)" " = $working_value.*" \
+ gdb_test "print/x *(char *) $coredump_var_addr($working_var)" " = $working_value.*" \
"print/x *$working_var ( = $working_value)"
}
@@ -163,7 +163,7 @@ foreach item $all_anon_corefiles {
set test "print/x $name"
gdb_test_multiple $test $test {
-re " = \($hex\)\r\n$gdb_prompt $" {
- set addr($name) $expect_out(1,string)
+ set coredump_var_addr($name) $expect_out(1,string)
}
}
}
next prev parent reply other threads:[~2015-04-11 17:03 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-10 11:51 Yao Qi
2015-04-10 16:53 ` Doug Evans
2015-04-10 17:55 ` Keith Seitz
2015-04-10 18:08 ` Doug Evans
2015-04-11 17:03 ` Sergio Durigan Junior [this message]
2015-04-12 17:22 ` Doug Evans
2015-04-13 6:47 ` Sergio Durigan Junior
2015-04-13 8:26 ` Pedro Alves
2015-04-14 19:12 ` Sergio Durigan Junior
2015-04-26 19:44 ` Sergio Durigan Junior
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87r3rqppgq.fsf@redhat.com \
--to=sergiodj@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=qiyaoltc@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox