程序有时候崩溃?请大家帮帮忙

jinlsg 2011-03-01 05:43:24
程序在运行的时候有时候会崩溃,context下的内容如下:
NTDLL! 7c92120e()
NTDLL! 7c98e516()
NTDLL! 7c98f6fe()
NTDLL! 7c96bc5a()
NTDLL! 7c946045()
MSVCRT! 77bfc2de()
MFC42! 73d8adec()
MFC42! 73d8aebe()
请大家帮帮忙,看看这是什么原因?现在是根本找不到崩溃的地方。
...全文
185 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
drifter2002 2011-03-01
  • 打赏
  • 举报
回复
用 rational purify 软件分析一下代码
  • 打赏
  • 举报
回复
估计是内存访问违规了 可能是数组越界 或调用空指针
孤客天涯 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jinlsg 的回复:]

引用 4 楼 jason_wentzel 的回复:

如果是Release版的问题不太好查,没有调试信息,你可以考虑在程序中加崩溃捕捉,把崩溃时的相关堆栈信息记录到文件中,以便分析


如何捕捉崩溃信息,并记录到文件中,谢谢!
[/Quote]

你到网上找找msjexhnd.cpp和msjexhnd.h这两个文件,把它加到工程中来就可以了,它在程序崩溃时会自动记录当前的堆栈信息到你exe所在的目录,接下来你就是要分析所记录的文件信息了,结合反汇编工具,如果能定位你程序中大概的位置,就是很有用了
lazy_2010 2011-03-01
  • 打赏
  • 举报
回复
使用 Debug 版本,在内存操作的前后加 ASSERT(_CrtCheckMemory()); 试一试检查内存何时出现错误。
  • 打赏
  • 举报
回复
看这个就能知道答案的绝对是神仙
TandyT 2011-03-01
  • 打赏
  • 举报
回复
加断点,光标放到你要加的那一行,然后按 F9 ,就会在左边出现一个朱红色的点,表示调试运行到这行时会停下来,等待你的操作!如果在这行再按一次F9 ,就会取消这个断点。
TandyT 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 jinlsg 的回复:]
现在程序运行运行着就崩溃了,不知道在那崩溃的,怎么加断点呀
[/Quote]

如果是运行一段时候后崩溃,那你调试运行看看,你说的一段时间,多长啊?不会是几个小时吧,,,囧
jinlsg 2011-03-01
  • 打赏
  • 举报
回复
现在程序运行运行着就崩溃了,不知道在那崩溃的,怎么加断点呀
枫桦沐阳 2011-03-01
  • 打赏
  • 举报
回复
运行一段时间崩溃的话,我会首先考虑它是内存溢出了。
有没有循环函数,没控制好结束之类的。
crjwlaq 2011-03-01
  • 打赏
  • 举报
回复
很有可能是调用的库有问题。我做项目时碰到过。
jinlsg 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tandyt 的回复:]

引用楼主 jinlsg 的回复:
程序在运行的时候有时候会崩溃,context下的内容如下:
NTDLL! 7c92120e()
NTDLL! 7c98e516()
NTDLL! 7c98f6fe()
NTDLL! 7c96bc5a()
NTDLL! 7c946045()
MSVCRT! 77bfc2de()
MFC42! 73d8adec()
MFC42! 73d8aebe(……
[/Quote]

运行一段时间后崩溃
ouyh12345 2011-03-01
  • 打赏
  • 举报
回复
设置工程,生成pdb符号文件
google crashrpt,崩溃后生成dump文件
然后用windbg调试
jinlsg 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jason_wentzel 的回复:]

如果是Release版的问题不太好查,没有调试信息,你可以考虑在程序中加崩溃捕捉,把崩溃时的相关堆栈信息记录到文件中,以便分析
[/Quote]

如何捕捉崩溃信息,并记录到文件中,谢谢!
ryueiketu 2011-03-01
  • 打赏
  • 举报
回复
调DLL出错了.
把可能出错的地方,出个LOG看看.
孤客天涯 2011-03-01
  • 打赏
  • 举报
回复
如果是Release版的问题不太好查,没有调试信息,你可以考虑在程序中加崩溃捕捉,把崩溃时的相关堆栈信息记录到文件中,以便分析
TandyT 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 jinlsg 的回复:]
程序在运行的时候有时候会崩溃,context下的内容如下:
NTDLL! 7c92120e()
NTDLL! 7c98e516()
NTDLL! 7c98f6fe()
NTDLL! 7c96bc5a()
NTDLL! 7c946045()
MSVCRT! 77bfc2de()
MFC42! 73d8adec()
MFC42! 73d8aebe()
请大家帮帮忙,看看这是什么原因?……
[/Quote]

是不是内存不可读还是怎么个崩溃法?或者是资源没有得到释放?你这样说,人家很难帮你分析导致你这个错误的原因啊。

是一运行就崩溃,还是运行一段时候后才崩溃?最好提供多些有用的信息来
枫桦沐阳 2011-03-01
  • 打赏
  • 举报
回复
会不会是调用系统API函数时参数传错了。
TandyT 2011-03-01
  • 打赏
  • 举报
回复
那你能不能调试运行啊?试试debug下运行,然后看堆栈里到底在哪一步调用后出错了

16,548

社区成员

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

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

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