This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 0/3] Create arch_lwp_info class hierarchy


I have the goal of "poisoning" the XNEW/xfree-family of functions, so
that we catch their usages with non-POD types.  A few things need to be
fixed in the mean time, this is one.

The common lwp code in linux-nat.c and gdbserver/linux-low.c xfrees the
private lwp data of type arch_lwp_info.  However, that type is opaque
from its point of view, as its defined differently in each arch-specific
implementation.  This trips on the std::is_pod<T> check, since the
compiler can't tell whether the type is POD or not if it doesn't know
about it.

I think the right fix going forward is to make a hierachy out of these
structs, so that they all inherit from a common base.  That's what patch
3 does.  Patches 1 and 2 simply C++ify the GDB and GDBserver lwp_info
structures so that it's possible to use unique_ptr fields.

Simon Marchi (3):
  gdb lwp_info: Add destructor, initialize fields, use new/delete
  gdbserver lwp_info: Initialize fields, use new/delete
  Create arch_lwp_info class hierarchy

 gdb/arm-linux-nat.c              |  21 ++++----
 gdb/gdbserver/linux-arm-low.c    |  31 ++++++------
 gdb/gdbserver/linux-low.c        | 101 +++++++++++++++++++--------------------
 gdb/gdbserver/linux-low.h        |  52 ++++++++++----------
 gdb/gdbserver/linux-mips-low.c   |  16 ++++---
 gdb/gdbserver/thread-db.c        |   4 +-
 gdb/linux-nat.c                  |  99 +++++++++++++++++---------------------
 gdb/linux-nat.h                  |  54 +++++++++++----------
 gdb/nat/aarch64-linux-hw-point.c |   4 +-
 gdb/nat/aarch64-linux-hw-point.h |   6 +--
 gdb/nat/aarch64-linux.c          |   4 +-
 gdb/nat/linux-nat.h              |   7 ++-
 gdb/nat/x86-linux.c              |  12 +++--
 gdb/s390-linux-nat.c             |  11 +++--
 14 files changed, 213 insertions(+), 209 deletions(-)

-- 
2.7.4


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]