[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
----------------------------------------------------------------------------
LogDatei
Description: Binary data
Ludger Theile.vcf
Description: Text document