程序崩溃于 ucrtbase.dll!_abort()

2021-02-09 14:55:45 +08:00
 ukixiangg
这是 Qt 桌面应用程序,能够自动收集用户程序生成的崩溃。
用 visual studio 打开 dump 文件,得到崩溃调用栈:
ucrtbase.dll!_abort() Unknown Non-user code. Symbols loaded.
ucrtbase.dll!_terminate() Unknown Non-user code. Symbols loaded.
> AAA.exe!__scrt_unhandled_exception_filter(_EXCEPTION_POINTERS * const pointers) Line 93 C++ Non-user code. Symbols loaded.
KERNELBASE.dll!_UnhandledExceptionFilter@4() Unknown Non-user code. Symbols loaded.
ntdll.dll!__RtlUserThreadStart() Unknown Non-user code. Symbols loaded.
ntdll.dll!__RtlUserThreadStart@8() Unknown Non-user code. Symbols loaded.
用户日志也没有明显的错误。
这种崩溃怎么排查?可能的原因是什么?
2281 次点击
所在节点    程序员
19 条回复
Cooky
2021-02-09 15:02:28 +08:00
编译的时候别用 vc2015+ 的 crt ?
ukixiangg
2021-02-09 15:12:18 +08:00
这个不确定,因为程序是别的同事打包的。
如果用了怎么样?
DoctorCat
2021-02-09 15:14:33 +08:00
猜一下:ucrtbase 与目标系统版本不兼容。建议需要收集更多的系统信息尝试复现。
ukixiangg
2021-02-09 15:22:18 +08:00
崩溃的系统是 windows 10
ukixiangg
2021-02-09 16:07:16 +08:00
dmp 文件中的异常信息:
Unhandled exception at 0x7578EDBB (ucrtbase.dll) in AAA.exe.1652.dmp: Fatal program exit requested.
Flymachine
2021-02-09 16:59:08 +08:00
看看和这个帖子遇到的问题是不是一样的

“Fatal program exit requested (ucrtbase.dll)”
aHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDM3OTQ3NTEvZmF0YWwtcHJvZ3JhbS1leGl0LXJlcXVlc3RlZC11Y3J0YmFzZS1kbGw=
wzzzx
2021-02-09 17:00:32 +08:00
dll 对不上吧?
codehz
2021-02-09 17:23:52 +08:00
这种就是未处理的异常,没研究之前别甩锅到 ucrt 上。。。
GeruzoniAnsasu
2021-02-09 19:40:09 +08:00
> AAA.exe!__scrt_unhandled_exception_filter(_EXCEPTION_POINTERS * const pointers) Line 93 C++ Non-user code.

你寻找的网友可能是

上帝

















你多线程的线程代码有一个构造函数失败了没捕获
如果我猜对了我是上帝,如果我猜错了,我还是我
undef404
2021-02-10 10:23:49 +08:00
抓个 dump,windbg 调一下,先看看是什么异常.
ukixiangg
2021-02-10 23:42:49 +08:00
God bless me.
用户侧的崩溃,本地暂时不知如何调试。
mingl0280
2021-02-11 08:51:19 +08:00
ucrtbased.dll abort 可能的原因很多,上帝才知道。
这个错基本上都是说你程序里哪里越界了,类似 AccessViolation C0000005,鬼知道具体哪里炸了。
ysc3839
2021-02-11 18:07:51 +08:00
调用栈似乎已经 rewind 了,没有具体出错的地方。看上去是遇到了未处理的异常,然后系统调用了 UnhandledExceptionFilter,而默认的 UnhandledExceptionFilter 是调用 terminate 。
ysc3839
2021-02-11 18:10:59 +08:00
@ysc3839 前面搞错了一个名词,是 stack unwind 而不是 rewind 。
https://docs.microsoft.com/en-us/cpp/cpp/exceptions-and-stack-unwinding-in-cpp?view=msvc-160
darknoll
2021-02-12 08:52:18 +08:00
lib 链接错了
nicevar
2021-02-12 12:39:54 +08:00
我提供另一个思路,多少用户报这个错?如果只是个别的,很可能不是程序问题,比如 SSD 出现文件损坏也会出现这种总情况
missdeer
2021-02-12 14:24:01 +08:00
无语了,前面这些回复都是些什么啊
这个 call stack 明显是在说程序崩溃了,被 Windows 的 SEH 捕获了,全是 SEH 相关的调用,跟用户代码一点关系都没有
handle233
2021-02-12 14:59:03 +08:00
这种日志怎么排查呢?连 Main 函数都没进去,都是 CRTCRT 开头的..
ukixiangg
2021-02-22 16:10:09 +08:00
这个崩溃暂时已经跳过了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/752627

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX