繁体   English   中英

用于在运行时记录调用堆栈的库(Windows / Linux)

[英]Library for logging Call Stack at runtime (Windows/Linux)

我需要一种方法来记录调试日志中的函数堆栈跟踪,以帮助我诊断缺陷。 问题是我需要在Windows和Linux上使用C ++实现它。

经过一番研究,我发现:

  • 对于Windows实现,我可以使用StackWalk64 API函数和系列。
  • 在Linux下,我发现libunwind听起来很棒。
  • 或者,我可以使用glibc的回溯

在开始工作之前,我想要一些建议,如果这是正确的方法,并询问是否有一个已经编写的多平台库可以提供帮助。 我怀疑我不是第一个需要这个的程序员。 :)

如果您想从现场获取故障转储, Google Breakpad会为您处理所有这些。

我写了两篇关于这个主题的文章,包括Googles breakpad以及一个非常薄的自编写方法,适用于windows和linux:

事后调试 - http://drdobbs.com/tools/185300443

重新审视事后调试 - http://drdobbs.com/architecture-and-design/227900186

几年前我写了这个: http//drdobbs.com/cpp/191100567

基本上,一些宏记录了抛出异常时堆栈展开的位置。

可以在Imebra库中找到该框架的更新版本(http://imebra.com)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM