Browse Source
When there is more than one inferior, the "record btrace" command should only apply to the current inferior. gdb/ChangeLog: 2020-03-19 Markus Metzger <markus.t.metzger@intel.com> * record-btrace.c (record_btrace_enable_warn): Ignore thread if its inferior is not recorded by us. (record_btrace_target_open): Replace call to all_non_exited_threads () with call to current_inferior ()->non_exited_threads (). (record_btrace_target::stop_recording): Likewise. (record_btrace_target::close): Likewise. (record_btrace_target::wait): Likewise. (record_btrace_target::record_stop_replaying): Likewise. gdb/testsuite/ChangeLog: 2020-03-19 Markus Metzger <markus.t.metzger@intel.com> * gdb.btrace/multi-inferior.c: New test. * gdb.btrace/multi-inferior.exp: New file.binutils-2_35-branch
5 changed files with 121 additions and 5 deletions
@ -0,0 +1,22 @@ |
|||
/* This testcase is part of GDB, the GNU debugger.
|
|||
|
|||
Copyright 2020 Free Software Foundation, Inc. |
|||
|
|||
This program is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation; either version 3 of the License, or |
|||
(at your option) any later version. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU General Public License |
|||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|||
|
|||
int |
|||
main (void) |
|||
{ |
|||
return 0; |
|||
} |
|||
@ -0,0 +1,72 @@ |
|||
# This testcase is part of GDB, the GNU debugger. |
|||
# |
|||
# Copyright 2020 Free Software Foundation, Inc. |
|||
# |
|||
# This program is free software; you can redistribute it and/or modify |
|||
# it under the terms of the GNU General Public License as published by |
|||
# the Free Software Foundation; either version 3 of the License, or |
|||
# (at your option) any later version. |
|||
# |
|||
# This program is distributed in the hope that it will be useful, |
|||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# GNU General Public License for more details. |
|||
# |
|||
# You should have received a copy of the GNU General Public License |
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
|
|||
# Test that recording is per-inferior. |
|||
# |
|||
# When recording an inferior, threads from other inferiors, both existing |
|||
# and newly created, are not automatically recorded. |
|||
# |
|||
# Each inferior can be recorded separately. |
|||
|
|||
if { [skip_btrace_tests] } { |
|||
unsupported "target does not support record-btrace" |
|||
return -1 |
|||
} |
|||
|
|||
standard_testfile |
|||
if [prepare_for_testing "failed to prepare" $testfile {} {debug}] { |
|||
return -1 |
|||
} |
|||
|
|||
with_test_prefix "inferior 1" { |
|||
if ![runto_main] { |
|||
untested "failed to run to main" |
|||
return -1 |
|||
} |
|||
} |
|||
|
|||
with_test_prefix "inferior 2" { |
|||
gdb_test "add-inferior -exec ${binfile}" "Added inferior 2.*" |
|||
gdb_test "inferior 2" "Switching to inferior 2.*" |
|||
|
|||
if ![runto_main] { |
|||
untested "inferior 2: failed to run to main" |
|||
return -1 |
|||
} |
|||
|
|||
gdb_test_no_output "record btrace" "record btrace" |
|||
} |
|||
|
|||
with_test_prefix "inferior 1" { |
|||
gdb_test "inferior 1" "Switching to inferior 1.*" |
|||
|
|||
gdb_test "info record" "No record target is currently active\\." |
|||
gdb_test_no_output "record btrace" "record btrace" |
|||
} |
|||
|
|||
with_test_prefix "inferior 3" { |
|||
gdb_test "add-inferior -exec ${binfile}" "Added inferior 3.*" |
|||
gdb_test "inferior 3" "Switching to inferior 3.*" |
|||
|
|||
if ![runto_main] { |
|||
untested "inferior 3: failed to run to main" |
|||
return -1 |
|||
} |
|||
|
|||
gdb_test "info record" "No record target is currently active\\." |
|||
gdb_test_no_output "record btrace" "record btrace" |
|||
} |
|||
Loading…
Reference in new issue