Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: viju vincent <vijuvince@gmail.com>
To: gdb@sourceware.org
Subject: Issue with printing binary operator overloaded function on GDB 7.2
Date: Thu, 23 Dec 2010 07:53:00 -0000	[thread overview]
Message-ID: <AANLkTinkkBPcJA5cSAe_oWctit1cJD5Ad3GhpZKnpzn=@mail.gmail.com> (raw)

Dear all,

 I am facing an issue while printing binary operator overloaded
function using GDB 7.2 on armv7a target

 Compiled C++  test code (gdb.cp/cpexprs.cc) using g++ (4.5.1)

 * On GDB 7.2 its showing multiple operator overloading functions for
binary operators

 * In case of cpexprs.exp testcase on GDB 7.2

 * From GDB log
{{{
   print base::operator!=
$17 = {bool (const base * const, const void &)} 0x9784
<base::operator!=(void const&) const>
(gdb) FAIL: gdb.cp/cpexprs.exp: print base::operator!=
}}}

* The available overloaded functions are displayed on GDB prompt

{{{
(gdb) p base::operator
operator char*() const             operator-=(void const&)
operator delete(void*)             operator->() const
operator delete[](void*)           operator->*(base const&) const
operator fluff*() const              operator->*(void const&) const
operator fluff**() const            operator/(base const&) const
operator int() const                  operator/(void const&) const
operator new(size_t)                operator/=(base const&)
operator new(unsigned int)       operator/=(void const&)
operator new[](size_t)              operator<(base const&) const
operator new[](unsigned int)     operator<(void const&) const
operator!() const                       operator<<(int) const
operator!=(base const&) const    operator<<=(int)
operator!=(void const&) const     operator<=(base const&) const
operator%(base const&) const     operator<=(void const&) const
operator%(void const&) const     operator=(base const&)
operator%=(base const&)           operator=(void const&)
operator%=(void const&)            operator==(base const&) const
operator&&(base const&) const    operator==(void const&) const
operator&&(void const&) const     operator>(base const&) const
operator&(base const&) const      operator>(void const&) const
operator&(void const&) const       operator>=(base const&) const
operator&=(base const&)            operator>=(void const&) const
operator&=(void const&)             operator>>(int) const
operator()() const                       operator>>=(int)
operator*(base const&) const      operator[](int) const
operator*(void const&) const       operator^(base const&) const
operator*=(base const&)             operator^(void const&) const
operator*=(void const&)              operator^=(base const&)
operator+(base const&) const      operator^=(void const&)
operator+(void const&) const       operator|(base const&) const
operator++()                              operator|(void const&) const
operator+=(base const&)             operator|=(base const&)
operator+=(void const&)              operator|=(void const&)
operator-(base const&) const        operator||(base const&) const
operator-(void const&) const        operator||(void const&) const
operator--()                                operator~() const
operator-=(base const&)
(gdb)
(gdb) print base::operator!=
$3 = {bool (const base * const, const void &)} 0x9784
<base::operator!=(void const&) const>
(gdb)
}}}

  * here there are  duplicate overloaded functions (for binary
operators) showing with void class object reference as an argument

  * output of "print base::operator!=" is not the expected one.
instead of "const void &", "const base &" is required


 * Same C++  source code (cpexprs.cc) compiled with gcc 4.3.3 and
debuged using GDB 7.2

   * Here no duplicate operator overloading function are displayed for
binary operators

   * And getting expected result on GDB while printing binary operator
overloaded function
{{{
(gdb) p base::operator
operator char*() const              operator--()
operator delete(void*)              operator-=(base const&)
operator delete[](void*)            operator->() const
operator fluff*() const               operator->*(base const&) const
operator fluff**() const             operator/(base const&) const
operator int() const                   operator/=(base const&)
operator new(size_t)                 operator<(base const&) const
operator new(unsigned int)        operator<<(int) const
operator new[](size_t)               operator<<=(int)
operator new[](unsigned int)      operator<=(base const&) const
operator!() const                        operator=(base const&)
operator!=(base const&) const    operator==(base const&) const
operator%(base const&) const    operator>(base const&) const
operator%=(base const&)          operator>=(base const&) const
operator&&(base const&) const   operator>>(int) const
operator&(base const&) const     operator>>=(int)
operator&=(base const&)           operator[](int) const
operator()() const                      operator^(base const&) const
operator*(base const&) const      operator^=(base const&)
operator*=(base const&)            operator|(base const&) const
operator+(base const&) const     operator|=(base const&)
operator++()                             operator||(base const&) const
operator+=(base const&)            operator~() const
operator-(base const&) const
(gdb) p base::operator!=
$1 = {bool (const base * const, const base &)} 0x9904
<base::operator!=(base const&) const>
(gdb)
}}}


if you have any idea to fix this issue, please share it

thanks and regards
viju


             reply	other threads:[~2010-12-23  7:53 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-23  7:53 viju vincent [this message]
2010-12-27 19:38 ` Keith Seitz
2010-12-27 19:44   ` Andreas Schwab
2010-12-27 20:05     ` Keith Seitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='AANLkTinkkBPcJA5cSAe_oWctit1cJD5Ad3GhpZKnpzn=@mail.gmail.com' \
    --to=vijuvince@gmail.com \
    --cc=gdb@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox