mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-01 20:12:01 +08:00
Get rid of VEC(static_tracepoint_marker_p)
This patch replaces VEC(static_tracepoint_marker_p) with std::vector, and does some c++ification around that. I thought a new overload of hex2str was useful, so I added it as well as corresponding unit tests. I also added an overload of ui_out::field_string that takes an std::string directly. gdb/ChangeLog: * tracepoint.h (struct static_tracepoint_marker): Initialize fields, define default constructor, move constructor and move assignment, disable the rest. <str_id, extra>: Make std::string. (release_static_tracepoint_marker): Remove. (free_current_marker): Remove. * tracepoint.c (free_current_marker): Remove. (parse_static_tracepoint_marker_definition): Adjust to std::string, use new hex2str overload. (release_static_tracepoint_marker): Remove. (print_one_static_tracepoint_marker): Get marker by reference and adjust to std::string. (info_static_tracepoint_markers_command): Adjust to std::vector changes * target.h (static_tracepoint_marker_p): Remove typedef. (DEF_VEC_P(static_tracepoint_marker_p)): Remove. (struct target_ops) <to_static_tracepoint_marker_at>: Return bool. <to_static_tracepoint_markers_by_strid>: Return std::vector. * target-debug.h (target_debug_print_VEC_static_tracepoint_marker_p_p): Remove. (target_debug_print_std_vector_static_tracepoint_marker): New. (target_debug_print_struct_static_tracepoint_marker_p): Rename to... (target_debug_print_static_tracepoint_marker_p): ... this. * target-delegates.c: Re-generate. * breakpoint.h (struct tracepoint) <static_trace_marker_id>: Make std::string. * breakpoint.c (init_breakpoint_sal): Adjust to std::string. (decode_static_tracepoint_spec): Adjust to std::vector. (tracepoint_print_one_detail): Adjust to std::string. (strace_marker_decode_location): Adjust to std::string. (update_static_tracepoint): Adjust to std::string, remove call to release_static_tracepoint_marker. * linux-nat.c (linux_child_static_tracepoint_markers_by_strid): Adjust to std::vector. * remote.c (remote_static_tracepoint_marker_at): Return bool. (remote_static_tracepoint_markers_by_strid): Adjust to std::vector. * common/rsp-low.h (hex2str): New overload with explicit count of bytes. * common/rsp-low.c (hex2str): New overload with explicit count of bytes. * unittests/rsp-low-selftests.c (test_hex2str): New function. (_initialize_rsp_low_selftests): Add test_hex2str test. * unittests/tracepoint-selftests.c (test_parse_static_tracepoint_marker_definition): Adjust to std::string.
This commit is contained in:

committed by
Simon Marchi

parent
62c222b6d9
commit
5d9310c4b8
@ -4291,17 +4291,17 @@ cleanup_target_stop (void *arg)
|
||||
target_continue_no_signal (*ptid);
|
||||
}
|
||||
|
||||
static VEC(static_tracepoint_marker_p) *
|
||||
static std::vector<static_tracepoint_marker>
|
||||
linux_child_static_tracepoint_markers_by_strid (struct target_ops *self,
|
||||
const char *strid)
|
||||
{
|
||||
char s[IPA_CMD_BUF_SIZE];
|
||||
struct cleanup *old_chain;
|
||||
int pid = ptid_get_pid (inferior_ptid);
|
||||
VEC(static_tracepoint_marker_p) *markers = NULL;
|
||||
struct static_tracepoint_marker *marker = NULL;
|
||||
std::vector<static_tracepoint_marker> markers;
|
||||
const char *p = s;
|
||||
ptid_t ptid = ptid_build (pid, 0, 0);
|
||||
static_tracepoint_marker marker;
|
||||
|
||||
/* Pause all */
|
||||
target_stop (ptid);
|
||||
@ -4311,29 +4311,16 @@ linux_child_static_tracepoint_markers_by_strid (struct target_ops *self,
|
||||
|
||||
agent_run_command (pid, s, strlen (s) + 1);
|
||||
|
||||
old_chain = make_cleanup (free_current_marker, &marker);
|
||||
make_cleanup (cleanup_target_stop, &ptid);
|
||||
old_chain = make_cleanup (cleanup_target_stop, &ptid);
|
||||
|
||||
while (*p++ == 'm')
|
||||
{
|
||||
if (marker == NULL)
|
||||
marker = XCNEW (struct static_tracepoint_marker);
|
||||
|
||||
do
|
||||
{
|
||||
parse_static_tracepoint_marker_definition (p, &p, marker);
|
||||
parse_static_tracepoint_marker_definition (p, &p, &marker);
|
||||
|
||||
if (strid == NULL || strcmp (strid, marker->str_id) == 0)
|
||||
{
|
||||
VEC_safe_push (static_tracepoint_marker_p,
|
||||
markers, marker);
|
||||
marker = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
release_static_tracepoint_marker (marker);
|
||||
memset (marker, 0, sizeof (*marker));
|
||||
}
|
||||
if (strid == NULL || marker.str_id == strid)
|
||||
markers.push_back (std::move (marker));
|
||||
}
|
||||
while (*p++ == ','); /* comma-separated list */
|
||||
|
||||
|
Reference in New Issue
Block a user