aboutsummaryrefslogtreecommitdiff
path: root/gdb/ChangeLog
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@polymtl.ca>2017-10-27 22:23:33 -0400
committerSimon Marchi <simon.marchi@ericsson.com>2017-10-27 22:23:48 -0400
commit5a9dcda14c240eccee5c1de53cf4ae936230ed0c (patch)
tree15a969c3f9ea45ec6466d81247e9580370ecb8be /gdb/ChangeLog
parent45461e0dcaf4193b5b4478031f515ffb7911ad85 (diff)
downloadgdb-5a9dcda14c240eccee5c1de53cf4ae936230ed0c.zip
gdb-5a9dcda14c240eccee5c1de53cf4ae936230ed0c.tar.gz
gdb-5a9dcda14c240eccee5c1de53cf4ae936230ed0c.tar.bz2
C++ify xml-syscall.c
This patch C++ifies the structures in xml-syscall.c, by using std::vector instead of VEC, and std::string instead of char*. Using a unique_ptr in syscall_parse_xml allows to remove a cleanup. Something that seems strange with the existing code, if you look at syscalls_info_free_syscalls_desc and syscalls_info_free_syscall_group_desc, they free the structure elements (the strings and vectors), but they don't free the syscall_desc and syscall_group_desc structure themselves. I don't see anything freeing those currently. Any idea why? According to the comment above syscalls_info_free_syscall_group_desc, it kinda looks like it's on purpose. With this patch, those structures are deleted when the vector that contains them gets deleted. The only time I'm aware a syscalls_info structure gets deleted is in the case the data directory changes during runtime, in init_syscalls_info. If tried that use case (including under valgrind): (gdb) catch syscall (gdb) set data-directory another-data-directory (gdb) catch syscall I confirmed that the syscalls_info structure got deleted and recreated, and everything seemed fine. Regtested on the buildbot. gdb/ChangeLog: * xml-syscall.c (struct syscall_desc): Add constructor. <name>: Change type to std::string. (syscall_desc_up): New typedef. (syscall_desc_p): Remove typeder. (DEF_VEC_P(syscall_desc_p)): Remove. (struct syscall_group_desc): Add constructor. <name>: Change type to std::string. <syscalls>: Change type to std::vector. (syscall_group_desc_up): New typedef. (syscall_group_desc_p): Remove typedef. (DEF_VEC_P(syscall_group_desc_p)): Remove. (struct syscalls_info) <syscalls>: Change type to std::vector of unique_ptr. <groups>: Likewise. <my_gdb_datadir>: Change type to std::string. (syscalls_info_up): New typedef. (allocate_syscalls_info): Remove. (syscalls_info_free_syscalls_desc): Remove. (syscalls_info_free_syscall_group_desc): Remove. (free_syscalls_info): Remove. (make_cleanup_free_syscalls_info): Remove. (syscall_group_create_syscall_group_desc): Adjust. (syscall_group_add_syscall): Adjust. (syscall_create_syscall_desc): Adjust. (syscall_parse_xml): Adjust, use unique_ptr instead of cleanup. (init_syscalls_info): Adjust. (syscall_group_get_group_by_name): Adjust. (xml_get_syscall_number): Adjust. (xml_get_syscall_name): Adjust. (xml_list_of_syscalls): Adjust. (xml_list_syscalls_by_group): Adjust. (xml_list_of_groups): Adjust.
Diffstat (limited to 'gdb/ChangeLog')
-rw-r--r--gdb/ChangeLog35
1 files changed, 35 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9c4e409..51e3422 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,38 @@
+2017-10-27 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * xml-syscall.c (struct syscall_desc): Add constructor.
+ <name>: Change type to std::string.
+ (syscall_desc_up): New typedef.
+ (syscall_desc_p): Remove typeder.
+ (DEF_VEC_P(syscall_desc_p)): Remove.
+ (struct syscall_group_desc): Add constructor.
+ <name>: Change type to std::string.
+ <syscalls>: Change type to std::vector.
+ (syscall_group_desc_up): New typedef.
+ (syscall_group_desc_p): Remove typedef.
+ (DEF_VEC_P(syscall_group_desc_p)): Remove.
+ (struct syscalls_info) <syscalls>: Change type to std::vector of
+ unique_ptr.
+ <groups>: Likewise.
+ <my_gdb_datadir>: Change type to std::string.
+ (syscalls_info_up): New typedef.
+ (allocate_syscalls_info): Remove.
+ (syscalls_info_free_syscalls_desc): Remove.
+ (syscalls_info_free_syscall_group_desc): Remove.
+ (free_syscalls_info): Remove.
+ (make_cleanup_free_syscalls_info): Remove.
+ (syscall_group_create_syscall_group_desc): Adjust.
+ (syscall_group_add_syscall): Adjust.
+ (syscall_create_syscall_desc): Adjust.
+ (syscall_parse_xml): Adjust, use unique_ptr instead of cleanup.
+ (init_syscalls_info): Adjust.
+ (syscall_group_get_group_by_name): Adjust.
+ (xml_get_syscall_number): Adjust.
+ (xml_get_syscall_name): Adjust.
+ (xml_list_of_syscalls): Adjust.
+ (xml_list_syscalls_by_group): Adjust.
+ (xml_list_of_groups): Adjust.
+
2017-10-27 Simon Marchi <simon.marchi@ericsson.com>
* probe.h: Don't include gdb_vecs.h.