什么是`myLibrary!__ scrt_stub_for_is_c_termination_complete + 0x12345`

时间:2019-04-02 11:51:21

标签: c++ windows debugging stack-trace msvcrt

符号myLibrary!__scrt_stub_for_is_c_termination_complete+0x12345出现在崩溃的应用程序的堆栈跟踪中。它是用MSVC2015编译的C ++,并且大量使用Qt。

myLibrary没有明确实现该名称。

Google对该名称显示了一些匹配项,因此显然它并不专用于该应用程序。但我找不到对此的解释。

2 个答案:

答案 0 :(得分:1)

这是“不知道它在哪里崩溃”的诊断。 + 0x12345偏移量太大。一点也不罕见,您需要良好的PDB才能获得准确的堆栈跟踪。没有它们,您对编写的代码一无所知,只能通过命名的DLL入口点进入。

由于崩溃似乎是在C运行时库中检测到的,因此启用Microsoft Symbol Server并让其生成所需的PDB可能会很幸运。假设您在VS中打开了小型转储,请使用“工具”>“选项”>“调试”>“符号”启用服务器。 this MSDN page中提供了常规和WinDbg建议。

答案 1 :(得分:0)

是一个库名称:myLibrary
是一个函数名称:__scrt_stub_for_is_c_termination_complete
与功能偏移量之间的距离是:+ 0x12345

If you enter the disassembly mode, then you can see a function's address

Also you can see in the (quick)watch to function name, same as disassembly

您可以假定从特定功能和哪一行引发了异常。

  

当心:如果您在Release build中进行调试,将很难找到哪个代码会引发   例外。在这种情况下,您可以在Debug和Release之间比较程序集(我无法解释它的工作方式,直到描述为止)。使用Debug Build简化调试。

快乐编码:)