lmi
[Top][All Lists]
Advanced

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

[lmi] Segfault in wxDVC census manager


From: Greg Chicares
Subject: [lmi] Segfault in wxDVC census manager
Date: Thu, 18 Aug 2011 15:08:47 +0000
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.17) Gecko/20110414 Thunderbird/3.1.10

Loading a saved census, setting variable column width, and deleting a cell
causes a segfault. Here's an alternative way to reproduce it from scratch:

  File | New | Census
  Census | Add cell
  Census | Edit cell | [change any input field[*]] | OK
  Census | Varying column width
  Census | Delete cell(s) | Yes

[*]--It seems sufficient to change any input field in this step; I did:
  "MEC avoidance": select "Reduce premium"
What's essential is that not all cells are identical.

Observed symptoms vary, seemingly at random. lmi_terminate_handler()
(used as the argument of std::set_terminate()) might be called; some
other lmi messagebox might appear; all cells in the census might be
deleted; or lmi might abruptly close.

It doesn't seem to matter which cell is deleted.

Without this curiously necessary step above:
  Census | Varying column width
the segfault does not occur.

This problem has been confirmed with lmi revisions 5254 and 5259,
though I suspect it arose in an earlier revision. It does not occur
with an archived May 2011 build that displayed a census in a listview.

This gdb session points to CensusViewDataViewModel::GetValueByRow():

/usr/bin[0]$cd /opt/lmi/bin
/opt/lmi/bin[0]$gdb ./lmi_wx_shared
GNU gdb 6.8.0.20080328-cvs (cygwin-special)
[...]
This GDB was configured as "i686-pc-cygwin"...
(gdb) set arg --ash_nazg --data_path=/opt/lmi/data
(gdb) r
Starting program: /opt/lmi/bin/lmi_wx_shared --ash_nazg 
--data_path=/opt/lmi/data
[New thread 3996.0xa74]
Error while mapping shared library sections:
/opt/lmi/bin/libexslt-0.dll: No such file or directory.
  [I believe that's a known issue with gdb; the dll is certainly present.]
warning: HEAP[lmi_wx_shared.exe]:
warning: Invalid Address specified to RtlFreeHeap( 003F0000, 6611BF28 )

Program received signal SIGTRAP, Trace/breakpoint trap.
0x7c90120f in ntdll!DbgUiConnectToDbg ()
   from /cygdrive/c/WINDOWS/system32/ntdll.dll
(gdb) handle SIGTRAP nostop noprint
SIGTRAP is used by the debugger.
Are you sure you want to change it? (y or n) y

  [Otherwise that trap interrupts the gdb session many, many times.]

Signal        Stop      Print   Pass to program Description
SIGTRAP       No        No      No              Trace/breakpoint trap
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y

Starting program: /opt/lmi/bin/lmi_wx_shared --ash_nazg 
--data_path=/opt/lmi/data
[New thread 2636.0x924]
Error while mapping shared library sections:
/opt/lmi/bin/libexslt-0.dll: No such file or directory.
warning: HEAP[lmi_wx_shared.exe]:
warning: Invalid Address specified to RtlFreeHeap( 003F0000, 6611BF28 )

  [...skipped SIGTRAPs...]

warning: In file ../src/msw/mdi.cpp at line 1427: 'SendMessage(WM_MDISETMENU)' f
ailed with error 0x00000008 (not enough storage is available to process this com
mand.).

  [Is that SendMessage() error significant? I have gigabytes of free RAM.]

  [...more skipped SIGTRAPs...]

Program received signal SIGSEGV, Segmentation fault.
std::_Rb_tree<std::string, std::pair<std::string const, any_member<Input> >, std
::_Select1st<std::pair<std::string const, any_member<Input> > >, std::less<std::
string>, std::allocator<std::pair<std::string const, any_member<Input> > > >::fi
nd (this=0xfeeefeee, address@hidden)
    at C:/opt/lmi/MinGW-20090203/bin/../lib/gcc/mingw32/3.4.5/../../../../includ
e/c++/3.4.5/bits/basic_string.h:269
269           { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }
Current language:  auto; currently c++
(gdb) bt
#0  std::_Rb_tree<std::string, std::pair<std::string const, any_member<Input> >,
 std::_Select1st<std::pair<std::string const, any_member<Input> > >, std::less<s
td::string>, std::allocator<std::pair<std::string const, any_member<Input> > > >
::find (this=0xfeeefeee, address@hidden)
    at C:/opt/lmi/MinGW-20090203/bin/../lib/gcc/mingw32/3.4.5/../../../../includ
e/c++/3.4.5/bits/basic_string.h:269
#1  0x004e07e4 in MemberSymbolTable<Input>::operator[] (this=0x2077f38,
    address@hidden)
    at C:/opt/lmi/MinGW-20090203/bin/../lib/gcc/mingw32/3.4.5/../../../../includ
e/c++/3.4.5/bits/stl_map.h:498
#2  0x004fb442 in CensusViewDataViewModel::GetValueByRow (this=0x2007810,
    address@hidden, row=3, col=33)
    at C:/opt/lmi/MinGW-20090203/bin/../lib/gcc/mingw32/3.4.5/../../../../includ
e/c++/3.4.5/bits/stl_vector.h:462
#3  0x658b4043 in wxDataViewRendererBase::PrepareForItem ()
   from /opt/lmi/local/lib/wxmsw292u_gcc_gcc-345-d6cec5bd331ba90b74c1e2fcb056362
0.dll
#4  0x658f21bc in wxDataViewCtrl::GetBestColumnWidth ()
   from /opt/lmi/local/lib/wxmsw292u_gcc_gcc-345-d6cec5bd331ba90b74c1e2fcb056362
0.dll
#5  0x658f3d48 in wxDataViewColumn::GetWidth ()
   from /opt/lmi/local/lib/wxmsw292u_gcc_gcc-345-d6cec5bd331ba90b74c1e2fcb056362
0.dll
#6  0x65579cd4 in wxHeaderCtrl::DoInsertItem ()
---Type <return> to continue, or q <return> to quit---q
 from /opt/lmi/local/lib/wxmsw29Quit
(gdb) k
Kill the program being debugged? (y or n) y
(gdb) q
/opt/lmi/bin[0]$



reply via email to

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