ntdll! 7c92120e()
ntdll! 7c96b0a5()
ntdll! 7c93a2b6()
ntdll! 7c990552()
ntdll! 7c96bafc()
ntdll! 7c93a1ba()
_free_base(void * 0x00cce6c8) line 96
_free_dbg_lk(void * 0x00cce6e8, int 1) line 1116 + 9 bytes
_free_dbg(void * 0x00cce6e8, int 1) line 1001 + 13 bytes
operator delete(void * 0x00cce6e8) line 351 + 11 bytes
CPlex::FreeDataChain() line 45 + 15 bytes
CPtrList::RemoveAll() line 55
CPtrList::FreeNode(CPtrList::CNode * 0x00cce6ec) line 126
CPtrList::RemoveAt(__POSITION * 0x00cce6ec) line 317
CDocManager::~CDocManager() line 987
CDocManager::`scalar deleting destructor'(unsigned int 1) + 15 bytes
CWinApp::~CWinApp() line 294 + 37 bytes
CDETSDIApp::~CDETSDIApp() + 104 bytes
$E482() + 34 bytes
doexit(int 0, int 0, int 0) line 353
exit(int 0) line 279 + 13 bytes
WinMainCRTStartup() line 212
KERNEL32! 7c817077()////////////////////////////////////
7C92120E int 3
7C92120F ret
7C921210 mov edi,edi
7C921212 int 3
7C921213 ret
7C921214 mov edi,edi
7C921216 mov eax,dword ptr [esp+4]
7C92121A int 3
7C92121B ret 4
7C92121E mov eax,fs:[00000018]
7C921224 ret
7C921225 push edi
7C921226 mov edi,dword ptr [esp+0Ch]
7C92122A mov edx,dword ptr [esp+8]
总是报错到底是怎么回事呢?!
ntdll! 7c96b0a5()
ntdll! 7c93a2b6()
ntdll! 7c990552()
ntdll! 7c96bafc()
ntdll! 7c93a1ba()
_free_base(void * 0x00cce6c8) line 96
_free_dbg_lk(void * 0x00cce6e8, int 1) line 1116 + 9 bytes
_free_dbg(void * 0x00cce6e8, int 1) line 1001 + 13 bytes
operator delete(void * 0x00cce6e8) line 351 + 11 bytes
CPlex::FreeDataChain() line 45 + 15 bytes
CPtrList::RemoveAll() line 55
CPtrList::FreeNode(CPtrList::CNode * 0x00cce6ec) line 126
CPtrList::RemoveAt(__POSITION * 0x00cce6ec) line 317
CDocManager::~CDocManager() line 987
CDocManager::`scalar deleting destructor'(unsigned int 1) + 15 bytes
CWinApp::~CWinApp() line 294 + 37 bytes
CDETSDIApp::~CDETSDIApp() + 104 bytes
$E482() + 34 bytes
doexit(int 0, int 0, int 0) line 353
exit(int 0) line 279 + 13 bytes
WinMainCRTStartup() line 212
KERNEL32! 7c817077()////////////////////////////////////
7C92120E int 3
7C92120F ret
7C921210 mov edi,edi
7C921212 int 3
7C921213 ret
7C921214 mov edi,edi
7C921216 mov eax,dword ptr [esp+4]
7C92121A int 3
7C92121B ret 4
7C92121E mov eax,fs:[00000018]
7C921224 ret
7C921225 push edi
7C921226 mov edi,dword ptr [esp+0Ch]
7C92122A mov edx,dword ptr [esp+8]
总是报错到底是怎么回事呢?!
CDocManager::~CDocManager() line 987
m_memory_busy.Lock();
tmp_memory.RemoveAt(0);
m_memory_busy.Unlock();
{
while(1)
{
Sleep(1);
if (m_Serialport.IsOpen())
{
if (m_Serialport.GetReadedBytes()!=0)
{
if (m_Serialport.m_ReadCount!=0)
{
CString tmp;
tmp.Format("%d",m_Serialport.m_ReadCount);
CString TReceive = m_Serialport.tmp_buff;
TestReceive(TReceive);
ReadBuf(m_Serialport.tmp_buff,TReceive.GetLength());
}
m_Serialport.m_ReadCount=0;
}
else if (tmp_memory.GetSize()!=NULL)
{
CString TSend = tmp_memory.GetAt(0); Send(TSend.GetBuffer(TSend.GetLength()));
TestSend(TSend);
m_memory_busy.Lock();
tmp_memory.RemoveAt(0);
m_memory_busy.Unlock();
}
}
}
return CWinThread::Run();
}我的线程运行函数!
只有在一个CRIGHTVIEW类里面有个这个列表类的引用CGridCtrl m_pGridCtrl;在然后在这个类的析构函数里面这样写了!
CRIGHTVIEW::~CRIGHTVIEW()
{
if(m_pGridCtrl)
delete m_pGridCtrl;
}就这个析构里面写了这个,别的工程里面的析构函数都没写啊!
你这里不是指针了,你有动态分配吗?怎么下面是delete呢?
我的Debug 跟release 调试 都是报错user breakpoint called from code at 0X7c92120erelease 下面是
ntdll! 7c92120e()
ntdll! 7c96b0a5()
ntdll! 7c93a2b6()
ntdll! 7c990552()
ntdll! 7c96bafc()
ntdll! 7c93a1ba()
DETSDI! 00445c03()
DETSDI! 00457bcd()
KERNEL32! 7c817077()我把
CRIGHTVIEW::~CRIGHTVIEW()
{
//if(m_pGridCtrl)
// delete m_pGridCtrl;
}
一样有问题!我想可能不是这个问题,是不是跟 线程运行函数有关?
ntdll! 7c96b0a5()
ntdll! 7c93a2b6()
ntdll! 7c990552()
ntdll! 7c96bafc()
ntdll! 7c93a1ba()
DETSDI! 00445c03()
DETSDI! 00457bcd()
KERNEL32! 7c817077()
这样是不是指 我程序在 00445c03() 的时候 出错了?
弹出
the thread 0XDEC has Exited with code 0(0x0)
ntdll! 7c92e514()
RPCRT4! 77e56caf()
RPCRT4! 77e56ad1()
RPCRT4! 77e56c97()
KERNEL32! 7c80b729()