diff options
author | Pedro Alves <palves@redhat.com> | 2011-02-16 12:59:05 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2011-02-16 12:59:05 +0000 |
commit | 08807d5afd29a5dba40d31cd28a78af64e4fae15 (patch) | |
tree | 10e476c3c3af128b54a77341cec87444a5fab9fd /gdb/testsuite/gdb.trace | |
parent | fb68ae733b393f6a6b1b9b92f2118f55908e7171 (diff) | |
download | gdb-08807d5afd29a5dba40d31cd28a78af64e4fae15.zip gdb-08807d5afd29a5dba40d31cd28a78af64e4fae15.tar.gz gdb-08807d5afd29a5dba40d31cd28a78af64e4fae15.tar.bz2 |
2011-02-16 Pedro Alves <pedro@codesourcery.com>
Jan Kratochvil <jan.kratochvil@redhat.com>
gdb/
* tracepoint.c (memrange_sortmerge): Fix list A's end calculation.
2011-02-16 Pedro Alves <pedro@codesourcery.com>
gdb/testsuite/
* collection.c (globalarr2): New global.
(main): Initialize it before collecting, and and clear it
afterwards.
* collection.exp (gdb_collect_globals_test): Test collecting
overlapping memory ranges.
Diffstat (limited to 'gdb/testsuite/gdb.trace')
-rw-r--r-- | gdb/testsuite/gdb.trace/collection.c | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.trace/collection.exp | 24 |
2 files changed, 29 insertions, 1 deletions
diff --git a/gdb/testsuite/gdb.trace/collection.c b/gdb/testsuite/gdb.trace/collection.c index 4a58170..422b737 100644 --- a/gdb/testsuite/gdb.trace/collection.c +++ b/gdb/testsuite/gdb.trace/collection.c @@ -26,6 +26,7 @@ double globald; test_struct globalstruct; test_struct *globalp; int globalarr[16]; +int globalarr2[4]; struct global_pieces { unsigned int a; @@ -237,6 +238,9 @@ main (argc, argv, envp) for (i = 0; i < 15; i++) globalarr[i] = i; + for (i = 0; i < 4; i++) + globalarr2[i] = i; + mystruct.memberc = 101; mystruct.memberi = 102; mystruct.memberf = 103.3; @@ -283,6 +287,8 @@ main (argc, argv, envp) globalp = 0; for (i = 0; i < 15; i++) globalarr[i] = 0; + for (i = 0; i < 4; i++) + globalarr2[i] = 0; end (); return 0; diff --git a/gdb/testsuite/gdb.trace/collection.exp b/gdb/testsuite/gdb.trace/collection.exp index 4e0a30d..c966f2f 100644 --- a/gdb/testsuite/gdb.trace/collection.exp +++ b/gdb/testsuite/gdb.trace/collection.exp @@ -457,13 +457,29 @@ proc gdb_collect_globals_test { } { } } + # Use use this to test collecting overlapping memory ranges + # (making use of UNOP_MEMVAL, as objects don't usually overlap + # other objects). Note that globalarr2 should not be collected in + # any other way so that a regression test below can be effective. + + set globalarr2_addr "" + set test "get address of globalarr2" + gdb_test_multiple "p /x &globalarr2" $test { + -re " = (0x\[0-9a-f\]+)\r\n$gdb_prompt $" { + set globalarr2_addr $expect_out(1,string) + pass $test + } + } + gdb_test "trace $testline" \ "Tracepoint \[0-9\]+ at .*" \ "collect globals: set tracepoint" gdb_trace_setactions "collect globals: define actions" \ "" \ "collect globalc, globali, globalf, globald" "^$" \ - "collect globalstruct, globalp, globalarr" "^$" + "collect globalstruct, globalp, globalarr" "^$" \ + "collect \{int \[4\]\}$globalarr2_addr" "^$" \ + "collect \{int \[2\]\}$globalarr2_addr" "^$" # Begin the test. run_trace_experiment "globals" globals_test_func @@ -508,6 +524,12 @@ proc gdb_collect_globals_test { } { "\\$\[0-9\]+ = 3$cr" \ "collect globals: collected global array element #3" + # Check that we didn't mess up sort&merging memory ranges to + # collect. + gdb_test "print globalarr2" \ + "\\$\[0-9\]+ = \\{0, 1, 2, 3\\}$cr" \ + "collect globals: collected global array 2" + gdb_test "tfind none" \ "#0 end .*" \ "collect globals: cease trace debugging" |