C++MFCdebug下程序可以运行exe abort()has been called

Timon---老赵 2020-06-28 10:08:59
debug模式下运行没有问题,但是打开exe运行报错,debug error ,abort()has been called
...全文
694 24 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
X_LanGoo 2023-01-10
  • 打赏
  • 举报
回复

楼主解决了吗

源代码大师 2021-05-06
  • 打赏
  • 举报
回复
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html
  • 打赏
  • 举报
回复
引用 23 楼 Timon---老赵 的回复:
有人遇到这个问题

https://blog.csdn.net/xkwnzxxjw/article/details/80659179

完全深拷贝,A = B.clone(),该方法重新分配了内存,所以可以使用reshape函数
Timon---老赵 2020-07-01
  • 打赏
  • 举报
回复
有人遇到这个问题
  • 打赏
  • 举报
回复
引用 21 楼 Timon---老赵 的回复:
已经解决 CV:mat.reshape 出现错误,debug可以使用,直接点击exe不可用

怎么定位到的呢?
Simple-Soft 2020-06-29
  • 打赏
  • 举报
回复
截图一下。。
Timon---老赵 2020-06-29
  • 打赏
  • 举报
回复
引用 1 楼 Simple-Soft的回复:
调试运行,看死在什么地方
Debug可以正常运行,但是运行exe就报错
真相重于对错 2020-06-29
  • 打赏
  • 举报
回复
把你的代码先注释掉,然后逐步放开,直到出现错误。再找出错原因。
Timon---老赵 2020-06-29
  • 打赏
  • 举报
回复
已经解决 CV:mat.reshape 出现错误,debug可以使用,直接点击exe不可用
zgl7903 2020-06-29
  • 打赏
  • 举报
回复
点击重试,看调用堆栈 逐级回退到你代码处 修改解决之

  • 打赏
  • 举报
回复
引用 18 楼 Timon---老赵 的回复:
[quote=引用 17 楼 zjq9931的回复:]点击忽略,然后查看调用栈

不是debug,debug正常运行,直接点击debug文件的exe不可以运行[/quote]
那你在程序开始运行的时候,弹出一个MessageBox.
运行到MessageBox后,在VS菜单栏点击“调试”->附加到进程,然后继续运行,看还会不会出现这个错误。
如果出现,那就可以调试了。
如果不出现,那就点击exe文件,出现这个对话框的时候,点击重试,或者忽略,总会出现“调试”对话框把?如果也不出现,那就增加上日志,或者一步一步弹出对话框,看看在哪一步出错的,从粗到细,慢慢定位了。
Timon---老赵 2020-06-29
  • 打赏
  • 举报
回复
引用 17 楼 zjq9931的回复:
点击忽略,然后查看调用栈
不是debug,debug正常运行,直接点击debug文件的exe不可以运行
  • 打赏
  • 举报
回复
点击忽略,然后查看调用栈
Simple-Soft 2020-06-29
  • 打赏
  • 举报
回复
调试运行,看死在什么地方
Simple-Soft 2020-06-29
  • 打赏
  • 举报
回复
引用 14 楼 Timon---老赵的回复:
引用 9 楼 Simple-Soft 的回复:
点击重试啊1
试了不行
你要还不行,把代码发给我 qq 3405187170
真相重于对错 2020-06-29
  • 打赏
  • 举报
回复 1
年纪大了,容易讨人厌,我再多几句嘴。 调试,首先是能够重现错误,其次定位错误,如果能够做到这两条。基本没有解决不了的错误。
Timon---老赵 2020-06-29
  • 打赏
  • 举报
回复
引用 9 楼 Simple-Soft 的回复:
点击重试啊1
试了不行
真相重于对错 2020-06-29
  • 打赏
  • 举报
回复
当然你如果对自己写的代码糊里糊涂,算我白说
真相重于对错 2020-06-29
  • 打赏
  • 举报
回复
一样的,你这个运行时的错误,如果无法调试的话,一般都是先找到一个不出错的版本,然后把功能一点点添加进去,直到出错。再确定出错的位置。
否则,您调试汇编吧。
哪个难度更大?一目了然了吧。
实际工作中调试C++,这是一个基本的调试技能。
Timon---老赵 2020-06-29
  • 打赏
  • 举报
回复
引用 10 楼 真相重于对错 的回复:
引用 8 楼 Timon---老赵 的回复:
[quote=引用 2 楼 真相重于对错 的回复:]
把你的代码先注释掉,然后逐步放开,直到出现错误。再找出错原因。
代码太多,方法不现实

不麻烦,自己写的代码,还不知道有哪些吗?
比如
void fun1();
void fun2();
。。。。
void fun10();
int main(){
fun1();
。。。。




fun10();
}大致如此,你把这些代码全注释一下/* .... */
运行看看,出不出错,如果不出错,依次放看调用函数,看看具体哪个函数调用的时候出现错误,然后可以在这个函数内部也如法炮制,直到找到出错的行。[/quote]不是你想的这么简单 我的是一个MFC应用
加载更多回复(4)

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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