ntdll! 7c92120e()求解决方法!

kevin_woo370483689 2011-08-18 02:42:21
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]


总是报错到底是怎么回事呢?!
...全文
482 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
旭日子 2013-08-23
  • 打赏
  • 举报
回复
我也出现这个问题,楼主解决了吗?
kevin_woo370483689 2011-08-18
  • 打赏
  • 举报
回复
我一直 F10 下去 之后
弹出
the thread 0XDEC has Exited with code 0(0x0)


ntdll! 7c92e514()
RPCRT4! 77e56caf()
RPCRT4! 77e56ad1()
RPCRT4! 77e56c97()
KERNEL32! 7c80b729()
kevin_woo370483689 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 visualeleven 的回复:]

引用 5 楼 kevin_woo370483689 的回复:
引用 3 楼 visualeleven 的回复:

CDocManager::~CDocManager()这个析构函数中你是不是做了释放链表的操作了,代码贴出来看看~



就没有这个析构函数啊!!!
只有在一个CRIGHTVIEW类里面有个这个列表类的引用CGridCtrl m_pGridCtrl;

在然后在这……
[/Quote]


ntdll! 7c92120e()
ntdll! 7c96b0a5()
ntdll! 7c93a2b6()
ntdll! 7c990552()
ntdll! 7c96bafc()
ntdll! 7c93a1ba()
DETSDI! 00445c03()
DETSDI! 00457bcd()
KERNEL32! 7c817077()


这样是不是指 我程序在 00445c03() 的时候 出错了?
kevin_woo370483689 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 visualeleven 的回复:]

引用 5 楼 kevin_woo370483689 的回复:
引用 3 楼 visualeleven 的回复:

CDocManager::~CDocManager()这个析构函数中你是不是做了释放链表的操作了,代码贴出来看看~



就没有这个析构函数啊!!!
只有在一个CRIGHTVIEW类里面有个这个列表类的引用CGridCtrl m_pGridCtrl;

在然后在这……
[/Quote]

我的Debug 跟release 调试 都是报错user breakpoint called from code at 0X7c92120e

release 下面是
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;
}
一样有问题!我想可能不是这个问题,是不是跟 线程运行函数有关?
Eleven 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 kevin_woo370483689 的回复:]
引用 3 楼 visualeleven 的回复:

CDocManager::~CDocManager()这个析构函数中你是不是做了释放链表的操作了,代码贴出来看看~



就没有这个析构函数啊!!!
只有在一个CRIGHTVIEW类里面有个这个列表类的引用CGridCtrl m_pGridCtrl;

在然后在这个类的析构函数里面这样写了!
CRIGHTVIEW::~CRIG……
[/Quote]
CGridCtrl m_pGridCtrl;
你这里不是指针了,你有动态分配吗?怎么下面是delete呢?
kevin_woo370483689 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 visualeleven 的回复:]

CDocManager::~CDocManager()这个析构函数中你是不是做了释放链表的操作了,代码贴出来看看~
[/Quote]


是不是线程函数的影响啊?
kevin_woo370483689 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 visualeleven 的回复:]

CDocManager::~CDocManager()这个析构函数中你是不是做了释放链表的操作了,代码贴出来看看~
[/Quote]


就没有这个析构函数啊!!!
只有在一个CRIGHTVIEW类里面有个这个列表类的引用CGridCtrl m_pGridCtrl;

在然后在这个类的析构函数里面这样写了!
CRIGHTVIEW::~CRIGHTVIEW()
{
if(m_pGridCtrl)
delete m_pGridCtrl;
}

就这个析构里面写了这个,别的工程里面的析构函数都没写啊!
kevin_woo370483689 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ouyh12345 的回复:]

回溯到自己的代码,看看
CDocManager::~CDocManager() line 987
[/Quote]


int CThreadByMyself::Run()
{
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();
}

我的线程运行函数!
Eleven 2011-08-18
  • 打赏
  • 举报
回复
CDocManager::~CDocManager()这个析构函数中你是不是做了释放链表的操作了,代码贴出来看看~
kevin_woo370483689 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ouyh12345 的回复:]

回溯到自己的代码,看看
CDocManager::~CDocManager() line 987
[/Quote]


搜索不到不知道为什么!我这里有用 BoundsChecker 查找内存错误,总会指向这一句:
m_memory_busy.Lock();
tmp_memory.RemoveAt(0);
m_memory_busy.Unlock();
ouyh12345 2011-08-18
  • 打赏
  • 举报
回复
回溯到自己的代码,看看
CDocManager::~CDocManager() line 987

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧