Age | Commit message (Collapse) | Author | Files | Lines |
|
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.
|
|
gdb/ChangeLog:
Update copyright year range in all GDB files
|
|
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.
|
|
gdb/ChangeLog:
Update year range in copyright notice of all files.
|
|
gdb/ChangeLog:
Update year range in copyright notice of all files.
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
Fix fuzzy results.
* gdb.mi/var-cmd.c (do_locals_tests): Initialize variables lsimple,
lpsimple and func.
|
|
* 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.
|
|
gdb/ChangeLog:
Copyright year update in most files of the GDB Project.
|
|
... 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.
|
|
|
|
* 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".
|
|
Automatic update by copyright.sh.
|
|
* value.c (value_primitive_field): Call check_typedef
on the type.
|
|
|
|
value for variable objects that changed type.
|
|
* 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.
|
|
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.
|
|
|
|
two-char array.
* gdb.mi/mi-var-cmd.exp, gdb.mi/mi2-var-cmd.exp: Use lcharacter[0].
|
|
the 'struct_declarations' variable to zeros.
* gdb.mi/mi2-var-child.exp: Step over said
initialization.
|
|
Switch the license of all .h files to GPLv3.
Switch the license of all .cc files to GPLv3.
|
|
(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.
|
|
(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.
|
|
|
|
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.
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
(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.
|
|
* gdb.mi/basics.c: Include <stdio.h>.
* gdb.mi/pthreads.c: Include <stdlib.h>.
* gdb.mi/var-cmd.c: Include <stdlib.h>.
|
|
* gdb.mi/basics.c: Add copyright notice.
* gdb.mi/var-cmd.c: Add copyright notice.
|
|
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.
|