lmi
[Top][All Lists]
Advanced

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

[lmi] A useless diagnostic, and a crash


From: Greg Chicares
Subject: [lmi] A useless diagnostic, and a crash
Date: Thu, 06 May 2010 03:29:31 +0000
User-agent: Thunderbird 2.0.0.24 (Windows/20100228)

Using revision 4910 of 20100506T0252Z, which deliberately tries to
look up a nonexistent map key:

$./input_test |wc
     25     462    5193

About two-thirds of the characters are in a diagnostic message that
lists every key in the database:
  Key  not found. These keys were found: dummy Underwriting MinIssAge ...
It says what *was* found, but doesn't say what was vainly sought:
  Key  not found. ...
     ^^
That's not helpful, so I'll change it.

But wait, there's more. Add a lawful argument:
  $./input_test -a
and it crashes.

Here's a gdb backtrace:

Program received signal SIGSEGV, Segmentation fault.
0x77c4381c in strlen () from /cygdrive/c/WINDOWS/system32/MSVCRT.DLL
(gdb) bt
#0  0x77c4381c in strlen () from /cygdrive/c/WINDOWS/system32/MSVCRT.DLL
#1  0x0062e187 in std::operator<< <std::char_traits<char> > ()
#2  0x00436aeb in product_database::GetEntry (this=0x22d9a0, k=-1)
    at C:/MinGW-20090203/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.
4.5/bits/stl_vector.h:476
#3  0x004b8241 in input_test::test_product_database ()
    at /lmi/src/lmi/input_test.cpp:99

...which seems to suggest that there's a nasty defect either in
libstdc++, or in msvc's strlen(), or in lmi's fatal_error(); so
the greatest suspicion would lie on fatal_error().

It's not urgent, but this could bite us someday. Anyone who'd
like to debug it is most welcome to.

[It might seem that task #7018:
  http://savannah.nongnu.org/task/?7018#comment1
| Symptom: a messagebox is supposed to contain an extremely
| long string, but it doesn't appear at all.
is related to this, but I doubt it--#7018 didn't crash.]




reply via email to

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