bug-ddd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

3.3.8 fails on SW8.1


From: Bob Toxen
Subject: 3.3.8 fails on SW8.1
Date: Sat, 7 Feb 2004 02:34:06 -0500

I utterly love DDD and think that it's the best use of GUI technology
that I've ever seen (and I don't usually like GUI programs).  I even
mentioned it in my book, Real World Linux Security.

However, DDD 3.3.8 does not compile on my stock Slackware 8.1 system.

The configure script can determine that it's a Slackware system by the
presence of the /etc/slackware-version file.  On SW8.1 its contents are:

     Slackware 8.1

There is a conflict between the SW file:

  /usr/lib/gcc-lib/i386-slackware-linux/2.95.3/../../../../include/g++-3/string

when compiling the file ddd.C:

make[2]: Entering directory `/root/tarballs/ddd-3.3.8/ddd'
source='ddd.C' object='ddd.o' libtool=no \
depfile='.deps/ddd.Po' tmpdepfile='.deps/ddd.TPo' \
depmode=gcc /bin/sh ../depcomp \
g++ -DHAVE_CONFIG_H -I. -I. -I. -I./.. -isystem /usr/X11/include     -DNDEBUG 
-O2 -g -Wall -W -trigraphs  -c -o ddd.o `test -f 'ddd.C' || echo './'`ddd.C
In file included from ddd.h:36,
                 from ddd.C:138:
strclass.h:454: conflicting types for `struct string'
/usr/lib/gcc-lib/i386-slackware-linux/2.95.3/../../../../include/g++-3/string:9:
 previous declaration as `typedef class 
basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > 
string'
strclass.h: In method `class string & string::operator =(ostringstream &)':
strclass.h:1143: no matching function for call to `string::string (string)'
strclass.h:574: candidates are: string::string(int)
strclass.h:946:                 string::string()
strclass.h:953:                 string::string(const string &)
strclass.h:974:                 string::string(const subString &)
strclass.h:981:                 string::string(const constSubString &)
strclass.h:960:                 string::string(const char *)
strclass.h:967:                 string::string(const char *, int)
strclass.h:988:                 string::string(char)
strclass.h:585:                 string::string(ostringstream &)
strclass.h:1144: no matching function for call to `string::c_str () const'
make[2]: *** [ddd.o] Error 1
make[2]: Leaving directory `/root/tarballs/ddd-3.3.8/ddd'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/root/tarballs/ddd-3.3.8/ddd'
make: *** [all-recursive] Error 1

======================================================================

It seems to have the same problem on RH7.3 (my other standard platform):

make[2]: Entering directory `/cavu2/home/bob/monitoring/ddd-3.3.8/ddd'
cat ./host.h.in | \
sed "s%@HOST_CANONICAL@%i686-pc-linux-gnu%" | \
sed "s%@TARGET_CANONICAL@%i686-pc-linux-gnu%" | \
    cat > host.h~ && mv host.h~ host.h
cat ./root.h.in | \
sed "s%@ROOT@%/usr/local/share/ddd-3.3.8%" | \
sed "s%@ALT_ROOT@%/usr/local/share/ddd%" | \
    cat > root.h~ && mv root.h~ root.h
source='ddd.C' object='ddd.o' libtool=no \
depfile='.deps/ddd.Po' tmpdepfile='.deps/ddd.TPo' \
depmode=gcc3 /bin/sh ../depcomp \
g++ -DHAVE_CONFIG_H -I. -I. -I. -I./.. -isystem /usr/X11R6/include    -DNDEBUG 
-O2 -g -Wall -W -trigraphs  -c -o ddd.o `test -f 'ddd.C' || echo './'`ddd.C
In file included from ddd.h:36,
                 from ddd.C:138:
strclass.h:454: conflicting types for `struct string'
/usr/include/g++-3/string:9: previous declaration as `typedef class 
basic_string<char, string_char_traits<char>, 
__default_alloc_template<true, 0> > string'
strclass.h:553: conflicting types for `struct string'
strclass.h:454: previous declaration as `class string'
strclass.h: In method `const char *subString::chars () const':
strclass.h:919: invalid use of undefined type `class string'
strclass.h:454: forward declaration of `class string'
strclass.h: In method `const char *constSubString::chars () const':
strclass.h:923: invalid use of undefined type `class string'
strclass.h:454: forward declaration of `class string'
strclass.h: At top level:
strclass.h:1018: no `subString::subString (string &, int, int)' member 
function declared in class `subString'
strclass.h: In method `subString::subString (string &, int, int)':
strclass.h:1018: could not convert `x' to `string &'
strclass.h:513: prior parameter's size depends on `subString *const 
this'
strclass.h:513: prior parameter's size depends on `subString *const 
this'
strclass.h: At top level:
strclass.h:1027: no `constSubString::constSubString (const string &, 
int, int)' member function declared in class `constSubString'
strclass.h: In method `constSubString::constSubString (const string &, 
int, int)':
strclass.h:1027: could not convert `x' to `const string &'
strclass.h:468: prior parameter's size depends on `constSubString 
*const this'
strclass.h:468: prior parameter's size depends on `constSubString 
*const this'
strclass.h: In method `string &string::operator= (ostringstream &)':
strclass.h:1143: could not convert `ostringstream(1, 
(&stringstreambase::str()), 2)' to `ostringstream &'
strclass.h:585: in passing argument 1 of `string::string (ostringstream 
&)'
strclass.h:1144: no matching function for call to `string::c_str () 
const'
strclass.h: At top level:
strclass.h:1216: no `subString &subString::operator= (const string &)' 
member function declared in class `subString'
In file included from ddd.h:36,
                 from ddd.C:138:
strclass.h: In method `subString &subString::operator= (const string 
&)':
strclass.h:523: prior parameter's size depends on `subString *const 
this'
strclass.h:523: prior parameter's size depends on `subString *const 
this'
strclass.h: In method `subString &subString::operator= (const subString 
&)':
strclass.h:1222: invalid use of undefined type `class string'
strclass.h:454: forward declaration of `class string'
strclass.h: In method `bool subString::contains (const char *) const':
strclass.h:1803: invalid use of undefined type `class string'
strclass.h:454: forward declaration of `class string'
strclass.h: In method `bool constSubString::contains (char *) const':
strclass.h:1808: invalid use of undefined type `class string'
strclass.h:454: forward declaration of `class string'
strclass.h: At top level:
strclass.h:1812: no `bool constSubString::contains (const string &) 
const' member function declared in class `constSubString'
strclass.h: In method `bool constSubString::contains (const string &) 
const':
strclass.h:1813: invalid use of undefined type `class string'
strclass.h:454: forward declaration of `class string'
strclass.h: In method `bool constSubString::contains (const 
constSubString &) const':
strclass.h:1818: invalid use of undefined type `class string'
strclass.h:454: forward declaration of `class string'
strclass.h: In method `bool constSubString::contains (char) const':
strclass.h:1823: invalid use of undefined type `class string'
strclass.h:454: forward declaration of `class string'
strclass.h: In method `subString string::_substr (int, int)':
strclass.h:2036: no matching function for call to `subString::subString 
(string &, int, int)'
strclass.h:513: candidates are: subString::subString (string &, int, 
int)
strclass.h:1016:                 subString::subString (const subString 
&)
strclass.h:2038: no matching function for call to `subString::subString 
(string &, int &, int &)'
strclass.h:513: candidates are: subString::subString (string &, int, 
int)
strclass.h:1016:                 subString::subString (const subString 
&)
strclass.h: In method `constSubString string::_substr (int, int) 
const':
strclass.h:2044: no matching function for call to 
`constSubString::constSubString (string &, int, int)'
strclass.h:468: candidates are: constSubString::constSubString (const 
string &, int, int)
strclass.h:1023:                 constSubString::constSubString (const 
constSubString &)
strclass.h:1025:                 constSubString::constSubString (const 
subString &)
strclass.h:2046: no matching function for call to 
`constSubString::constSubString (const string &, int &, int &)'
strclass.h:468: candidates are: constSubString::constSubString (const 
string &, int, int)
strclass.h:1023:                 constSubString::constSubString (const 
constSubString &)
strclass.h:1025:                 constSubString::constSubString (const 
subString &)
make[2]: *** [ddd.o] Error 1
make[2]: Leaving directory `/cavu2/home/bob/monitoring/ddd-3.3.8/ddd'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/cavu2/home/bob/monitoring/ddd-3.3.8/ddd'
make: *** [all-recursive] Error 1

======================================================================

3.3.7 fails on each platform similarly.  Very disappointing.

======================================================================

3.3.1 builds and runs successfully on RH7.3.

However, 3.3.1 (and 3.1.3) has a bug in that they do not check the
return code from ptrace() for errors.  I have created a no_ptrace()
kernel loadable module to block the invocation of ptrace() on Production
systems, including my main development system, due to the recent security
bugs found in ptrace().  When I tried to use DDD to debug a program I
forgot about the no_ptrace().

DDD allowed me to set breakpoints without complaint.  However, when I ran
the program under test none of the breakpoints interrupted execution.
In other words, it did not detect that ptrace() was return an error
and not alerting the user.  Perhaps this is a bug in gdb instead.

Best regards,

Bob Toxen, CTO
Fly-By-Day Consulting, Inc.
"Your expert in Firewalls, Virus and Spam Filters, VPNs,
Network Monitoring, and Network Security consulting"
bob@verysecurelinux.com (e-mail)
+1 770-662-8321  (Office: 10am-6pm US Eastern Time)

My recent talks on Linux security include:
  at IBM's Linux Competency Center in New York City     on Mar.  06 last year
  at the Atlanta SecureWorld Expo in Atlanta            on May   22 last year
  at the Enterprise Linux Forum in Silicon Valley       on June  04 last year
  at Computer Associates' Atlanta Linux Security Summit on Sep.  16 last year
  at Southeast Cybercrime Summit in Atlanta             on Mar. 2-5 2004
  at the FBI's Atlanta headquarters                     on Mar.  10 2004

Author,
"Real World Linux Security: Intrusion Detection, Prevention, and Recovery"
2nd Ed., Prentice Hall, (C) 2003, 848 pages, ISBN: 0130464562
Also available in Japanese, Chinese, and Czech.

Author,
"Real World Linux Security: Intrusion Detection, Prevention, and Recovery"
Prentice Hall, (C) 2001, 700 pages

http://www.verysecurelinux.com       [Network & Linux/Unix Security Consulting]
http://www.realworldlinuxsecurity.com [My 5* book: "Real World Linux Security"]
http://www.verysecurelinux.com/sunset.html                    [Sunset Computer]
Quality Linux, UNIX and network security and software consulting since 1990.

Public key available at http://www.verysecurelinux.com/pubkey.txt, keyservers,
  and on the CD-ROM that comes sealed and attached to Real World Linux Security
pub  1024D/E3A1C540 2000-06-21 Bob Toxen <book@realworldlinuxsecurity.com>
     Key fingerprint = 30BA AA0A 31DD B68B 47C9  601E 96D3 533D E3A1 C540
sub  2048g/03FFCCB9 2000-06-21




reply via email to

[Prev in Thread] Current Thread [Next in Thread]