[Qt-interest] Crash in Destructor of QVector (Heap Corruption)
Matthias Pospiech
matthias.pospiech at gmx.de
Sun Jun 7 16:39:25 CEST 2009
(This migth be non Qt related, but since the crash happens in QVector I
am not sure where it comes from)
I have a crash (Heap Corruption) which I absolutely do not understand:
HEAP[ShapedMaterialProcessingd.exe]: Heap block at 0211A180 modified at
0211C1AC past requested size of 2024
Windows has triggered a breakpoint in ShapedMaterialProcessingd.exe.
This may be due to a corruption of the heap, and indicates a bug in
ShapedMaterialProcessingd.exe or any of the DLLs it has loaded.
The output window may have more diagnostic information
HEAP[ShapedMaterialProcessingd.exe]: Invalid Address specified to
RtlValidateHeap( 00DF0000, 0211A188 )
Windows has triggered a breakpoint in ShapedMaterialProcessingd.exe.
msvcr80d.dll!_free_dbg_nolock(void * pUserData=0x0211a1a8, int
nBlockUse=1) Line 1279 + 0x30 bytes C++
msvcr80d.dll!_free_dbg(void * pUserData=0x0211a1a8, int
nBlockUse=1) Line 1220 + 0xd bytes C++
msvcr80d.dll!free(void * pUserData=0x0211a1a8) Line 1178 + 0xb
bytes C++
QtCored4.dll!6703fb6d()
[Frames below may be incorrect and/or missing, no symbols loaded
for QtCored4.dll]
ShapedMaterialProcessingd.exe!QVector<double>::free(QVectorTypedData<double>
* x=0x0211a1a8) Line 425 + 0xc bytes C++
ShapedMaterialProcessingd.exe!QVector<double>::~QVector<double>()
Line 114 + 0x42 bytes C++
ShapedMaterialProcessingd.exe!PhaseFromPeriod::~PhaseFromPeriod()
Line 21 + 0x5a bytes C++
ShapedMaterialProcessingd.exe!ShapingGrating::~ShapingGrating()
Line 26 + 0x29 bytes C++
ShapedMaterialProcessingd.exe!beamshapes::~beamshapes() Line 43 +
0x8c bytes C++
ShapedMaterialProcessingd.exe!beamshapes::`vbase destructor'() +
0x1c bytes C++
ShapedMaterialProcessingd.exe!PhaseObject::~PhaseObject() Line 17
+ 0xe bytes C++
The Instanz from class PhaseObject is deleted. This comes to the
destruction of the object: 'phaseCalibration'
class ShapingGrating : public virtual BeamShapingBasics
{
public:
ShapingGrating();
virtual ~ShapingGrating();
private:
PhaseFromPeriod phaseCalibration;
which has the QVector
class PhaseFromPeriod
{
public:
virtual ~PhaseFromPeriod(){}
private:
QVector<double> m_Period;
Now the destructor from 'm_Period' is called and the appliction crashes.
I tried a complete rebuild but that did not help. I did not change the
code since it worked last time (as much as I can remember).
What could I try? Development platform is Windows MSVC
Matthias
More information about the Qt-interest-old
mailing list