Re: [MI] -stack-list-variables

Vladimir Prus
2009-09-19T11:15:07Z

[-- Attachment #1: Type: text/plain, Size: 888 bytes --]

Vladimir Prus wrote:

>
> MI presently have two separate commands to list locals and arguments in
> the current frame. Most often than not, frontend need both, so having
> to emit two commands is inconvenience and and extra roundtrip. I believe
> Nick has suggested having a single command, and Andre is in favour of
> this idea, and I also think it's good. I actually recall than Nick planned
> to write a patch, but I did not saw any, and this is fairly trivial
> change, so here it goes. The new command is called -stack-list-variables,
> and it's checked in into CVS HEAD.
>
> I'll post doc patch shortly; I will also merge this to 7.0 after a couple
> of days, if no issues appear.

On IRC, Matt Rice told me that gcc 4.5 complains that 'name_of_result' is
potentially uninitialized. Now, that warnings is most utterly bogus, but
I've checked in the workaround below.

- Volodya

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: stack-list-variables-fixup.diff --]
[-- Type: text/x-diff; name="stack-list-variables-fixup.diff", Size: 1416 bytes --]

? A.diff
? commit_1.diff
? include.diff
? stack-list-variables.diff
? doc/ChangeLog.lines
? doc/ChangeLog.my
? doc/all
? doc/my
? doc/stack-list-variables-docs.diff
Index: ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/ChangeLog,v
retrieving revision 1.10883
diff -u -p -r1.10883 ChangeLog
--- ChangeLog 19 Sep 2009 09:59:29 -0000 1.10883
+++ ChangeLog 19 Sep 2009 11:12:03 -0000
@@ -1,5 +1,10 @@
2009-09-19 Vladimir Prus <vladimir@codesourcery.com>

+ * mi/mi-cmd-stack.c (list_args_or_locals): Workaround
+ gcc warning.
+
+2009-09-19 Vladimir Prus <vladimir@codesourcery.com>
+
* mi/mi-cmds.h (mi_cmd_stack_list_variables): Declare.
* mi/mi-cmds.c (mi_cmds): Register -stack-list-variables.
* mi/mi-cmd-stack.c (enum what_to_list): New.
Index: mi/mi-cmd-stack.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-cmd-stack.c,v
retrieving revision 1.45
diff -u -p -r1.45 mi-cmd-stack.c
--- mi/mi-cmd-stack.c 19 Sep 2009 09:59:29 -0000 1.45
+++ mi/mi-cmd-stack.c 19 Sep 2009 11:12:04 -0000
@@ -261,6 +261,8 @@ list_args_or_locals (enum what_to_list w
name_of_result = "args"; break;
case all:
name_of_result = "variables"; break;
+ default:
+ gdb_assert (("unexpected value", 0));
}

cleanup_list = make_cleanup_ui_out_list_begin_end (uiout, name_of_result);