V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ukixiangg
V2EX  ›  程序员

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

  •  
  •   ukixiangg · 2021-02-09 14:55:45 +08:00 · 2463 次点击
    这是一个创建于 1372 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这是 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.
    用户日志也没有明显的错误。
    这种崩溃怎么排查?可能的原因是什么?
    19 条回复    2021-02-22 16:10:09 +08:00
    Cooky
        1
    Cooky  
       2021-02-09 15:02:28 +08:00 via Android
    编译的时候别用 vc2015+ 的 crt ?
    ukixiangg
        2
    ukixiangg  
    OP
       2021-02-09 15:12:18 +08:00
    这个不确定,因为程序是别的同事打包的。
    如果用了怎么样?
    DoctorCat
        3
    DoctorCat  
       2021-02-09 15:14:33 +08:00
    猜一下:ucrtbase 与目标系统版本不兼容。建议需要收集更多的系统信息尝试复现。
    ukixiangg
        4
    ukixiangg  
    OP
       2021-02-09 15:22:18 +08:00
    崩溃的系统是 windows 10
    ukixiangg
        5
    ukixiangg  
    OP
       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
        6
    Flymachine  
       2021-02-09 16:59:08 +08:00
    看看和这个帖子遇到的问题是不是一样的

    “Fatal program exit requested (ucrtbase.dll)”
    aHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDM3OTQ3NTEvZmF0YWwtcHJvZ3JhbS1leGl0LXJlcXVlc3RlZC11Y3J0YmFzZS1kbGw=
    wzzzx
        7
    wzzzx  
       2021-02-09 17:00:32 +08:00
    dll 对不上吧?
    codehz
        8
    codehz  
       2021-02-09 17:23:52 +08:00   ❤️ 1
    这种就是未处理的异常,没研究之前别甩锅到 ucrt 上。。。
    GeruzoniAnsasu
        9
    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
        10
    undef404  
       2021-02-10 10:23:49 +08:00
    抓个 dump,windbg 调一下,先看看是什么异常.
    ukixiangg
        11
    ukixiangg  
    OP
       2021-02-10 23:42:49 +08:00
    God bless me.
    用户侧的崩溃,本地暂时不知如何调试。
    mingl0280
        12
    mingl0280  
       2021-02-11 08:51:19 +08:00 via Android
    ucrtbased.dll abort 可能的原因很多,上帝才知道。
    这个错基本上都是说你程序里哪里越界了,类似 AccessViolation C0000005,鬼知道具体哪里炸了。
    ysc3839
        13
    ysc3839  
       2021-02-11 18:07:51 +08:00 via Android
    调用栈似乎已经 rewind 了,没有具体出错的地方。看上去是遇到了未处理的异常,然后系统调用了 UnhandledExceptionFilter,而默认的 UnhandledExceptionFilter 是调用 terminate 。
    ysc3839
        14
    ysc3839  
       2021-02-11 18:10:59 +08:00 via Android
    @ysc3839 前面搞错了一个名词,是 stack unwind 而不是 rewind 。
    https://docs.microsoft.com/en-us/cpp/cpp/exceptions-and-stack-unwinding-in-cpp?view=msvc-160
    darknoll
        15
    darknoll  
       2021-02-12 08:52:18 +08:00 via Android
    lib 链接错了
    nicevar
        16
    nicevar  
       2021-02-12 12:39:54 +08:00
    我提供另一个思路,多少用户报这个错?如果只是个别的,很可能不是程序问题,比如 SSD 出现文件损坏也会出现这种总情况
    missdeer
        17
    missdeer  
       2021-02-12 14:24:01 +08:00   ❤️ 1
    无语了,前面这些回复都是些什么啊
    这个 call stack 明显是在说程序崩溃了,被 Windows 的 SEH 捕获了,全是 SEH 相关的调用,跟用户代码一点关系都没有
    handle233
        18
    handle233  
       2021-02-12 14:59:03 +08:00
    这种日志怎么排查呢?连 Main 函数都没进去,都是 CRTCRT 开头的..
    ukixiangg
        19
    ukixiangg  
    OP
       2021-02-22 16:10:09 +08:00
    这个崩溃暂时已经跳过了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1088 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 22:36 · PVG 06:36 · LAX 14:36 · JFK 17:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.