在Visual Studio中使用C++时,我想知道是否有可以为我打印调用栈的API。最好,我想打印一个5层深的callstack。windows是否提供了一个简单的API来允许我这样做?
发布于 2009-08-28 10:36:44
有许多方法可以做到这一点。
请参阅How to Log Stack Frames with Windows x64
在我看来,最简单也是最可靠的方法是Win32 API函数:
USHORT WINAPI CaptureStackBackTrace(
__in ULONG FramesToSkip,
__in ULONG FramesToCapture,
__out PVOID *BackTrace,
__out_opt PULONG BackTraceHash
);此FramesToCapture参数确定返回的最大调用堆栈深度。
发布于 2009-08-27 16:21:48
看起来微软的DbgHelp库可以做你想做的事情。有关更多信息,请参阅MSDN上的StackWalk64函数文档。此外,this CodeProject article可能也很有用。
发布于 2009-08-27 16:32:35
我相信你可以从他们的调试器API (dbghelp.
https://stackoverflow.com/questions/1341796
复制相似问题