This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch libstdc++] Add xmethods for std::vector and std::unique_ptr
- From: Tom Tromey <tromey at redhat dot com>
- To: Siva Chandra <sivachandra at google dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 30 Jun 2014 09:00:40 -0600
- Subject: Re: [patch libstdc++] Add xmethods for std::vector and std::unique_ptr
- Authentication-results: sourceware.org; auth=none
- References: <CAGyQ6gxpgbnNobkdKeOD5jGQRbo7KG4wbe5XXyf_eMvNW1k9Aw at mail dot gmail dot com>
>>>>> "Siva" == Siva Chandra <sivachandra@google.com> writes:
Siva> +# Load the xmethods.
Siva> +from libstdcxx.v6.xmethods import register_libstdcxx_xmethods
Siva> +register_libstdcxx_xmethods (gdb.current_objfile ())
I don't think any addition to the hook file should be needed.
Siva> + # The object to be returned is the 0-th element in the tuple _m_t.
Siva> + # The following retrieves the 0-th element of this tuple.
Siva> + _m_t_base = _m_t[_m_t.type.fields()[0]] # std::tuple has a single base
Siva> + # class and no data members.
Siva> + for f in _m_t_base.type.fields():
Siva> + # The object is embedded in the _Head_base<> base class of
Siva> + # _m_t_base.
Siva> + if f.is_base_class and f.name.find('std::_Head_base<') == 0:
Siva> + _head_base = _m_t_base[f]
Did you investigate sharing any code with the printers?
If so, why did you choose not to?
If not, could you please look into that?
Tom