[PATCH v2 3/8] Use std::vector<bool> for agent_expr::reg_mask
Simon Marchi
simark@simark.ca
Wed Jun 21 16:16:20 GMT 2023
On 6/20/23 13:36, Tom Tromey wrote:
> agent_expr::reg_mask implements its own packed boolean vector. This
> patch replaces it with a std::vector<bool>, simplifying the code.
> ---
> gdb/ax-general.c | 33 +++++++++------------------------
> gdb/ax.h | 15 +++++----------
> gdb/tracepoint.c | 16 +++++-----------
> 3 files changed, 19 insertions(+), 45 deletions(-)
Starting with this patch, running gdb.ada/ax-ada.exp, I get (building
with -D_GLIBCXX_DEBUG):
(gdb) run
Starting program: /home/simark/build/binutils-gdb/gdb/testsuite/outputs/gdb.ada/ax-ada/prog
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/../lib/libthread_db.so.1".
Breakpoint 1, prog () at /home/simark/src/binutils-gdb/gdb/testsuite/gdb.ada/ax-ada/prog.adb:22
22 null; -- START
(gdb) maint agent-eval variable = 23
/usr/include/c++/13.1.1/debug/vector:442:
In function:
std::debug::vector<_Tp, _Allocator>::reference std::debug::vector<_Tp,
_Allocator>::operator[](size_type) [with _Tp = bool; _Allocator =
std::allocator<bool>; reference = std::vector<bool, std::allocator<bool>
>::reference; size_type = long unsigned int]
Error: attempt to subscript container with out-of-bounds index 6, but
container only holds 6 elements.
Objects involved in the operation:
sequence "this" @ 0x60f00000ac30 {
type = std::debug::vector<bool, std::allocator<bool> >;
}
Simon
More information about the Gdb-patches
mailing list