首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印n层的callstack吗?

打印n层的callstack吗?
EN

Stack Overflow用户
提问于 2009-08-27 15:23:04
回答 4查看 16.2K关注 0票数 12

在Visual Studio中使用C++时,我想知道是否有可以为我打印调用栈的API。最好,我想打印一个5层深的callstack。windows是否提供了一个简单的API来允许我这样做?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-08-28 10:36:44

有许多方法可以做到这一点。

请参阅How to Log Stack Frames with Windows x64

在我看来,最简单也是最可靠的方法是Win32 API函数:

代码语言:javascript
复制
USHORT WINAPI CaptureStackBackTrace(
     __in       ULONG FramesToSkip,
     __in       ULONG FramesToCapture,
     __out      PVOID *BackTrace,
     __out_opt  PULONG BackTraceHash
);

此FramesToCapture参数确定返回的最大调用堆栈深度。

票数 6
EN

Stack Overflow用户

发布于 2009-08-27 16:21:48

看起来微软的DbgHelp库可以做你想做的事情。有关更多信息,请参阅MSDN上的StackWalk64函数文档。此外,this CodeProject article可能也很有用。

票数 10
EN

Stack Overflow用户

发布于 2009-08-27 16:32:35

我相信你可以从他们的调试器API (dbghelp.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1341796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档