bug-ddd
[Top][All Lists]
Advanced

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

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


From: Ludger Theile
Subject: DDD 3.3.10 (sparc-sun-solaris2.8) gets `Abort' signal
Date: Fri, 05 Nov 2004 13:17:50 +0100

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.

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

Console output:

er203 tl /u32/tl/ddd-3.3.10 : make check
Making check in themes
gnumake[1]: Entering directory `/er203_d50/home/u32/tl/ddd-3.3.10/themes'
gnumake[1]: Nothing to be done for `check'.
gnumake[1]: Leaving directory `/er203_d50/home/u32/tl/ddd-3.3.10/themes'
Making check in vsllib
gnumake[1]: Entering directory `/er203_d50/home/u32/tl/ddd-3.3.10/vsllib'
gnumake[1]: Nothing to be done for `check'.
gnumake[1]: Leaving directory `/er203_d50/home/u32/tl/ddd-3.3.10/vsllib'
Making check in ddd
gnumake[1]: Entering directory `/er203_d50/home/u32/tl/ddd-3.3.10/ddd'
MALLOC_CHECK_=2 \
DDD_HOME=./.. \
XUSERFILESEARCHPATH=%N XAPPLRESDIR=. \
./ddd --dbx cxxtest

comm-manag.C: In function `':
comm-manag.C:3274: assertion `qu_count == count' failed
/bin/sh: gdb: not found

Internal error (Abort).

Oops!  You have found a bug in DDD.

If you can reproduce this bug, please send a bug report
to <ddd@gnu.org>, giving a subject like

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

To enable us to fix the bug, you should include the following information:
* What you were doing to get this message.  Report all the facts.
* The contents of the `~/.ddd/log' file as generated by this session.
Please read also the section "Reporting Bugs" in the DDD manual.

We thank you for your support.

/bin/sh -c 'exec dbx '\''cxxtest'\''' [17167]: Hangup
gnumake[1]: *** [check-now] Abort (core dumped)
gnumake[1]: Leaving directory `/er203_d50/home/u32/tl/ddd-3.3.10/ddd'
gnumake: *** [check-recursive] Error 1


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

dbx stack trace:

(/opt/SUNWspro/bin/../WS5.0/bin/sparcv9/dbx) where
  [1] _libc_kill(0x0, 0x6, 0xfecc3a54, 0x0, 0xffaed778, 0x790b8f), at 0xfec9fba0
=>[2] ddd_signal(sig = 6, ...), line 397 in "exit.C"
  [3] ddd_fatal(sig = 6, ...), line 524 in "exit.C"
  [4] sigacthandler(0x6, 0x0, 0xffaedc50, 0xffaedf78, 0x21ec8, 0xfec358d8), at 
0xfec9ebc4
  ---- called from signal handler with signal 6 (SIGABRT) ------
  [5] _libc_kill(0x0, 0x6, 0xffaedf68, 0xffaedf78, 0x21ec8, 0xfec358d8), at 
0xfec9fba0
  [6] abort(0xfecbc008, 0xffaedf6c, 0x9, 0xcca, 0x0, 0xfffffff6), at 0xfec35944
  [7] ddd_assert_fail(assertion = 0x78ebb0 "qu_count == count", file = 0x78ebc4 
"comm-manag.C", line = 3274U, function = 0x78ebd1 ""), line 39 in "assert.C"
  [8] extra_completed(answers = CLASS, _ARG2 = CLASS, data = 0xa47f28), line 
3274 in "comm-manag.C"
  [9] GDBAgent::handle_input(this = 0x8cf2c0, answer = CLASS), line 1656 in 
"GDBAgent.C"
  [10] GDBAgent::InputHP(agent = 0x8cf2c0, _ARG2 = (nil), call_data = 
0xffaee690), line 1332 in "GDBAgent.C"
  [11] HandlerList::call(this = 0x8cf2e8, type = 10U, source = 0x8cf2c0, 
call_data = 0xffaee690), line 148 in "HandlerL.C"
  [12] Agent::callHandlers(this = 0x8cf2c0, type = 10, call_data = 0xffaee690), 
line 172 in "Agent.h"
  [13] LiterateAgent::dispatch(this = 0x8cf2c0, type = 10, data = 0xa494f0 
"givenfile: not found\n(/opt/SUNWspro/bin/../WS5.0/bin/sparcv9/dbx) ", length = 
45), line 343 in "LiterateA.C"
  [14] LiterateAgent::inputReady(c = 0x8cf2c0), line 368 in "LiterateA.C"
  [15] AsyncAgent::dispatch(this = 0x8cf2c0, _ARG2 = 0xa48404, inputId = 
0xffbee76c), line 213 in "AsyncAgent.C"
  [16] AsyncAgent::somethingHappened(client_data = 0x8cf2c0, fid = 0xa48404, 
inputId = 0xffbee76c), line 101 in "AsyncAgent.C"
  [17] DoOtherSources(0x89e4b8, 0x1, 0x1, 0x0, 0x0, 0x89e4b8), at 0xff0aae88
  [18] XtAppNextEvent(0x89e4b8, 0x2, 0x1, 0x0, 0x1, 0x89e4b8), at 0xff0aac58
  [19] process_next_event(), line 3213 in "ddd.C"
  [20] ddd_main_loop(), line 102 in "mainloop.C"
  [21] main(argc = 3, argv = 0xffbeea04), line 3167 in "ddd.C"


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

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


Attachment: LogDatei
Description: Binary data

Attachment: Ludger Theile.vcf
Description: Text document


reply via email to

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