This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [PATCH: gdb/mi] -stack-list-locals testcase
- From: Nick Roberts <nick at nick dot uklinux dot net>
- To: Andrew Cagney <cagney at gnu dot org>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Tue, 6 Jan 2004 00:06:45 +0000
- Subject: Re: [PATCH: gdb/mi] -stack-list-locals testcase
- References: <16319.64137.458928.417189@nick.uklinux.net><3FC3F85F.8050007@gnu.org><16332.423.456414.834703@nick.uklinux.net><16341.13503.256676.933542@nick.uklinux.net><3FD75E64.1020508@gnu.org><16346.10340.488095.107663@nick.uklinux.net><yf2r7z9920a.fsf@hawaii.kealia.com><16351.48550.8915.678388@nick.uklinux.net><3FF9DA74.7000304@gnu.org>
> Nick, just the testcase is missing. Suggest tweaking "mi-stack.exp"
> (you do not need to tweak mi[12]-stack.exp since they test older protocols).
mi-stack.exp had three fails to start with. Replacing line=\"7\" with
line=\"8\" and "-exec-next 3" with "-exec-next 4" removed them.
I have added one simple test for `-stack-list-locals 2' that seems to
work. It does not test complex data types but this would require changing
basics.c, which is probably not worth it.
Andrew, if you tell me that this patch does the right thing, then I'll do one
for -var-list-children.
Nick
*** mi-stack.exp.~1.10.~ 2002-11-05 15:43:18.000000000 +0000
--- mi-stack.exp 2004-01-05 23:38:27.000000000 +0000
***************
*** 57,63 ****
# -stack-list-frames 1 3
mi_gdb_test "231-stack-list-frames" \
! "231\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\"\},frame=\{level=\"1\",addr=\"$hex\",func=\"callee3\",.*\},frame=\{level=\"2\",addr=\"$hex\",func=\"callee2\",.*\},frame=\{level=\"3\",addr=\"$hex\",func=\"callee1\",.*\},frame=\{level=\"4\",addr=\"$hex\",func=\"main\",.*\}\\\]" \
"stack frame listing"
mi_gdb_test "232-stack-list-frames 1 1" \
"232\\^done,stack=\\\[frame=\{level=\"1\",addr=\"$hex\",func=\"callee3\",.*\}\\\]" \
--- 57,63 ----
# -stack-list-frames 1 3
mi_gdb_test "231-stack-list-frames" \
! "231\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"7\"\},frame=\{level=\"1\",addr=\"$hex\",func=\"callee3\",.*\},frame=\{level=\"2\",addr=\"$hex\",func=\"callee2\",.*\},frame=\{level=\"3\",addr=\"$hex\",func=\"callee1\",.*\},frame=\{level=\"4\",addr=\"$hex\",func=\"main\",.*\}\\\]" \
"stack frame listing"
mi_gdb_test "232-stack-list-frames 1 1" \
"232\\^done,stack=\\\[frame=\{level=\"1\",addr=\"$hex\",func=\"callee3\",.*\}\\\]" \
***************
*** 156,162 ****
"stack locals listing 0"
# step until A, B, C, have some reasonable values.
! send_gdb "-exec-next 3\n"
gdb_expect {
-re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"13\"\}\r\n$mi_gdb_prompt$" {
pass "next's in callee4"
--- 156,162 ----
"stack locals listing 0"
# step until A, B, C, have some reasonable values.
! send_gdb "-exec-next 4\n"
gdb_expect {
-re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"13\"\}\r\n$mi_gdb_prompt$" {
pass "next's in callee4"
***************
*** 168,173 ****
--- 168,177 ----
"232\\^done,locals=\\\[\{name=\"A\",value=\"1\"\},\{name=\"B\",value=\"2\"\},\{name=\"C\",value=\"3\"\}\\\]" \
"stack locals listing 1"
+ mi_gdb_test "232-stack-list-locals 2" \
+ "232\\^done,locals=\\\[\{name=\"A\",type=\"int\",value=\"1\"\},\{name=\"B\",type=\"int\",value=\"2\"\},\{name=\"C\",type=\"int\",value=\"3\"\}\\\]" \
+ "stack locals listing 2"
+
mi_gdb_test "234-stack-list-locals" \
"234\\^error,msg=\"mi_cmd_stack_list_locals: Usage.*PRINT_VALUES.*\"" \
"stack locals listing wrong"