Visual c++ visualc&x2B+;:断言失败时的调用堆栈

Visual c++ visualc&x2B+;:断言失败时的调用堆栈,visual-c++,assert,callstack,Visual C++,Assert,Callstack,当断言在释放模式下失败时,是否可以输出调用堆栈 当assert在Debug模式下失败时,我可以在VisualStudio中看到调用堆栈。我已经编译了Release模式,删除了NDEBUG,以便编译断言。当此断言失败时,断言参数将打印到控制台上。如果我能以某种方式获得调用堆栈的输出,那将非常有帮助。有两个函数应该会有帮助:and(需要Dbghelp.dll,这里是) 无论如何,它们都只返回一个返回地址列表,因此必须手动将它们解析为函数名。您可以设置VS以生成包含可执行文件中所有函数地址的映射文件。

断言
释放模式下失败时,是否可以输出调用堆栈


assert
Debug模式下失败时,我可以在VisualStudio中看到调用堆栈。我已经编译了Release模式,删除了
NDEBUG
,以便编译断言。当此断言失败时,断言参数将打印到控制台上。如果我能以某种方式获得调用堆栈的输出,那将非常有帮助。

有两个函数应该会有帮助:and(需要Dbghelp.dll,这里是)

无论如何,它们都只返回一个返回地址列表,因此必须手动将它们解析为函数名。您可以设置VS以生成包含可执行文件中所有函数地址的映射文件。给你

另外,不要忘记有些函数可能(也将)是内联的。因此,当您看到的不是
A->B->C
而是
A->C
调用tack时,不要感到惊讶。

调试信息(函数名等)必须编译成二进制文件才能实现。这就是你要问的吗?