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
next 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