old-cross-binutils/gdb/mi
Joel Brobecker 403cb6b138 GDB/MI: Add new "--language LANG" command option.
Frontend sometimes need to evaluate expressions that are
language-specific. For instance, Eclipse uses the following
expression to determine the size of an address on the target:

    -data-evaluate-expression "sizeof (void*)"

Unfortunately, if the main of the program being debugged is not C,
this may not work. For instance, if the main is in Ada, you get...

    -data-evaluate-expression "sizeof (void*)"
    ^error,msg="No definition of \"sizeof\" in current context."

... and apparently decides to stop the debugging session as a result.
The  recommendation sent was to specifically set the language to C
before trying to evaluate the expression.  Something such as:

    1. save current language
    2. set language c
    3. -data-evaluate-expression "sizeof (void*)"
    4. Restore language

This has the same disadvantages as the ones outlined in the "Context
Management" section of the GDB/MI documentation regarding setting
the current thread or the current frame, thus recommending the use of
general command-line switches such as --frame, or --thread instead.

This patch follows the same steps for the language, adding a similar
new command option: --language LANG. Example of use:

    -data-evaluate-expression --language c "sizeof (void*)"
    ^done,value="4"

gdb/ChangeLog:

        * mi/mi-parse.h (struct mi_parse) <language>: New field.
        * mi/mi-main.c (mi_cmd_execute): Temporarily set language to
        PARSE->LANGUAGE during command execution, if set.
        * mi/mi-parse.c: Add "language.h" #include.
        (mi_parse): Add parsing of "--language" command option.

        * NEWS: Add entry mentioning the new "--language" command option.

gdb/testsuite/ChangeLog:

        * gdb.mi/mi-language.exp: New file.

gdb/doc/ChangeLog:

        * gdb.texinfo (Show): Add xref anchor for "show language" command.
        (Context management): Place current subsection text into its own
        subsubsection.  Add new subsubsection describing the "--language"
        command option.
2013-11-14 14:36:18 +04:00
..
ChangeLog-1999-2003
mi-cmd-break.c
mi-cmd-break.h
mi-cmd-catch.c Dandling memory pointers in Ada catchpoints with GDB/MI. 2013-11-11 19:19:07 +04:00
mi-cmd-disas.c
mi-cmd-env.c
mi-cmd-file.c
mi-cmd-info.c Implement GDB/MI equivalent of "info exceptions" CLI command. 2013-11-12 06:47:16 +04:00
mi-cmd-stack.c
mi-cmd-target.c
mi-cmd-var.c Remove varobj_language_string, languages and varobj_languages 2013-11-07 15:10:50 +08:00
mi-cmds.c Implement GDB/MI equivalent of "info exceptions" CLI command. 2013-11-12 06:47:16 +04:00
mi-cmds.h Implement GDB/MI equivalent of "info exceptions" CLI command. 2013-11-12 06:47:16 +04:00
mi-common.c
mi-common.h
mi-console.c
mi-console.h
mi-getopt.c
mi-getopt.h
mi-interp.c
mi-main.c GDB/MI: Add new "--language LANG" command option. 2013-11-14 14:36:18 +04:00
mi-main.h
mi-out.c
mi-out.h
mi-parse.c GDB/MI: Add new "--language LANG" command option. 2013-11-14 14:36:18 +04:00
mi-parse.h GDB/MI: Add new "--language LANG" command option. 2013-11-14 14:36:18 +04:00
mi-symbol-cmds.c