[Top][All Lists]
[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.]
- [lmi] A useless diagnostic, and a crash,
Greg Chicares <=