1

是否有可能通过将地址映射到调试 .map 文件或其他东西来“窥视”堆栈以推断出调用函数是什么?

我有一个从大量不同地方调用的函数,基本上,如果可能的话,我希望能够以编程方式注销谁调用了该函数,以便我可以跟踪参数值随时间的进展,并能够连接他们回到他们可能出错的地方。我可以添加一个参数,以便调用者必须提供用户字符串或其他内容,但如果可能的话,我想做一些不那么侵入性的事情。

4

2 回答 2

1

GCC 有这方面的功能,例如 __builtin_return_address (参见http://gcc.gnu.org/onlinedocs/gcc/Return-Address.html)。它们应仅用于调试或特殊测试目的,而不应作为生产代码的一部分。

于 2012-06-29T19:51:59.700 回答
0

您可以使用 Windows API 生成 MiniDump 文件并稍后在调试器中加载它们,如果符号可用,您应该能够调试崩溃并调查变量的值。

于 2012-06-29T19:59:56.157 回答