bug-ddd
[Top][All Lists]
Advanced

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

Re: DDD 3.3.10 (sparc-sun-solaris2.8) gets `Abort' signal


From: Arnaud Desitter
Subject: Re: DDD 3.3.10 (sparc-sun-solaris2.8) gets `Abort' signal
Date: Mon, 8 Nov 2004 10:05:40 -0000

Hi Ludger,

Your compiler is old and not conformant. You should either get the most
recent Sun compiler, apply a Sun patch or use the most recent gcc.

As well, please provide a patch (using diff -u oldfile newfile). But, then,
ddd builds fine with a recent C++ compiler.

Regards,

----- Original Message ----- From: "Ludger Theile" <Ludger.Theile@hkm.de>
Newsgroups: gmane.comp.debugging.ddd.bugs
Sent: Friday, November 05, 2004 10:48 AM
Subject: DDD 3.3.10 (sparc-sun-solaris2.8) gets `Abort' signal


Hello,

while compiling the DDD Project i got compiler errors in cases when using
the "?:"-operator with a combination of string and non-string objects like "".

After i made the beyond mentioned changes, the project compiles successfully.
But after the command

$make check

or after simple calling ddd, i get an assertion-abort.


Plattform:

Sun Solaris SunOS 5.8

Debugger:
dbx: WorkShop 5.0 12/18/98 [dbx 5.0]

Compiler:
CC: WorkShop Compilers 5.0 02/10/08 C++ 5.0 Patch 107311-19


Changes in DDD-3.3.10 by Ludger Theile,05.11.2004

/*************************************************************************/
/*************************************************************************/
/*                                                                       */
/*    Box.C                                                              */
/*                                                                       */
/*************************************************************************/

// Name of the TagBox at P
string Box::name(const BoxPoint& p) const
{
   const TagBox *t = findTag(p);
   string tmp("");
   return ((t) ? (t)->__name() : tmp);
}

// Information of the TagBox at P
string Box::info(const BoxPoint &p) const
{
   const TagBox *t = findTag(p);
   string tmp("");
   return ((t) ? (t)->__info() : tmp);
}

/*************************************************************************/
/*************************************************************************/


/*************************************************************************/
/*************************************************************************/
/*                                                                       */
/*    VSLDefList.h                                                       */
/*                                                                       */
/*************************************************************************/

   string f_name() const
   {
      string tmp(_func_name.from(1));
      return
 (_func_name[0] == '#') ?
 tmp:
 _func_name;
   }

/*************************************************************************/
/*************************************************************************/
/*                                                                       */
/*    comm-manag.C                                                       */
/*                                                                       */
/*************************************************************************/

static void extra_completed (StringArray& answers,
    const VoidArray& /* qu_datas */,
    void*  data)
{
  string tmp("");
  int count = answers.size();
  for (int i = 0; i < count; i++)
     filter_junk(answers[i]);

  ExtraData* extra_data = (ExtraData *)data;
  int qu_count = 0;
  string file;

  while (extra_data->n_init > 0)
  {
  // Handle output of initialization commands
  process_init((qu_count<count)?(answers[qu_count++]):tmp);
  extra_data->n_init--;
  }

  if (extra_data->refresh_recent_files)
  {
  // Clear undo buffer.  Do this before setting the initial line,
  // such that it becomes part of the history.
  undo_buffer.clear();
  }

  if (extra_data->refresh_initial_line)
  {
switch (gdb->type())
{
case GDB:
{
   string info_line;

   // Handle `info line' output
   string info_line1 = (qu_count<count)?(answers[qu_count++]):tmp;
   string list       = (qu_count<count)?(answers[qu_count++]):tmp;
   string info_line2 = (qu_count<count)?(answers[qu_count++]):tmp;

   // Skip initial message lines like `Reading symbols...'
   while (!list.empty() && !has_nr(list))
   list = list.after('\n');

   if (atoi(list.chars()) == 0)
   {
   // No listing => no source.
   info_line = "";
   }
   else
   {
   // Handle `info line' output
   info_line = info_line1;
   if (!info_line.contains("Line ", 0))
        info_line = info_line2;
   }

   // Goto initial line
   source_view->process_info_line_main(info_line);
   find_some_source();
   break;
}

case XDB:
{
   // Goto initial line
   source_view->process_info_line_main(answers[qu_count++]);
   find_some_source();
   break;
}

case BASH:
case DBG:
case DBX:
case JDB:
case PERL:
case PYDB:
{
      if (gdb->type() == DBX && gdb->isSunDBX())
   {
   string list = (qu_count<count)?(answers[qu_count++]):tmp;
   string line = (qu_count<count)?(answers[qu_count++]):tmp;

   list = list.before('\n');
   line = line.before('\n');

   string pos = list + ":" + line;

   source_view->process_info_line_main(pos);
      find_some_source();
   source_view->lookup(pos, true);
   }
   // Clear caches and such
   string dummy = "";
   source_view->process_info_line_main(dummy);
   find_some_source();
   break;
}
}
  }

/*************************************************************************/
/*************************************************************************/
/*                                                                       */
/*    fonts.C                                                            */
/*                                                                       */
/*************************************************************************/

static void define_font(const AppData& ad,
const string& name, DDDFont base,
const string& override = "")
{
   string font = make_font(ad, base, override);
   const string s1 = upcase(name);
   defineConversionMacro(s1.chars(), font.chars());
   font_defs[name] = font;

   if (ad.show_fonts)
   {
      string defstr("default");
   string symbol("@");

   const string sym =
      (name == MSTRING_DEFAULT_CHARSET) ?
      defstr :
      symbol + name;
   std::cout << sym << "\t" << font << "\n";
   }
}


/*************************************************************************/
/*************************************************************************/
/*                                                                       */
/*    BreakPoint.C                                                       */
/*                                                                       */
/*************************************************************************/

string BreakPoint::condition() const
{
  string tmp(real_condition().after(and_op()));
 return
   (is_false(real_condition())) ?
   tmp :
   real_condition();
}


/*************************************************************************/
/*************************************************************************/
/*                                                                       */
/*    GDBAgent.C                                                         */
/*                                                                       */
/*************************************************************************/

string GDBAgent::info_display_command() const
{
  string tmp("info display");
   return
     (type() == GDB || type() == BASH) ?
     tmp:
     display_command();
}

/*************************************************************************/
/*************************************************************************/
/*************************************************************************/
/*************************************************************************/




Mit freundlichen Grüßen


Ludger Theile



----------------------------------------------------------------------------

Huettenwerke Krupp-Mannesmann
CI-MV

Tel.: 0203/999-2589                            Ehingerstr. 200
Fax.: 0203/999-4416                            D-47259 Duisburg
E-mail: ludger.theile@hkm.de
----------------------------------------------------------------------------





--------------------------------------------------------------------------------


_______________________________________________
Bug-ddd mailing list
Bug-ddd@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-ddd






reply via email to

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