aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.mi/var-cmd.c
AgeCommit message (Collapse)AuthorFilesLines
2019-01-01Update copyright year range in all GDB files.Joel Brobecker1-1/+1
This commit applies all changes made after running the gdb/copyright.py script. Note that one file was flagged by the script, due to an invalid copyright header (gdb/unittests/basic_string_view/element_access/char/empty.cc). As the file was copied from GCC's libstdc++-v3 testsuite, this commit leaves this file untouched for the time being; a patch to fix the header was sent to gcc-patches first. gdb/ChangeLog: Update copyright year range in all GDB files.
2018-01-02Update copyright year range in all GDB filesJoel Brobecker1-1/+1
gdb/ChangeLog: Update copyright year range in all GDB files
2017-01-01update copyright year range in GDB filesJoel Brobecker1-1/+1
This applies the second part of GDB's End of Year Procedure, which updates the copyright year range in all of GDB's files. gdb/ChangeLog: Update copyright year range in all GDB files.
2016-01-01GDB copyright headers update after running GDB's copyright.py script.Joel Brobecker1-1/+1
gdb/ChangeLog: Update year range in copyright notice of all files.
2015-01-01Update year range in copyright notice of all files owned by the GDB project.Joel Brobecker1-1/+1
gdb/ChangeLog: Update year range in copyright notice of all files.
2014-10-14Fix fail in mi-var-child.exp and mi-var-display.expYao Qi1-0/+16
Hi, I see the following fails on arm-none-eabi target, -var-list-children --simple-values struct_declarations ^M ^done,numchild="11",children=[...,child={name="struct_declarations.func_ptr_struct",exp="func_ptr_struct",numchild="0",value="0x0 <_ftext>",type="struct _struct_decl (*)(int, char *, long)",thread-id="1"},child={name="struct_declarations.func_ptr_ptr",exp="func_ptr_ptr",numchild="0",value="0x0 <_ftext>",type="struct _struct_decl *(*)(int, char *, long)",thread-id="1"},... (gdb) ^M FAIL: gdb.mi/mi-var-child.exp: listing of children, simple types: names, type and values, complex types: names and types -var-set-format weird.func_ptr_ptr natural^M ^done,format="natural",value="0x0 <_ftext>"^M (gdb) ^M FAIL: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_ptr in natural In the test, "0x0" is expected, but "0x0 <_ftext>" is in the output. Function pointers point to address zero, and tests assume there is no symbol on address zero. However, on my arm-none-eabi target, there is a code symbol _ftext on address zero, and test fails. Note that "set print symbol off" doesn't take effect for function pointer. int (*f) (void); f = main; (gdb) p f $1 = (int (*)(void)) 0x8048400 <main> (gdb) set print symbol off (gdb) p f $2 = (int (*)(void)) 0x8048400 <main> In order to erase the difference, we can assign some function address explicitly to function pointer, so the test behaves in a unique way. In this patch, we assign nothing1 and nothing2 to function pointers func_ptr_struct and func_ptr_ptr respectively, and update test as the source file is changed. gdb/testsuite: 2014-10-14 Yao Qi <yao@codesourcery.com> * gdb.mi/mi-var-child.c (nothing1): New function. (nothing2): New function. (do_children_tests): Set function pointers by nothing1 and nothing2. * gdb.mi/mi-var-child.exp: Step over new added statements. Update test to match the new output. * gdb.mi/var-cmd.c (nothing1): New function. (nothing2): New function. (do_children_tests): Set function pointers by nothing1 and nothing2. * gdb.mi/mi-var-display.exp: Update test to match output. Step to the line specified by $line_dct_nothing. Increase the number of lines to step.
2014-07-09Improve MI -var-info-path-expression for nested struct/union case.Andrew Burgess1-0/+68
https://sourceware.org/ml/gdb-patches/2014-05/msg00383.html The MI command -var-info-path-expression currently does not handle non-anonymous structs / unions nested within other structs / unions, it will skip parts of the expression. Consider this example: ## START EXAMPLE ## $ cat ex.c #include <string.h> int main () { struct s1 { int a; }; struct ss { struct s1 x; }; struct ss an_ss; memset (&an_ss, 0, sizeof (an_ss)); return 0; } $ gcc -g -o ex.x ex.c $ gdb ex.x (gdb) break 18 Breakpoint 1 at 0x80483ba: file ex.c, line 18. (gdb) run Starting program: /home/user/ex.x Breakpoint 1, main () at ex.c:18 18 return 0; (gdb) interpreter-exec mi "-var-create an_ss * an_ss" (gdb) interpreter-exec mi "-var-list-children an_ss" ^done,numchild="1",children=[child={name="an_ss.x",exp="x",numchild="1",type="struct s1",thread-id="1"}],has_more="0" (gdb) interpreter-exec mi "-var-list-children an_ss.x" ^done,numchild="1",children=[child={name="an_ss.x.a",exp="a",numchild="0",type="int",thread-id="1"}],has_more="0" (gdb) interpreter-exec mi "-var-list-children an_ss.x.a" ^done,numchild="0",has_more="0" (gdb) interpreter-exec mi "-var-info-path-expression an_ss.x.a" ^done,path_expr="(an_ss).a" (gdb) print (an_ss).a There is no member named a. ## END EXAMPLE ## Notice that the path expression returned is wrong, and as a result the print command fails. This patch adds a new method to the varobj_ops structure called is_path_expr_parent, to allow language specific control over finding the parent varobj, the current logic becomes the C/C++ version and is extended to handle the nested cases. No other language currently uses this code, so all other languages just get a default method. With this patch, the above example now finishes like this: ## START EXAMPLE ## $ gdb ex.x (gdb) break 18 Breakpoint 1 at 0x80483ba: file ex.c, line 18. (gdb) run Starting program: /home/user/ex.x Breakpoint 1, main () at ex.c:18 18 return 0; (gdb) interpreter-exec mi "-var-list-children an_ss" ^done,numchild="1",children=[child={name="an_ss.x",exp="x",numchild="1",type="struct s1",thread-id="1"}],has_more="0" (gdb) interpreter-exec mi "-var-list-children an_ss.x" ^done,numchild="1",children=[child={name="an_ss.x.a",exp="a",numchild="0",type="int",thread-id="1"}],has_more="0" (gdb) interpreter-exec mi "-var-list-children an_ss.x.a" ^done,numchild="0",has_more="0" (gdb) interpreter-exec mi "-var-info-path-expression an_ss.x.a" ^done,path_expr="((an_ss).x).a" (gdb) print ((an_ss).x).a $1 = 0 ## END EXAMPLE ## Notice that the path expression is now correct, and the print is a success. gdb/ChangeLog: * ada-varobj.c (ada_varobj_ops): Fill in is_path_expr_parent field. * c-varobj.c (c_is_path_expr_parent): New function, moved core from varobj.c, with additional checks. (c_varobj_ops): Fill in is_path_expr_parent field. (cplus_varobj_ops): Fill in is_path_expr_parent field. * jv-varobj.c (java_varobj_ops): Fill in is_path_expr_parent field. * varobj.c (is_path_expr_parent): Call is_path_expr_parent varobj ops method. (varobj_default_is_path_expr_parent): New function. * varobj.h (lang_varobj_ops): Add is_path_expr_parent field. (varobj_default_is_path_expr_parent): Declare new function. gdb/testsuite/ChangeLog: * gdb.mi/var-cmd.c (do_nested_struct_union_tests): New function setting up test structures. (main): Call new test function. * gdb.mi/mi2-var-child.exp: Create additional breakpoint in new test function, continue into test function and walk test structures.
2014-01-01Update Copyright year range in all files maintained by GDB.Joel Brobecker1-1/+1
2013-01-01Update years in copyright notice for the GDB files.Joel Brobecker1-1/+1
Two modifications: 1. The addition of 2013 to the copyright year range for every file; 2. The use of a single year range, instead of potentially multiple year ranges, as approved by the FSF.
2012-01-24gdb/testsuite/Jan Kratochvil1-3/+3
Fix fuzzy results. * gdb.mi/var-cmd.c (do_locals_tests): Initialize variables lsimple, lpsimple and func.
2012-01-12 PR mi/10586Keith Seitz1-0/+51
* gdb.mi/var-cmd.c (struct anonymous): New structure. (do_anonymous_type_tests): New function. (main): Call do_anonymous_type_tests. * gdb.mi/mi2-var-child.exp: Add anonymous type tests. (verify_everything): New procedure. * gdb.mi/mi-var-cp.cc (class A): New class. (anonymous_structs_and_unions): New function. (main): Call anonymous_structs_and_unions. * gdb.mi/mi-var-cp.exp: Add anonymous type tests. (verify_everything): New procedure.
2012-01-04Copyright year update in most files of the GDB Project.Joel Brobecker1-2/+1
gdb/ChangeLog: Copyright year update in most files of the GDB Project.
2012-01-02Update the copyright header of various files...Joel Brobecker1-1/+1
... to follow the correct syntax (according to the gospel of gnulib's update-copyright). In other words: - no comma after the last year; - FSF spelled exactly "Free Software Foundation, Inc.", with the comma and the period at the end. sim/common/ChangeLog: * dv-sockser.h, sim-assert.h, sim-fpu.c: Reformat the copyright header. sim/m32c/ChangeLog: * blinky.S, gloss.S, sample.S: Reformat copyright header. sim/mn10300/ChangeLog: * sim-main.h: Reformat copyright header. sim/ppc/ChangeLog: * dp-bit.c: Reformat copyright header. gdb/ChangeLog: * gdb/common/gdb_thread_db.h, gdb/dbxread.c, gdb/environ.c, gdb/gcore.h, gdb/rs6000-tdep.h, gdb/s390-nat.c, gdb/tic6x-tdep.c: Reformat the copyright header. gdb/gdbserver/ChangeLog: * terminal.h: Reformat copyright header. gdb/testsuite/ChangeLog: * dg-extract-results.sh, gdb.arch/gcore.c, gdb.arch/gdb1558.c, gdb.arch/i386-gnu-cfi.c, gdb.base/complex.c, gdb.base/cvexpr.c, gdb.base/gcore.c, gdb.base/gdb1555-main.c, gdb.base/gdb1555.c, gdb.base/gdb1821.c, gdb.base/long_long.c, gdb.base/restore.c, gdb.base/sepdebug.c, gdb.base/type-opaque-lib.c, gdb.base/type-opaque-main.c, gdb.cp/maint.exp, gdb.cp/namespace1.cc, gdb.cp/pr9631.cc, gdb.cp/psmang1.cc, gdb.cp/psmang2.cc, gdb.cp/try_catch.cc, gdb.cp/virtfunc.cc, gdb.hp/gdb.base-hp/reg.exp, gdb.mi/basics.c, gdb.mi/mi-stack.c, gdb.mi/mi-var-child.c, gdb.mi/mi2-var-child.exp, gdb.mi/var-cmd.c, gdb.threads/thread_check.c: Reformat copyright header.
2011-01-01run copyright.sh for 2011.Joel Brobecker1-1/+2
2010-01-03gdb/Jan Kratochvil1-1/+1
* gdbtypes.c (check_typedef): New comment on type length. * value.c (allocate_value_lazy): Remove the unused atype variable. New comment on type length. (value_primitive_field): Keep the original TYPE value, new comment. gdb/testsuite/ * gdb.mi/var-cmd.c (do_bitfield_tests): Change "V.sharable" type to "uint_for_mi_testing".
2010-01-01Update copyright year in most headers.Joel Brobecker1-1/+1
Automatic update by copyright.sh.
2009-12-21 PR gdb/10884Vladimir Prus1-0/+35
* value.c (value_primitive_field): Call check_typedef on the type.
2009-01-03 Updated copyright notices for most files.Joel Brobecker1-1/+1
2008-04-19 * mi/mi-cmd-var.c (varobj_update_one): Print newVladimir Prus1-0/+7
value for variable objects that changed type.
2008-04-13 Fix @-varobjs.Vladimir Prus1-0/+57
* varobj.c (value_of_root): Update the expression for floating varobjs. * mi/mi-cmd-var.c (varobj_update_one): If type has changed, report that.
2008-01-17 * gdb.mi/mi-var-child.c (do_children_tests): Add 'dummy' integerPedro Alves1-2/+6
and 'dummy_ptr' integer pointer. Initialize struct_declarations with dummy_ptr's address. * gdb.mi/var-cmd.c (do_children_tests): Likewise. * gdb.mi/mi-var-child.exp: int_ptr_ptr is now always "editable" on all targets. * gdb.mi/mi2-var-child.exp: Likewise.
2008-01-01 Updated copyright notices for most files.Daniel Jacobowitz1-1/+1
2007-10-01 * gdb.mi/var-cmd.c (do_locals_tests): Define lcharacter as aDaniel Jacobowitz1-5/+5
two-char array. * gdb.mi/mi-var-cmd.exp, gdb.mi/mi2-var-cmd.exp: Use lcharacter[0].
2007-09-27 * gdb.mi/var-cmd.c (do_children_tests): InitializeVladimir Prus1-0/+2
the 'struct_declarations' variable to zeros. * gdb.mi/mi2-var-child.exp: Step over said initialization.
2007-08-23 Switch the license of all .c files to GPLv3.Joel Brobecker1-9/+7
Switch the license of all .h files to GPLv3. Switch the license of all .cc files to GPLv3.
2007-04-14 * varobj.h (varobj_set_frozen): NewVladimir Prus1-0/+87
(varobj_get_frozen): New. (varobj_update): New parameter explicit. * varobj.c (struct varobj): New fields frozen and not_fetched. (varobj_set_frozen, varobj_get_frozen): New. (install_new_value): Don't fetch values for frozen variable object, or children thereof. Allow a frozen variable object to have non-fetched value. (varobj_update): Allow updating child variables. Don't traverse frozen children. (new_variable): Initialize the frozen field. (c_value_of_variable): Return NULL for frozen variable without any value yet. * mi/mi-cmd-var.c (varobj_update_one): New parameter 'explicit'. (mi_cmd_var_create): Output the 'frozen' field, as soon as testsuite is adjusted to expect that field. (mi_cmd_var_set_frozen): New. (mi_cmd_var_update): Pass the 'explicit' parameter to varobj_update_one. * mi/mi-cmds.c (mi_cmds): Register '-var-set-frozen'. * mi/mi-cmds.h (mi_cmd_var_set_frozen): Declare.
2007-04-01 * gdb.mi/mi-var-child.cVladimir Prus1-19/+19
(do_children_tests): User char[2] instead of char so that automatic printing of pointers to char don't give unpredicable result. * gdb.mi/var-cmd.c (do_locals_test): Initialize local variables. * gdb.mi/mi-var-child.exp: Step to right line of do_children_tests. * gdb.mi/mi2-var-child.exp: Likewise. * gdb.mi/mi-var-cmd.exp: Step to right line of do_locals_tests. (do_children_tests): User char[2] instead of char so that automatic printing of pointers to char don't give unpredicable result. * gdb.mi/mi2-var-cmd.exp: Likewise. * lib/mi-support.exp (mi_continue_to_line): Pass test name to mi_wait_for_stop.
2007-01-09Copyright updates for 2007.Daniel Jacobowitz1-1/+1
2006-11-282006-11-28 Vladimir Prus <vladimir@codesourcery.com>Vladimir Prus1-0/+4
Fetch varobj values from memory in a single place, and only fetch the values that are really needed. * varobj.c (struct varobj): Clarify comment. (my_value_equal): Remove. (install_new_value): New function. (type_of_child): Remove. (varobj_create): Use install_new_value. (varobj_set_value): Use value_contents_equal, not my_value_equal. (varobj_update): Use install_new_value. (create_child): Likewise. Inline type_of_child here. (value_of_child): Don't fetch the value. (c_value_of_root): Likewise. (c_value_of_variable): Likewise. (type_changeable): Improve comments.
2006-06-13 * gdb.base/break.c: Add 10a breakpoint at }Nathan Sidwell1-0/+1
* gdb.base/break.exp: Add test for breakpoint at } * gdb.cp/anon-union.cc: Add code at end of function. * gdb.cp/anon-union.exp: Adjust end of function breakpoint. * gdb.mi/var-cmd.c: Add code at end of function. * gdb.mi/mi-var-display.exp: Adjust end of next. * gdb.mi/mi2-var-display.exp: Likewise. * gdb.base/fileio.c: Add stop function and insert calls at stopping places. * gdb.base/fileio.exp: Breakpoint stop function and remove explicit line number references.
2006-05-05 * gdb.cp/m-static.h (class gnu_obj_4): Add dummy member.Daniel Jacobowitz1-0/+6
* gdb.cp/m-static.cc (main): Write to test4.dummy, so that test4 is allocated by the compiler. * gdb.mi/var-cmd.c: (do_special_tests): Write to u, anonu, s, anons, e, anone to force their allocation by the compiler.
2005-07-31 * gdb.mi/basics.c, gdb.mi/var-cmd.c: Revert last change.Daniel Jacobowitz1-4/+2
* gdb.mi/mi-stack.c: New file, based on gdb.mi/basics.c. * gdb.mi/mi-var-child.c: New file, based on gdb.mi/var-cmd.c. * gdb.mi/mi-stack.exp: Update to use mi-stack.c as a source file. * gdb.mi/mi-var-child.exp: Update to use mi-var-child.c as a source file.
2005-07-27* gdb.mi/var-cmd.c: Give long_array in _struct_decl 12 elements.Nick Roberts1-2/+4
(do_children_tests): Assign values to the extra elements. * gdb.mi/mi-var-child.exp: Adapt tests for extra elements and use them for tests for "-var-update --no-values" and "-var-update --all-values". Add test for "-var-list-children --simple-values". * gdb.mi/basics.c (callee4): Add integer array D[3]... * gdb.mi/mi-stack.exp (test_stack_locals_listing): ...to test "-stack-list-locals --simple-values" Improve doc strings and comments.
2004-08-262004-08-26 Michael Chastain <mec.gnu@mindspring.com>Michael Chastain1-1/+3
* gdb.mi/basics.c: Include <stdio.h>. * gdb.mi/pthreads.c: Include <stdlib.h>. * gdb.mi/var-cmd.c: Include <stdlib.h>.
2004-08-252004-08-24 Michael Chastain <mec.gnu@mindspring.com>Michael Chastain1-0/+19
* gdb.mi/basics.c: Add copyright notice. * gdb.mi/var-cmd.c: Add copyright notice.
2000-02-23Add mi/ and testsuite/gdb.mi/ subdirectories.Andrew Cagney1-0/+296
Add --enable-gdbmi option to configury. Add mi rules to Makefile.in Add mi conditional output to event-top.c infrun.c main.c top.c. Add -i=mi option.